Explorar o código

Revert "Merge pull request #677 from djc/optimize-tables"

This reverts commit f0010be169b640df47e28009da8b56ef91fe6488, reversing
changes made to 74fd76f56e7780426a92ec7bf67c7ff4305a42d7.

PR was merged without its dependencies.
Valentin Gosu %!s(int64=5) %!d(string=hai) anos
pai
achega
e385083bc7
Modificáronse 3 ficheiros con 3346 adicións e 1671 borrados
  1. 14 6
      idna/src/make_uts46_mapping_table.py
  2. 28 14
      idna/src/uts46.rs
  3. 3304 1651
      idna/src/uts46_mapping_table.rs

+ 14 - 6
idna/src/make_uts46_mapping_table.py

@@ -148,9 +148,20 @@ def merge_single_char_ranges(ranges):
 
 optimized_ranges = list(merge_single_char_ranges(optimized_ranges))
 
-SINGLE_MARKER = 1 << 15
 
-print("static TABLE: &[(char, u16)] = &[")
+print("static TABLE: &[Range] = &[")
+
+for ranges in optimized_ranges:
+    first = ranges[0][0]
+    last = ranges[-1][1]
+    print("    Range { from: '%s', to: '%s', }," % (escape_char(char(first)),
+                                                            escape_char(char(last))))
+
+print("];\n")
+
+print("static INDEX_TABLE: &[u16] = &[")
+
+SINGLE_MARKER = 1 << 15
 
 offset = 0
 for ranges in optimized_ranges:
@@ -158,12 +169,9 @@ for ranges in optimized_ranges:
 
     block_len = len(ranges)
     single = SINGLE_MARKER if block_len == 1 else 0
-    index = offset | single
+    print("    %s," % (offset | single))
     offset += block_len
 
-    start = escape_char(char(ranges[0][0]))
-    print("    ('%s', %s)," % (start, index))
-
 print("];\n")
 
 print("static MAPPING_TABLE: &[Mapping] = &[")

+ 28 - 14
idna/src/uts46.rs

@@ -11,6 +11,7 @@
 
 use self::Mapping::*;
 use crate::punycode;
+use std::cmp::Ordering::{Equal, Greater, Less};
 use std::{error::Error as StdError, fmt};
 use unicode_bidi::{bidi_class, BidiClass};
 use unicode_normalization::char::is_combining_mark;
@@ -49,23 +50,36 @@ enum Mapping {
     DisallowedStd3Mapped(StringTableSlice),
 }
 
-fn find_char(codepoint: char) -> &'static Mapping {
-    let idx = match TABLE.binary_search_by_key(&codepoint, |&val| val.0) {
-        Ok(idx) => idx,
-        Err(idx) => idx - 1,
-    };
+struct Range {
+    from: char,
+    to: char,
+}
 
-    const SINGLE_MARKER: u16 = 1 << 15;
+fn find_char(codepoint: char) -> &'static Mapping {
+    let r = TABLE.binary_search_by(|ref range| {
+        if codepoint > range.to {
+            Less
+        } else if codepoint < range.from {
+            Greater
+        } else {
+            Equal
+        }
+    });
+    r.ok()
+        .map(|i| {
+            const SINGLE_MARKER: u16 = 1 << 15;
 
-    let (base, x) = TABLE[idx];
-    let single = (x & SINGLE_MARKER) != 0;
-    let offset = !SINGLE_MARKER & x;
+            let x = INDEX_TABLE[i];
+            let single = (x & SINGLE_MARKER) != 0;
+            let offset = !SINGLE_MARKER & x;
 
-    if single {
-        &MAPPING_TABLE[offset as usize]
-    } else {
-        &MAPPING_TABLE[(offset + (codepoint as u16 - base as u16)) as usize]
-    }
+            if single {
+                &MAPPING_TABLE[offset as usize]
+            } else {
+                &MAPPING_TABLE[(offset + (codepoint as u16 - TABLE[i].from as u16)) as usize]
+            }
+        })
+        .unwrap()
 }
 
 struct Mapper<'a> {

+ 3304 - 1651
idna/src/uts46_mapping_table.rs

@@ -8,1657 +8,3310 @@
 
 // Generated by make_idna_table.py
 
-static TABLE: &[(char, u16)] = &[
-    ('\u{0}', 32768),
-    ('\u{2d}', 32769),
-    ('\u{2f}', 32770),
-    ('\u{30}', 32771),
-    ('\u{3a}', 32772),
-    ('\u{41}', 5),
-    ('\u{5b}', 32799),
-    ('\u{61}', 32800),
-    ('\u{7b}', 32801),
-    ('\u{80}', 32802),
-    ('\u{a0}', 32803),
-    ('\u{a1}', 32804),
-    ('\u{a8}', 37),
-    ('\u{ab}', 32808),
-    ('\u{ad}', 41),
-    ('\u{b0}', 32812),
-    ('\u{b2}', 45),
-    ('\u{b6}', 32817),
-    ('\u{b8}', 50),
-    ('\u{e0}', 32858),
-    ('\u{100}', 91),
-    ('\u{132}', 32909),
-    ('\u{134}', 142),
-    ('\u{137}', 32913),
-    ('\u{139}', 146),
-    ('\u{13f}', 32920),
-    ('\u{141}', 153),
-    ('\u{18c}', 32996),
-    ('\u{18e}', 229),
-    ('\u{199}', 33008),
-    ('\u{19c}', 241),
-    ('\u{1aa}', 33023),
-    ('\u{1ac}', 256),
-    ('\u{1b9}', 33037),
-    ('\u{1bc}', 33038),
-    ('\u{1bd}', 33039),
-    ('\u{1c4}', 33040),
-    ('\u{1c7}', 33041),
-    ('\u{1ca}', 33042),
-    ('\u{1cd}', 275),
-    ('\u{1dc}', 33058),
-    ('\u{1de}', 291),
-    ('\u{1ef}', 33076),
-    ('\u{1f1}', 33077),
-    ('\u{1f4}', 310),
-    ('\u{233}', 33141),
-    ('\u{23a}', 374),
-    ('\u{23f}', 33147),
-    ('\u{241}', 380),
-    ('\u{24f}', 33162),
-    ('\u{2b0}', 395),
-    ('\u{2b9}', 33172),
-    ('\u{2d8}', 405),
-    ('\u{2de}', 33179),
-    ('\u{2e0}', 412),
-    ('\u{2e5}', 33185),
-    ('\u{340}', 418),
-    ('\u{346}', 33192),
-    ('\u{34f}', 33193),
-    ('\u{350}', 33194),
-    ('\u{370}', 427),
-    ('\u{378}', 33203),
-    ('\u{37a}', 33204),
-    ('\u{37b}', 33205),
-    ('\u{37e}', 438),
-    ('\u{380}', 33208),
-    ('\u{384}', 441),
-    ('\u{3ac}', 33249),
-    ('\u{3c2}', 33250),
-    ('\u{3c3}', 33251),
-    ('\u{3cf}', 484),
-    ('\u{3fb}', 33296),
-    ('\u{3fd}', 529),
-    ('\u{430}', 33348),
-    ('\u{460}', 581),
-    ('\u{481}', 33382),
-    ('\u{48a}', 615),
-    ('\u{4ce}', 33451),
-    ('\u{4d0}', 684),
-    ('\u{557}', 33587),
-    ('\u{559}', 33588),
-    ('\u{587}', 33589),
-    ('\u{588}', 33590),
-    ('\u{58b}', 33591),
-    ('\u{58d}', 33592),
-    ('\u{590}', 33593),
-    ('\u{591}', 33594),
-    ('\u{5c8}', 33595),
-    ('\u{5d0}', 33596),
-    ('\u{5eb}', 33597),
-    ('\u{5ef}', 33598),
-    ('\u{5f5}', 33599),
-    ('\u{606}', 33600),
-    ('\u{61c}', 33601),
-    ('\u{61e}', 33602),
-    ('\u{675}', 835),
-    ('\u{679}', 33607),
-    ('\u{6dd}', 33608),
-    ('\u{6de}', 33609),
-    ('\u{70e}', 33610),
-    ('\u{710}', 33611),
-    ('\u{74b}', 33612),
-    ('\u{74d}', 33613),
-    ('\u{7b2}', 33614),
-    ('\u{7c0}', 33615),
-    ('\u{7fb}', 33616),
-    ('\u{7fd}', 33617),
-    ('\u{82e}', 33618),
-    ('\u{830}', 33619),
-    ('\u{83f}', 33620),
-    ('\u{840}', 33621),
-    ('\u{85c}', 33622),
-    ('\u{85e}', 855),
-    ('\u{860}', 33625),
-    ('\u{86b}', 33626),
-    ('\u{8a0}', 33627),
-    ('\u{8b5}', 33628),
-    ('\u{8b6}', 33629),
-    ('\u{8c8}', 33630),
-    ('\u{8d3}', 33631),
-    ('\u{8e2}', 33632),
-    ('\u{8e3}', 33633),
-    ('\u{958}', 866),
-    ('\u{960}', 33642),
-    ('\u{984}', 33643),
-    ('\u{985}', 33644),
-    ('\u{98d}', 33645),
-    ('\u{98f}', 33646),
-    ('\u{991}', 33647),
-    ('\u{993}', 33648),
-    ('\u{9a9}', 33649),
-    ('\u{9aa}', 33650),
-    ('\u{9b1}', 883),
-    ('\u{9b3}', 33653),
-    ('\u{9b6}', 33654),
-    ('\u{9ba}', 33655),
-    ('\u{9bc}', 33656),
-    ('\u{9c5}', 33657),
-    ('\u{9c7}', 33658),
-    ('\u{9c9}', 33659),
-    ('\u{9cb}', 33660),
-    ('\u{9cf}', 33661),
-    ('\u{9d7}', 33662),
-    ('\u{9d8}', 33663),
-    ('\u{9dc}', 896),
-    ('\u{9e0}', 33668),
-    ('\u{9e4}', 33669),
-    ('\u{9e6}', 33670),
-    ('\u{9ff}', 33671),
-    ('\u{a01}', 33672),
-    ('\u{a04}', 33673),
-    ('\u{a05}', 33674),
-    ('\u{a0b}', 33675),
-    ('\u{a0f}', 33676),
-    ('\u{a11}', 33677),
-    ('\u{a13}', 33678),
-    ('\u{a29}', 33679),
-    ('\u{a2a}', 33680),
-    ('\u{a31}', 913),
-    ('\u{a38}', 33688),
-    ('\u{a3a}', 33689),
-    ('\u{a3c}', 922),
-    ('\u{a3e}', 33692),
-    ('\u{a43}', 33693),
-    ('\u{a47}', 33694),
-    ('\u{a49}', 33695),
-    ('\u{a4b}', 33696),
-    ('\u{a4e}', 33697),
-    ('\u{a51}', 33698),
-    ('\u{a52}', 33699),
-    ('\u{a59}', 932),
-    ('\u{a5f}', 33706),
-    ('\u{a66}', 33707),
-    ('\u{a77}', 33708),
-    ('\u{a81}', 33709),
-    ('\u{a84}', 33710),
-    ('\u{a85}', 33711),
-    ('\u{a8e}', 33712),
-    ('\u{a8f}', 33713),
-    ('\u{a92}', 33714),
-    ('\u{a93}', 33715),
-    ('\u{aa9}', 33716),
-    ('\u{aaa}', 33717),
-    ('\u{ab1}', 33718),
-    ('\u{ab2}', 33719),
-    ('\u{ab4}', 33720),
-    ('\u{ab5}', 33721),
-    ('\u{aba}', 33722),
-    ('\u{abc}', 33723),
-    ('\u{ac6}', 33724),
-    ('\u{ac7}', 33725),
-    ('\u{aca}', 33726),
-    ('\u{acb}', 33727),
-    ('\u{ace}', 33728),
-    ('\u{ad0}', 33729),
-    ('\u{ad1}', 33730),
-    ('\u{ae0}', 33731),
-    ('\u{ae4}', 33732),
-    ('\u{ae6}', 33733),
-    ('\u{af2}', 33734),
-    ('\u{af9}', 33735),
-    ('\u{b00}', 33736),
-    ('\u{b01}', 33737),
-    ('\u{b04}', 33738),
-    ('\u{b05}', 33739),
-    ('\u{b0d}', 33740),
-    ('\u{b0f}', 33741),
-    ('\u{b11}', 33742),
-    ('\u{b13}', 33743),
-    ('\u{b29}', 33744),
-    ('\u{b2a}', 33745),
-    ('\u{b31}', 33746),
-    ('\u{b32}', 33747),
-    ('\u{b34}', 33748),
-    ('\u{b35}', 33749),
-    ('\u{b3a}', 33750),
-    ('\u{b3c}', 33751),
-    ('\u{b45}', 33752),
-    ('\u{b47}', 33753),
-    ('\u{b49}', 33754),
-    ('\u{b4b}', 33755),
-    ('\u{b4e}', 33756),
-    ('\u{b55}', 33757),
-    ('\u{b58}', 33758),
-    ('\u{b5c}', 991),
-    ('\u{b5f}', 33762),
-    ('\u{b64}', 33763),
-    ('\u{b66}', 33764),
-    ('\u{b78}', 33765),
-    ('\u{b82}', 33766),
-    ('\u{b84}', 33767),
-    ('\u{b85}', 33768),
-    ('\u{b8b}', 33769),
-    ('\u{b8e}', 33770),
-    ('\u{b91}', 33771),
-    ('\u{b92}', 33772),
-    ('\u{b96}', 33773),
-    ('\u{b99}', 33774),
-    ('\u{b9b}', 1007),
-    ('\u{b9e}', 33778),
-    ('\u{ba0}', 33779),
-    ('\u{ba3}', 33780),
-    ('\u{ba5}', 33781),
-    ('\u{ba8}', 33782),
-    ('\u{bab}', 33783),
-    ('\u{bae}', 33784),
-    ('\u{bba}', 33785),
-    ('\u{bbe}', 33786),
-    ('\u{bc3}', 33787),
-    ('\u{bc6}', 33788),
-    ('\u{bc9}', 33789),
-    ('\u{bca}', 33790),
-    ('\u{bce}', 33791),
-    ('\u{bd0}', 33792),
-    ('\u{bd1}', 33793),
-    ('\u{bd7}', 33794),
-    ('\u{bd8}', 33795),
-    ('\u{be6}', 33796),
-    ('\u{bfb}', 33797),
-    ('\u{c00}', 33798),
-    ('\u{c0d}', 33799),
-    ('\u{c0e}', 33800),
-    ('\u{c11}', 33801),
-    ('\u{c12}', 33802),
-    ('\u{c29}', 33803),
-    ('\u{c2a}', 33804),
-    ('\u{c3a}', 33805),
-    ('\u{c3d}', 33806),
-    ('\u{c45}', 33807),
-    ('\u{c46}', 33808),
-    ('\u{c49}', 33809),
-    ('\u{c4a}', 33810),
-    ('\u{c4e}', 33811),
-    ('\u{c55}', 33812),
-    ('\u{c57}', 33813),
-    ('\u{c58}', 33814),
-    ('\u{c5b}', 33815),
-    ('\u{c60}', 33816),
-    ('\u{c64}', 33817),
-    ('\u{c66}', 33818),
-    ('\u{c70}', 33819),
-    ('\u{c77}', 33820),
-    ('\u{c8d}', 33821),
-    ('\u{c8e}', 33822),
-    ('\u{c91}', 33823),
-    ('\u{c92}', 33824),
-    ('\u{ca9}', 33825),
-    ('\u{caa}', 33826),
-    ('\u{cb4}', 33827),
-    ('\u{cb5}', 33828),
-    ('\u{cba}', 33829),
-    ('\u{cbc}', 33830),
-    ('\u{cc5}', 33831),
-    ('\u{cc6}', 33832),
-    ('\u{cc9}', 33833),
-    ('\u{cca}', 33834),
-    ('\u{cce}', 33835),
-    ('\u{cd5}', 33836),
-    ('\u{cd7}', 33837),
-    ('\u{cde}', 1070),
-    ('\u{ce0}', 33840),
-    ('\u{ce4}', 33841),
-    ('\u{ce6}', 33842),
-    ('\u{cf0}', 33843),
-    ('\u{cf1}', 33844),
-    ('\u{cf3}', 33845),
-    ('\u{d00}', 33846),
-    ('\u{d0d}', 33847),
-    ('\u{d0e}', 33848),
-    ('\u{d11}', 33849),
-    ('\u{d12}', 33850),
-    ('\u{d45}', 33851),
-    ('\u{d46}', 33852),
-    ('\u{d49}', 33853),
-    ('\u{d4a}', 33854),
-    ('\u{d50}', 33855),
-    ('\u{d54}', 33856),
-    ('\u{d64}', 33857),
-    ('\u{d66}', 33858),
-    ('\u{d80}', 33859),
-    ('\u{d81}', 33860),
-    ('\u{d84}', 33861),
-    ('\u{d85}', 33862),
-    ('\u{d97}', 33863),
-    ('\u{d9a}', 33864),
-    ('\u{db2}', 33865),
-    ('\u{db3}', 33866),
-    ('\u{dbc}', 1099),
-    ('\u{dbe}', 33869),
-    ('\u{dc0}', 33870),
-    ('\u{dc7}', 33871),
-    ('\u{dca}', 33872),
-    ('\u{dcb}', 33873),
-    ('\u{dcf}', 33874),
-    ('\u{dd5}', 1107),
-    ('\u{dd8}', 33878),
-    ('\u{de0}', 33879),
-    ('\u{de6}', 33880),
-    ('\u{df0}', 33881),
-    ('\u{df2}', 33882),
-    ('\u{df5}', 33883),
-    ('\u{e01}', 33884),
-    ('\u{e33}', 33885),
-    ('\u{e34}', 33886),
-    ('\u{e3b}', 33887),
-    ('\u{e3f}', 33888),
-    ('\u{e5c}', 33889),
-    ('\u{e81}', 33890),
-    ('\u{e83}', 1123),
-    ('\u{e86}', 33894),
-    ('\u{e8b}', 33895),
-    ('\u{e8c}', 33896),
-    ('\u{ea4}', 1129),
-    ('\u{ea7}', 33900),
-    ('\u{eb3}', 33901),
-    ('\u{eb4}', 33902),
-    ('\u{ebe}', 33903),
-    ('\u{ec0}', 33904),
-    ('\u{ec5}', 1137),
-    ('\u{ec8}', 33908),
-    ('\u{ece}', 33909),
-    ('\u{ed0}', 33910),
-    ('\u{eda}', 33911),
-    ('\u{edc}', 1144),
-    ('\u{ede}', 33914),
-    ('\u{ee0}', 33915),
-    ('\u{f00}', 33916),
-    ('\u{f0c}', 33917),
-    ('\u{f0d}', 33918),
-    ('\u{f43}', 33919),
-    ('\u{f44}', 33920),
-    ('\u{f48}', 33921),
-    ('\u{f49}', 33922),
-    ('\u{f4d}', 33923),
-    ('\u{f4e}', 33924),
-    ('\u{f52}', 33925),
-    ('\u{f53}', 33926),
-    ('\u{f57}', 33927),
-    ('\u{f58}', 33928),
-    ('\u{f5c}', 33929),
-    ('\u{f5d}', 33930),
-    ('\u{f69}', 33931),
-    ('\u{f6a}', 33932),
-    ('\u{f6d}', 33933),
-    ('\u{f71}', 33934),
-    ('\u{f73}', 1167),
-    ('\u{f7a}', 33942),
-    ('\u{f81}', 33943),
-    ('\u{f82}', 33944),
-    ('\u{f93}', 33945),
-    ('\u{f94}', 33946),
-    ('\u{f98}', 33947),
-    ('\u{f99}', 33948),
-    ('\u{f9d}', 33949),
-    ('\u{f9e}', 33950),
-    ('\u{fa2}', 33951),
-    ('\u{fa3}', 33952),
-    ('\u{fa7}', 33953),
-    ('\u{fa8}', 33954),
-    ('\u{fac}', 33955),
-    ('\u{fad}', 33956),
-    ('\u{fb9}', 33957),
-    ('\u{fba}', 33958),
-    ('\u{fbd}', 33959),
-    ('\u{fbe}', 33960),
-    ('\u{fcd}', 33961),
-    ('\u{fce}', 33962),
-    ('\u{fdb}', 33963),
-    ('\u{1000}', 33964),
-    ('\u{10a0}', 33965),
-    ('\u{10c7}', 33966),
-    ('\u{10c8}', 33967),
-    ('\u{10cd}', 33968),
-    ('\u{10ce}', 33969),
-    ('\u{10d0}', 33970),
-    ('\u{10fc}', 33971),
-    ('\u{10fd}', 33972),
-    ('\u{115f}', 33973),
-    ('\u{1161}', 33974),
-    ('\u{1249}', 33975),
-    ('\u{124a}', 33976),
-    ('\u{124e}', 33977),
-    ('\u{1250}', 33978),
-    ('\u{1257}', 1211),
-    ('\u{125a}', 33982),
-    ('\u{125e}', 33983),
-    ('\u{1260}', 33984),
-    ('\u{1289}', 33985),
-    ('\u{128a}', 33986),
-    ('\u{128e}', 33987),
-    ('\u{1290}', 33988),
-    ('\u{12b1}', 33989),
-    ('\u{12b2}', 33990),
-    ('\u{12b6}', 33991),
-    ('\u{12b8}', 33992),
-    ('\u{12bf}', 1225),
-    ('\u{12c2}', 33996),
-    ('\u{12c6}', 33997),
-    ('\u{12c8}', 33998),
-    ('\u{12d7}', 33999),
-    ('\u{12d8}', 34000),
-    ('\u{1311}', 34001),
-    ('\u{1312}', 34002),
-    ('\u{1316}', 34003),
-    ('\u{1318}', 34004),
-    ('\u{135b}', 34005),
-    ('\u{135d}', 34006),
-    ('\u{137d}', 34007),
-    ('\u{1380}', 34008),
-    ('\u{139a}', 34009),
-    ('\u{13a0}', 34010),
-    ('\u{13f6}', 34011),
-    ('\u{13f8}', 1244),
-    ('\u{13fe}', 34018),
-    ('\u{1400}', 34019),
-    ('\u{1680}', 34020),
-    ('\u{1681}', 34021),
-    ('\u{169d}', 34022),
-    ('\u{16a0}', 34023),
-    ('\u{16f9}', 34024),
-    ('\u{1700}', 34025),
-    ('\u{170d}', 34026),
-    ('\u{170e}', 34027),
-    ('\u{1715}', 34028),
-    ('\u{1720}', 34029),
-    ('\u{1737}', 34030),
-    ('\u{1740}', 34031),
-    ('\u{1754}', 34032),
-    ('\u{1760}', 34033),
-    ('\u{176d}', 34034),
-    ('\u{176e}', 34035),
-    ('\u{1771}', 34036),
-    ('\u{1772}', 34037),
-    ('\u{1774}', 34038),
-    ('\u{1780}', 34039),
-    ('\u{17b4}', 34040),
-    ('\u{17b6}', 34041),
-    ('\u{17de}', 34042),
-    ('\u{17e0}', 34043),
-    ('\u{17ea}', 34044),
-    ('\u{17f0}', 34045),
-    ('\u{17fa}', 34046),
-    ('\u{1800}', 34047),
-    ('\u{1806}', 34048),
-    ('\u{1807}', 34049),
-    ('\u{180b}', 34050),
-    ('\u{180e}', 34051),
-    ('\u{1810}', 34052),
-    ('\u{181a}', 34053),
-    ('\u{1820}', 34054),
-    ('\u{1879}', 34055),
-    ('\u{1880}', 34056),
-    ('\u{18ab}', 34057),
-    ('\u{18b0}', 34058),
-    ('\u{18f6}', 34059),
-    ('\u{1900}', 34060),
-    ('\u{191f}', 34061),
-    ('\u{1920}', 34062),
-    ('\u{192c}', 34063),
-    ('\u{1930}', 34064),
-    ('\u{193c}', 34065),
-    ('\u{1940}', 34066),
-    ('\u{1941}', 34067),
-    ('\u{1944}', 34068),
-    ('\u{196e}', 34069),
-    ('\u{1970}', 34070),
-    ('\u{1975}', 34071),
-    ('\u{1980}', 34072),
-    ('\u{19ac}', 34073),
-    ('\u{19b0}', 34074),
-    ('\u{19ca}', 34075),
-    ('\u{19d0}', 34076),
-    ('\u{19db}', 34077),
-    ('\u{19de}', 34078),
-    ('\u{1a1c}', 34079),
-    ('\u{1a1e}', 34080),
-    ('\u{1a5f}', 34081),
-    ('\u{1a60}', 34082),
-    ('\u{1a7d}', 34083),
-    ('\u{1a7f}', 34084),
-    ('\u{1a8a}', 34085),
-    ('\u{1a90}', 34086),
-    ('\u{1a9a}', 34087),
-    ('\u{1aa0}', 34088),
-    ('\u{1aae}', 34089),
-    ('\u{1ab0}', 34090),
-    ('\u{1ac1}', 34091),
-    ('\u{1b00}', 34092),
-    ('\u{1b4c}', 34093),
-    ('\u{1b50}', 34094),
-    ('\u{1b7d}', 34095),
-    ('\u{1b80}', 34096),
-    ('\u{1bf4}', 34097),
-    ('\u{1bfc}', 34098),
-    ('\u{1c38}', 34099),
-    ('\u{1c3b}', 34100),
-    ('\u{1c4a}', 34101),
-    ('\u{1c4d}', 34102),
-    ('\u{1c80}', 1335),
-    ('\u{1c84}', 34107),
-    ('\u{1c86}', 1340),
-    ('\u{1c89}', 34111),
-    ('\u{1c90}', 1344),
-    ('\u{1cbb}', 34155),
-    ('\u{1cbd}', 1388),
-    ('\u{1cc0}', 34159),
-    ('\u{1cc8}', 34160),
-    ('\u{1cd0}', 34161),
-    ('\u{1cfb}', 34162),
-    ('\u{1d00}', 34163),
-    ('\u{1d2c}', 1396),
-    ('\u{1d6b}', 34227),
-    ('\u{1d78}', 34228),
-    ('\u{1d79}', 34229),
-    ('\u{1d9b}', 1462),
-    ('\u{1dc0}', 34267),
-    ('\u{1dfa}', 34268),
-    ('\u{1dfb}', 34269),
-    ('\u{1e00}', 1502),
-    ('\u{1e95}', 34419),
-    ('\u{1e9a}', 1652),
-    ('\u{1e9c}', 34422),
-    ('\u{1e9e}', 1655),
-    ('\u{1eff}', 34520),
-    ('\u{1f08}', 1753),
-    ('\u{1f10}', 34529),
-    ('\u{1f16}', 34530),
-    ('\u{1f18}', 1763),
-    ('\u{1f1e}', 34537),
-    ('\u{1f20}', 34538),
-    ('\u{1f28}', 1771),
-    ('\u{1f30}', 34547),
-    ('\u{1f38}', 1780),
-    ('\u{1f40}', 34556),
-    ('\u{1f46}', 34557),
-    ('\u{1f48}', 1790),
-    ('\u{1f4e}', 34564),
-    ('\u{1f50}', 34565),
-    ('\u{1f58}', 1798),
-    ('\u{1f60}', 34574),
-    ('\u{1f68}', 1807),
-    ('\u{1f7e}', 34597),
-    ('\u{1f80}', 1830),
-    ('\u{1fb0}', 34646),
-    ('\u{1fb2}', 1879),
-    ('\u{1fd0}', 34677),
-    ('\u{1fd3}', 34678),
-    ('\u{1fd4}', 34679),
-    ('\u{1fd6}', 34680),
-    ('\u{1fd8}', 1913),
-    ('\u{1fe0}', 34689),
-    ('\u{1fe3}', 34690),
-    ('\u{1fe4}', 34691),
-    ('\u{1fe8}', 1924),
-    ('\u{1ff0}', 34700),
-    ('\u{1ff2}', 1933),
-    ('\u{2000}', 34715),
-    ('\u{200b}', 34716),
-    ('\u{200c}', 34717),
-    ('\u{200e}', 34718),
-    ('\u{2010}', 1951),
-    ('\u{2012}', 34721),
-    ('\u{2017}', 34722),
-    ('\u{2018}', 34723),
-    ('\u{2024}', 34724),
-    ('\u{2027}', 34725),
-    ('\u{2028}', 34726),
-    ('\u{202f}', 34727),
-    ('\u{2030}', 34728),
-    ('\u{2033}', 1961),
-    ('\u{2038}', 34734),
-    ('\u{203c}', 1967),
-    ('\u{203f}', 34738),
-    ('\u{2047}', 1971),
-    ('\u{204a}', 34742),
-    ('\u{2057}', 34743),
-    ('\u{2058}', 34744),
-    ('\u{205f}', 1977),
-    ('\u{2061}', 34747),
-    ('\u{2064}', 34748),
-    ('\u{2065}', 34749),
-    ('\u{2070}', 1982),
-    ('\u{2072}', 34752),
-    ('\u{2074}', 1985),
-    ('\u{209d}', 34794),
-    ('\u{20a0}', 34795),
-    ('\u{20a8}', 34796),
-    ('\u{20a9}', 34797),
-    ('\u{20c0}', 34798),
-    ('\u{20d0}', 34799),
-    ('\u{20f1}', 34800),
-    ('\u{2100}', 2033),
-    ('\u{210b}', 34812),
-    ('\u{210f}', 34813),
-    ('\u{2110}', 34814),
-    ('\u{2112}', 34815),
-    ('\u{2114}', 2048),
-    ('\u{2117}', 34819),
-    ('\u{2119}', 2052),
-    ('\u{211b}', 34822),
-    ('\u{211e}', 34823),
-    ('\u{2120}', 2056),
-    ('\u{212f}', 34839),
-    ('\u{2131}', 2072),
-    ('\u{213d}', 34852),
-    ('\u{213f}', 2085),
-    ('\u{2141}', 34855),
-    ('\u{2145}', 34856),
-    ('\u{2147}', 2089),
-    ('\u{214a}', 34860),
-    ('\u{2150}', 2093),
-    ('\u{2180}', 34909),
-    ('\u{2183}', 34910),
-    ('\u{2184}', 34911),
-    ('\u{2189}', 34912),
-    ('\u{218a}', 34913),
-    ('\u{218c}', 34914),
-    ('\u{2190}', 34915),
-    ('\u{222c}', 2148),
-    ('\u{2231}', 34921),
-    ('\u{2260}', 34922),
-    ('\u{2261}', 34923),
-    ('\u{226e}', 34924),
-    ('\u{2270}', 34925),
-    ('\u{2329}', 2158),
-    ('\u{232b}', 34928),
-    ('\u{2427}', 34929),
-    ('\u{2440}', 34930),
-    ('\u{244b}', 34931),
-    ('\u{2460}', 2164),
-    ('\u{2488}', 34972),
-    ('\u{249c}', 2205),
-    ('\u{24eb}', 35052),
-    ('\u{2a0c}', 35053),
-    ('\u{2a0d}', 35054),
-    ('\u{2a74}', 2287),
-    ('\u{2a77}', 35058),
-    ('\u{2adc}', 35059),
-    ('\u{2add}', 35060),
-    ('\u{2b74}', 35061),
-    ('\u{2b76}', 35062),
-    ('\u{2b96}', 35063),
-    ('\u{2b97}', 35064),
-    ('\u{2c00}', 2297),
-    ('\u{2c30}', 35113),
-    ('\u{2c5f}', 2346),
-    ('\u{2c65}', 35120),
-    ('\u{2c67}', 2353),
-    ('\u{2c73}', 35133),
-    ('\u{2c75}', 35134),
-    ('\u{2c76}', 35135),
-    ('\u{2c7c}', 2368),
-    ('\u{2ce3}', 35239),
-    ('\u{2ceb}', 2472),
-    ('\u{2cee}', 35243),
-    ('\u{2cf2}', 2476),
-    ('\u{2cf4}', 35246),
-    ('\u{2cf9}', 35247),
-    ('\u{2d26}', 2480),
-    ('\u{2d28}', 35250),
-    ('\u{2d2d}', 35251),
-    ('\u{2d2e}', 35252),
-    ('\u{2d30}', 35253),
-    ('\u{2d68}', 35254),
-    ('\u{2d6f}', 2487),
-    ('\u{2d71}', 35257),
-    ('\u{2d7f}', 35258),
-    ('\u{2d97}', 35259),
-    ('\u{2da0}', 35260),
-    ('\u{2da7}', 35261),
-    ('\u{2da8}', 35262),
-    ('\u{2daf}', 35263),
-    ('\u{2db0}', 35264),
-    ('\u{2db7}', 35265),
-    ('\u{2db8}', 35266),
-    ('\u{2dbf}', 35267),
-    ('\u{2dc0}', 35268),
-    ('\u{2dc7}', 35269),
-    ('\u{2dc8}', 35270),
-    ('\u{2dcf}', 35271),
-    ('\u{2dd0}', 35272),
-    ('\u{2dd7}', 35273),
-    ('\u{2dd8}', 35274),
-    ('\u{2ddf}', 35275),
-    ('\u{2de0}', 35276),
-    ('\u{2e53}', 35277),
-    ('\u{2e80}', 35278),
-    ('\u{2e9a}', 35279),
-    ('\u{2e9b}', 35280),
-    ('\u{2e9f}', 35281),
-    ('\u{2ea0}', 35282),
-    ('\u{2ef3}', 35283),
-    ('\u{2ef4}', 35284),
-    ('\u{2f00}', 2517),
-    ('\u{2fd6}', 35499),
-    ('\u{3000}', 2732),
-    ('\u{3003}', 35503),
-    ('\u{3036}', 2736),
-    ('\u{303b}', 35509),
-    ('\u{3040}', 35510),
-    ('\u{3041}', 35511),
-    ('\u{3097}', 35512),
-    ('\u{3099}', 35513),
-    ('\u{309b}', 2746),
-    ('\u{309d}', 35516),
-    ('\u{309f}', 35517),
-    ('\u{30a0}', 35518),
-    ('\u{30ff}', 35519),
-    ('\u{3100}', 35520),
-    ('\u{3105}', 35521),
-    ('\u{3130}', 2754),
-    ('\u{3190}', 35618),
-    ('\u{3192}', 2851),
-    ('\u{31a0}', 35633),
-    ('\u{31e4}', 35634),
-    ('\u{31f0}', 35635),
-    ('\u{3200}', 2868),
-    ('\u{3248}', 35708),
-    ('\u{3250}', 2941),
-    ('\u{3400}', 36141),
-    ('\u{9ffd}', 36142),
-    ('\u{a000}', 36143),
-    ('\u{a48d}', 36144),
-    ('\u{a490}', 36145),
-    ('\u{a4c7}', 36146),
-    ('\u{a4d0}', 36147),
-    ('\u{a62c}', 36148),
-    ('\u{a640}', 3381),
-    ('\u{a66d}', 36194),
-    ('\u{a680}', 3427),
-    ('\u{a69e}', 36225),
-    ('\u{a6f8}', 36226),
-    ('\u{a700}', 36227),
-    ('\u{a722}', 3460),
-    ('\u{a72f}', 36241),
-    ('\u{a732}', 3474),
-    ('\u{a771}', 36305),
-    ('\u{a779}', 3538),
-    ('\u{a787}', 36320),
-    ('\u{a78b}', 3553),
-    ('\u{a78e}', 36324),
-    ('\u{a790}', 3557),
-    ('\u{a793}', 36328),
-    ('\u{a796}', 3561),
-    ('\u{a7c0}', 36371),
-    ('\u{a7c2}', 3604),
-    ('\u{a7cb}', 36381),
-    ('\u{a7f5}', 36382),
-    ('\u{a7f6}', 36383),
-    ('\u{a7f8}', 3616),
-    ('\u{a7fa}', 36386),
-    ('\u{a82d}', 36387),
-    ('\u{a830}', 36388),
-    ('\u{a83a}', 36389),
-    ('\u{a840}', 36390),
-    ('\u{a878}', 36391),
-    ('\u{a880}', 36392),
-    ('\u{a8c6}', 36393),
-    ('\u{a8ce}', 36394),
-    ('\u{a8da}', 36395),
-    ('\u{a8e0}', 36396),
-    ('\u{a954}', 36397),
-    ('\u{a95f}', 36398),
-    ('\u{a97d}', 36399),
-    ('\u{a980}', 36400),
-    ('\u{a9ce}', 36401),
-    ('\u{a9cf}', 36402),
-    ('\u{a9da}', 36403),
-    ('\u{a9de}', 36404),
-    ('\u{a9ff}', 36405),
-    ('\u{aa00}', 36406),
-    ('\u{aa37}', 36407),
-    ('\u{aa40}', 36408),
-    ('\u{aa4e}', 36409),
-    ('\u{aa50}', 36410),
-    ('\u{aa5a}', 36411),
-    ('\u{aa5c}', 36412),
-    ('\u{aac3}', 36413),
-    ('\u{aadb}', 36414),
-    ('\u{aaf7}', 36415),
-    ('\u{ab01}', 36416),
-    ('\u{ab07}', 36417),
-    ('\u{ab09}', 36418),
-    ('\u{ab0f}', 36419),
-    ('\u{ab11}', 36420),
-    ('\u{ab17}', 36421),
-    ('\u{ab20}', 36422),
-    ('\u{ab27}', 36423),
-    ('\u{ab28}', 36424),
-    ('\u{ab2f}', 36425),
-    ('\u{ab30}', 36426),
-    ('\u{ab5c}', 3659),
-    ('\u{ab60}', 36431),
-    ('\u{ab69}', 36432),
-    ('\u{ab6a}', 36433),
-    ('\u{ab6c}', 36434),
-    ('\u{ab70}', 3667),
-    ('\u{abc0}', 36515),
-    ('\u{abee}', 36516),
-    ('\u{abf0}', 36517),
-    ('\u{abfa}', 36518),
-    ('\u{ac00}', 36519),
-    ('\u{d7a4}', 36520),
-    ('\u{d7b0}', 36521),
-    ('\u{d7c7}', 36522),
-    ('\u{d7cb}', 36523),
-    ('\u{d7fc}', 36524),
-    ('\u{f900}', 3757),
-    ('\u{f907}', 36532),
-    ('\u{f909}', 3765),
-    ('\u{fa0e}', 36794),
-    ('\u{fa10}', 4027),
-    ('\u{fa13}', 36798),
-    ('\u{fa15}', 4031),
-    ('\u{fa23}', 36813),
-    ('\u{fa25}', 4046),
-    ('\u{fa27}', 36816),
-    ('\u{fa2a}', 4049),
-    ('\u{fa5d}', 36868),
-    ('\u{fa5f}', 4101),
-    ('\u{fa6e}', 36884),
-    ('\u{fa70}', 4117),
-    ('\u{fada}', 36991),
-    ('\u{fb00}', 4224),
-    ('\u{fb05}', 36997),
-    ('\u{fb07}', 36998),
-    ('\u{fb13}', 4231),
-    ('\u{fb18}', 37004),
-    ('\u{fb1d}', 4237),
-    ('\u{fb50}', 37056),
-    ('\u{fb52}', 37057),
-    ('\u{fb56}', 37058),
-    ('\u{fb5a}', 37059),
-    ('\u{fb5e}', 37060),
-    ('\u{fb62}', 37061),
-    ('\u{fb66}', 37062),
-    ('\u{fb6a}', 37063),
-    ('\u{fb6e}', 37064),
-    ('\u{fb72}', 37065),
-    ('\u{fb76}', 37066),
-    ('\u{fb7a}', 37067),
-    ('\u{fb7e}', 37068),
-    ('\u{fb82}', 37069),
-    ('\u{fb84}', 37070),
-    ('\u{fb86}', 37071),
-    ('\u{fb88}', 37072),
-    ('\u{fb8a}', 37073),
-    ('\u{fb8c}', 37074),
-    ('\u{fb8e}', 37075),
-    ('\u{fb92}', 37076),
-    ('\u{fb96}', 37077),
-    ('\u{fb9a}', 37078),
-    ('\u{fb9e}', 37079),
-    ('\u{fba0}', 37080),
-    ('\u{fba4}', 37081),
-    ('\u{fba6}', 37082),
-    ('\u{fbaa}', 37083),
-    ('\u{fbae}', 37084),
-    ('\u{fbb0}', 37085),
-    ('\u{fbb2}', 37086),
-    ('\u{fbc2}', 37087),
-    ('\u{fbd3}', 37088),
-    ('\u{fbd7}', 37089),
-    ('\u{fbd9}', 37090),
-    ('\u{fbdb}', 37091),
-    ('\u{fbdd}', 37092),
-    ('\u{fbde}', 37093),
-    ('\u{fbe0}', 37094),
-    ('\u{fbe2}', 37095),
-    ('\u{fbe4}', 37096),
-    ('\u{fbe8}', 37097),
-    ('\u{fbea}', 37098),
-    ('\u{fbec}', 37099),
-    ('\u{fbee}', 37100),
-    ('\u{fbf0}', 37101),
-    ('\u{fbf2}', 37102),
-    ('\u{fbf4}', 37103),
-    ('\u{fbf6}', 37104),
-    ('\u{fbf9}', 37105),
-    ('\u{fbfc}', 37106),
-    ('\u{fc00}', 4339),
-    ('\u{fd3c}', 37423),
-    ('\u{fd3e}', 37424),
-    ('\u{fd40}', 37425),
-    ('\u{fd50}', 37426),
-    ('\u{fd51}', 37427),
-    ('\u{fd53}', 4660),
-    ('\u{fd58}', 37433),
-    ('\u{fd5a}', 4666),
-    ('\u{fd5f}', 37439),
-    ('\u{fd61}', 37440),
-    ('\u{fd62}', 37441),
-    ('\u{fd64}', 37442),
-    ('\u{fd66}', 37443),
-    ('\u{fd67}', 37444),
-    ('\u{fd69}', 37445),
-    ('\u{fd6a}', 37446),
-    ('\u{fd6c}', 37447),
-    ('\u{fd6e}', 37448),
-    ('\u{fd6f}', 37449),
-    ('\u{fd71}', 37450),
-    ('\u{fd73}', 4683),
-    ('\u{fd76}', 37454),
-    ('\u{fd78}', 4687),
-    ('\u{fd7c}', 37459),
-    ('\u{fd7e}', 4692),
-    ('\u{fd83}', 37465),
-    ('\u{fd85}', 37466),
-    ('\u{fd87}', 37467),
-    ('\u{fd89}', 4700),
-    ('\u{fd90}', 37475),
-    ('\u{fd92}', 4708),
-    ('\u{fd97}', 37481),
-    ('\u{fd99}', 4714),
-    ('\u{fd9c}', 37485),
-    ('\u{fd9e}', 4718),
-    ('\u{fdc8}', 37528),
-    ('\u{fdf0}', 4761),
-    ('\u{fdfe}', 37543),
-    ('\u{fe00}', 37544),
-    ('\u{fe10}', 4777),
-    ('\u{fe19}', 37554),
-    ('\u{fe20}', 37555),
-    ('\u{fe30}', 4788),
-    ('\u{fe33}', 37559),
-    ('\u{fe35}', 4792),
-    ('\u{fe45}', 37576),
-    ('\u{fe47}', 4809),
-    ('\u{fe49}', 37579),
-    ('\u{fe4d}', 37580),
-    ('\u{fe50}', 4813),
-    ('\u{fe52}', 37583),
-    ('\u{fe54}', 4816),
-    ('\u{fe6c}', 37608),
-    ('\u{fe70}', 4841),
-    ('\u{fe81}', 37626),
-    ('\u{fe83}', 37627),
-    ('\u{fe85}', 37628),
-    ('\u{fe87}', 37629),
-    ('\u{fe89}', 37630),
-    ('\u{fe8d}', 37631),
-    ('\u{fe8f}', 37632),
-    ('\u{fe93}', 37633),
-    ('\u{fe95}', 37634),
-    ('\u{fe99}', 37635),
-    ('\u{fe9d}', 37636),
-    ('\u{fea1}', 37637),
-    ('\u{fea5}', 37638),
-    ('\u{fea9}', 37639),
-    ('\u{feab}', 37640),
-    ('\u{fead}', 37641),
-    ('\u{feaf}', 37642),
-    ('\u{feb1}', 37643),
-    ('\u{feb5}', 37644),
-    ('\u{feb9}', 37645),
-    ('\u{febd}', 37646),
-    ('\u{fec1}', 37647),
-    ('\u{fec5}', 37648),
-    ('\u{fec9}', 37649),
-    ('\u{fecd}', 37650),
-    ('\u{fed1}', 37651),
-    ('\u{fed5}', 37652),
-    ('\u{fed9}', 37653),
-    ('\u{fedd}', 37654),
-    ('\u{fee1}', 37655),
-    ('\u{fee5}', 37656),
-    ('\u{fee9}', 37657),
-    ('\u{feed}', 37658),
-    ('\u{feef}', 37659),
-    ('\u{fef1}', 37660),
-    ('\u{fef5}', 37661),
-    ('\u{fef7}', 37662),
-    ('\u{fef9}', 37663),
-    ('\u{fefb}', 37664),
-    ('\u{fefd}', 37665),
-    ('\u{feff}', 4898),
-    ('\u{ffbf}', 37858),
-    ('\u{ffc2}', 5091),
-    ('\u{ffc8}', 37865),
-    ('\u{ffca}', 5098),
-    ('\u{ffd0}', 37872),
-    ('\u{ffd2}', 5105),
-    ('\u{ffd8}', 37879),
-    ('\u{ffda}', 5112),
-    ('\u{ffdd}', 37883),
-    ('\u{ffe0}', 5116),
-    ('\u{ffef}', 37899),
-    ('\u{10000}', 37900),
-    ('\u{1000c}', 37901),
-    ('\u{1000d}', 37902),
-    ('\u{10027}', 37903),
-    ('\u{10028}', 37904),
-    ('\u{1003b}', 37905),
-    ('\u{1003c}', 37906),
-    ('\u{1003e}', 37907),
-    ('\u{1003f}', 37908),
-    ('\u{1004e}', 37909),
-    ('\u{10050}', 37910),
-    ('\u{1005e}', 37911),
-    ('\u{10080}', 37912),
-    ('\u{100fb}', 37913),
-    ('\u{10100}', 37914),
-    ('\u{10103}', 37915),
-    ('\u{10107}', 37916),
-    ('\u{10134}', 37917),
-    ('\u{10137}', 37918),
-    ('\u{1018f}', 37919),
-    ('\u{10190}', 37920),
-    ('\u{1019d}', 37921),
-    ('\u{101a0}', 37922),
-    ('\u{101a1}', 37923),
-    ('\u{101d0}', 37924),
-    ('\u{101fe}', 37925),
-    ('\u{10280}', 37926),
-    ('\u{1029d}', 37927),
-    ('\u{102a0}', 37928),
-    ('\u{102d1}', 37929),
-    ('\u{102e0}', 37930),
-    ('\u{102fc}', 37931),
-    ('\u{10300}', 37932),
-    ('\u{10324}', 37933),
-    ('\u{1032d}', 37934),
-    ('\u{1034b}', 37935),
-    ('\u{10350}', 37936),
-    ('\u{1037b}', 37937),
-    ('\u{10380}', 37938),
-    ('\u{1039e}', 37939),
-    ('\u{1039f}', 37940),
-    ('\u{103c4}', 37941),
-    ('\u{103c8}', 37942),
-    ('\u{103d6}', 37943),
-    ('\u{10400}', 5176),
-    ('\u{10428}', 37984),
-    ('\u{1049e}', 37985),
-    ('\u{104a0}', 37986),
-    ('\u{104aa}', 37987),
-    ('\u{104b0}', 5220),
-    ('\u{104d4}', 38024),
-    ('\u{104d8}', 38025),
-    ('\u{104fc}', 38026),
-    ('\u{10500}', 38027),
-    ('\u{10528}', 38028),
-    ('\u{10530}', 38029),
-    ('\u{10564}', 38030),
-    ('\u{1056f}', 38031),
-    ('\u{10570}', 38032),
-    ('\u{10600}', 38033),
-    ('\u{10737}', 38034),
-    ('\u{10740}', 38035),
-    ('\u{10756}', 38036),
-    ('\u{10760}', 38037),
-    ('\u{10768}', 38038),
-    ('\u{10800}', 38039),
-    ('\u{10806}', 38040),
-    ('\u{10808}', 5273),
-    ('\u{1080a}', 38043),
-    ('\u{10836}', 38044),
-    ('\u{10837}', 38045),
-    ('\u{10839}', 38046),
-    ('\u{1083c}', 38047),
-    ('\u{1083d}', 38048),
-    ('\u{1083f}', 38049),
-    ('\u{10856}', 38050),
-    ('\u{10857}', 38051),
-    ('\u{1089f}', 38052),
-    ('\u{108a7}', 38053),
-    ('\u{108b0}', 38054),
-    ('\u{108e0}', 38055),
-    ('\u{108f3}', 38056),
-    ('\u{108f4}', 38057),
-    ('\u{108f6}', 38058),
-    ('\u{108fb}', 38059),
-    ('\u{1091c}', 38060),
-    ('\u{1091f}', 38061),
-    ('\u{1093a}', 38062),
-    ('\u{1093f}', 38063),
-    ('\u{10940}', 38064),
-    ('\u{10980}', 38065),
-    ('\u{109b8}', 38066),
-    ('\u{109bc}', 38067),
-    ('\u{109d0}', 38068),
-    ('\u{109d2}', 38069),
-    ('\u{10a04}', 38070),
-    ('\u{10a05}', 38071),
-    ('\u{10a07}', 38072),
-    ('\u{10a0c}', 38073),
-    ('\u{10a14}', 38074),
-    ('\u{10a15}', 38075),
-    ('\u{10a18}', 38076),
-    ('\u{10a19}', 38077),
-    ('\u{10a36}', 38078),
-    ('\u{10a38}', 38079),
-    ('\u{10a3b}', 38080),
-    ('\u{10a3f}', 38081),
-    ('\u{10a49}', 38082),
-    ('\u{10a50}', 38083),
-    ('\u{10a59}', 38084),
-    ('\u{10a60}', 38085),
-    ('\u{10aa0}', 38086),
-    ('\u{10ac0}', 38087),
-    ('\u{10ae7}', 38088),
-    ('\u{10aeb}', 38089),
-    ('\u{10af7}', 38090),
-    ('\u{10b00}', 38091),
-    ('\u{10b36}', 38092),
-    ('\u{10b39}', 38093),
-    ('\u{10b56}', 38094),
-    ('\u{10b58}', 38095),
-    ('\u{10b73}', 38096),
-    ('\u{10b78}', 38097),
-    ('\u{10b92}', 38098),
-    ('\u{10b99}', 38099),
-    ('\u{10b9d}', 38100),
-    ('\u{10ba9}', 38101),
-    ('\u{10bb0}', 38102),
-    ('\u{10c00}', 38103),
-    ('\u{10c49}', 38104),
-    ('\u{10c80}', 5337),
-    ('\u{10cb3}', 38156),
-    ('\u{10cc0}', 38157),
-    ('\u{10cf3}', 38158),
-    ('\u{10cfa}', 38159),
-    ('\u{10d28}', 38160),
-    ('\u{10d30}', 38161),
-    ('\u{10d3a}', 38162),
-    ('\u{10e60}', 38163),
-    ('\u{10e7f}', 38164),
-    ('\u{10e80}', 38165),
-    ('\u{10eaa}', 38166),
-    ('\u{10eab}', 38167),
-    ('\u{10eae}', 38168),
-    ('\u{10eb0}', 38169),
-    ('\u{10eb2}', 38170),
-    ('\u{10f00}', 38171),
-    ('\u{10f28}', 38172),
-    ('\u{10f30}', 38173),
-    ('\u{10f5a}', 38174),
-    ('\u{10fb0}', 38175),
-    ('\u{10fcc}', 38176),
-    ('\u{10fe0}', 38177),
-    ('\u{10ff7}', 38178),
-    ('\u{11000}', 38179),
-    ('\u{1104e}', 38180),
-    ('\u{11052}', 38181),
-    ('\u{11070}', 38182),
-    ('\u{1107f}', 38183),
-    ('\u{110bd}', 38184),
-    ('\u{110be}', 38185),
-    ('\u{110c2}', 38186),
-    ('\u{110d0}', 38187),
-    ('\u{110e9}', 38188),
-    ('\u{110f0}', 38189),
-    ('\u{110fa}', 38190),
-    ('\u{11100}', 38191),
-    ('\u{11135}', 38192),
-    ('\u{11136}', 38193),
-    ('\u{11148}', 38194),
-    ('\u{11150}', 38195),
-    ('\u{11177}', 38196),
-    ('\u{11180}', 38197),
-    ('\u{111e0}', 38198),
-    ('\u{111e1}', 38199),
-    ('\u{111f5}', 38200),
-    ('\u{11200}', 38201),
-    ('\u{11212}', 38202),
-    ('\u{11213}', 38203),
-    ('\u{1123f}', 38204),
-    ('\u{11280}', 38205),
-    ('\u{11287}', 5438),
-    ('\u{1128a}', 38209),
-    ('\u{1128e}', 38210),
-    ('\u{1128f}', 38211),
-    ('\u{1129e}', 38212),
-    ('\u{1129f}', 38213),
-    ('\u{112aa}', 38214),
-    ('\u{112b0}', 38215),
-    ('\u{112eb}', 38216),
-    ('\u{112f0}', 38217),
-    ('\u{112fa}', 38218),
-    ('\u{11300}', 38219),
-    ('\u{11304}', 38220),
-    ('\u{11305}', 38221),
-    ('\u{1130d}', 38222),
-    ('\u{1130f}', 38223),
-    ('\u{11311}', 38224),
-    ('\u{11313}', 38225),
-    ('\u{11329}', 38226),
-    ('\u{1132a}', 38227),
-    ('\u{11331}', 38228),
-    ('\u{11332}', 38229),
-    ('\u{11334}', 38230),
-    ('\u{11335}', 38231),
-    ('\u{1133a}', 38232),
-    ('\u{1133b}', 38233),
-    ('\u{11345}', 38234),
-    ('\u{11347}', 38235),
-    ('\u{11349}', 38236),
-    ('\u{1134b}', 38237),
-    ('\u{1134e}', 38238),
-    ('\u{11350}', 38239),
-    ('\u{11351}', 38240),
-    ('\u{11357}', 38241),
-    ('\u{11358}', 38242),
-    ('\u{1135d}', 38243),
-    ('\u{11364}', 38244),
-    ('\u{11366}', 38245),
-    ('\u{1136d}', 38246),
-    ('\u{11370}', 38247),
-    ('\u{11375}', 38248),
-    ('\u{11400}', 38249),
-    ('\u{1145c}', 38250),
-    ('\u{1145d}', 38251),
-    ('\u{11462}', 38252),
-    ('\u{11480}', 38253),
-    ('\u{114c8}', 38254),
-    ('\u{114d0}', 38255),
-    ('\u{114da}', 38256),
-    ('\u{11580}', 38257),
-    ('\u{115b6}', 38258),
-    ('\u{115b8}', 38259),
-    ('\u{115de}', 38260),
-    ('\u{11600}', 38261),
-    ('\u{11645}', 38262),
-    ('\u{11650}', 38263),
-    ('\u{1165a}', 38264),
-    ('\u{11660}', 38265),
-    ('\u{1166d}', 38266),
-    ('\u{11680}', 38267),
-    ('\u{116b9}', 38268),
-    ('\u{116c0}', 38269),
-    ('\u{116ca}', 38270),
-    ('\u{11700}', 38271),
-    ('\u{1171b}', 38272),
-    ('\u{1171d}', 38273),
-    ('\u{1172c}', 38274),
-    ('\u{11730}', 38275),
-    ('\u{11740}', 38276),
-    ('\u{11800}', 38277),
-    ('\u{1183c}', 38278),
-    ('\u{118a0}', 5511),
-    ('\u{118c0}', 38311),
-    ('\u{118f3}', 38312),
-    ('\u{118ff}', 38313),
-    ('\u{11907}', 38314),
-    ('\u{11909}', 38315),
-    ('\u{1190a}', 38316),
-    ('\u{1190c}', 38317),
-    ('\u{11914}', 38318),
-    ('\u{11915}', 38319),
-    ('\u{11917}', 38320),
-    ('\u{11918}', 38321),
-    ('\u{11936}', 38322),
-    ('\u{11937}', 38323),
-    ('\u{11939}', 38324),
-    ('\u{1193b}', 38325),
-    ('\u{11947}', 38326),
-    ('\u{11950}', 38327),
-    ('\u{1195a}', 38328),
-    ('\u{119a0}', 38329),
-    ('\u{119a8}', 38330),
-    ('\u{119aa}', 38331),
-    ('\u{119d8}', 38332),
-    ('\u{119da}', 38333),
-    ('\u{119e5}', 38334),
-    ('\u{11a00}', 38335),
-    ('\u{11a48}', 38336),
-    ('\u{11a50}', 38337),
-    ('\u{11aa3}', 38338),
-    ('\u{11ac0}', 38339),
-    ('\u{11af9}', 38340),
-    ('\u{11c00}', 38341),
-    ('\u{11c09}', 38342),
-    ('\u{11c0a}', 38343),
-    ('\u{11c37}', 38344),
-    ('\u{11c38}', 38345),
-    ('\u{11c46}', 38346),
-    ('\u{11c50}', 38347),
-    ('\u{11c6d}', 38348),
-    ('\u{11c70}', 38349),
-    ('\u{11c90}', 38350),
-    ('\u{11c92}', 38351),
-    ('\u{11ca8}', 38352),
-    ('\u{11ca9}', 38353),
-    ('\u{11cb7}', 38354),
-    ('\u{11d00}', 38355),
-    ('\u{11d07}', 38356),
-    ('\u{11d08}', 38357),
-    ('\u{11d0a}', 38358),
-    ('\u{11d0b}', 38359),
-    ('\u{11d37}', 38360),
-    ('\u{11d3a}', 5593),
-    ('\u{11d3c}', 38363),
-    ('\u{11d3e}', 38364),
-    ('\u{11d3f}', 38365),
-    ('\u{11d48}', 38366),
-    ('\u{11d50}', 38367),
-    ('\u{11d5a}', 38368),
-    ('\u{11d60}', 38369),
-    ('\u{11d66}', 38370),
-    ('\u{11d67}', 38371),
-    ('\u{11d69}', 38372),
-    ('\u{11d6a}', 38373),
-    ('\u{11d8f}', 38374),
-    ('\u{11d90}', 38375),
-    ('\u{11d92}', 38376),
-    ('\u{11d93}', 38377),
-    ('\u{11d99}', 38378),
-    ('\u{11da0}', 38379),
-    ('\u{11daa}', 38380),
-    ('\u{11ee0}', 38381),
-    ('\u{11ef9}', 38382),
-    ('\u{11fb0}', 38383),
-    ('\u{11fb1}', 38384),
-    ('\u{11fc0}', 38385),
-    ('\u{11ff2}', 38386),
-    ('\u{11fff}', 38387),
-    ('\u{1239a}', 38388),
-    ('\u{12400}', 38389),
-    ('\u{1246f}', 38390),
-    ('\u{12470}', 38391),
-    ('\u{12475}', 38392),
-    ('\u{12480}', 38393),
-    ('\u{12544}', 38394),
-    ('\u{13000}', 38395),
-    ('\u{1342f}', 38396),
-    ('\u{14400}', 38397),
-    ('\u{14647}', 38398),
-    ('\u{16800}', 38399),
-    ('\u{16a39}', 38400),
-    ('\u{16a40}', 38401),
-    ('\u{16a5f}', 38402),
-    ('\u{16a60}', 38403),
-    ('\u{16a6a}', 38404),
-    ('\u{16a6e}', 38405),
-    ('\u{16a70}', 38406),
-    ('\u{16ad0}', 38407),
-    ('\u{16aee}', 38408),
-    ('\u{16af0}', 38409),
-    ('\u{16af6}', 38410),
-    ('\u{16b00}', 38411),
-    ('\u{16b46}', 38412),
-    ('\u{16b50}', 38413),
-    ('\u{16b5a}', 38414),
-    ('\u{16b5b}', 38415),
-    ('\u{16b62}', 38416),
-    ('\u{16b63}', 38417),
-    ('\u{16b78}', 38418),
-    ('\u{16b7d}', 38419),
-    ('\u{16b90}', 38420),
-    ('\u{16e40}', 5653),
-    ('\u{16e60}', 38453),
-    ('\u{16e9b}', 38454),
-    ('\u{16f00}', 38455),
-    ('\u{16f4b}', 38456),
-    ('\u{16f4f}', 38457),
-    ('\u{16f88}', 38458),
-    ('\u{16f8f}', 38459),
-    ('\u{16fa0}', 38460),
-    ('\u{16fe0}', 38461),
-    ('\u{16fe5}', 38462),
-    ('\u{16ff0}', 38463),
-    ('\u{16ff2}', 38464),
-    ('\u{17000}', 38465),
-    ('\u{187f8}', 38466),
-    ('\u{18800}', 38467),
-    ('\u{18cd6}', 38468),
-    ('\u{18d00}', 38469),
-    ('\u{18d09}', 38470),
-    ('\u{1b000}', 38471),
-    ('\u{1b11f}', 38472),
-    ('\u{1b150}', 38473),
-    ('\u{1b153}', 38474),
-    ('\u{1b164}', 38475),
-    ('\u{1b168}', 38476),
-    ('\u{1b170}', 38477),
-    ('\u{1b2fc}', 38478),
-    ('\u{1bc00}', 38479),
-    ('\u{1bc6b}', 38480),
-    ('\u{1bc70}', 38481),
-    ('\u{1bc7d}', 38482),
-    ('\u{1bc80}', 38483),
-    ('\u{1bc89}', 38484),
-    ('\u{1bc90}', 38485),
-    ('\u{1bc9a}', 38486),
-    ('\u{1bc9c}', 38487),
-    ('\u{1bca0}', 38488),
-    ('\u{1bca4}', 38489),
-    ('\u{1d000}', 38490),
-    ('\u{1d0f6}', 38491),
-    ('\u{1d100}', 38492),
-    ('\u{1d127}', 38493),
-    ('\u{1d129}', 38494),
-    ('\u{1d15e}', 5727),
-    ('\u{1d165}', 38502),
-    ('\u{1d173}', 38503),
-    ('\u{1d17b}', 38504),
-    ('\u{1d1bb}', 5737),
-    ('\u{1d1c1}', 38511),
-    ('\u{1d1e9}', 38512),
-    ('\u{1d200}', 38513),
-    ('\u{1d246}', 38514),
-    ('\u{1d2e0}', 38515),
-    ('\u{1d2f4}', 38516),
-    ('\u{1d300}', 38517),
-    ('\u{1d357}', 38518),
-    ('\u{1d360}', 38519),
-    ('\u{1d379}', 38520),
-    ('\u{1d400}', 5753),
-    ('\u{1d4a0}', 38681),
-    ('\u{1d4a2}', 38682),
-    ('\u{1d4a3}', 38683),
-    ('\u{1d4a5}', 5916),
-    ('\u{1d4a7}', 38686),
-    ('\u{1d4a9}', 5919),
-    ('\u{1d50b}', 38785),
-    ('\u{1d50d}', 6018),
-    ('\u{1d547}', 38844),
-    ('\u{1d54a}', 6077),
-    ('\u{1d6a6}', 39193),
-    ('\u{1d6a8}', 6426),
-    ('\u{1d6d3}', 39237),
-    ('\u{1d6d5}', 6470),
-    ('\u{1d70d}', 39294),
-    ('\u{1d70f}', 6527),
-    ('\u{1d747}', 39351),
-    ('\u{1d749}', 6584),
-    ('\u{1d781}', 39408),
-    ('\u{1d783}', 6641),
-    ('\u{1d7bb}', 39465),
-    ('\u{1d7bd}', 6698),
-    ('\u{1d7ca}', 39479),
-    ('\u{1d7cc}', 39480),
-    ('\u{1d7ce}', 6713),
-    ('\u{1d800}', 39531),
-    ('\u{1da8c}', 39532),
-    ('\u{1da9b}', 39533),
-    ('\u{1daa0}', 39534),
-    ('\u{1daa1}', 39535),
-    ('\u{1dab0}', 39536),
-    ('\u{1e000}', 39537),
-    ('\u{1e007}', 39538),
-    ('\u{1e008}', 39539),
-    ('\u{1e019}', 39540),
-    ('\u{1e01b}', 39541),
-    ('\u{1e022}', 39542),
-    ('\u{1e023}', 39543),
-    ('\u{1e025}', 39544),
-    ('\u{1e026}', 39545),
-    ('\u{1e02b}', 39546),
-    ('\u{1e100}', 39547),
-    ('\u{1e12d}', 39548),
-    ('\u{1e130}', 39549),
-    ('\u{1e13e}', 39550),
-    ('\u{1e140}', 39551),
-    ('\u{1e14a}', 39552),
-    ('\u{1e14e}', 39553),
-    ('\u{1e150}', 39554),
-    ('\u{1e2c0}', 39555),
-    ('\u{1e2fa}', 39556),
-    ('\u{1e2ff}', 39557),
-    ('\u{1e300}', 39558),
-    ('\u{1e800}', 39559),
-    ('\u{1e8c5}', 39560),
-    ('\u{1e8c7}', 39561),
-    ('\u{1e8d7}', 39562),
-    ('\u{1e900}', 6795),
-    ('\u{1e922}', 39597),
-    ('\u{1e94c}', 39598),
-    ('\u{1e950}', 39599),
-    ('\u{1e95a}', 39600),
-    ('\u{1e95e}', 39601),
-    ('\u{1e960}', 39602),
-    ('\u{1ec71}', 39603),
-    ('\u{1ecb5}', 39604),
-    ('\u{1ed01}', 39605),
-    ('\u{1ed3e}', 39606),
-    ('\u{1ee00}', 6839),
-    ('\u{1ee25}', 39644),
-    ('\u{1ee27}', 6877),
-    ('\u{1ee3c}', 39666),
-    ('\u{1ee42}', 39667),
-    ('\u{1ee43}', 39668),
-    ('\u{1ee47}', 6901),
-    ('\u{1ee55}', 39683),
-    ('\u{1ee57}', 6916),
-    ('\u{1ee65}', 39698),
-    ('\u{1ee67}', 6931),
-    ('\u{1ee9c}', 39752),
-    ('\u{1eea1}', 6985),
-    ('\u{1eebc}', 39780),
-    ('\u{1eef0}', 39781),
-    ('\u{1eef2}', 39782),
-    ('\u{1f000}', 39783),
-    ('\u{1f02c}', 39784),
-    ('\u{1f030}', 39785),
-    ('\u{1f094}', 39786),
-    ('\u{1f0a0}', 39787),
-    ('\u{1f0af}', 39788),
-    ('\u{1f0b1}', 39789),
-    ('\u{1f0c0}', 39790),
-    ('\u{1f0c1}', 39791),
-    ('\u{1f0d0}', 39792),
-    ('\u{1f0d1}', 39793),
-    ('\u{1f0f6}', 39794),
-    ('\u{1f101}', 7027),
-    ('\u{1f10b}', 39805),
-    ('\u{1f110}', 7038),
-    ('\u{1f150}', 39870),
-    ('\u{1f16a}', 7103),
-    ('\u{1f16d}', 39874),
-    ('\u{1f190}', 39875),
-    ('\u{1f191}', 39876),
-    ('\u{1f1ae}', 39877),
-    ('\u{1f1e6}', 39878),
-    ('\u{1f200}', 7111),
-    ('\u{1f203}', 39882),
-    ('\u{1f210}', 7115),
-    ('\u{1f23c}', 39927),
-    ('\u{1f240}', 7160),
-    ('\u{1f249}', 39937),
-    ('\u{1f250}', 7170),
-    ('\u{1f252}', 39940),
-    ('\u{1f260}', 39941),
-    ('\u{1f266}', 39942),
-    ('\u{1f300}', 39943),
-    ('\u{1f6d8}', 39944),
-    ('\u{1f6e0}', 39945),
-    ('\u{1f6ed}', 39946),
-    ('\u{1f6f0}', 39947),
-    ('\u{1f6fd}', 39948),
-    ('\u{1f700}', 39949),
-    ('\u{1f774}', 39950),
-    ('\u{1f780}', 39951),
-    ('\u{1f7d9}', 39952),
-    ('\u{1f7e0}', 39953),
-    ('\u{1f7ec}', 39954),
-    ('\u{1f800}', 39955),
-    ('\u{1f80c}', 39956),
-    ('\u{1f810}', 39957),
-    ('\u{1f848}', 39958),
-    ('\u{1f850}', 39959),
-    ('\u{1f85a}', 39960),
-    ('\u{1f860}', 39961),
-    ('\u{1f888}', 39962),
-    ('\u{1f890}', 39963),
-    ('\u{1f8ae}', 39964),
-    ('\u{1f8b0}', 39965),
-    ('\u{1f8b2}', 39966),
-    ('\u{1f900}', 39967),
-    ('\u{1f979}', 39968),
-    ('\u{1f97a}', 39969),
-    ('\u{1f9cc}', 39970),
-    ('\u{1f9cd}', 39971),
-    ('\u{1fa54}', 39972),
-    ('\u{1fa60}', 39973),
-    ('\u{1fa6e}', 39974),
-    ('\u{1fa70}', 39975),
-    ('\u{1fa75}', 39976),
-    ('\u{1fa78}', 39977),
-    ('\u{1fa7b}', 39978),
-    ('\u{1fa80}', 39979),
-    ('\u{1fa87}', 39980),
-    ('\u{1fa90}', 39981),
-    ('\u{1faa9}', 39982),
-    ('\u{1fab0}', 39983),
-    ('\u{1fab7}', 39984),
-    ('\u{1fac0}', 39985),
-    ('\u{1fac3}', 39986),
-    ('\u{1fad0}', 39987),
-    ('\u{1fad7}', 39988),
-    ('\u{1fb00}', 39989),
-    ('\u{1fb93}', 39990),
-    ('\u{1fb94}', 39991),
-    ('\u{1fbcb}', 39992),
-    ('\u{1fbf0}', 7225),
-    ('\u{1fbfa}', 40003),
-    ('\u{20000}', 40004),
-    ('\u{2a6de}', 40005),
-    ('\u{2a700}', 40006),
-    ('\u{2b735}', 40007),
-    ('\u{2b740}', 40008),
-    ('\u{2b81e}', 40009),
-    ('\u{2b820}', 40010),
-    ('\u{2cea2}', 40011),
-    ('\u{2ceb0}', 40012),
-    ('\u{2ebe1}', 40013),
-    ('\u{2f800}', 7246),
-    ('\u{2f831}', 40063),
-    ('\u{2f834}', 7296),
-    ('\u{2f845}', 40081),
-    ('\u{2f847}', 7314),
-    ('\u{2f86a}', 40117),
-    ('\u{2f86c}', 7350),
-    ('\u{2f891}', 40155),
-    ('\u{2f893}', 40156),
-    ('\u{2f894}', 40157),
-    ('\u{2f896}', 7390),
-    ('\u{2f92c}', 40308),
-    ('\u{2f92e}', 7541),
-    ('\u{2f946}', 40333),
-    ('\u{2f948}', 7566),
-    ('\u{2f95d}', 40355),
-    ('\u{2f95f}', 7588),
-    ('\u{2f9fe}', 40515),
-    ('\u{2fa00}', 7748),
-    ('\u{2fa1e}', 40546),
-    ('\u{30000}', 40547),
-    ('\u{3134b}', 40548),
-    ('\u{e0100}', 40549),
-    ('\u{e01f0}', 40550),
+static TABLE: &[Range] = &[
+    Range { from: '\u{0}', to: '\u{2c}', },
+    Range { from: '\u{2d}', to: '\u{2e}', },
+    Range { from: '\u{2f}', to: '\u{2f}', },
+    Range { from: '\u{30}', to: '\u{39}', },
+    Range { from: '\u{3a}', to: '\u{40}', },
+    Range { from: '\u{41}', to: '\u{5a}', },
+    Range { from: '\u{5b}', to: '\u{60}', },
+    Range { from: '\u{61}', to: '\u{7a}', },
+    Range { from: '\u{7b}', to: '\u{7f}', },
+    Range { from: '\u{80}', to: '\u{9f}', },
+    Range { from: '\u{a0}', to: '\u{a0}', },
+    Range { from: '\u{a1}', to: '\u{a7}', },
+    Range { from: '\u{a8}', to: '\u{aa}', },
+    Range { from: '\u{ab}', to: '\u{ac}', },
+    Range { from: '\u{ad}', to: '\u{af}', },
+    Range { from: '\u{b0}', to: '\u{b1}', },
+    Range { from: '\u{b2}', to: '\u{b5}', },
+    Range { from: '\u{b6}', to: '\u{b7}', },
+    Range { from: '\u{b8}', to: '\u{df}', },
+    Range { from: '\u{e0}', to: '\u{ff}', },
+    Range { from: '\u{100}', to: '\u{131}', },
+    Range { from: '\u{132}', to: '\u{133}', },
+    Range { from: '\u{134}', to: '\u{136}', },
+    Range { from: '\u{137}', to: '\u{138}', },
+    Range { from: '\u{139}', to: '\u{13e}', },
+    Range { from: '\u{13f}', to: '\u{140}', },
+    Range { from: '\u{141}', to: '\u{18b}', },
+    Range { from: '\u{18c}', to: '\u{18d}', },
+    Range { from: '\u{18e}', to: '\u{198}', },
+    Range { from: '\u{199}', to: '\u{19b}', },
+    Range { from: '\u{19c}', to: '\u{1a9}', },
+    Range { from: '\u{1aa}', to: '\u{1ab}', },
+    Range { from: '\u{1ac}', to: '\u{1b8}', },
+    Range { from: '\u{1b9}', to: '\u{1bb}', },
+    Range { from: '\u{1bc}', to: '\u{1bc}', },
+    Range { from: '\u{1bd}', to: '\u{1c3}', },
+    Range { from: '\u{1c4}', to: '\u{1c6}', },
+    Range { from: '\u{1c7}', to: '\u{1c9}', },
+    Range { from: '\u{1ca}', to: '\u{1cc}', },
+    Range { from: '\u{1cd}', to: '\u{1db}', },
+    Range { from: '\u{1dc}', to: '\u{1dd}', },
+    Range { from: '\u{1de}', to: '\u{1ee}', },
+    Range { from: '\u{1ef}', to: '\u{1f0}', },
+    Range { from: '\u{1f1}', to: '\u{1f3}', },
+    Range { from: '\u{1f4}', to: '\u{232}', },
+    Range { from: '\u{233}', to: '\u{239}', },
+    Range { from: '\u{23a}', to: '\u{23e}', },
+    Range { from: '\u{23f}', to: '\u{240}', },
+    Range { from: '\u{241}', to: '\u{24e}', },
+    Range { from: '\u{24f}', to: '\u{2af}', },
+    Range { from: '\u{2b0}', to: '\u{2b8}', },
+    Range { from: '\u{2b9}', to: '\u{2d7}', },
+    Range { from: '\u{2d8}', to: '\u{2dd}', },
+    Range { from: '\u{2de}', to: '\u{2df}', },
+    Range { from: '\u{2e0}', to: '\u{2e4}', },
+    Range { from: '\u{2e5}', to: '\u{33f}', },
+    Range { from: '\u{340}', to: '\u{345}', },
+    Range { from: '\u{346}', to: '\u{34e}', },
+    Range { from: '\u{34f}', to: '\u{34f}', },
+    Range { from: '\u{350}', to: '\u{36f}', },
+    Range { from: '\u{370}', to: '\u{377}', },
+    Range { from: '\u{378}', to: '\u{379}', },
+    Range { from: '\u{37a}', to: '\u{37a}', },
+    Range { from: '\u{37b}', to: '\u{37d}', },
+    Range { from: '\u{37e}', to: '\u{37f}', },
+    Range { from: '\u{380}', to: '\u{383}', },
+    Range { from: '\u{384}', to: '\u{3ab}', },
+    Range { from: '\u{3ac}', to: '\u{3c1}', },
+    Range { from: '\u{3c2}', to: '\u{3c2}', },
+    Range { from: '\u{3c3}', to: '\u{3ce}', },
+    Range { from: '\u{3cf}', to: '\u{3fa}', },
+    Range { from: '\u{3fb}', to: '\u{3fc}', },
+    Range { from: '\u{3fd}', to: '\u{42f}', },
+    Range { from: '\u{430}', to: '\u{45f}', },
+    Range { from: '\u{460}', to: '\u{480}', },
+    Range { from: '\u{481}', to: '\u{489}', },
+    Range { from: '\u{48a}', to: '\u{4cd}', },
+    Range { from: '\u{4ce}', to: '\u{4cf}', },
+    Range { from: '\u{4d0}', to: '\u{556}', },
+    Range { from: '\u{557}', to: '\u{558}', },
+    Range { from: '\u{559}', to: '\u{586}', },
+    Range { from: '\u{587}', to: '\u{587}', },
+    Range { from: '\u{588}', to: '\u{58a}', },
+    Range { from: '\u{58b}', to: '\u{58c}', },
+    Range { from: '\u{58d}', to: '\u{58f}', },
+    Range { from: '\u{590}', to: '\u{590}', },
+    Range { from: '\u{591}', to: '\u{5c7}', },
+    Range { from: '\u{5c8}', to: '\u{5cf}', },
+    Range { from: '\u{5d0}', to: '\u{5ea}', },
+    Range { from: '\u{5eb}', to: '\u{5ee}', },
+    Range { from: '\u{5ef}', to: '\u{5f4}', },
+    Range { from: '\u{5f5}', to: '\u{605}', },
+    Range { from: '\u{606}', to: '\u{61b}', },
+    Range { from: '\u{61c}', to: '\u{61d}', },
+    Range { from: '\u{61e}', to: '\u{674}', },
+    Range { from: '\u{675}', to: '\u{678}', },
+    Range { from: '\u{679}', to: '\u{6dc}', },
+    Range { from: '\u{6dd}', to: '\u{6dd}', },
+    Range { from: '\u{6de}', to: '\u{70d}', },
+    Range { from: '\u{70e}', to: '\u{70f}', },
+    Range { from: '\u{710}', to: '\u{74a}', },
+    Range { from: '\u{74b}', to: '\u{74c}', },
+    Range { from: '\u{74d}', to: '\u{7b1}', },
+    Range { from: '\u{7b2}', to: '\u{7bf}', },
+    Range { from: '\u{7c0}', to: '\u{7fa}', },
+    Range { from: '\u{7fb}', to: '\u{7fc}', },
+    Range { from: '\u{7fd}', to: '\u{82d}', },
+    Range { from: '\u{82e}', to: '\u{82f}', },
+    Range { from: '\u{830}', to: '\u{83e}', },
+    Range { from: '\u{83f}', to: '\u{83f}', },
+    Range { from: '\u{840}', to: '\u{85b}', },
+    Range { from: '\u{85c}', to: '\u{85d}', },
+    Range { from: '\u{85e}', to: '\u{85f}', },
+    Range { from: '\u{860}', to: '\u{86a}', },
+    Range { from: '\u{86b}', to: '\u{89f}', },
+    Range { from: '\u{8a0}', to: '\u{8b4}', },
+    Range { from: '\u{8b5}', to: '\u{8b5}', },
+    Range { from: '\u{8b6}', to: '\u{8c7}', },
+    Range { from: '\u{8c8}', to: '\u{8d2}', },
+    Range { from: '\u{8d3}', to: '\u{8e1}', },
+    Range { from: '\u{8e2}', to: '\u{8e2}', },
+    Range { from: '\u{8e3}', to: '\u{957}', },
+    Range { from: '\u{958}', to: '\u{95f}', },
+    Range { from: '\u{960}', to: '\u{983}', },
+    Range { from: '\u{984}', to: '\u{984}', },
+    Range { from: '\u{985}', to: '\u{98c}', },
+    Range { from: '\u{98d}', to: '\u{98e}', },
+    Range { from: '\u{98f}', to: '\u{990}', },
+    Range { from: '\u{991}', to: '\u{992}', },
+    Range { from: '\u{993}', to: '\u{9a8}', },
+    Range { from: '\u{9a9}', to: '\u{9a9}', },
+    Range { from: '\u{9aa}', to: '\u{9b0}', },
+    Range { from: '\u{9b1}', to: '\u{9b2}', },
+    Range { from: '\u{9b3}', to: '\u{9b5}', },
+    Range { from: '\u{9b6}', to: '\u{9b9}', },
+    Range { from: '\u{9ba}', to: '\u{9bb}', },
+    Range { from: '\u{9bc}', to: '\u{9c4}', },
+    Range { from: '\u{9c5}', to: '\u{9c6}', },
+    Range { from: '\u{9c7}', to: '\u{9c8}', },
+    Range { from: '\u{9c9}', to: '\u{9ca}', },
+    Range { from: '\u{9cb}', to: '\u{9ce}', },
+    Range { from: '\u{9cf}', to: '\u{9d6}', },
+    Range { from: '\u{9d7}', to: '\u{9d7}', },
+    Range { from: '\u{9d8}', to: '\u{9db}', },
+    Range { from: '\u{9dc}', to: '\u{9df}', },
+    Range { from: '\u{9e0}', to: '\u{9e3}', },
+    Range { from: '\u{9e4}', to: '\u{9e5}', },
+    Range { from: '\u{9e6}', to: '\u{9fe}', },
+    Range { from: '\u{9ff}', to: '\u{a00}', },
+    Range { from: '\u{a01}', to: '\u{a03}', },
+    Range { from: '\u{a04}', to: '\u{a04}', },
+    Range { from: '\u{a05}', to: '\u{a0a}', },
+    Range { from: '\u{a0b}', to: '\u{a0e}', },
+    Range { from: '\u{a0f}', to: '\u{a10}', },
+    Range { from: '\u{a11}', to: '\u{a12}', },
+    Range { from: '\u{a13}', to: '\u{a28}', },
+    Range { from: '\u{a29}', to: '\u{a29}', },
+    Range { from: '\u{a2a}', to: '\u{a30}', },
+    Range { from: '\u{a31}', to: '\u{a37}', },
+    Range { from: '\u{a38}', to: '\u{a39}', },
+    Range { from: '\u{a3a}', to: '\u{a3b}', },
+    Range { from: '\u{a3c}', to: '\u{a3d}', },
+    Range { from: '\u{a3e}', to: '\u{a42}', },
+    Range { from: '\u{a43}', to: '\u{a46}', },
+    Range { from: '\u{a47}', to: '\u{a48}', },
+    Range { from: '\u{a49}', to: '\u{a4a}', },
+    Range { from: '\u{a4b}', to: '\u{a4d}', },
+    Range { from: '\u{a4e}', to: '\u{a50}', },
+    Range { from: '\u{a51}', to: '\u{a51}', },
+    Range { from: '\u{a52}', to: '\u{a58}', },
+    Range { from: '\u{a59}', to: '\u{a5e}', },
+    Range { from: '\u{a5f}', to: '\u{a65}', },
+    Range { from: '\u{a66}', to: '\u{a76}', },
+    Range { from: '\u{a77}', to: '\u{a80}', },
+    Range { from: '\u{a81}', to: '\u{a83}', },
+    Range { from: '\u{a84}', to: '\u{a84}', },
+    Range { from: '\u{a85}', to: '\u{a8d}', },
+    Range { from: '\u{a8e}', to: '\u{a8e}', },
+    Range { from: '\u{a8f}', to: '\u{a91}', },
+    Range { from: '\u{a92}', to: '\u{a92}', },
+    Range { from: '\u{a93}', to: '\u{aa8}', },
+    Range { from: '\u{aa9}', to: '\u{aa9}', },
+    Range { from: '\u{aaa}', to: '\u{ab0}', },
+    Range { from: '\u{ab1}', to: '\u{ab1}', },
+    Range { from: '\u{ab2}', to: '\u{ab3}', },
+    Range { from: '\u{ab4}', to: '\u{ab4}', },
+    Range { from: '\u{ab5}', to: '\u{ab9}', },
+    Range { from: '\u{aba}', to: '\u{abb}', },
+    Range { from: '\u{abc}', to: '\u{ac5}', },
+    Range { from: '\u{ac6}', to: '\u{ac6}', },
+    Range { from: '\u{ac7}', to: '\u{ac9}', },
+    Range { from: '\u{aca}', to: '\u{aca}', },
+    Range { from: '\u{acb}', to: '\u{acd}', },
+    Range { from: '\u{ace}', to: '\u{acf}', },
+    Range { from: '\u{ad0}', to: '\u{ad0}', },
+    Range { from: '\u{ad1}', to: '\u{adf}', },
+    Range { from: '\u{ae0}', to: '\u{ae3}', },
+    Range { from: '\u{ae4}', to: '\u{ae5}', },
+    Range { from: '\u{ae6}', to: '\u{af1}', },
+    Range { from: '\u{af2}', to: '\u{af8}', },
+    Range { from: '\u{af9}', to: '\u{aff}', },
+    Range { from: '\u{b00}', to: '\u{b00}', },
+    Range { from: '\u{b01}', to: '\u{b03}', },
+    Range { from: '\u{b04}', to: '\u{b04}', },
+    Range { from: '\u{b05}', to: '\u{b0c}', },
+    Range { from: '\u{b0d}', to: '\u{b0e}', },
+    Range { from: '\u{b0f}', to: '\u{b10}', },
+    Range { from: '\u{b11}', to: '\u{b12}', },
+    Range { from: '\u{b13}', to: '\u{b28}', },
+    Range { from: '\u{b29}', to: '\u{b29}', },
+    Range { from: '\u{b2a}', to: '\u{b30}', },
+    Range { from: '\u{b31}', to: '\u{b31}', },
+    Range { from: '\u{b32}', to: '\u{b33}', },
+    Range { from: '\u{b34}', to: '\u{b34}', },
+    Range { from: '\u{b35}', to: '\u{b39}', },
+    Range { from: '\u{b3a}', to: '\u{b3b}', },
+    Range { from: '\u{b3c}', to: '\u{b44}', },
+    Range { from: '\u{b45}', to: '\u{b46}', },
+    Range { from: '\u{b47}', to: '\u{b48}', },
+    Range { from: '\u{b49}', to: '\u{b4a}', },
+    Range { from: '\u{b4b}', to: '\u{b4d}', },
+    Range { from: '\u{b4e}', to: '\u{b54}', },
+    Range { from: '\u{b55}', to: '\u{b57}', },
+    Range { from: '\u{b58}', to: '\u{b5b}', },
+    Range { from: '\u{b5c}', to: '\u{b5e}', },
+    Range { from: '\u{b5f}', to: '\u{b63}', },
+    Range { from: '\u{b64}', to: '\u{b65}', },
+    Range { from: '\u{b66}', to: '\u{b77}', },
+    Range { from: '\u{b78}', to: '\u{b81}', },
+    Range { from: '\u{b82}', to: '\u{b83}', },
+    Range { from: '\u{b84}', to: '\u{b84}', },
+    Range { from: '\u{b85}', to: '\u{b8a}', },
+    Range { from: '\u{b8b}', to: '\u{b8d}', },
+    Range { from: '\u{b8e}', to: '\u{b90}', },
+    Range { from: '\u{b91}', to: '\u{b91}', },
+    Range { from: '\u{b92}', to: '\u{b95}', },
+    Range { from: '\u{b96}', to: '\u{b98}', },
+    Range { from: '\u{b99}', to: '\u{b9a}', },
+    Range { from: '\u{b9b}', to: '\u{b9d}', },
+    Range { from: '\u{b9e}', to: '\u{b9f}', },
+    Range { from: '\u{ba0}', to: '\u{ba2}', },
+    Range { from: '\u{ba3}', to: '\u{ba4}', },
+    Range { from: '\u{ba5}', to: '\u{ba7}', },
+    Range { from: '\u{ba8}', to: '\u{baa}', },
+    Range { from: '\u{bab}', to: '\u{bad}', },
+    Range { from: '\u{bae}', to: '\u{bb9}', },
+    Range { from: '\u{bba}', to: '\u{bbd}', },
+    Range { from: '\u{bbe}', to: '\u{bc2}', },
+    Range { from: '\u{bc3}', to: '\u{bc5}', },
+    Range { from: '\u{bc6}', to: '\u{bc8}', },
+    Range { from: '\u{bc9}', to: '\u{bc9}', },
+    Range { from: '\u{bca}', to: '\u{bcd}', },
+    Range { from: '\u{bce}', to: '\u{bcf}', },
+    Range { from: '\u{bd0}', to: '\u{bd0}', },
+    Range { from: '\u{bd1}', to: '\u{bd6}', },
+    Range { from: '\u{bd7}', to: '\u{bd7}', },
+    Range { from: '\u{bd8}', to: '\u{be5}', },
+    Range { from: '\u{be6}', to: '\u{bfa}', },
+    Range { from: '\u{bfb}', to: '\u{bff}', },
+    Range { from: '\u{c00}', to: '\u{c0c}', },
+    Range { from: '\u{c0d}', to: '\u{c0d}', },
+    Range { from: '\u{c0e}', to: '\u{c10}', },
+    Range { from: '\u{c11}', to: '\u{c11}', },
+    Range { from: '\u{c12}', to: '\u{c28}', },
+    Range { from: '\u{c29}', to: '\u{c29}', },
+    Range { from: '\u{c2a}', to: '\u{c39}', },
+    Range { from: '\u{c3a}', to: '\u{c3c}', },
+    Range { from: '\u{c3d}', to: '\u{c44}', },
+    Range { from: '\u{c45}', to: '\u{c45}', },
+    Range { from: '\u{c46}', to: '\u{c48}', },
+    Range { from: '\u{c49}', to: '\u{c49}', },
+    Range { from: '\u{c4a}', to: '\u{c4d}', },
+    Range { from: '\u{c4e}', to: '\u{c54}', },
+    Range { from: '\u{c55}', to: '\u{c56}', },
+    Range { from: '\u{c57}', to: '\u{c57}', },
+    Range { from: '\u{c58}', to: '\u{c5a}', },
+    Range { from: '\u{c5b}', to: '\u{c5f}', },
+    Range { from: '\u{c60}', to: '\u{c63}', },
+    Range { from: '\u{c64}', to: '\u{c65}', },
+    Range { from: '\u{c66}', to: '\u{c6f}', },
+    Range { from: '\u{c70}', to: '\u{c76}', },
+    Range { from: '\u{c77}', to: '\u{c8c}', },
+    Range { from: '\u{c8d}', to: '\u{c8d}', },
+    Range { from: '\u{c8e}', to: '\u{c90}', },
+    Range { from: '\u{c91}', to: '\u{c91}', },
+    Range { from: '\u{c92}', to: '\u{ca8}', },
+    Range { from: '\u{ca9}', to: '\u{ca9}', },
+    Range { from: '\u{caa}', to: '\u{cb3}', },
+    Range { from: '\u{cb4}', to: '\u{cb4}', },
+    Range { from: '\u{cb5}', to: '\u{cb9}', },
+    Range { from: '\u{cba}', to: '\u{cbb}', },
+    Range { from: '\u{cbc}', to: '\u{cc4}', },
+    Range { from: '\u{cc5}', to: '\u{cc5}', },
+    Range { from: '\u{cc6}', to: '\u{cc8}', },
+    Range { from: '\u{cc9}', to: '\u{cc9}', },
+    Range { from: '\u{cca}', to: '\u{ccd}', },
+    Range { from: '\u{cce}', to: '\u{cd4}', },
+    Range { from: '\u{cd5}', to: '\u{cd6}', },
+    Range { from: '\u{cd7}', to: '\u{cdd}', },
+    Range { from: '\u{cde}', to: '\u{cdf}', },
+    Range { from: '\u{ce0}', to: '\u{ce3}', },
+    Range { from: '\u{ce4}', to: '\u{ce5}', },
+    Range { from: '\u{ce6}', to: '\u{cef}', },
+    Range { from: '\u{cf0}', to: '\u{cf0}', },
+    Range { from: '\u{cf1}', to: '\u{cf2}', },
+    Range { from: '\u{cf3}', to: '\u{cff}', },
+    Range { from: '\u{d00}', to: '\u{d0c}', },
+    Range { from: '\u{d0d}', to: '\u{d0d}', },
+    Range { from: '\u{d0e}', to: '\u{d10}', },
+    Range { from: '\u{d11}', to: '\u{d11}', },
+    Range { from: '\u{d12}', to: '\u{d44}', },
+    Range { from: '\u{d45}', to: '\u{d45}', },
+    Range { from: '\u{d46}', to: '\u{d48}', },
+    Range { from: '\u{d49}', to: '\u{d49}', },
+    Range { from: '\u{d4a}', to: '\u{d4f}', },
+    Range { from: '\u{d50}', to: '\u{d53}', },
+    Range { from: '\u{d54}', to: '\u{d63}', },
+    Range { from: '\u{d64}', to: '\u{d65}', },
+    Range { from: '\u{d66}', to: '\u{d7f}', },
+    Range { from: '\u{d80}', to: '\u{d80}', },
+    Range { from: '\u{d81}', to: '\u{d83}', },
+    Range { from: '\u{d84}', to: '\u{d84}', },
+    Range { from: '\u{d85}', to: '\u{d96}', },
+    Range { from: '\u{d97}', to: '\u{d99}', },
+    Range { from: '\u{d9a}', to: '\u{db1}', },
+    Range { from: '\u{db2}', to: '\u{db2}', },
+    Range { from: '\u{db3}', to: '\u{dbb}', },
+    Range { from: '\u{dbc}', to: '\u{dbd}', },
+    Range { from: '\u{dbe}', to: '\u{dbf}', },
+    Range { from: '\u{dc0}', to: '\u{dc6}', },
+    Range { from: '\u{dc7}', to: '\u{dc9}', },
+    Range { from: '\u{dca}', to: '\u{dca}', },
+    Range { from: '\u{dcb}', to: '\u{dce}', },
+    Range { from: '\u{dcf}', to: '\u{dd4}', },
+    Range { from: '\u{dd5}', to: '\u{dd7}', },
+    Range { from: '\u{dd8}', to: '\u{ddf}', },
+    Range { from: '\u{de0}', to: '\u{de5}', },
+    Range { from: '\u{de6}', to: '\u{def}', },
+    Range { from: '\u{df0}', to: '\u{df1}', },
+    Range { from: '\u{df2}', to: '\u{df4}', },
+    Range { from: '\u{df5}', to: '\u{e00}', },
+    Range { from: '\u{e01}', to: '\u{e32}', },
+    Range { from: '\u{e33}', to: '\u{e33}', },
+    Range { from: '\u{e34}', to: '\u{e3a}', },
+    Range { from: '\u{e3b}', to: '\u{e3e}', },
+    Range { from: '\u{e3f}', to: '\u{e5b}', },
+    Range { from: '\u{e5c}', to: '\u{e80}', },
+    Range { from: '\u{e81}', to: '\u{e82}', },
+    Range { from: '\u{e83}', to: '\u{e85}', },
+    Range { from: '\u{e86}', to: '\u{e8a}', },
+    Range { from: '\u{e8b}', to: '\u{e8b}', },
+    Range { from: '\u{e8c}', to: '\u{ea3}', },
+    Range { from: '\u{ea4}', to: '\u{ea6}', },
+    Range { from: '\u{ea7}', to: '\u{eb2}', },
+    Range { from: '\u{eb3}', to: '\u{eb3}', },
+    Range { from: '\u{eb4}', to: '\u{ebd}', },
+    Range { from: '\u{ebe}', to: '\u{ebf}', },
+    Range { from: '\u{ec0}', to: '\u{ec4}', },
+    Range { from: '\u{ec5}', to: '\u{ec7}', },
+    Range { from: '\u{ec8}', to: '\u{ecd}', },
+    Range { from: '\u{ece}', to: '\u{ecf}', },
+    Range { from: '\u{ed0}', to: '\u{ed9}', },
+    Range { from: '\u{eda}', to: '\u{edb}', },
+    Range { from: '\u{edc}', to: '\u{edd}', },
+    Range { from: '\u{ede}', to: '\u{edf}', },
+    Range { from: '\u{ee0}', to: '\u{eff}', },
+    Range { from: '\u{f00}', to: '\u{f0b}', },
+    Range { from: '\u{f0c}', to: '\u{f0c}', },
+    Range { from: '\u{f0d}', to: '\u{f42}', },
+    Range { from: '\u{f43}', to: '\u{f43}', },
+    Range { from: '\u{f44}', to: '\u{f47}', },
+    Range { from: '\u{f48}', to: '\u{f48}', },
+    Range { from: '\u{f49}', to: '\u{f4c}', },
+    Range { from: '\u{f4d}', to: '\u{f4d}', },
+    Range { from: '\u{f4e}', to: '\u{f51}', },
+    Range { from: '\u{f52}', to: '\u{f52}', },
+    Range { from: '\u{f53}', to: '\u{f56}', },
+    Range { from: '\u{f57}', to: '\u{f57}', },
+    Range { from: '\u{f58}', to: '\u{f5b}', },
+    Range { from: '\u{f5c}', to: '\u{f5c}', },
+    Range { from: '\u{f5d}', to: '\u{f68}', },
+    Range { from: '\u{f69}', to: '\u{f69}', },
+    Range { from: '\u{f6a}', to: '\u{f6c}', },
+    Range { from: '\u{f6d}', to: '\u{f70}', },
+    Range { from: '\u{f71}', to: '\u{f72}', },
+    Range { from: '\u{f73}', to: '\u{f79}', },
+    Range { from: '\u{f7a}', to: '\u{f80}', },
+    Range { from: '\u{f81}', to: '\u{f81}', },
+    Range { from: '\u{f82}', to: '\u{f92}', },
+    Range { from: '\u{f93}', to: '\u{f93}', },
+    Range { from: '\u{f94}', to: '\u{f97}', },
+    Range { from: '\u{f98}', to: '\u{f98}', },
+    Range { from: '\u{f99}', to: '\u{f9c}', },
+    Range { from: '\u{f9d}', to: '\u{f9d}', },
+    Range { from: '\u{f9e}', to: '\u{fa1}', },
+    Range { from: '\u{fa2}', to: '\u{fa2}', },
+    Range { from: '\u{fa3}', to: '\u{fa6}', },
+    Range { from: '\u{fa7}', to: '\u{fa7}', },
+    Range { from: '\u{fa8}', to: '\u{fab}', },
+    Range { from: '\u{fac}', to: '\u{fac}', },
+    Range { from: '\u{fad}', to: '\u{fb8}', },
+    Range { from: '\u{fb9}', to: '\u{fb9}', },
+    Range { from: '\u{fba}', to: '\u{fbc}', },
+    Range { from: '\u{fbd}', to: '\u{fbd}', },
+    Range { from: '\u{fbe}', to: '\u{fcc}', },
+    Range { from: '\u{fcd}', to: '\u{fcd}', },
+    Range { from: '\u{fce}', to: '\u{fda}', },
+    Range { from: '\u{fdb}', to: '\u{fff}', },
+    Range { from: '\u{1000}', to: '\u{109f}', },
+    Range { from: '\u{10a0}', to: '\u{10c6}', },
+    Range { from: '\u{10c7}', to: '\u{10c7}', },
+    Range { from: '\u{10c8}', to: '\u{10cc}', },
+    Range { from: '\u{10cd}', to: '\u{10cd}', },
+    Range { from: '\u{10ce}', to: '\u{10cf}', },
+    Range { from: '\u{10d0}', to: '\u{10fb}', },
+    Range { from: '\u{10fc}', to: '\u{10fc}', },
+    Range { from: '\u{10fd}', to: '\u{115e}', },
+    Range { from: '\u{115f}', to: '\u{1160}', },
+    Range { from: '\u{1161}', to: '\u{1248}', },
+    Range { from: '\u{1249}', to: '\u{1249}', },
+    Range { from: '\u{124a}', to: '\u{124d}', },
+    Range { from: '\u{124e}', to: '\u{124f}', },
+    Range { from: '\u{1250}', to: '\u{1256}', },
+    Range { from: '\u{1257}', to: '\u{1259}', },
+    Range { from: '\u{125a}', to: '\u{125d}', },
+    Range { from: '\u{125e}', to: '\u{125f}', },
+    Range { from: '\u{1260}', to: '\u{1288}', },
+    Range { from: '\u{1289}', to: '\u{1289}', },
+    Range { from: '\u{128a}', to: '\u{128d}', },
+    Range { from: '\u{128e}', to: '\u{128f}', },
+    Range { from: '\u{1290}', to: '\u{12b0}', },
+    Range { from: '\u{12b1}', to: '\u{12b1}', },
+    Range { from: '\u{12b2}', to: '\u{12b5}', },
+    Range { from: '\u{12b6}', to: '\u{12b7}', },
+    Range { from: '\u{12b8}', to: '\u{12be}', },
+    Range { from: '\u{12bf}', to: '\u{12c1}', },
+    Range { from: '\u{12c2}', to: '\u{12c5}', },
+    Range { from: '\u{12c6}', to: '\u{12c7}', },
+    Range { from: '\u{12c8}', to: '\u{12d6}', },
+    Range { from: '\u{12d7}', to: '\u{12d7}', },
+    Range { from: '\u{12d8}', to: '\u{1310}', },
+    Range { from: '\u{1311}', to: '\u{1311}', },
+    Range { from: '\u{1312}', to: '\u{1315}', },
+    Range { from: '\u{1316}', to: '\u{1317}', },
+    Range { from: '\u{1318}', to: '\u{135a}', },
+    Range { from: '\u{135b}', to: '\u{135c}', },
+    Range { from: '\u{135d}', to: '\u{137c}', },
+    Range { from: '\u{137d}', to: '\u{137f}', },
+    Range { from: '\u{1380}', to: '\u{1399}', },
+    Range { from: '\u{139a}', to: '\u{139f}', },
+    Range { from: '\u{13a0}', to: '\u{13f5}', },
+    Range { from: '\u{13f6}', to: '\u{13f7}', },
+    Range { from: '\u{13f8}', to: '\u{13fd}', },
+    Range { from: '\u{13fe}', to: '\u{13ff}', },
+    Range { from: '\u{1400}', to: '\u{167f}', },
+    Range { from: '\u{1680}', to: '\u{1680}', },
+    Range { from: '\u{1681}', to: '\u{169c}', },
+    Range { from: '\u{169d}', to: '\u{169f}', },
+    Range { from: '\u{16a0}', to: '\u{16f8}', },
+    Range { from: '\u{16f9}', to: '\u{16ff}', },
+    Range { from: '\u{1700}', to: '\u{170c}', },
+    Range { from: '\u{170d}', to: '\u{170d}', },
+    Range { from: '\u{170e}', to: '\u{1714}', },
+    Range { from: '\u{1715}', to: '\u{171f}', },
+    Range { from: '\u{1720}', to: '\u{1736}', },
+    Range { from: '\u{1737}', to: '\u{173f}', },
+    Range { from: '\u{1740}', to: '\u{1753}', },
+    Range { from: '\u{1754}', to: '\u{175f}', },
+    Range { from: '\u{1760}', to: '\u{176c}', },
+    Range { from: '\u{176d}', to: '\u{176d}', },
+    Range { from: '\u{176e}', to: '\u{1770}', },
+    Range { from: '\u{1771}', to: '\u{1771}', },
+    Range { from: '\u{1772}', to: '\u{1773}', },
+    Range { from: '\u{1774}', to: '\u{177f}', },
+    Range { from: '\u{1780}', to: '\u{17b3}', },
+    Range { from: '\u{17b4}', to: '\u{17b5}', },
+    Range { from: '\u{17b6}', to: '\u{17dd}', },
+    Range { from: '\u{17de}', to: '\u{17df}', },
+    Range { from: '\u{17e0}', to: '\u{17e9}', },
+    Range { from: '\u{17ea}', to: '\u{17ef}', },
+    Range { from: '\u{17f0}', to: '\u{17f9}', },
+    Range { from: '\u{17fa}', to: '\u{17ff}', },
+    Range { from: '\u{1800}', to: '\u{1805}', },
+    Range { from: '\u{1806}', to: '\u{1806}', },
+    Range { from: '\u{1807}', to: '\u{180a}', },
+    Range { from: '\u{180b}', to: '\u{180d}', },
+    Range { from: '\u{180e}', to: '\u{180f}', },
+    Range { from: '\u{1810}', to: '\u{1819}', },
+    Range { from: '\u{181a}', to: '\u{181f}', },
+    Range { from: '\u{1820}', to: '\u{1878}', },
+    Range { from: '\u{1879}', to: '\u{187f}', },
+    Range { from: '\u{1880}', to: '\u{18aa}', },
+    Range { from: '\u{18ab}', to: '\u{18af}', },
+    Range { from: '\u{18b0}', to: '\u{18f5}', },
+    Range { from: '\u{18f6}', to: '\u{18ff}', },
+    Range { from: '\u{1900}', to: '\u{191e}', },
+    Range { from: '\u{191f}', to: '\u{191f}', },
+    Range { from: '\u{1920}', to: '\u{192b}', },
+    Range { from: '\u{192c}', to: '\u{192f}', },
+    Range { from: '\u{1930}', to: '\u{193b}', },
+    Range { from: '\u{193c}', to: '\u{193f}', },
+    Range { from: '\u{1940}', to: '\u{1940}', },
+    Range { from: '\u{1941}', to: '\u{1943}', },
+    Range { from: '\u{1944}', to: '\u{196d}', },
+    Range { from: '\u{196e}', to: '\u{196f}', },
+    Range { from: '\u{1970}', to: '\u{1974}', },
+    Range { from: '\u{1975}', to: '\u{197f}', },
+    Range { from: '\u{1980}', to: '\u{19ab}', },
+    Range { from: '\u{19ac}', to: '\u{19af}', },
+    Range { from: '\u{19b0}', to: '\u{19c9}', },
+    Range { from: '\u{19ca}', to: '\u{19cf}', },
+    Range { from: '\u{19d0}', to: '\u{19da}', },
+    Range { from: '\u{19db}', to: '\u{19dd}', },
+    Range { from: '\u{19de}', to: '\u{1a1b}', },
+    Range { from: '\u{1a1c}', to: '\u{1a1d}', },
+    Range { from: '\u{1a1e}', to: '\u{1a5e}', },
+    Range { from: '\u{1a5f}', to: '\u{1a5f}', },
+    Range { from: '\u{1a60}', to: '\u{1a7c}', },
+    Range { from: '\u{1a7d}', to: '\u{1a7e}', },
+    Range { from: '\u{1a7f}', to: '\u{1a89}', },
+    Range { from: '\u{1a8a}', to: '\u{1a8f}', },
+    Range { from: '\u{1a90}', to: '\u{1a99}', },
+    Range { from: '\u{1a9a}', to: '\u{1a9f}', },
+    Range { from: '\u{1aa0}', to: '\u{1aad}', },
+    Range { from: '\u{1aae}', to: '\u{1aaf}', },
+    Range { from: '\u{1ab0}', to: '\u{1ac0}', },
+    Range { from: '\u{1ac1}', to: '\u{1aff}', },
+    Range { from: '\u{1b00}', to: '\u{1b4b}', },
+    Range { from: '\u{1b4c}', to: '\u{1b4f}', },
+    Range { from: '\u{1b50}', to: '\u{1b7c}', },
+    Range { from: '\u{1b7d}', to: '\u{1b7f}', },
+    Range { from: '\u{1b80}', to: '\u{1bf3}', },
+    Range { from: '\u{1bf4}', to: '\u{1bfb}', },
+    Range { from: '\u{1bfc}', to: '\u{1c37}', },
+    Range { from: '\u{1c38}', to: '\u{1c3a}', },
+    Range { from: '\u{1c3b}', to: '\u{1c49}', },
+    Range { from: '\u{1c4a}', to: '\u{1c4c}', },
+    Range { from: '\u{1c4d}', to: '\u{1c7f}', },
+    Range { from: '\u{1c80}', to: '\u{1c83}', },
+    Range { from: '\u{1c84}', to: '\u{1c85}', },
+    Range { from: '\u{1c86}', to: '\u{1c88}', },
+    Range { from: '\u{1c89}', to: '\u{1c8f}', },
+    Range { from: '\u{1c90}', to: '\u{1cba}', },
+    Range { from: '\u{1cbb}', to: '\u{1cbc}', },
+    Range { from: '\u{1cbd}', to: '\u{1cbf}', },
+    Range { from: '\u{1cc0}', to: '\u{1cc7}', },
+    Range { from: '\u{1cc8}', to: '\u{1ccf}', },
+    Range { from: '\u{1cd0}', to: '\u{1cfa}', },
+    Range { from: '\u{1cfb}', to: '\u{1cff}', },
+    Range { from: '\u{1d00}', to: '\u{1d2b}', },
+    Range { from: '\u{1d2c}', to: '\u{1d6a}', },
+    Range { from: '\u{1d6b}', to: '\u{1d77}', },
+    Range { from: '\u{1d78}', to: '\u{1d78}', },
+    Range { from: '\u{1d79}', to: '\u{1d9a}', },
+    Range { from: '\u{1d9b}', to: '\u{1dbf}', },
+    Range { from: '\u{1dc0}', to: '\u{1df9}', },
+    Range { from: '\u{1dfa}', to: '\u{1dfa}', },
+    Range { from: '\u{1dfb}', to: '\u{1dff}', },
+    Range { from: '\u{1e00}', to: '\u{1e94}', },
+    Range { from: '\u{1e95}', to: '\u{1e99}', },
+    Range { from: '\u{1e9a}', to: '\u{1e9b}', },
+    Range { from: '\u{1e9c}', to: '\u{1e9d}', },
+    Range { from: '\u{1e9e}', to: '\u{1efe}', },
+    Range { from: '\u{1eff}', to: '\u{1f07}', },
+    Range { from: '\u{1f08}', to: '\u{1f0f}', },
+    Range { from: '\u{1f10}', to: '\u{1f15}', },
+    Range { from: '\u{1f16}', to: '\u{1f17}', },
+    Range { from: '\u{1f18}', to: '\u{1f1d}', },
+    Range { from: '\u{1f1e}', to: '\u{1f1f}', },
+    Range { from: '\u{1f20}', to: '\u{1f27}', },
+    Range { from: '\u{1f28}', to: '\u{1f2f}', },
+    Range { from: '\u{1f30}', to: '\u{1f37}', },
+    Range { from: '\u{1f38}', to: '\u{1f3f}', },
+    Range { from: '\u{1f40}', to: '\u{1f45}', },
+    Range { from: '\u{1f46}', to: '\u{1f47}', },
+    Range { from: '\u{1f48}', to: '\u{1f4d}', },
+    Range { from: '\u{1f4e}', to: '\u{1f4f}', },
+    Range { from: '\u{1f50}', to: '\u{1f57}', },
+    Range { from: '\u{1f58}', to: '\u{1f5f}', },
+    Range { from: '\u{1f60}', to: '\u{1f67}', },
+    Range { from: '\u{1f68}', to: '\u{1f7d}', },
+    Range { from: '\u{1f7e}', to: '\u{1f7f}', },
+    Range { from: '\u{1f80}', to: '\u{1faf}', },
+    Range { from: '\u{1fb0}', to: '\u{1fb1}', },
+    Range { from: '\u{1fb2}', to: '\u{1fcf}', },
+    Range { from: '\u{1fd0}', to: '\u{1fd2}', },
+    Range { from: '\u{1fd3}', to: '\u{1fd3}', },
+    Range { from: '\u{1fd4}', to: '\u{1fd5}', },
+    Range { from: '\u{1fd6}', to: '\u{1fd7}', },
+    Range { from: '\u{1fd8}', to: '\u{1fdf}', },
+    Range { from: '\u{1fe0}', to: '\u{1fe2}', },
+    Range { from: '\u{1fe3}', to: '\u{1fe3}', },
+    Range { from: '\u{1fe4}', to: '\u{1fe7}', },
+    Range { from: '\u{1fe8}', to: '\u{1fef}', },
+    Range { from: '\u{1ff0}', to: '\u{1ff1}', },
+    Range { from: '\u{1ff2}', to: '\u{1fff}', },
+    Range { from: '\u{2000}', to: '\u{200a}', },
+    Range { from: '\u{200b}', to: '\u{200b}', },
+    Range { from: '\u{200c}', to: '\u{200d}', },
+    Range { from: '\u{200e}', to: '\u{200f}', },
+    Range { from: '\u{2010}', to: '\u{2011}', },
+    Range { from: '\u{2012}', to: '\u{2016}', },
+    Range { from: '\u{2017}', to: '\u{2017}', },
+    Range { from: '\u{2018}', to: '\u{2023}', },
+    Range { from: '\u{2024}', to: '\u{2026}', },
+    Range { from: '\u{2027}', to: '\u{2027}', },
+    Range { from: '\u{2028}', to: '\u{202e}', },
+    Range { from: '\u{202f}', to: '\u{202f}', },
+    Range { from: '\u{2030}', to: '\u{2032}', },
+    Range { from: '\u{2033}', to: '\u{2037}', },
+    Range { from: '\u{2038}', to: '\u{203b}', },
+    Range { from: '\u{203c}', to: '\u{203e}', },
+    Range { from: '\u{203f}', to: '\u{2046}', },
+    Range { from: '\u{2047}', to: '\u{2049}', },
+    Range { from: '\u{204a}', to: '\u{2056}', },
+    Range { from: '\u{2057}', to: '\u{2057}', },
+    Range { from: '\u{2058}', to: '\u{205e}', },
+    Range { from: '\u{205f}', to: '\u{2060}', },
+    Range { from: '\u{2061}', to: '\u{2063}', },
+    Range { from: '\u{2064}', to: '\u{2064}', },
+    Range { from: '\u{2065}', to: '\u{206f}', },
+    Range { from: '\u{2070}', to: '\u{2071}', },
+    Range { from: '\u{2072}', to: '\u{2073}', },
+    Range { from: '\u{2074}', to: '\u{209c}', },
+    Range { from: '\u{209d}', to: '\u{209f}', },
+    Range { from: '\u{20a0}', to: '\u{20a7}', },
+    Range { from: '\u{20a8}', to: '\u{20a8}', },
+    Range { from: '\u{20a9}', to: '\u{20bf}', },
+    Range { from: '\u{20c0}', to: '\u{20cf}', },
+    Range { from: '\u{20d0}', to: '\u{20f0}', },
+    Range { from: '\u{20f1}', to: '\u{20ff}', },
+    Range { from: '\u{2100}', to: '\u{210a}', },
+    Range { from: '\u{210b}', to: '\u{210e}', },
+    Range { from: '\u{210f}', to: '\u{210f}', },
+    Range { from: '\u{2110}', to: '\u{2111}', },
+    Range { from: '\u{2112}', to: '\u{2113}', },
+    Range { from: '\u{2114}', to: '\u{2116}', },
+    Range { from: '\u{2117}', to: '\u{2118}', },
+    Range { from: '\u{2119}', to: '\u{211a}', },
+    Range { from: '\u{211b}', to: '\u{211d}', },
+    Range { from: '\u{211e}', to: '\u{211f}', },
+    Range { from: '\u{2120}', to: '\u{212e}', },
+    Range { from: '\u{212f}', to: '\u{2130}', },
+    Range { from: '\u{2131}', to: '\u{213c}', },
+    Range { from: '\u{213d}', to: '\u{213e}', },
+    Range { from: '\u{213f}', to: '\u{2140}', },
+    Range { from: '\u{2141}', to: '\u{2144}', },
+    Range { from: '\u{2145}', to: '\u{2146}', },
+    Range { from: '\u{2147}', to: '\u{2149}', },
+    Range { from: '\u{214a}', to: '\u{214f}', },
+    Range { from: '\u{2150}', to: '\u{217f}', },
+    Range { from: '\u{2180}', to: '\u{2182}', },
+    Range { from: '\u{2183}', to: '\u{2183}', },
+    Range { from: '\u{2184}', to: '\u{2188}', },
+    Range { from: '\u{2189}', to: '\u{2189}', },
+    Range { from: '\u{218a}', to: '\u{218b}', },
+    Range { from: '\u{218c}', to: '\u{218f}', },
+    Range { from: '\u{2190}', to: '\u{222b}', },
+    Range { from: '\u{222c}', to: '\u{2230}', },
+    Range { from: '\u{2231}', to: '\u{225f}', },
+    Range { from: '\u{2260}', to: '\u{2260}', },
+    Range { from: '\u{2261}', to: '\u{226d}', },
+    Range { from: '\u{226e}', to: '\u{226f}', },
+    Range { from: '\u{2270}', to: '\u{2328}', },
+    Range { from: '\u{2329}', to: '\u{232a}', },
+    Range { from: '\u{232b}', to: '\u{2426}', },
+    Range { from: '\u{2427}', to: '\u{243f}', },
+    Range { from: '\u{2440}', to: '\u{244a}', },
+    Range { from: '\u{244b}', to: '\u{245f}', },
+    Range { from: '\u{2460}', to: '\u{2487}', },
+    Range { from: '\u{2488}', to: '\u{249b}', },
+    Range { from: '\u{249c}', to: '\u{24ea}', },
+    Range { from: '\u{24eb}', to: '\u{2a0b}', },
+    Range { from: '\u{2a0c}', to: '\u{2a0c}', },
+    Range { from: '\u{2a0d}', to: '\u{2a73}', },
+    Range { from: '\u{2a74}', to: '\u{2a76}', },
+    Range { from: '\u{2a77}', to: '\u{2adb}', },
+    Range { from: '\u{2adc}', to: '\u{2adc}', },
+    Range { from: '\u{2add}', to: '\u{2b73}', },
+    Range { from: '\u{2b74}', to: '\u{2b75}', },
+    Range { from: '\u{2b76}', to: '\u{2b95}', },
+    Range { from: '\u{2b96}', to: '\u{2b96}', },
+    Range { from: '\u{2b97}', to: '\u{2bff}', },
+    Range { from: '\u{2c00}', to: '\u{2c2f}', },
+    Range { from: '\u{2c30}', to: '\u{2c5e}', },
+    Range { from: '\u{2c5f}', to: '\u{2c64}', },
+    Range { from: '\u{2c65}', to: '\u{2c66}', },
+    Range { from: '\u{2c67}', to: '\u{2c72}', },
+    Range { from: '\u{2c73}', to: '\u{2c74}', },
+    Range { from: '\u{2c75}', to: '\u{2c75}', },
+    Range { from: '\u{2c76}', to: '\u{2c7b}', },
+    Range { from: '\u{2c7c}', to: '\u{2ce2}', },
+    Range { from: '\u{2ce3}', to: '\u{2cea}', },
+    Range { from: '\u{2ceb}', to: '\u{2ced}', },
+    Range { from: '\u{2cee}', to: '\u{2cf1}', },
+    Range { from: '\u{2cf2}', to: '\u{2cf3}', },
+    Range { from: '\u{2cf4}', to: '\u{2cf8}', },
+    Range { from: '\u{2cf9}', to: '\u{2d25}', },
+    Range { from: '\u{2d26}', to: '\u{2d27}', },
+    Range { from: '\u{2d28}', to: '\u{2d2c}', },
+    Range { from: '\u{2d2d}', to: '\u{2d2d}', },
+    Range { from: '\u{2d2e}', to: '\u{2d2f}', },
+    Range { from: '\u{2d30}', to: '\u{2d67}', },
+    Range { from: '\u{2d68}', to: '\u{2d6e}', },
+    Range { from: '\u{2d6f}', to: '\u{2d70}', },
+    Range { from: '\u{2d71}', to: '\u{2d7e}', },
+    Range { from: '\u{2d7f}', to: '\u{2d96}', },
+    Range { from: '\u{2d97}', to: '\u{2d9f}', },
+    Range { from: '\u{2da0}', to: '\u{2da6}', },
+    Range { from: '\u{2da7}', to: '\u{2da7}', },
+    Range { from: '\u{2da8}', to: '\u{2dae}', },
+    Range { from: '\u{2daf}', to: '\u{2daf}', },
+    Range { from: '\u{2db0}', to: '\u{2db6}', },
+    Range { from: '\u{2db7}', to: '\u{2db7}', },
+    Range { from: '\u{2db8}', to: '\u{2dbe}', },
+    Range { from: '\u{2dbf}', to: '\u{2dbf}', },
+    Range { from: '\u{2dc0}', to: '\u{2dc6}', },
+    Range { from: '\u{2dc7}', to: '\u{2dc7}', },
+    Range { from: '\u{2dc8}', to: '\u{2dce}', },
+    Range { from: '\u{2dcf}', to: '\u{2dcf}', },
+    Range { from: '\u{2dd0}', to: '\u{2dd6}', },
+    Range { from: '\u{2dd7}', to: '\u{2dd7}', },
+    Range { from: '\u{2dd8}', to: '\u{2dde}', },
+    Range { from: '\u{2ddf}', to: '\u{2ddf}', },
+    Range { from: '\u{2de0}', to: '\u{2e52}', },
+    Range { from: '\u{2e53}', to: '\u{2e7f}', },
+    Range { from: '\u{2e80}', to: '\u{2e99}', },
+    Range { from: '\u{2e9a}', to: '\u{2e9a}', },
+    Range { from: '\u{2e9b}', to: '\u{2e9e}', },
+    Range { from: '\u{2e9f}', to: '\u{2e9f}', },
+    Range { from: '\u{2ea0}', to: '\u{2ef2}', },
+    Range { from: '\u{2ef3}', to: '\u{2ef3}', },
+    Range { from: '\u{2ef4}', to: '\u{2eff}', },
+    Range { from: '\u{2f00}', to: '\u{2fd5}', },
+    Range { from: '\u{2fd6}', to: '\u{2fff}', },
+    Range { from: '\u{3000}', to: '\u{3002}', },
+    Range { from: '\u{3003}', to: '\u{3035}', },
+    Range { from: '\u{3036}', to: '\u{303a}', },
+    Range { from: '\u{303b}', to: '\u{303f}', },
+    Range { from: '\u{3040}', to: '\u{3040}', },
+    Range { from: '\u{3041}', to: '\u{3096}', },
+    Range { from: '\u{3097}', to: '\u{3098}', },
+    Range { from: '\u{3099}', to: '\u{309a}', },
+    Range { from: '\u{309b}', to: '\u{309c}', },
+    Range { from: '\u{309d}', to: '\u{309e}', },
+    Range { from: '\u{309f}', to: '\u{309f}', },
+    Range { from: '\u{30a0}', to: '\u{30fe}', },
+    Range { from: '\u{30ff}', to: '\u{30ff}', },
+    Range { from: '\u{3100}', to: '\u{3104}', },
+    Range { from: '\u{3105}', to: '\u{312f}', },
+    Range { from: '\u{3130}', to: '\u{318f}', },
+    Range { from: '\u{3190}', to: '\u{3191}', },
+    Range { from: '\u{3192}', to: '\u{319f}', },
+    Range { from: '\u{31a0}', to: '\u{31e3}', },
+    Range { from: '\u{31e4}', to: '\u{31ef}', },
+    Range { from: '\u{31f0}', to: '\u{31ff}', },
+    Range { from: '\u{3200}', to: '\u{3247}', },
+    Range { from: '\u{3248}', to: '\u{324f}', },
+    Range { from: '\u{3250}', to: '\u{33ff}', },
+    Range { from: '\u{3400}', to: '\u{9ffc}', },
+    Range { from: '\u{9ffd}', to: '\u{9fff}', },
+    Range { from: '\u{a000}', to: '\u{a48c}', },
+    Range { from: '\u{a48d}', to: '\u{a48f}', },
+    Range { from: '\u{a490}', to: '\u{a4c6}', },
+    Range { from: '\u{a4c7}', to: '\u{a4cf}', },
+    Range { from: '\u{a4d0}', to: '\u{a62b}', },
+    Range { from: '\u{a62c}', to: '\u{a63f}', },
+    Range { from: '\u{a640}', to: '\u{a66c}', },
+    Range { from: '\u{a66d}', to: '\u{a67f}', },
+    Range { from: '\u{a680}', to: '\u{a69d}', },
+    Range { from: '\u{a69e}', to: '\u{a6f7}', },
+    Range { from: '\u{a6f8}', to: '\u{a6ff}', },
+    Range { from: '\u{a700}', to: '\u{a721}', },
+    Range { from: '\u{a722}', to: '\u{a72e}', },
+    Range { from: '\u{a72f}', to: '\u{a731}', },
+    Range { from: '\u{a732}', to: '\u{a770}', },
+    Range { from: '\u{a771}', to: '\u{a778}', },
+    Range { from: '\u{a779}', to: '\u{a786}', },
+    Range { from: '\u{a787}', to: '\u{a78a}', },
+    Range { from: '\u{a78b}', to: '\u{a78d}', },
+    Range { from: '\u{a78e}', to: '\u{a78f}', },
+    Range { from: '\u{a790}', to: '\u{a792}', },
+    Range { from: '\u{a793}', to: '\u{a795}', },
+    Range { from: '\u{a796}', to: '\u{a7bf}', },
+    Range { from: '\u{a7c0}', to: '\u{a7c1}', },
+    Range { from: '\u{a7c2}', to: '\u{a7ca}', },
+    Range { from: '\u{a7cb}', to: '\u{a7f4}', },
+    Range { from: '\u{a7f5}', to: '\u{a7f5}', },
+    Range { from: '\u{a7f6}', to: '\u{a7f7}', },
+    Range { from: '\u{a7f8}', to: '\u{a7f9}', },
+    Range { from: '\u{a7fa}', to: '\u{a82c}', },
+    Range { from: '\u{a82d}', to: '\u{a82f}', },
+    Range { from: '\u{a830}', to: '\u{a839}', },
+    Range { from: '\u{a83a}', to: '\u{a83f}', },
+    Range { from: '\u{a840}', to: '\u{a877}', },
+    Range { from: '\u{a878}', to: '\u{a87f}', },
+    Range { from: '\u{a880}', to: '\u{a8c5}', },
+    Range { from: '\u{a8c6}', to: '\u{a8cd}', },
+    Range { from: '\u{a8ce}', to: '\u{a8d9}', },
+    Range { from: '\u{a8da}', to: '\u{a8df}', },
+    Range { from: '\u{a8e0}', to: '\u{a953}', },
+    Range { from: '\u{a954}', to: '\u{a95e}', },
+    Range { from: '\u{a95f}', to: '\u{a97c}', },
+    Range { from: '\u{a97d}', to: '\u{a97f}', },
+    Range { from: '\u{a980}', to: '\u{a9cd}', },
+    Range { from: '\u{a9ce}', to: '\u{a9ce}', },
+    Range { from: '\u{a9cf}', to: '\u{a9d9}', },
+    Range { from: '\u{a9da}', to: '\u{a9dd}', },
+    Range { from: '\u{a9de}', to: '\u{a9fe}', },
+    Range { from: '\u{a9ff}', to: '\u{a9ff}', },
+    Range { from: '\u{aa00}', to: '\u{aa36}', },
+    Range { from: '\u{aa37}', to: '\u{aa3f}', },
+    Range { from: '\u{aa40}', to: '\u{aa4d}', },
+    Range { from: '\u{aa4e}', to: '\u{aa4f}', },
+    Range { from: '\u{aa50}', to: '\u{aa59}', },
+    Range { from: '\u{aa5a}', to: '\u{aa5b}', },
+    Range { from: '\u{aa5c}', to: '\u{aac2}', },
+    Range { from: '\u{aac3}', to: '\u{aada}', },
+    Range { from: '\u{aadb}', to: '\u{aaf6}', },
+    Range { from: '\u{aaf7}', to: '\u{ab00}', },
+    Range { from: '\u{ab01}', to: '\u{ab06}', },
+    Range { from: '\u{ab07}', to: '\u{ab08}', },
+    Range { from: '\u{ab09}', to: '\u{ab0e}', },
+    Range { from: '\u{ab0f}', to: '\u{ab10}', },
+    Range { from: '\u{ab11}', to: '\u{ab16}', },
+    Range { from: '\u{ab17}', to: '\u{ab1f}', },
+    Range { from: '\u{ab20}', to: '\u{ab26}', },
+    Range { from: '\u{ab27}', to: '\u{ab27}', },
+    Range { from: '\u{ab28}', to: '\u{ab2e}', },
+    Range { from: '\u{ab2f}', to: '\u{ab2f}', },
+    Range { from: '\u{ab30}', to: '\u{ab5b}', },
+    Range { from: '\u{ab5c}', to: '\u{ab5f}', },
+    Range { from: '\u{ab60}', to: '\u{ab68}', },
+    Range { from: '\u{ab69}', to: '\u{ab69}', },
+    Range { from: '\u{ab6a}', to: '\u{ab6b}', },
+    Range { from: '\u{ab6c}', to: '\u{ab6f}', },
+    Range { from: '\u{ab70}', to: '\u{abbf}', },
+    Range { from: '\u{abc0}', to: '\u{abed}', },
+    Range { from: '\u{abee}', to: '\u{abef}', },
+    Range { from: '\u{abf0}', to: '\u{abf9}', },
+    Range { from: '\u{abfa}', to: '\u{abff}', },
+    Range { from: '\u{ac00}', to: '\u{d7a3}', },
+    Range { from: '\u{d7a4}', to: '\u{d7af}', },
+    Range { from: '\u{d7b0}', to: '\u{d7c6}', },
+    Range { from: '\u{d7c7}', to: '\u{d7ca}', },
+    Range { from: '\u{d7cb}', to: '\u{d7fb}', },
+    Range { from: '\u{d7fc}', to: '\u{f8ff}', },
+    Range { from: '\u{f900}', to: '\u{f906}', },
+    Range { from: '\u{f907}', to: '\u{f908}', },
+    Range { from: '\u{f909}', to: '\u{fa0d}', },
+    Range { from: '\u{fa0e}', to: '\u{fa0f}', },
+    Range { from: '\u{fa10}', to: '\u{fa12}', },
+    Range { from: '\u{fa13}', to: '\u{fa14}', },
+    Range { from: '\u{fa15}', to: '\u{fa22}', },
+    Range { from: '\u{fa23}', to: '\u{fa24}', },
+    Range { from: '\u{fa25}', to: '\u{fa26}', },
+    Range { from: '\u{fa27}', to: '\u{fa29}', },
+    Range { from: '\u{fa2a}', to: '\u{fa5c}', },
+    Range { from: '\u{fa5d}', to: '\u{fa5e}', },
+    Range { from: '\u{fa5f}', to: '\u{fa6d}', },
+    Range { from: '\u{fa6e}', to: '\u{fa6f}', },
+    Range { from: '\u{fa70}', to: '\u{fad9}', },
+    Range { from: '\u{fada}', to: '\u{faff}', },
+    Range { from: '\u{fb00}', to: '\u{fb04}', },
+    Range { from: '\u{fb05}', to: '\u{fb06}', },
+    Range { from: '\u{fb07}', to: '\u{fb12}', },
+    Range { from: '\u{fb13}', to: '\u{fb17}', },
+    Range { from: '\u{fb18}', to: '\u{fb1c}', },
+    Range { from: '\u{fb1d}', to: '\u{fb4f}', },
+    Range { from: '\u{fb50}', to: '\u{fb51}', },
+    Range { from: '\u{fb52}', to: '\u{fb55}', },
+    Range { from: '\u{fb56}', to: '\u{fb59}', },
+    Range { from: '\u{fb5a}', to: '\u{fb5d}', },
+    Range { from: '\u{fb5e}', to: '\u{fb61}', },
+    Range { from: '\u{fb62}', to: '\u{fb65}', },
+    Range { from: '\u{fb66}', to: '\u{fb69}', },
+    Range { from: '\u{fb6a}', to: '\u{fb6d}', },
+    Range { from: '\u{fb6e}', to: '\u{fb71}', },
+    Range { from: '\u{fb72}', to: '\u{fb75}', },
+    Range { from: '\u{fb76}', to: '\u{fb79}', },
+    Range { from: '\u{fb7a}', to: '\u{fb7d}', },
+    Range { from: '\u{fb7e}', to: '\u{fb81}', },
+    Range { from: '\u{fb82}', to: '\u{fb83}', },
+    Range { from: '\u{fb84}', to: '\u{fb85}', },
+    Range { from: '\u{fb86}', to: '\u{fb87}', },
+    Range { from: '\u{fb88}', to: '\u{fb89}', },
+    Range { from: '\u{fb8a}', to: '\u{fb8b}', },
+    Range { from: '\u{fb8c}', to: '\u{fb8d}', },
+    Range { from: '\u{fb8e}', to: '\u{fb91}', },
+    Range { from: '\u{fb92}', to: '\u{fb95}', },
+    Range { from: '\u{fb96}', to: '\u{fb99}', },
+    Range { from: '\u{fb9a}', to: '\u{fb9d}', },
+    Range { from: '\u{fb9e}', to: '\u{fb9f}', },
+    Range { from: '\u{fba0}', to: '\u{fba3}', },
+    Range { from: '\u{fba4}', to: '\u{fba5}', },
+    Range { from: '\u{fba6}', to: '\u{fba9}', },
+    Range { from: '\u{fbaa}', to: '\u{fbad}', },
+    Range { from: '\u{fbae}', to: '\u{fbaf}', },
+    Range { from: '\u{fbb0}', to: '\u{fbb1}', },
+    Range { from: '\u{fbb2}', to: '\u{fbc1}', },
+    Range { from: '\u{fbc2}', to: '\u{fbd2}', },
+    Range { from: '\u{fbd3}', to: '\u{fbd6}', },
+    Range { from: '\u{fbd7}', to: '\u{fbd8}', },
+    Range { from: '\u{fbd9}', to: '\u{fbda}', },
+    Range { from: '\u{fbdb}', to: '\u{fbdc}', },
+    Range { from: '\u{fbdd}', to: '\u{fbdd}', },
+    Range { from: '\u{fbde}', to: '\u{fbdf}', },
+    Range { from: '\u{fbe0}', to: '\u{fbe1}', },
+    Range { from: '\u{fbe2}', to: '\u{fbe3}', },
+    Range { from: '\u{fbe4}', to: '\u{fbe7}', },
+    Range { from: '\u{fbe8}', to: '\u{fbe9}', },
+    Range { from: '\u{fbea}', to: '\u{fbeb}', },
+    Range { from: '\u{fbec}', to: '\u{fbed}', },
+    Range { from: '\u{fbee}', to: '\u{fbef}', },
+    Range { from: '\u{fbf0}', to: '\u{fbf1}', },
+    Range { from: '\u{fbf2}', to: '\u{fbf3}', },
+    Range { from: '\u{fbf4}', to: '\u{fbf5}', },
+    Range { from: '\u{fbf6}', to: '\u{fbf8}', },
+    Range { from: '\u{fbf9}', to: '\u{fbfb}', },
+    Range { from: '\u{fbfc}', to: '\u{fbff}', },
+    Range { from: '\u{fc00}', to: '\u{fd3b}', },
+    Range { from: '\u{fd3c}', to: '\u{fd3d}', },
+    Range { from: '\u{fd3e}', to: '\u{fd3f}', },
+    Range { from: '\u{fd40}', to: '\u{fd4f}', },
+    Range { from: '\u{fd50}', to: '\u{fd50}', },
+    Range { from: '\u{fd51}', to: '\u{fd52}', },
+    Range { from: '\u{fd53}', to: '\u{fd57}', },
+    Range { from: '\u{fd58}', to: '\u{fd59}', },
+    Range { from: '\u{fd5a}', to: '\u{fd5e}', },
+    Range { from: '\u{fd5f}', to: '\u{fd60}', },
+    Range { from: '\u{fd61}', to: '\u{fd61}', },
+    Range { from: '\u{fd62}', to: '\u{fd63}', },
+    Range { from: '\u{fd64}', to: '\u{fd65}', },
+    Range { from: '\u{fd66}', to: '\u{fd66}', },
+    Range { from: '\u{fd67}', to: '\u{fd68}', },
+    Range { from: '\u{fd69}', to: '\u{fd69}', },
+    Range { from: '\u{fd6a}', to: '\u{fd6b}', },
+    Range { from: '\u{fd6c}', to: '\u{fd6d}', },
+    Range { from: '\u{fd6e}', to: '\u{fd6e}', },
+    Range { from: '\u{fd6f}', to: '\u{fd70}', },
+    Range { from: '\u{fd71}', to: '\u{fd72}', },
+    Range { from: '\u{fd73}', to: '\u{fd75}', },
+    Range { from: '\u{fd76}', to: '\u{fd77}', },
+    Range { from: '\u{fd78}', to: '\u{fd7b}', },
+    Range { from: '\u{fd7c}', to: '\u{fd7d}', },
+    Range { from: '\u{fd7e}', to: '\u{fd82}', },
+    Range { from: '\u{fd83}', to: '\u{fd84}', },
+    Range { from: '\u{fd85}', to: '\u{fd86}', },
+    Range { from: '\u{fd87}', to: '\u{fd88}', },
+    Range { from: '\u{fd89}', to: '\u{fd8f}', },
+    Range { from: '\u{fd90}', to: '\u{fd91}', },
+    Range { from: '\u{fd92}', to: '\u{fd96}', },
+    Range { from: '\u{fd97}', to: '\u{fd98}', },
+    Range { from: '\u{fd99}', to: '\u{fd9b}', },
+    Range { from: '\u{fd9c}', to: '\u{fd9d}', },
+    Range { from: '\u{fd9e}', to: '\u{fdc7}', },
+    Range { from: '\u{fdc8}', to: '\u{fdef}', },
+    Range { from: '\u{fdf0}', to: '\u{fdfd}', },
+    Range { from: '\u{fdfe}', to: '\u{fdff}', },
+    Range { from: '\u{fe00}', to: '\u{fe0f}', },
+    Range { from: '\u{fe10}', to: '\u{fe18}', },
+    Range { from: '\u{fe19}', to: '\u{fe1f}', },
+    Range { from: '\u{fe20}', to: '\u{fe2f}', },
+    Range { from: '\u{fe30}', to: '\u{fe32}', },
+    Range { from: '\u{fe33}', to: '\u{fe34}', },
+    Range { from: '\u{fe35}', to: '\u{fe44}', },
+    Range { from: '\u{fe45}', to: '\u{fe46}', },
+    Range { from: '\u{fe47}', to: '\u{fe48}', },
+    Range { from: '\u{fe49}', to: '\u{fe4c}', },
+    Range { from: '\u{fe4d}', to: '\u{fe4f}', },
+    Range { from: '\u{fe50}', to: '\u{fe51}', },
+    Range { from: '\u{fe52}', to: '\u{fe53}', },
+    Range { from: '\u{fe54}', to: '\u{fe6b}', },
+    Range { from: '\u{fe6c}', to: '\u{fe6f}', },
+    Range { from: '\u{fe70}', to: '\u{fe80}', },
+    Range { from: '\u{fe81}', to: '\u{fe82}', },
+    Range { from: '\u{fe83}', to: '\u{fe84}', },
+    Range { from: '\u{fe85}', to: '\u{fe86}', },
+    Range { from: '\u{fe87}', to: '\u{fe88}', },
+    Range { from: '\u{fe89}', to: '\u{fe8c}', },
+    Range { from: '\u{fe8d}', to: '\u{fe8e}', },
+    Range { from: '\u{fe8f}', to: '\u{fe92}', },
+    Range { from: '\u{fe93}', to: '\u{fe94}', },
+    Range { from: '\u{fe95}', to: '\u{fe98}', },
+    Range { from: '\u{fe99}', to: '\u{fe9c}', },
+    Range { from: '\u{fe9d}', to: '\u{fea0}', },
+    Range { from: '\u{fea1}', to: '\u{fea4}', },
+    Range { from: '\u{fea5}', to: '\u{fea8}', },
+    Range { from: '\u{fea9}', to: '\u{feaa}', },
+    Range { from: '\u{feab}', to: '\u{feac}', },
+    Range { from: '\u{fead}', to: '\u{feae}', },
+    Range { from: '\u{feaf}', to: '\u{feb0}', },
+    Range { from: '\u{feb1}', to: '\u{feb4}', },
+    Range { from: '\u{feb5}', to: '\u{feb8}', },
+    Range { from: '\u{feb9}', to: '\u{febc}', },
+    Range { from: '\u{febd}', to: '\u{fec0}', },
+    Range { from: '\u{fec1}', to: '\u{fec4}', },
+    Range { from: '\u{fec5}', to: '\u{fec8}', },
+    Range { from: '\u{fec9}', to: '\u{fecc}', },
+    Range { from: '\u{fecd}', to: '\u{fed0}', },
+    Range { from: '\u{fed1}', to: '\u{fed4}', },
+    Range { from: '\u{fed5}', to: '\u{fed8}', },
+    Range { from: '\u{fed9}', to: '\u{fedc}', },
+    Range { from: '\u{fedd}', to: '\u{fee0}', },
+    Range { from: '\u{fee1}', to: '\u{fee4}', },
+    Range { from: '\u{fee5}', to: '\u{fee8}', },
+    Range { from: '\u{fee9}', to: '\u{feec}', },
+    Range { from: '\u{feed}', to: '\u{feee}', },
+    Range { from: '\u{feef}', to: '\u{fef0}', },
+    Range { from: '\u{fef1}', to: '\u{fef4}', },
+    Range { from: '\u{fef5}', to: '\u{fef6}', },
+    Range { from: '\u{fef7}', to: '\u{fef8}', },
+    Range { from: '\u{fef9}', to: '\u{fefa}', },
+    Range { from: '\u{fefb}', to: '\u{fefc}', },
+    Range { from: '\u{fefd}', to: '\u{fefe}', },
+    Range { from: '\u{feff}', to: '\u{ffbe}', },
+    Range { from: '\u{ffbf}', to: '\u{ffc1}', },
+    Range { from: '\u{ffc2}', to: '\u{ffc7}', },
+    Range { from: '\u{ffc8}', to: '\u{ffc9}', },
+    Range { from: '\u{ffca}', to: '\u{ffcf}', },
+    Range { from: '\u{ffd0}', to: '\u{ffd1}', },
+    Range { from: '\u{ffd2}', to: '\u{ffd7}', },
+    Range { from: '\u{ffd8}', to: '\u{ffd9}', },
+    Range { from: '\u{ffda}', to: '\u{ffdc}', },
+    Range { from: '\u{ffdd}', to: '\u{ffdf}', },
+    Range { from: '\u{ffe0}', to: '\u{ffee}', },
+    Range { from: '\u{ffef}', to: '\u{ffff}', },
+    Range { from: '\u{10000}', to: '\u{1000b}', },
+    Range { from: '\u{1000c}', to: '\u{1000c}', },
+    Range { from: '\u{1000d}', to: '\u{10026}', },
+    Range { from: '\u{10027}', to: '\u{10027}', },
+    Range { from: '\u{10028}', to: '\u{1003a}', },
+    Range { from: '\u{1003b}', to: '\u{1003b}', },
+    Range { from: '\u{1003c}', to: '\u{1003d}', },
+    Range { from: '\u{1003e}', to: '\u{1003e}', },
+    Range { from: '\u{1003f}', to: '\u{1004d}', },
+    Range { from: '\u{1004e}', to: '\u{1004f}', },
+    Range { from: '\u{10050}', to: '\u{1005d}', },
+    Range { from: '\u{1005e}', to: '\u{1007f}', },
+    Range { from: '\u{10080}', to: '\u{100fa}', },
+    Range { from: '\u{100fb}', to: '\u{100ff}', },
+    Range { from: '\u{10100}', to: '\u{10102}', },
+    Range { from: '\u{10103}', to: '\u{10106}', },
+    Range { from: '\u{10107}', to: '\u{10133}', },
+    Range { from: '\u{10134}', to: '\u{10136}', },
+    Range { from: '\u{10137}', to: '\u{1018e}', },
+    Range { from: '\u{1018f}', to: '\u{1018f}', },
+    Range { from: '\u{10190}', to: '\u{1019c}', },
+    Range { from: '\u{1019d}', to: '\u{1019f}', },
+    Range { from: '\u{101a0}', to: '\u{101a0}', },
+    Range { from: '\u{101a1}', to: '\u{101cf}', },
+    Range { from: '\u{101d0}', to: '\u{101fd}', },
+    Range { from: '\u{101fe}', to: '\u{1027f}', },
+    Range { from: '\u{10280}', to: '\u{1029c}', },
+    Range { from: '\u{1029d}', to: '\u{1029f}', },
+    Range { from: '\u{102a0}', to: '\u{102d0}', },
+    Range { from: '\u{102d1}', to: '\u{102df}', },
+    Range { from: '\u{102e0}', to: '\u{102fb}', },
+    Range { from: '\u{102fc}', to: '\u{102ff}', },
+    Range { from: '\u{10300}', to: '\u{10323}', },
+    Range { from: '\u{10324}', to: '\u{1032c}', },
+    Range { from: '\u{1032d}', to: '\u{1034a}', },
+    Range { from: '\u{1034b}', to: '\u{1034f}', },
+    Range { from: '\u{10350}', to: '\u{1037a}', },
+    Range { from: '\u{1037b}', to: '\u{1037f}', },
+    Range { from: '\u{10380}', to: '\u{1039d}', },
+    Range { from: '\u{1039e}', to: '\u{1039e}', },
+    Range { from: '\u{1039f}', to: '\u{103c3}', },
+    Range { from: '\u{103c4}', to: '\u{103c7}', },
+    Range { from: '\u{103c8}', to: '\u{103d5}', },
+    Range { from: '\u{103d6}', to: '\u{103ff}', },
+    Range { from: '\u{10400}', to: '\u{10427}', },
+    Range { from: '\u{10428}', to: '\u{1049d}', },
+    Range { from: '\u{1049e}', to: '\u{1049f}', },
+    Range { from: '\u{104a0}', to: '\u{104a9}', },
+    Range { from: '\u{104aa}', to: '\u{104af}', },
+    Range { from: '\u{104b0}', to: '\u{104d3}', },
+    Range { from: '\u{104d4}', to: '\u{104d7}', },
+    Range { from: '\u{104d8}', to: '\u{104fb}', },
+    Range { from: '\u{104fc}', to: '\u{104ff}', },
+    Range { from: '\u{10500}', to: '\u{10527}', },
+    Range { from: '\u{10528}', to: '\u{1052f}', },
+    Range { from: '\u{10530}', to: '\u{10563}', },
+    Range { from: '\u{10564}', to: '\u{1056e}', },
+    Range { from: '\u{1056f}', to: '\u{1056f}', },
+    Range { from: '\u{10570}', to: '\u{105ff}', },
+    Range { from: '\u{10600}', to: '\u{10736}', },
+    Range { from: '\u{10737}', to: '\u{1073f}', },
+    Range { from: '\u{10740}', to: '\u{10755}', },
+    Range { from: '\u{10756}', to: '\u{1075f}', },
+    Range { from: '\u{10760}', to: '\u{10767}', },
+    Range { from: '\u{10768}', to: '\u{107ff}', },
+    Range { from: '\u{10800}', to: '\u{10805}', },
+    Range { from: '\u{10806}', to: '\u{10807}', },
+    Range { from: '\u{10808}', to: '\u{10809}', },
+    Range { from: '\u{1080a}', to: '\u{10835}', },
+    Range { from: '\u{10836}', to: '\u{10836}', },
+    Range { from: '\u{10837}', to: '\u{10838}', },
+    Range { from: '\u{10839}', to: '\u{1083b}', },
+    Range { from: '\u{1083c}', to: '\u{1083c}', },
+    Range { from: '\u{1083d}', to: '\u{1083e}', },
+    Range { from: '\u{1083f}', to: '\u{10855}', },
+    Range { from: '\u{10856}', to: '\u{10856}', },
+    Range { from: '\u{10857}', to: '\u{1089e}', },
+    Range { from: '\u{1089f}', to: '\u{108a6}', },
+    Range { from: '\u{108a7}', to: '\u{108af}', },
+    Range { from: '\u{108b0}', to: '\u{108df}', },
+    Range { from: '\u{108e0}', to: '\u{108f2}', },
+    Range { from: '\u{108f3}', to: '\u{108f3}', },
+    Range { from: '\u{108f4}', to: '\u{108f5}', },
+    Range { from: '\u{108f6}', to: '\u{108fa}', },
+    Range { from: '\u{108fb}', to: '\u{1091b}', },
+    Range { from: '\u{1091c}', to: '\u{1091e}', },
+    Range { from: '\u{1091f}', to: '\u{10939}', },
+    Range { from: '\u{1093a}', to: '\u{1093e}', },
+    Range { from: '\u{1093f}', to: '\u{1093f}', },
+    Range { from: '\u{10940}', to: '\u{1097f}', },
+    Range { from: '\u{10980}', to: '\u{109b7}', },
+    Range { from: '\u{109b8}', to: '\u{109bb}', },
+    Range { from: '\u{109bc}', to: '\u{109cf}', },
+    Range { from: '\u{109d0}', to: '\u{109d1}', },
+    Range { from: '\u{109d2}', to: '\u{10a03}', },
+    Range { from: '\u{10a04}', to: '\u{10a04}', },
+    Range { from: '\u{10a05}', to: '\u{10a06}', },
+    Range { from: '\u{10a07}', to: '\u{10a0b}', },
+    Range { from: '\u{10a0c}', to: '\u{10a13}', },
+    Range { from: '\u{10a14}', to: '\u{10a14}', },
+    Range { from: '\u{10a15}', to: '\u{10a17}', },
+    Range { from: '\u{10a18}', to: '\u{10a18}', },
+    Range { from: '\u{10a19}', to: '\u{10a35}', },
+    Range { from: '\u{10a36}', to: '\u{10a37}', },
+    Range { from: '\u{10a38}', to: '\u{10a3a}', },
+    Range { from: '\u{10a3b}', to: '\u{10a3e}', },
+    Range { from: '\u{10a3f}', to: '\u{10a48}', },
+    Range { from: '\u{10a49}', to: '\u{10a4f}', },
+    Range { from: '\u{10a50}', to: '\u{10a58}', },
+    Range { from: '\u{10a59}', to: '\u{10a5f}', },
+    Range { from: '\u{10a60}', to: '\u{10a9f}', },
+    Range { from: '\u{10aa0}', to: '\u{10abf}', },
+    Range { from: '\u{10ac0}', to: '\u{10ae6}', },
+    Range { from: '\u{10ae7}', to: '\u{10aea}', },
+    Range { from: '\u{10aeb}', to: '\u{10af6}', },
+    Range { from: '\u{10af7}', to: '\u{10aff}', },
+    Range { from: '\u{10b00}', to: '\u{10b35}', },
+    Range { from: '\u{10b36}', to: '\u{10b38}', },
+    Range { from: '\u{10b39}', to: '\u{10b55}', },
+    Range { from: '\u{10b56}', to: '\u{10b57}', },
+    Range { from: '\u{10b58}', to: '\u{10b72}', },
+    Range { from: '\u{10b73}', to: '\u{10b77}', },
+    Range { from: '\u{10b78}', to: '\u{10b91}', },
+    Range { from: '\u{10b92}', to: '\u{10b98}', },
+    Range { from: '\u{10b99}', to: '\u{10b9c}', },
+    Range { from: '\u{10b9d}', to: '\u{10ba8}', },
+    Range { from: '\u{10ba9}', to: '\u{10baf}', },
+    Range { from: '\u{10bb0}', to: '\u{10bff}', },
+    Range { from: '\u{10c00}', to: '\u{10c48}', },
+    Range { from: '\u{10c49}', to: '\u{10c7f}', },
+    Range { from: '\u{10c80}', to: '\u{10cb2}', },
+    Range { from: '\u{10cb3}', to: '\u{10cbf}', },
+    Range { from: '\u{10cc0}', to: '\u{10cf2}', },
+    Range { from: '\u{10cf3}', to: '\u{10cf9}', },
+    Range { from: '\u{10cfa}', to: '\u{10d27}', },
+    Range { from: '\u{10d28}', to: '\u{10d2f}', },
+    Range { from: '\u{10d30}', to: '\u{10d39}', },
+    Range { from: '\u{10d3a}', to: '\u{10e5f}', },
+    Range { from: '\u{10e60}', to: '\u{10e7e}', },
+    Range { from: '\u{10e7f}', to: '\u{10e7f}', },
+    Range { from: '\u{10e80}', to: '\u{10ea9}', },
+    Range { from: '\u{10eaa}', to: '\u{10eaa}', },
+    Range { from: '\u{10eab}', to: '\u{10ead}', },
+    Range { from: '\u{10eae}', to: '\u{10eaf}', },
+    Range { from: '\u{10eb0}', to: '\u{10eb1}', },
+    Range { from: '\u{10eb2}', to: '\u{10eff}', },
+    Range { from: '\u{10f00}', to: '\u{10f27}', },
+    Range { from: '\u{10f28}', to: '\u{10f2f}', },
+    Range { from: '\u{10f30}', to: '\u{10f59}', },
+    Range { from: '\u{10f5a}', to: '\u{10faf}', },
+    Range { from: '\u{10fb0}', to: '\u{10fcb}', },
+    Range { from: '\u{10fcc}', to: '\u{10fdf}', },
+    Range { from: '\u{10fe0}', to: '\u{10ff6}', },
+    Range { from: '\u{10ff7}', to: '\u{10fff}', },
+    Range { from: '\u{11000}', to: '\u{1104d}', },
+    Range { from: '\u{1104e}', to: '\u{11051}', },
+    Range { from: '\u{11052}', to: '\u{1106f}', },
+    Range { from: '\u{11070}', to: '\u{1107e}', },
+    Range { from: '\u{1107f}', to: '\u{110bc}', },
+    Range { from: '\u{110bd}', to: '\u{110bd}', },
+    Range { from: '\u{110be}', to: '\u{110c1}', },
+    Range { from: '\u{110c2}', to: '\u{110cf}', },
+    Range { from: '\u{110d0}', to: '\u{110e8}', },
+    Range { from: '\u{110e9}', to: '\u{110ef}', },
+    Range { from: '\u{110f0}', to: '\u{110f9}', },
+    Range { from: '\u{110fa}', to: '\u{110ff}', },
+    Range { from: '\u{11100}', to: '\u{11134}', },
+    Range { from: '\u{11135}', to: '\u{11135}', },
+    Range { from: '\u{11136}', to: '\u{11147}', },
+    Range { from: '\u{11148}', to: '\u{1114f}', },
+    Range { from: '\u{11150}', to: '\u{11176}', },
+    Range { from: '\u{11177}', to: '\u{1117f}', },
+    Range { from: '\u{11180}', to: '\u{111df}', },
+    Range { from: '\u{111e0}', to: '\u{111e0}', },
+    Range { from: '\u{111e1}', to: '\u{111f4}', },
+    Range { from: '\u{111f5}', to: '\u{111ff}', },
+    Range { from: '\u{11200}', to: '\u{11211}', },
+    Range { from: '\u{11212}', to: '\u{11212}', },
+    Range { from: '\u{11213}', to: '\u{1123e}', },
+    Range { from: '\u{1123f}', to: '\u{1127f}', },
+    Range { from: '\u{11280}', to: '\u{11286}', },
+    Range { from: '\u{11287}', to: '\u{11289}', },
+    Range { from: '\u{1128a}', to: '\u{1128d}', },
+    Range { from: '\u{1128e}', to: '\u{1128e}', },
+    Range { from: '\u{1128f}', to: '\u{1129d}', },
+    Range { from: '\u{1129e}', to: '\u{1129e}', },
+    Range { from: '\u{1129f}', to: '\u{112a9}', },
+    Range { from: '\u{112aa}', to: '\u{112af}', },
+    Range { from: '\u{112b0}', to: '\u{112ea}', },
+    Range { from: '\u{112eb}', to: '\u{112ef}', },
+    Range { from: '\u{112f0}', to: '\u{112f9}', },
+    Range { from: '\u{112fa}', to: '\u{112ff}', },
+    Range { from: '\u{11300}', to: '\u{11303}', },
+    Range { from: '\u{11304}', to: '\u{11304}', },
+    Range { from: '\u{11305}', to: '\u{1130c}', },
+    Range { from: '\u{1130d}', to: '\u{1130e}', },
+    Range { from: '\u{1130f}', to: '\u{11310}', },
+    Range { from: '\u{11311}', to: '\u{11312}', },
+    Range { from: '\u{11313}', to: '\u{11328}', },
+    Range { from: '\u{11329}', to: '\u{11329}', },
+    Range { from: '\u{1132a}', to: '\u{11330}', },
+    Range { from: '\u{11331}', to: '\u{11331}', },
+    Range { from: '\u{11332}', to: '\u{11333}', },
+    Range { from: '\u{11334}', to: '\u{11334}', },
+    Range { from: '\u{11335}', to: '\u{11339}', },
+    Range { from: '\u{1133a}', to: '\u{1133a}', },
+    Range { from: '\u{1133b}', to: '\u{11344}', },
+    Range { from: '\u{11345}', to: '\u{11346}', },
+    Range { from: '\u{11347}', to: '\u{11348}', },
+    Range { from: '\u{11349}', to: '\u{1134a}', },
+    Range { from: '\u{1134b}', to: '\u{1134d}', },
+    Range { from: '\u{1134e}', to: '\u{1134f}', },
+    Range { from: '\u{11350}', to: '\u{11350}', },
+    Range { from: '\u{11351}', to: '\u{11356}', },
+    Range { from: '\u{11357}', to: '\u{11357}', },
+    Range { from: '\u{11358}', to: '\u{1135c}', },
+    Range { from: '\u{1135d}', to: '\u{11363}', },
+    Range { from: '\u{11364}', to: '\u{11365}', },
+    Range { from: '\u{11366}', to: '\u{1136c}', },
+    Range { from: '\u{1136d}', to: '\u{1136f}', },
+    Range { from: '\u{11370}', to: '\u{11374}', },
+    Range { from: '\u{11375}', to: '\u{113ff}', },
+    Range { from: '\u{11400}', to: '\u{1145b}', },
+    Range { from: '\u{1145c}', to: '\u{1145c}', },
+    Range { from: '\u{1145d}', to: '\u{11461}', },
+    Range { from: '\u{11462}', to: '\u{1147f}', },
+    Range { from: '\u{11480}', to: '\u{114c7}', },
+    Range { from: '\u{114c8}', to: '\u{114cf}', },
+    Range { from: '\u{114d0}', to: '\u{114d9}', },
+    Range { from: '\u{114da}', to: '\u{1157f}', },
+    Range { from: '\u{11580}', to: '\u{115b5}', },
+    Range { from: '\u{115b6}', to: '\u{115b7}', },
+    Range { from: '\u{115b8}', to: '\u{115dd}', },
+    Range { from: '\u{115de}', to: '\u{115ff}', },
+    Range { from: '\u{11600}', to: '\u{11644}', },
+    Range { from: '\u{11645}', to: '\u{1164f}', },
+    Range { from: '\u{11650}', to: '\u{11659}', },
+    Range { from: '\u{1165a}', to: '\u{1165f}', },
+    Range { from: '\u{11660}', to: '\u{1166c}', },
+    Range { from: '\u{1166d}', to: '\u{1167f}', },
+    Range { from: '\u{11680}', to: '\u{116b8}', },
+    Range { from: '\u{116b9}', to: '\u{116bf}', },
+    Range { from: '\u{116c0}', to: '\u{116c9}', },
+    Range { from: '\u{116ca}', to: '\u{116ff}', },
+    Range { from: '\u{11700}', to: '\u{1171a}', },
+    Range { from: '\u{1171b}', to: '\u{1171c}', },
+    Range { from: '\u{1171d}', to: '\u{1172b}', },
+    Range { from: '\u{1172c}', to: '\u{1172f}', },
+    Range { from: '\u{11730}', to: '\u{1173f}', },
+    Range { from: '\u{11740}', to: '\u{117ff}', },
+    Range { from: '\u{11800}', to: '\u{1183b}', },
+    Range { from: '\u{1183c}', to: '\u{1189f}', },
+    Range { from: '\u{118a0}', to: '\u{118bf}', },
+    Range { from: '\u{118c0}', to: '\u{118f2}', },
+    Range { from: '\u{118f3}', to: '\u{118fe}', },
+    Range { from: '\u{118ff}', to: '\u{11906}', },
+    Range { from: '\u{11907}', to: '\u{11908}', },
+    Range { from: '\u{11909}', to: '\u{11909}', },
+    Range { from: '\u{1190a}', to: '\u{1190b}', },
+    Range { from: '\u{1190c}', to: '\u{11913}', },
+    Range { from: '\u{11914}', to: '\u{11914}', },
+    Range { from: '\u{11915}', to: '\u{11916}', },
+    Range { from: '\u{11917}', to: '\u{11917}', },
+    Range { from: '\u{11918}', to: '\u{11935}', },
+    Range { from: '\u{11936}', to: '\u{11936}', },
+    Range { from: '\u{11937}', to: '\u{11938}', },
+    Range { from: '\u{11939}', to: '\u{1193a}', },
+    Range { from: '\u{1193b}', to: '\u{11946}', },
+    Range { from: '\u{11947}', to: '\u{1194f}', },
+    Range { from: '\u{11950}', to: '\u{11959}', },
+    Range { from: '\u{1195a}', to: '\u{1199f}', },
+    Range { from: '\u{119a0}', to: '\u{119a7}', },
+    Range { from: '\u{119a8}', to: '\u{119a9}', },
+    Range { from: '\u{119aa}', to: '\u{119d7}', },
+    Range { from: '\u{119d8}', to: '\u{119d9}', },
+    Range { from: '\u{119da}', to: '\u{119e4}', },
+    Range { from: '\u{119e5}', to: '\u{119ff}', },
+    Range { from: '\u{11a00}', to: '\u{11a47}', },
+    Range { from: '\u{11a48}', to: '\u{11a4f}', },
+    Range { from: '\u{11a50}', to: '\u{11aa2}', },
+    Range { from: '\u{11aa3}', to: '\u{11abf}', },
+    Range { from: '\u{11ac0}', to: '\u{11af8}', },
+    Range { from: '\u{11af9}', to: '\u{11bff}', },
+    Range { from: '\u{11c00}', to: '\u{11c08}', },
+    Range { from: '\u{11c09}', to: '\u{11c09}', },
+    Range { from: '\u{11c0a}', to: '\u{11c36}', },
+    Range { from: '\u{11c37}', to: '\u{11c37}', },
+    Range { from: '\u{11c38}', to: '\u{11c45}', },
+    Range { from: '\u{11c46}', to: '\u{11c4f}', },
+    Range { from: '\u{11c50}', to: '\u{11c6c}', },
+    Range { from: '\u{11c6d}', to: '\u{11c6f}', },
+    Range { from: '\u{11c70}', to: '\u{11c8f}', },
+    Range { from: '\u{11c90}', to: '\u{11c91}', },
+    Range { from: '\u{11c92}', to: '\u{11ca7}', },
+    Range { from: '\u{11ca8}', to: '\u{11ca8}', },
+    Range { from: '\u{11ca9}', to: '\u{11cb6}', },
+    Range { from: '\u{11cb7}', to: '\u{11cff}', },
+    Range { from: '\u{11d00}', to: '\u{11d06}', },
+    Range { from: '\u{11d07}', to: '\u{11d07}', },
+    Range { from: '\u{11d08}', to: '\u{11d09}', },
+    Range { from: '\u{11d0a}', to: '\u{11d0a}', },
+    Range { from: '\u{11d0b}', to: '\u{11d36}', },
+    Range { from: '\u{11d37}', to: '\u{11d39}', },
+    Range { from: '\u{11d3a}', to: '\u{11d3b}', },
+    Range { from: '\u{11d3c}', to: '\u{11d3d}', },
+    Range { from: '\u{11d3e}', to: '\u{11d3e}', },
+    Range { from: '\u{11d3f}', to: '\u{11d47}', },
+    Range { from: '\u{11d48}', to: '\u{11d4f}', },
+    Range { from: '\u{11d50}', to: '\u{11d59}', },
+    Range { from: '\u{11d5a}', to: '\u{11d5f}', },
+    Range { from: '\u{11d60}', to: '\u{11d65}', },
+    Range { from: '\u{11d66}', to: '\u{11d66}', },
+    Range { from: '\u{11d67}', to: '\u{11d68}', },
+    Range { from: '\u{11d69}', to: '\u{11d69}', },
+    Range { from: '\u{11d6a}', to: '\u{11d8e}', },
+    Range { from: '\u{11d8f}', to: '\u{11d8f}', },
+    Range { from: '\u{11d90}', to: '\u{11d91}', },
+    Range { from: '\u{11d92}', to: '\u{11d92}', },
+    Range { from: '\u{11d93}', to: '\u{11d98}', },
+    Range { from: '\u{11d99}', to: '\u{11d9f}', },
+    Range { from: '\u{11da0}', to: '\u{11da9}', },
+    Range { from: '\u{11daa}', to: '\u{11edf}', },
+    Range { from: '\u{11ee0}', to: '\u{11ef8}', },
+    Range { from: '\u{11ef9}', to: '\u{11faf}', },
+    Range { from: '\u{11fb0}', to: '\u{11fb0}', },
+    Range { from: '\u{11fb1}', to: '\u{11fbf}', },
+    Range { from: '\u{11fc0}', to: '\u{11ff1}', },
+    Range { from: '\u{11ff2}', to: '\u{11ffe}', },
+    Range { from: '\u{11fff}', to: '\u{12399}', },
+    Range { from: '\u{1239a}', to: '\u{123ff}', },
+    Range { from: '\u{12400}', to: '\u{1246e}', },
+    Range { from: '\u{1246f}', to: '\u{1246f}', },
+    Range { from: '\u{12470}', to: '\u{12474}', },
+    Range { from: '\u{12475}', to: '\u{1247f}', },
+    Range { from: '\u{12480}', to: '\u{12543}', },
+    Range { from: '\u{12544}', to: '\u{12fff}', },
+    Range { from: '\u{13000}', to: '\u{1342e}', },
+    Range { from: '\u{1342f}', to: '\u{143ff}', },
+    Range { from: '\u{14400}', to: '\u{14646}', },
+    Range { from: '\u{14647}', to: '\u{167ff}', },
+    Range { from: '\u{16800}', to: '\u{16a38}', },
+    Range { from: '\u{16a39}', to: '\u{16a3f}', },
+    Range { from: '\u{16a40}', to: '\u{16a5e}', },
+    Range { from: '\u{16a5f}', to: '\u{16a5f}', },
+    Range { from: '\u{16a60}', to: '\u{16a69}', },
+    Range { from: '\u{16a6a}', to: '\u{16a6d}', },
+    Range { from: '\u{16a6e}', to: '\u{16a6f}', },
+    Range { from: '\u{16a70}', to: '\u{16acf}', },
+    Range { from: '\u{16ad0}', to: '\u{16aed}', },
+    Range { from: '\u{16aee}', to: '\u{16aef}', },
+    Range { from: '\u{16af0}', to: '\u{16af5}', },
+    Range { from: '\u{16af6}', to: '\u{16aff}', },
+    Range { from: '\u{16b00}', to: '\u{16b45}', },
+    Range { from: '\u{16b46}', to: '\u{16b4f}', },
+    Range { from: '\u{16b50}', to: '\u{16b59}', },
+    Range { from: '\u{16b5a}', to: '\u{16b5a}', },
+    Range { from: '\u{16b5b}', to: '\u{16b61}', },
+    Range { from: '\u{16b62}', to: '\u{16b62}', },
+    Range { from: '\u{16b63}', to: '\u{16b77}', },
+    Range { from: '\u{16b78}', to: '\u{16b7c}', },
+    Range { from: '\u{16b7d}', to: '\u{16b8f}', },
+    Range { from: '\u{16b90}', to: '\u{16e3f}', },
+    Range { from: '\u{16e40}', to: '\u{16e5f}', },
+    Range { from: '\u{16e60}', to: '\u{16e9a}', },
+    Range { from: '\u{16e9b}', to: '\u{16eff}', },
+    Range { from: '\u{16f00}', to: '\u{16f4a}', },
+    Range { from: '\u{16f4b}', to: '\u{16f4e}', },
+    Range { from: '\u{16f4f}', to: '\u{16f87}', },
+    Range { from: '\u{16f88}', to: '\u{16f8e}', },
+    Range { from: '\u{16f8f}', to: '\u{16f9f}', },
+    Range { from: '\u{16fa0}', to: '\u{16fdf}', },
+    Range { from: '\u{16fe0}', to: '\u{16fe4}', },
+    Range { from: '\u{16fe5}', to: '\u{16fef}', },
+    Range { from: '\u{16ff0}', to: '\u{16ff1}', },
+    Range { from: '\u{16ff2}', to: '\u{16fff}', },
+    Range { from: '\u{17000}', to: '\u{187f7}', },
+    Range { from: '\u{187f8}', to: '\u{187ff}', },
+    Range { from: '\u{18800}', to: '\u{18cd5}', },
+    Range { from: '\u{18cd6}', to: '\u{18cff}', },
+    Range { from: '\u{18d00}', to: '\u{18d08}', },
+    Range { from: '\u{18d09}', to: '\u{1afff}', },
+    Range { from: '\u{1b000}', to: '\u{1b11e}', },
+    Range { from: '\u{1b11f}', to: '\u{1b14f}', },
+    Range { from: '\u{1b150}', to: '\u{1b152}', },
+    Range { from: '\u{1b153}', to: '\u{1b163}', },
+    Range { from: '\u{1b164}', to: '\u{1b167}', },
+    Range { from: '\u{1b168}', to: '\u{1b16f}', },
+    Range { from: '\u{1b170}', to: '\u{1b2fb}', },
+    Range { from: '\u{1b2fc}', to: '\u{1bbff}', },
+    Range { from: '\u{1bc00}', to: '\u{1bc6a}', },
+    Range { from: '\u{1bc6b}', to: '\u{1bc6f}', },
+    Range { from: '\u{1bc70}', to: '\u{1bc7c}', },
+    Range { from: '\u{1bc7d}', to: '\u{1bc7f}', },
+    Range { from: '\u{1bc80}', to: '\u{1bc88}', },
+    Range { from: '\u{1bc89}', to: '\u{1bc8f}', },
+    Range { from: '\u{1bc90}', to: '\u{1bc99}', },
+    Range { from: '\u{1bc9a}', to: '\u{1bc9b}', },
+    Range { from: '\u{1bc9c}', to: '\u{1bc9f}', },
+    Range { from: '\u{1bca0}', to: '\u{1bca3}', },
+    Range { from: '\u{1bca4}', to: '\u{1cfff}', },
+    Range { from: '\u{1d000}', to: '\u{1d0f5}', },
+    Range { from: '\u{1d0f6}', to: '\u{1d0ff}', },
+    Range { from: '\u{1d100}', to: '\u{1d126}', },
+    Range { from: '\u{1d127}', to: '\u{1d128}', },
+    Range { from: '\u{1d129}', to: '\u{1d15d}', },
+    Range { from: '\u{1d15e}', to: '\u{1d164}', },
+    Range { from: '\u{1d165}', to: '\u{1d172}', },
+    Range { from: '\u{1d173}', to: '\u{1d17a}', },
+    Range { from: '\u{1d17b}', to: '\u{1d1ba}', },
+    Range { from: '\u{1d1bb}', to: '\u{1d1c0}', },
+    Range { from: '\u{1d1c1}', to: '\u{1d1e8}', },
+    Range { from: '\u{1d1e9}', to: '\u{1d1ff}', },
+    Range { from: '\u{1d200}', to: '\u{1d245}', },
+    Range { from: '\u{1d246}', to: '\u{1d2df}', },
+    Range { from: '\u{1d2e0}', to: '\u{1d2f3}', },
+    Range { from: '\u{1d2f4}', to: '\u{1d2ff}', },
+    Range { from: '\u{1d300}', to: '\u{1d356}', },
+    Range { from: '\u{1d357}', to: '\u{1d35f}', },
+    Range { from: '\u{1d360}', to: '\u{1d378}', },
+    Range { from: '\u{1d379}', to: '\u{1d3ff}', },
+    Range { from: '\u{1d400}', to: '\u{1d49f}', },
+    Range { from: '\u{1d4a0}', to: '\u{1d4a1}', },
+    Range { from: '\u{1d4a2}', to: '\u{1d4a2}', },
+    Range { from: '\u{1d4a3}', to: '\u{1d4a4}', },
+    Range { from: '\u{1d4a5}', to: '\u{1d4a6}', },
+    Range { from: '\u{1d4a7}', to: '\u{1d4a8}', },
+    Range { from: '\u{1d4a9}', to: '\u{1d50a}', },
+    Range { from: '\u{1d50b}', to: '\u{1d50c}', },
+    Range { from: '\u{1d50d}', to: '\u{1d546}', },
+    Range { from: '\u{1d547}', to: '\u{1d549}', },
+    Range { from: '\u{1d54a}', to: '\u{1d6a5}', },
+    Range { from: '\u{1d6a6}', to: '\u{1d6a7}', },
+    Range { from: '\u{1d6a8}', to: '\u{1d6d2}', },
+    Range { from: '\u{1d6d3}', to: '\u{1d6d4}', },
+    Range { from: '\u{1d6d5}', to: '\u{1d70c}', },
+    Range { from: '\u{1d70d}', to: '\u{1d70e}', },
+    Range { from: '\u{1d70f}', to: '\u{1d746}', },
+    Range { from: '\u{1d747}', to: '\u{1d748}', },
+    Range { from: '\u{1d749}', to: '\u{1d780}', },
+    Range { from: '\u{1d781}', to: '\u{1d782}', },
+    Range { from: '\u{1d783}', to: '\u{1d7ba}', },
+    Range { from: '\u{1d7bb}', to: '\u{1d7bc}', },
+    Range { from: '\u{1d7bd}', to: '\u{1d7c9}', },
+    Range { from: '\u{1d7ca}', to: '\u{1d7cb}', },
+    Range { from: '\u{1d7cc}', to: '\u{1d7cd}', },
+    Range { from: '\u{1d7ce}', to: '\u{1d7ff}', },
+    Range { from: '\u{1d800}', to: '\u{1da8b}', },
+    Range { from: '\u{1da8c}', to: '\u{1da9a}', },
+    Range { from: '\u{1da9b}', to: '\u{1da9f}', },
+    Range { from: '\u{1daa0}', to: '\u{1daa0}', },
+    Range { from: '\u{1daa1}', to: '\u{1daaf}', },
+    Range { from: '\u{1dab0}', to: '\u{1dfff}', },
+    Range { from: '\u{1e000}', to: '\u{1e006}', },
+    Range { from: '\u{1e007}', to: '\u{1e007}', },
+    Range { from: '\u{1e008}', to: '\u{1e018}', },
+    Range { from: '\u{1e019}', to: '\u{1e01a}', },
+    Range { from: '\u{1e01b}', to: '\u{1e021}', },
+    Range { from: '\u{1e022}', to: '\u{1e022}', },
+    Range { from: '\u{1e023}', to: '\u{1e024}', },
+    Range { from: '\u{1e025}', to: '\u{1e025}', },
+    Range { from: '\u{1e026}', to: '\u{1e02a}', },
+    Range { from: '\u{1e02b}', to: '\u{1e0ff}', },
+    Range { from: '\u{1e100}', to: '\u{1e12c}', },
+    Range { from: '\u{1e12d}', to: '\u{1e12f}', },
+    Range { from: '\u{1e130}', to: '\u{1e13d}', },
+    Range { from: '\u{1e13e}', to: '\u{1e13f}', },
+    Range { from: '\u{1e140}', to: '\u{1e149}', },
+    Range { from: '\u{1e14a}', to: '\u{1e14d}', },
+    Range { from: '\u{1e14e}', to: '\u{1e14f}', },
+    Range { from: '\u{1e150}', to: '\u{1e2bf}', },
+    Range { from: '\u{1e2c0}', to: '\u{1e2f9}', },
+    Range { from: '\u{1e2fa}', to: '\u{1e2fe}', },
+    Range { from: '\u{1e2ff}', to: '\u{1e2ff}', },
+    Range { from: '\u{1e300}', to: '\u{1e7ff}', },
+    Range { from: '\u{1e800}', to: '\u{1e8c4}', },
+    Range { from: '\u{1e8c5}', to: '\u{1e8c6}', },
+    Range { from: '\u{1e8c7}', to: '\u{1e8d6}', },
+    Range { from: '\u{1e8d7}', to: '\u{1e8ff}', },
+    Range { from: '\u{1e900}', to: '\u{1e921}', },
+    Range { from: '\u{1e922}', to: '\u{1e94b}', },
+    Range { from: '\u{1e94c}', to: '\u{1e94f}', },
+    Range { from: '\u{1e950}', to: '\u{1e959}', },
+    Range { from: '\u{1e95a}', to: '\u{1e95d}', },
+    Range { from: '\u{1e95e}', to: '\u{1e95f}', },
+    Range { from: '\u{1e960}', to: '\u{1ec70}', },
+    Range { from: '\u{1ec71}', to: '\u{1ecb4}', },
+    Range { from: '\u{1ecb5}', to: '\u{1ed00}', },
+    Range { from: '\u{1ed01}', to: '\u{1ed3d}', },
+    Range { from: '\u{1ed3e}', to: '\u{1edff}', },
+    Range { from: '\u{1ee00}', to: '\u{1ee24}', },
+    Range { from: '\u{1ee25}', to: '\u{1ee26}', },
+    Range { from: '\u{1ee27}', to: '\u{1ee3b}', },
+    Range { from: '\u{1ee3c}', to: '\u{1ee41}', },
+    Range { from: '\u{1ee42}', to: '\u{1ee42}', },
+    Range { from: '\u{1ee43}', to: '\u{1ee46}', },
+    Range { from: '\u{1ee47}', to: '\u{1ee54}', },
+    Range { from: '\u{1ee55}', to: '\u{1ee56}', },
+    Range { from: '\u{1ee57}', to: '\u{1ee64}', },
+    Range { from: '\u{1ee65}', to: '\u{1ee66}', },
+    Range { from: '\u{1ee67}', to: '\u{1ee9b}', },
+    Range { from: '\u{1ee9c}', to: '\u{1eea0}', },
+    Range { from: '\u{1eea1}', to: '\u{1eebb}', },
+    Range { from: '\u{1eebc}', to: '\u{1eeef}', },
+    Range { from: '\u{1eef0}', to: '\u{1eef1}', },
+    Range { from: '\u{1eef2}', to: '\u{1efff}', },
+    Range { from: '\u{1f000}', to: '\u{1f02b}', },
+    Range { from: '\u{1f02c}', to: '\u{1f02f}', },
+    Range { from: '\u{1f030}', to: '\u{1f093}', },
+    Range { from: '\u{1f094}', to: '\u{1f09f}', },
+    Range { from: '\u{1f0a0}', to: '\u{1f0ae}', },
+    Range { from: '\u{1f0af}', to: '\u{1f0b0}', },
+    Range { from: '\u{1f0b1}', to: '\u{1f0bf}', },
+    Range { from: '\u{1f0c0}', to: '\u{1f0c0}', },
+    Range { from: '\u{1f0c1}', to: '\u{1f0cf}', },
+    Range { from: '\u{1f0d0}', to: '\u{1f0d0}', },
+    Range { from: '\u{1f0d1}', to: '\u{1f0f5}', },
+    Range { from: '\u{1f0f6}', to: '\u{1f100}', },
+    Range { from: '\u{1f101}', to: '\u{1f10a}', },
+    Range { from: '\u{1f10b}', to: '\u{1f10f}', },
+    Range { from: '\u{1f110}', to: '\u{1f14f}', },
+    Range { from: '\u{1f150}', to: '\u{1f169}', },
+    Range { from: '\u{1f16a}', to: '\u{1f16c}', },
+    Range { from: '\u{1f16d}', to: '\u{1f18f}', },
+    Range { from: '\u{1f190}', to: '\u{1f190}', },
+    Range { from: '\u{1f191}', to: '\u{1f1ad}', },
+    Range { from: '\u{1f1ae}', to: '\u{1f1e5}', },
+    Range { from: '\u{1f1e6}', to: '\u{1f1ff}', },
+    Range { from: '\u{1f200}', to: '\u{1f202}', },
+    Range { from: '\u{1f203}', to: '\u{1f20f}', },
+    Range { from: '\u{1f210}', to: '\u{1f23b}', },
+    Range { from: '\u{1f23c}', to: '\u{1f23f}', },
+    Range { from: '\u{1f240}', to: '\u{1f248}', },
+    Range { from: '\u{1f249}', to: '\u{1f24f}', },
+    Range { from: '\u{1f250}', to: '\u{1f251}', },
+    Range { from: '\u{1f252}', to: '\u{1f25f}', },
+    Range { from: '\u{1f260}', to: '\u{1f265}', },
+    Range { from: '\u{1f266}', to: '\u{1f2ff}', },
+    Range { from: '\u{1f300}', to: '\u{1f6d7}', },
+    Range { from: '\u{1f6d8}', to: '\u{1f6df}', },
+    Range { from: '\u{1f6e0}', to: '\u{1f6ec}', },
+    Range { from: '\u{1f6ed}', to: '\u{1f6ef}', },
+    Range { from: '\u{1f6f0}', to: '\u{1f6fc}', },
+    Range { from: '\u{1f6fd}', to: '\u{1f6ff}', },
+    Range { from: '\u{1f700}', to: '\u{1f773}', },
+    Range { from: '\u{1f774}', to: '\u{1f77f}', },
+    Range { from: '\u{1f780}', to: '\u{1f7d8}', },
+    Range { from: '\u{1f7d9}', to: '\u{1f7df}', },
+    Range { from: '\u{1f7e0}', to: '\u{1f7eb}', },
+    Range { from: '\u{1f7ec}', to: '\u{1f7ff}', },
+    Range { from: '\u{1f800}', to: '\u{1f80b}', },
+    Range { from: '\u{1f80c}', to: '\u{1f80f}', },
+    Range { from: '\u{1f810}', to: '\u{1f847}', },
+    Range { from: '\u{1f848}', to: '\u{1f84f}', },
+    Range { from: '\u{1f850}', to: '\u{1f859}', },
+    Range { from: '\u{1f85a}', to: '\u{1f85f}', },
+    Range { from: '\u{1f860}', to: '\u{1f887}', },
+    Range { from: '\u{1f888}', to: '\u{1f88f}', },
+    Range { from: '\u{1f890}', to: '\u{1f8ad}', },
+    Range { from: '\u{1f8ae}', to: '\u{1f8af}', },
+    Range { from: '\u{1f8b0}', to: '\u{1f8b1}', },
+    Range { from: '\u{1f8b2}', to: '\u{1f8ff}', },
+    Range { from: '\u{1f900}', to: '\u{1f978}', },
+    Range { from: '\u{1f979}', to: '\u{1f979}', },
+    Range { from: '\u{1f97a}', to: '\u{1f9cb}', },
+    Range { from: '\u{1f9cc}', to: '\u{1f9cc}', },
+    Range { from: '\u{1f9cd}', to: '\u{1fa53}', },
+    Range { from: '\u{1fa54}', to: '\u{1fa5f}', },
+    Range { from: '\u{1fa60}', to: '\u{1fa6d}', },
+    Range { from: '\u{1fa6e}', to: '\u{1fa6f}', },
+    Range { from: '\u{1fa70}', to: '\u{1fa74}', },
+    Range { from: '\u{1fa75}', to: '\u{1fa77}', },
+    Range { from: '\u{1fa78}', to: '\u{1fa7a}', },
+    Range { from: '\u{1fa7b}', to: '\u{1fa7f}', },
+    Range { from: '\u{1fa80}', to: '\u{1fa86}', },
+    Range { from: '\u{1fa87}', to: '\u{1fa8f}', },
+    Range { from: '\u{1fa90}', to: '\u{1faa8}', },
+    Range { from: '\u{1faa9}', to: '\u{1faaf}', },
+    Range { from: '\u{1fab0}', to: '\u{1fab6}', },
+    Range { from: '\u{1fab7}', to: '\u{1fabf}', },
+    Range { from: '\u{1fac0}', to: '\u{1fac2}', },
+    Range { from: '\u{1fac3}', to: '\u{1facf}', },
+    Range { from: '\u{1fad0}', to: '\u{1fad6}', },
+    Range { from: '\u{1fad7}', to: '\u{1faff}', },
+    Range { from: '\u{1fb00}', to: '\u{1fb92}', },
+    Range { from: '\u{1fb93}', to: '\u{1fb93}', },
+    Range { from: '\u{1fb94}', to: '\u{1fbca}', },
+    Range { from: '\u{1fbcb}', to: '\u{1fbef}', },
+    Range { from: '\u{1fbf0}', to: '\u{1fbf9}', },
+    Range { from: '\u{1fbfa}', to: '\u{1ffff}', },
+    Range { from: '\u{20000}', to: '\u{2a6dd}', },
+    Range { from: '\u{2a6de}', to: '\u{2a6ff}', },
+    Range { from: '\u{2a700}', to: '\u{2b734}', },
+    Range { from: '\u{2b735}', to: '\u{2b73f}', },
+    Range { from: '\u{2b740}', to: '\u{2b81d}', },
+    Range { from: '\u{2b81e}', to: '\u{2b81f}', },
+    Range { from: '\u{2b820}', to: '\u{2cea1}', },
+    Range { from: '\u{2cea2}', to: '\u{2ceaf}', },
+    Range { from: '\u{2ceb0}', to: '\u{2ebe0}', },
+    Range { from: '\u{2ebe1}', to: '\u{2f7ff}', },
+    Range { from: '\u{2f800}', to: '\u{2f830}', },
+    Range { from: '\u{2f831}', to: '\u{2f833}', },
+    Range { from: '\u{2f834}', to: '\u{2f844}', },
+    Range { from: '\u{2f845}', to: '\u{2f846}', },
+    Range { from: '\u{2f847}', to: '\u{2f869}', },
+    Range { from: '\u{2f86a}', to: '\u{2f86b}', },
+    Range { from: '\u{2f86c}', to: '\u{2f890}', },
+    Range { from: '\u{2f891}', to: '\u{2f892}', },
+    Range { from: '\u{2f893}', to: '\u{2f893}', },
+    Range { from: '\u{2f894}', to: '\u{2f895}', },
+    Range { from: '\u{2f896}', to: '\u{2f92b}', },
+    Range { from: '\u{2f92c}', to: '\u{2f92d}', },
+    Range { from: '\u{2f92e}', to: '\u{2f945}', },
+    Range { from: '\u{2f946}', to: '\u{2f947}', },
+    Range { from: '\u{2f948}', to: '\u{2f95c}', },
+    Range { from: '\u{2f95d}', to: '\u{2f95e}', },
+    Range { from: '\u{2f95f}', to: '\u{2f9fd}', },
+    Range { from: '\u{2f9fe}', to: '\u{2f9ff}', },
+    Range { from: '\u{2fa00}', to: '\u{2fa1d}', },
+    Range { from: '\u{2fa1e}', to: '\u{2ffff}', },
+    Range { from: '\u{30000}', to: '\u{3134a}', },
+    Range { from: '\u{3134b}', to: '\u{e00ff}', },
+    Range { from: '\u{e0100}', to: '\u{e01ef}', },
+    Range { from: '\u{e01f0}', to: '\u{10ffff}', },
+];
+
+static INDEX_TABLE: &[u16] = &[
+    32768,
+    32769,
+    32770,
+    32771,
+    32772,
+    5,
+    32799,
+    32800,
+    32801,
+    32802,
+    32803,
+    32804,
+    37,
+    32808,
+    41,
+    32812,
+    45,
+    32817,
+    50,
+    32858,
+    91,
+    32909,
+    142,
+    32913,
+    146,
+    32920,
+    153,
+    32996,
+    229,
+    33008,
+    241,
+    33023,
+    256,
+    33037,
+    33038,
+    33039,
+    33040,
+    33041,
+    33042,
+    275,
+    33058,
+    291,
+    33076,
+    33077,
+    310,
+    33141,
+    374,
+    33147,
+    380,
+    33162,
+    395,
+    33172,
+    405,
+    33179,
+    412,
+    33185,
+    418,
+    33192,
+    33193,
+    33194,
+    427,
+    33203,
+    33204,
+    33205,
+    438,
+    33208,
+    441,
+    33249,
+    33250,
+    33251,
+    484,
+    33296,
+    529,
+    33348,
+    581,
+    33382,
+    615,
+    33451,
+    684,
+    33587,
+    33588,
+    33589,
+    33590,
+    33591,
+    33592,
+    33593,
+    33594,
+    33595,
+    33596,
+    33597,
+    33598,
+    33599,
+    33600,
+    33601,
+    33602,
+    835,
+    33607,
+    33608,
+    33609,
+    33610,
+    33611,
+    33612,
+    33613,
+    33614,
+    33615,
+    33616,
+    33617,
+    33618,
+    33619,
+    33620,
+    33621,
+    33622,
+    855,
+    33625,
+    33626,
+    33627,
+    33628,
+    33629,
+    33630,
+    33631,
+    33632,
+    33633,
+    866,
+    33642,
+    33643,
+    33644,
+    33645,
+    33646,
+    33647,
+    33648,
+    33649,
+    33650,
+    883,
+    33653,
+    33654,
+    33655,
+    33656,
+    33657,
+    33658,
+    33659,
+    33660,
+    33661,
+    33662,
+    33663,
+    896,
+    33668,
+    33669,
+    33670,
+    33671,
+    33672,
+    33673,
+    33674,
+    33675,
+    33676,
+    33677,
+    33678,
+    33679,
+    33680,
+    913,
+    33688,
+    33689,
+    922,
+    33692,
+    33693,
+    33694,
+    33695,
+    33696,
+    33697,
+    33698,
+    33699,
+    932,
+    33706,
+    33707,
+    33708,
+    33709,
+    33710,
+    33711,
+    33712,
+    33713,
+    33714,
+    33715,
+    33716,
+    33717,
+    33718,
+    33719,
+    33720,
+    33721,
+    33722,
+    33723,
+    33724,
+    33725,
+    33726,
+    33727,
+    33728,
+    33729,
+    33730,
+    33731,
+    33732,
+    33733,
+    33734,
+    33735,
+    33736,
+    33737,
+    33738,
+    33739,
+    33740,
+    33741,
+    33742,
+    33743,
+    33744,
+    33745,
+    33746,
+    33747,
+    33748,
+    33749,
+    33750,
+    33751,
+    33752,
+    33753,
+    33754,
+    33755,
+    33756,
+    33757,
+    33758,
+    991,
+    33762,
+    33763,
+    33764,
+    33765,
+    33766,
+    33767,
+    33768,
+    33769,
+    33770,
+    33771,
+    33772,
+    33773,
+    33774,
+    1007,
+    33778,
+    33779,
+    33780,
+    33781,
+    33782,
+    33783,
+    33784,
+    33785,
+    33786,
+    33787,
+    33788,
+    33789,
+    33790,
+    33791,
+    33792,
+    33793,
+    33794,
+    33795,
+    33796,
+    33797,
+    33798,
+    33799,
+    33800,
+    33801,
+    33802,
+    33803,
+    33804,
+    33805,
+    33806,
+    33807,
+    33808,
+    33809,
+    33810,
+    33811,
+    33812,
+    33813,
+    33814,
+    33815,
+    33816,
+    33817,
+    33818,
+    33819,
+    33820,
+    33821,
+    33822,
+    33823,
+    33824,
+    33825,
+    33826,
+    33827,
+    33828,
+    33829,
+    33830,
+    33831,
+    33832,
+    33833,
+    33834,
+    33835,
+    33836,
+    33837,
+    1070,
+    33840,
+    33841,
+    33842,
+    33843,
+    33844,
+    33845,
+    33846,
+    33847,
+    33848,
+    33849,
+    33850,
+    33851,
+    33852,
+    33853,
+    33854,
+    33855,
+    33856,
+    33857,
+    33858,
+    33859,
+    33860,
+    33861,
+    33862,
+    33863,
+    33864,
+    33865,
+    33866,
+    1099,
+    33869,
+    33870,
+    33871,
+    33872,
+    33873,
+    33874,
+    1107,
+    33878,
+    33879,
+    33880,
+    33881,
+    33882,
+    33883,
+    33884,
+    33885,
+    33886,
+    33887,
+    33888,
+    33889,
+    33890,
+    1123,
+    33894,
+    33895,
+    33896,
+    1129,
+    33900,
+    33901,
+    33902,
+    33903,
+    33904,
+    1137,
+    33908,
+    33909,
+    33910,
+    33911,
+    1144,
+    33914,
+    33915,
+    33916,
+    33917,
+    33918,
+    33919,
+    33920,
+    33921,
+    33922,
+    33923,
+    33924,
+    33925,
+    33926,
+    33927,
+    33928,
+    33929,
+    33930,
+    33931,
+    33932,
+    33933,
+    33934,
+    1167,
+    33942,
+    33943,
+    33944,
+    33945,
+    33946,
+    33947,
+    33948,
+    33949,
+    33950,
+    33951,
+    33952,
+    33953,
+    33954,
+    33955,
+    33956,
+    33957,
+    33958,
+    33959,
+    33960,
+    33961,
+    33962,
+    33963,
+    33964,
+    33965,
+    33966,
+    33967,
+    33968,
+    33969,
+    33970,
+    33971,
+    33972,
+    33973,
+    33974,
+    33975,
+    33976,
+    33977,
+    33978,
+    1211,
+    33982,
+    33983,
+    33984,
+    33985,
+    33986,
+    33987,
+    33988,
+    33989,
+    33990,
+    33991,
+    33992,
+    1225,
+    33996,
+    33997,
+    33998,
+    33999,
+    34000,
+    34001,
+    34002,
+    34003,
+    34004,
+    34005,
+    34006,
+    34007,
+    34008,
+    34009,
+    34010,
+    34011,
+    1244,
+    34018,
+    34019,
+    34020,
+    34021,
+    34022,
+    34023,
+    34024,
+    34025,
+    34026,
+    34027,
+    34028,
+    34029,
+    34030,
+    34031,
+    34032,
+    34033,
+    34034,
+    34035,
+    34036,
+    34037,
+    34038,
+    34039,
+    34040,
+    34041,
+    34042,
+    34043,
+    34044,
+    34045,
+    34046,
+    34047,
+    34048,
+    34049,
+    34050,
+    34051,
+    34052,
+    34053,
+    34054,
+    34055,
+    34056,
+    34057,
+    34058,
+    34059,
+    34060,
+    34061,
+    34062,
+    34063,
+    34064,
+    34065,
+    34066,
+    34067,
+    34068,
+    34069,
+    34070,
+    34071,
+    34072,
+    34073,
+    34074,
+    34075,
+    34076,
+    34077,
+    34078,
+    34079,
+    34080,
+    34081,
+    34082,
+    34083,
+    34084,
+    34085,
+    34086,
+    34087,
+    34088,
+    34089,
+    34090,
+    34091,
+    34092,
+    34093,
+    34094,
+    34095,
+    34096,
+    34097,
+    34098,
+    34099,
+    34100,
+    34101,
+    34102,
+    1335,
+    34107,
+    1340,
+    34111,
+    1344,
+    34155,
+    1388,
+    34159,
+    34160,
+    34161,
+    34162,
+    34163,
+    1396,
+    34227,
+    34228,
+    34229,
+    1462,
+    34267,
+    34268,
+    34269,
+    1502,
+    34419,
+    1652,
+    34422,
+    1655,
+    34520,
+    1753,
+    34529,
+    34530,
+    1763,
+    34537,
+    34538,
+    1771,
+    34547,
+    1780,
+    34556,
+    34557,
+    1790,
+    34564,
+    34565,
+    1798,
+    34574,
+    1807,
+    34597,
+    1830,
+    34646,
+    1879,
+    34677,
+    34678,
+    34679,
+    34680,
+    1913,
+    34689,
+    34690,
+    34691,
+    1924,
+    34700,
+    1933,
+    34715,
+    34716,
+    34717,
+    34718,
+    1951,
+    34721,
+    34722,
+    34723,
+    34724,
+    34725,
+    34726,
+    34727,
+    34728,
+    1961,
+    34734,
+    1967,
+    34738,
+    1971,
+    34742,
+    34743,
+    34744,
+    1977,
+    34747,
+    34748,
+    34749,
+    1982,
+    34752,
+    1985,
+    34794,
+    34795,
+    34796,
+    34797,
+    34798,
+    34799,
+    34800,
+    2033,
+    34812,
+    34813,
+    34814,
+    34815,
+    2048,
+    34819,
+    2052,
+    34822,
+    34823,
+    2056,
+    34839,
+    2072,
+    34852,
+    2085,
+    34855,
+    34856,
+    2089,
+    34860,
+    2093,
+    34909,
+    34910,
+    34911,
+    34912,
+    34913,
+    34914,
+    34915,
+    2148,
+    34921,
+    34922,
+    34923,
+    34924,
+    34925,
+    2158,
+    34928,
+    34929,
+    34930,
+    34931,
+    2164,
+    34972,
+    2205,
+    35052,
+    35053,
+    35054,
+    2287,
+    35058,
+    35059,
+    35060,
+    35061,
+    35062,
+    35063,
+    35064,
+    2297,
+    35113,
+    2346,
+    35120,
+    2353,
+    35133,
+    35134,
+    35135,
+    2368,
+    35239,
+    2472,
+    35243,
+    2476,
+    35246,
+    35247,
+    2480,
+    35250,
+    35251,
+    35252,
+    35253,
+    35254,
+    2487,
+    35257,
+    35258,
+    35259,
+    35260,
+    35261,
+    35262,
+    35263,
+    35264,
+    35265,
+    35266,
+    35267,
+    35268,
+    35269,
+    35270,
+    35271,
+    35272,
+    35273,
+    35274,
+    35275,
+    35276,
+    35277,
+    35278,
+    35279,
+    35280,
+    35281,
+    35282,
+    35283,
+    35284,
+    2517,
+    35499,
+    2732,
+    35503,
+    2736,
+    35509,
+    35510,
+    35511,
+    35512,
+    35513,
+    2746,
+    35516,
+    35517,
+    35518,
+    35519,
+    35520,
+    35521,
+    2754,
+    35618,
+    2851,
+    35633,
+    35634,
+    35635,
+    2868,
+    35708,
+    2941,
+    36141,
+    36142,
+    36143,
+    36144,
+    36145,
+    36146,
+    36147,
+    36148,
+    3381,
+    36194,
+    3427,
+    36225,
+    36226,
+    36227,
+    3460,
+    36241,
+    3474,
+    36305,
+    3538,
+    36320,
+    3553,
+    36324,
+    3557,
+    36328,
+    3561,
+    36371,
+    3604,
+    36381,
+    36382,
+    36383,
+    3616,
+    36386,
+    36387,
+    36388,
+    36389,
+    36390,
+    36391,
+    36392,
+    36393,
+    36394,
+    36395,
+    36396,
+    36397,
+    36398,
+    36399,
+    36400,
+    36401,
+    36402,
+    36403,
+    36404,
+    36405,
+    36406,
+    36407,
+    36408,
+    36409,
+    36410,
+    36411,
+    36412,
+    36413,
+    36414,
+    36415,
+    36416,
+    36417,
+    36418,
+    36419,
+    36420,
+    36421,
+    36422,
+    36423,
+    36424,
+    36425,
+    36426,
+    3659,
+    36431,
+    36432,
+    36433,
+    36434,
+    3667,
+    36515,
+    36516,
+    36517,
+    36518,
+    36519,
+    36520,
+    36521,
+    36522,
+    36523,
+    36524,
+    3757,
+    36532,
+    3765,
+    36794,
+    4027,
+    36798,
+    4031,
+    36813,
+    4046,
+    36816,
+    4049,
+    36868,
+    4101,
+    36884,
+    4117,
+    36991,
+    4224,
+    36997,
+    36998,
+    4231,
+    37004,
+    4237,
+    37056,
+    37057,
+    37058,
+    37059,
+    37060,
+    37061,
+    37062,
+    37063,
+    37064,
+    37065,
+    37066,
+    37067,
+    37068,
+    37069,
+    37070,
+    37071,
+    37072,
+    37073,
+    37074,
+    37075,
+    37076,
+    37077,
+    37078,
+    37079,
+    37080,
+    37081,
+    37082,
+    37083,
+    37084,
+    37085,
+    37086,
+    37087,
+    37088,
+    37089,
+    37090,
+    37091,
+    37092,
+    37093,
+    37094,
+    37095,
+    37096,
+    37097,
+    37098,
+    37099,
+    37100,
+    37101,
+    37102,
+    37103,
+    37104,
+    37105,
+    37106,
+    4339,
+    37423,
+    37424,
+    37425,
+    37426,
+    37427,
+    4660,
+    37433,
+    4666,
+    37439,
+    37440,
+    37441,
+    37442,
+    37443,
+    37444,
+    37445,
+    37446,
+    37447,
+    37448,
+    37449,
+    37450,
+    4683,
+    37454,
+    4687,
+    37459,
+    4692,
+    37465,
+    37466,
+    37467,
+    4700,
+    37475,
+    4708,
+    37481,
+    4714,
+    37485,
+    4718,
+    37528,
+    4761,
+    37543,
+    37544,
+    4777,
+    37554,
+    37555,
+    4788,
+    37559,
+    4792,
+    37576,
+    4809,
+    37579,
+    37580,
+    4813,
+    37583,
+    4816,
+    37608,
+    4841,
+    37626,
+    37627,
+    37628,
+    37629,
+    37630,
+    37631,
+    37632,
+    37633,
+    37634,
+    37635,
+    37636,
+    37637,
+    37638,
+    37639,
+    37640,
+    37641,
+    37642,
+    37643,
+    37644,
+    37645,
+    37646,
+    37647,
+    37648,
+    37649,
+    37650,
+    37651,
+    37652,
+    37653,
+    37654,
+    37655,
+    37656,
+    37657,
+    37658,
+    37659,
+    37660,
+    37661,
+    37662,
+    37663,
+    37664,
+    37665,
+    4898,
+    37858,
+    5091,
+    37865,
+    5098,
+    37872,
+    5105,
+    37879,
+    5112,
+    37883,
+    5116,
+    37899,
+    37900,
+    37901,
+    37902,
+    37903,
+    37904,
+    37905,
+    37906,
+    37907,
+    37908,
+    37909,
+    37910,
+    37911,
+    37912,
+    37913,
+    37914,
+    37915,
+    37916,
+    37917,
+    37918,
+    37919,
+    37920,
+    37921,
+    37922,
+    37923,
+    37924,
+    37925,
+    37926,
+    37927,
+    37928,
+    37929,
+    37930,
+    37931,
+    37932,
+    37933,
+    37934,
+    37935,
+    37936,
+    37937,
+    37938,
+    37939,
+    37940,
+    37941,
+    37942,
+    37943,
+    5176,
+    37984,
+    37985,
+    37986,
+    37987,
+    5220,
+    38024,
+    38025,
+    38026,
+    38027,
+    38028,
+    38029,
+    38030,
+    38031,
+    38032,
+    38033,
+    38034,
+    38035,
+    38036,
+    38037,
+    38038,
+    38039,
+    38040,
+    5273,
+    38043,
+    38044,
+    38045,
+    38046,
+    38047,
+    38048,
+    38049,
+    38050,
+    38051,
+    38052,
+    38053,
+    38054,
+    38055,
+    38056,
+    38057,
+    38058,
+    38059,
+    38060,
+    38061,
+    38062,
+    38063,
+    38064,
+    38065,
+    38066,
+    38067,
+    38068,
+    38069,
+    38070,
+    38071,
+    38072,
+    38073,
+    38074,
+    38075,
+    38076,
+    38077,
+    38078,
+    38079,
+    38080,
+    38081,
+    38082,
+    38083,
+    38084,
+    38085,
+    38086,
+    38087,
+    38088,
+    38089,
+    38090,
+    38091,
+    38092,
+    38093,
+    38094,
+    38095,
+    38096,
+    38097,
+    38098,
+    38099,
+    38100,
+    38101,
+    38102,
+    38103,
+    38104,
+    5337,
+    38156,
+    38157,
+    38158,
+    38159,
+    38160,
+    38161,
+    38162,
+    38163,
+    38164,
+    38165,
+    38166,
+    38167,
+    38168,
+    38169,
+    38170,
+    38171,
+    38172,
+    38173,
+    38174,
+    38175,
+    38176,
+    38177,
+    38178,
+    38179,
+    38180,
+    38181,
+    38182,
+    38183,
+    38184,
+    38185,
+    38186,
+    38187,
+    38188,
+    38189,
+    38190,
+    38191,
+    38192,
+    38193,
+    38194,
+    38195,
+    38196,
+    38197,
+    38198,
+    38199,
+    38200,
+    38201,
+    38202,
+    38203,
+    38204,
+    38205,
+    5438,
+    38209,
+    38210,
+    38211,
+    38212,
+    38213,
+    38214,
+    38215,
+    38216,
+    38217,
+    38218,
+    38219,
+    38220,
+    38221,
+    38222,
+    38223,
+    38224,
+    38225,
+    38226,
+    38227,
+    38228,
+    38229,
+    38230,
+    38231,
+    38232,
+    38233,
+    38234,
+    38235,
+    38236,
+    38237,
+    38238,
+    38239,
+    38240,
+    38241,
+    38242,
+    38243,
+    38244,
+    38245,
+    38246,
+    38247,
+    38248,
+    38249,
+    38250,
+    38251,
+    38252,
+    38253,
+    38254,
+    38255,
+    38256,
+    38257,
+    38258,
+    38259,
+    38260,
+    38261,
+    38262,
+    38263,
+    38264,
+    38265,
+    38266,
+    38267,
+    38268,
+    38269,
+    38270,
+    38271,
+    38272,
+    38273,
+    38274,
+    38275,
+    38276,
+    38277,
+    38278,
+    5511,
+    38311,
+    38312,
+    38313,
+    38314,
+    38315,
+    38316,
+    38317,
+    38318,
+    38319,
+    38320,
+    38321,
+    38322,
+    38323,
+    38324,
+    38325,
+    38326,
+    38327,
+    38328,
+    38329,
+    38330,
+    38331,
+    38332,
+    38333,
+    38334,
+    38335,
+    38336,
+    38337,
+    38338,
+    38339,
+    38340,
+    38341,
+    38342,
+    38343,
+    38344,
+    38345,
+    38346,
+    38347,
+    38348,
+    38349,
+    38350,
+    38351,
+    38352,
+    38353,
+    38354,
+    38355,
+    38356,
+    38357,
+    38358,
+    38359,
+    38360,
+    5593,
+    38363,
+    38364,
+    38365,
+    38366,
+    38367,
+    38368,
+    38369,
+    38370,
+    38371,
+    38372,
+    38373,
+    38374,
+    38375,
+    38376,
+    38377,
+    38378,
+    38379,
+    38380,
+    38381,
+    38382,
+    38383,
+    38384,
+    38385,
+    38386,
+    38387,
+    38388,
+    38389,
+    38390,
+    38391,
+    38392,
+    38393,
+    38394,
+    38395,
+    38396,
+    38397,
+    38398,
+    38399,
+    38400,
+    38401,
+    38402,
+    38403,
+    38404,
+    38405,
+    38406,
+    38407,
+    38408,
+    38409,
+    38410,
+    38411,
+    38412,
+    38413,
+    38414,
+    38415,
+    38416,
+    38417,
+    38418,
+    38419,
+    38420,
+    5653,
+    38453,
+    38454,
+    38455,
+    38456,
+    38457,
+    38458,
+    38459,
+    38460,
+    38461,
+    38462,
+    38463,
+    38464,
+    38465,
+    38466,
+    38467,
+    38468,
+    38469,
+    38470,
+    38471,
+    38472,
+    38473,
+    38474,
+    38475,
+    38476,
+    38477,
+    38478,
+    38479,
+    38480,
+    38481,
+    38482,
+    38483,
+    38484,
+    38485,
+    38486,
+    38487,
+    38488,
+    38489,
+    38490,
+    38491,
+    38492,
+    38493,
+    38494,
+    5727,
+    38502,
+    38503,
+    38504,
+    5737,
+    38511,
+    38512,
+    38513,
+    38514,
+    38515,
+    38516,
+    38517,
+    38518,
+    38519,
+    38520,
+    5753,
+    38681,
+    38682,
+    38683,
+    5916,
+    38686,
+    5919,
+    38785,
+    6018,
+    38844,
+    6077,
+    39193,
+    6426,
+    39237,
+    6470,
+    39294,
+    6527,
+    39351,
+    6584,
+    39408,
+    6641,
+    39465,
+    6698,
+    39479,
+    39480,
+    6713,
+    39531,
+    39532,
+    39533,
+    39534,
+    39535,
+    39536,
+    39537,
+    39538,
+    39539,
+    39540,
+    39541,
+    39542,
+    39543,
+    39544,
+    39545,
+    39546,
+    39547,
+    39548,
+    39549,
+    39550,
+    39551,
+    39552,
+    39553,
+    39554,
+    39555,
+    39556,
+    39557,
+    39558,
+    39559,
+    39560,
+    39561,
+    39562,
+    6795,
+    39597,
+    39598,
+    39599,
+    39600,
+    39601,
+    39602,
+    39603,
+    39604,
+    39605,
+    39606,
+    6839,
+    39644,
+    6877,
+    39666,
+    39667,
+    39668,
+    6901,
+    39683,
+    6916,
+    39698,
+    6931,
+    39752,
+    6985,
+    39780,
+    39781,
+    39782,
+    39783,
+    39784,
+    39785,
+    39786,
+    39787,
+    39788,
+    39789,
+    39790,
+    39791,
+    39792,
+    39793,
+    39794,
+    7027,
+    39805,
+    7038,
+    39870,
+    7103,
+    39874,
+    39875,
+    39876,
+    39877,
+    39878,
+    7111,
+    39882,
+    7115,
+    39927,
+    7160,
+    39937,
+    7170,
+    39940,
+    39941,
+    39942,
+    39943,
+    39944,
+    39945,
+    39946,
+    39947,
+    39948,
+    39949,
+    39950,
+    39951,
+    39952,
+    39953,
+    39954,
+    39955,
+    39956,
+    39957,
+    39958,
+    39959,
+    39960,
+    39961,
+    39962,
+    39963,
+    39964,
+    39965,
+    39966,
+    39967,
+    39968,
+    39969,
+    39970,
+    39971,
+    39972,
+    39973,
+    39974,
+    39975,
+    39976,
+    39977,
+    39978,
+    39979,
+    39980,
+    39981,
+    39982,
+    39983,
+    39984,
+    39985,
+    39986,
+    39987,
+    39988,
+    39989,
+    39990,
+    39991,
+    39992,
+    7225,
+    40003,
+    40004,
+    40005,
+    40006,
+    40007,
+    40008,
+    40009,
+    40010,
+    40011,
+    40012,
+    40013,
+    7246,
+    40063,
+    7296,
+    40081,
+    7314,
+    40117,
+    7350,
+    40155,
+    40156,
+    40157,
+    7390,
+    40308,
+    7541,
+    40333,
+    7566,
+    40355,
+    7588,
+    40515,
+    7748,
+    40546,
+    40547,
+    40548,
+    40549,
+    40550,
 ];
 
 static MAPPING_TABLE: &[Mapping] = &[