diff options
author | Haibo Huang <hhb@google.com> | 2021-02-10 15:09:45 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-02-10 15:09:45 +0000 |
commit | 960341e6f65e188725f2d62bb76737d11d6b7057 (patch) | |
tree | 98349a2dab1fb773c040f2637727d367111ad8a5 | |
parent | 828ebceff0b32f87dde3f442f173f4c1bad4ae38 (diff) | |
parent | 8e784208a286369c7a48ef074a010b198ae3d850 (diff) | |
download | unicode-normalization-960341e6f65e188725f2d62bb76737d11d6b7057.tar.gz |
Upgrade rust/crates/unicode-normalization to 0.1.17 am: 04f65325de am: 2ed5952798 am: a857596d1b am: 8e784208a2
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/unicode-normalization/+/1582748
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I9f8be76df67cd16bf225e6292ecbd5fdd7851a3b
-rw-r--r-- | .cargo_vcs_info.json | 2 | ||||
-rw-r--r-- | .github/workflows/rust.yml | 39 | ||||
-rw-r--r-- | Android.bp | 5 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | Cargo.toml.orig | 2 | ||||
-rw-r--r-- | METADATA | 10 | ||||
-rw-r--r-- | TEST_MAPPING | 8 | ||||
-rw-r--r-- | scripts/unicode.py | 62 | ||||
-rw-r--r-- | src/lib.rs | 28 | ||||
-rw-r--r-- | src/lookups.rs | 11 | ||||
-rwxr-xr-x[-rw-r--r--] | src/no_std_prelude.rs | 0 | ||||
-rw-r--r-- | src/normalize.rs | 36 | ||||
-rw-r--r-- | src/replace.rs | 61 | ||||
-rw-r--r-- | src/stream_safe.rs | 22 | ||||
-rw-r--r-- | src/tables.rs | 2009 |
15 files changed, 2267 insertions, 30 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json index 516ef86..4c8700c 100644 --- a/.cargo_vcs_info.json +++ b/.cargo_vcs_info.json @@ -1,5 +1,5 @@ { "git": { - "sha1": "2aa5c6e1ec51b2c5b146cf04c7ba0ed8097ef139" + "sha1": "4e05cc1cc6435d8e1d5a412ed45a544c0f214ee8" } } diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..c83071c --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,39 @@ +name: Rust + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - stable + - beta + - nightly + steps: + - uses: actions/checkout@v2 + - name: Install latest nightly + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + override: true + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose + - name: Run tests without features + run: cargo test --verbose --no-default-features + - name: Package + run: cargo package + - name: Test package + run: cd target/package/unicode-normalization-* && cargo test + - name: Test package without features + run: cd target/package/unicode-normalization-* && cargo test --no-default-features @@ -39,6 +39,9 @@ rust_defaults { rust_test_host { name: "unicode-normalization_host_test_src_lib", defaults: ["unicode-normalization_defaults"], + test_options: { + unit_test: true, + }, } rust_test { @@ -47,5 +50,5 @@ rust_test { } // dependent_library ["feature_list"] -// tinyvec-1.1.0 "alloc,default,tinyvec_macros" +// tinyvec-1.1.1 "alloc,default,tinyvec_macros" // tinyvec_macros-0.1.0 @@ -13,7 +13,7 @@ [package] edition = "2018" name = "unicode-normalization" -version = "0.1.16" +version = "0.1.17" authors = ["kwantam <kwantam@gmail.com>", "Manish Goregaokar <manishsmail@gmail.com>"] exclude = ["target/*", "Cargo.lock", "scripts/tmp", "*.txt", "tests/*"] description = "This crate provides functions for normalization of\nUnicode strings, including Canonical and Compatible\nDecomposition and Recomposition, as described in\nUnicode Standard Annex #15.\n" diff --git a/Cargo.toml.orig b/Cargo.toml.orig index 8cb78e2..01aa7cd 100644 --- a/Cargo.toml.orig +++ b/Cargo.toml.orig @@ -1,7 +1,7 @@ [package] name = "unicode-normalization" -version = "0.1.16" +version = "0.1.17" authors = ["kwantam <kwantam@gmail.com>", "Manish Goregaokar <manishsmail@gmail.com>"] homepage = "https://github.com/unicode-rs/unicode-normalization" @@ -7,13 +7,13 @@ third_party { } url { type: ARCHIVE - value: "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.16.crate" + value: "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.17.crate" } - version: "0.1.16" + version: "0.1.17" license_type: NOTICE last_upgrade_date { - year: 2020 - month: 12 - day: 15 + year: 2021 + month: 2 + day: 9 } } diff --git a/TEST_MAPPING b/TEST_MAPPING index f841e74..ef16d49 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -1,9 +1,11 @@ -// Generated by cargo2android.py for tests in Android.bp +// Generated by update_crate_tests.py for tests that depend on this crate. { "presubmit": [ { - "host": true, - "name": "unicode-normalization_host_test_src_lib" + "name": "quiche_device_test_src_lib" + }, + { + "name": "url_device_test_src_lib" }, { "name": "unicode-normalization_device_test_src_lib" diff --git a/scripts/unicode.py b/scripts/unicode.py index 7786dc1..74164fe 100644 --- a/scripts/unicode.py +++ b/scripts/unicode.py @@ -14,9 +14,10 @@ # - DerivedNormalizationProps.txt # - NormalizationTest.txt # - UnicodeData.txt +# - StandardizedVariants.txt # # Since this should not require frequent updates, we just store this -# out-of-line and check the unicode.rs file into git. +# out-of-line and check the tables.rs and normalization_tests.rs files into git. import collections import urllib.request @@ -57,6 +58,11 @@ expanded_categories = { 'Cc': ['C'], 'Cf': ['C'], 'Cs': ['C'], 'Co': ['C'], 'Cn': ['C'], } +# Constants from Unicode 9.0.0 Section 3.12 Conjoining Jamo Behavior +# http://www.unicode.org/versions/Unicode9.0.0/ch03.pdf#M9.32468.Heading.310.Combining.Jamo.Behavior +S_BASE, L_COUNT, V_COUNT, T_COUNT = 0xAC00, 19, 21, 28 +S_COUNT = L_COUNT * V_COUNT * T_COUNT + class UnicodeData(object): def __init__(self): self._load_unicode_data() @@ -66,6 +72,9 @@ class UnicodeData(object): self.canon_comp = self._compute_canonical_comp() self.canon_fully_decomp, self.compat_fully_decomp = self._compute_fully_decomposed() + self.cjk_compat_variants_fully_decomp = {} + self._load_cjk_compat_ideograph_variants() + def stats(name, table): count = sum(len(v) for v in table.values()) print("%s: %d chars => %d decomposed chars" % (name, len(table), count)) @@ -75,6 +84,7 @@ class UnicodeData(object): stats("Compatible decomp", self.compat_decomp) stats("Canonical fully decomp", self.canon_fully_decomp) stats("Compatible fully decomp", self.compat_fully_decomp) + stats("CJK Compat Variants fully decomp", self.cjk_compat_variants_fully_decomp) self.ss_leading, self.ss_trailing = self._compute_stream_safe_tables() @@ -83,6 +93,7 @@ class UnicodeData(object): return resp.read().decode('utf-8') def _load_unicode_data(self): + self.name_to_char_int = {} self.combining_classes = {} self.compat_decomp = {} self.canon_decomp = {} @@ -95,6 +106,9 @@ class UnicodeData(object): char, category, cc, decomp = pieces[0], pieces[2], pieces[3], pieces[5] char_int = int(char, 16) + name = pieces[1].strip() + self.name_to_char_int[name] = char_int + if cc != '0': self.combining_classes[char_int] = cc @@ -106,6 +120,41 @@ class UnicodeData(object): if category == 'M' or 'M' in expanded_categories.get(category, []): self.general_category_mark.append(char_int) + def _load_cjk_compat_ideograph_variants(self): + for line in self._fetch("StandardizedVariants.txt").splitlines(): + strip_comments = line.split('#', 1)[0].strip() + if not strip_comments: + continue + + variation_sequence, description, differences = strip_comments.split(';') + description = description.strip() + + # Don't use variations that only apply in particular shaping environments. + if differences: + continue + + # Look for entries where the description field is a codepoint name. + if description not in self.name_to_char_int: + continue + + # Only consider the CJK Compatibility Ideographs. + if not description.startswith('CJK COMPATIBILITY IDEOGRAPH-'): + continue + + char_int = self.name_to_char_int[description] + + assert not char_int in self.combining_classes, "Unexpected: CJK compat variant with a combining class" + assert not char_int in self.compat_decomp, "Unexpected: CJK compat variant and compatibility decomposition" + assert len(self.canon_decomp[char_int]) == 1, "Unexpected: CJK compat variant and non-singleton canonical decomposition" + # If we ever need to handle Hangul here, we'll need to handle it separately. + assert not (S_BASE <= char_int < S_BASE + S_COUNT) + + cjk_compat_variant_parts = [int(c, 16) for c in variation_sequence.split()] + for c in cjk_compat_variant_parts: + assert not c in self.canon_decomp, "Unexpected: CJK compat variant is unnormalized (canon)" + assert not c in self.compat_decomp, "Unexpected: CJK compat variant is unnormalized (compat)" + self.cjk_compat_variants_fully_decomp[char_int] = cjk_compat_variant_parts + def _load_norm_props(self): props = collections.defaultdict(list) @@ -178,11 +227,6 @@ class UnicodeData(object): The upshot is that decomposition code is very simple and easy to inline at mild code size cost. """ - # Constants from Unicode 9.0.0 Section 3.12 Conjoining Jamo Behavior - # http://www.unicode.org/versions/Unicode9.0.0/ch03.pdf#M9.32468.Heading.310.Combining.Jamo.Behavior - S_BASE, L_COUNT, V_COUNT, T_COUNT = 0xAC00, 19, 21, 28 - S_COUNT = L_COUNT * V_COUNT * T_COUNT - def _decompose(char_int, compatible): # 7-bit ASCII never decomposes if char_int <= 0x7f: @@ -320,8 +364,8 @@ def gen_composition_table(canon_comp, out): out.write(" }\n") out.write("}\n") -def gen_decomposition_tables(canon_decomp, compat_decomp, out): - tables = [(canon_decomp, 'canonical'), (compat_decomp, 'compatibility')] +def gen_decomposition_tables(canon_decomp, compat_decomp, cjk_compat_variants_decomp, out): + tables = [(canon_decomp, 'canonical'), (compat_decomp, 'compatibility'), (cjk_compat_variants_decomp, 'cjk_compat_variants')] for table, name in tables: gen_mph_data(name + '_decomposed', table, "(u32, &'static [char])", lambda k: "(0x{:x}, &[{}])".format(k, @@ -491,7 +535,7 @@ if __name__ == '__main__': gen_composition_table(data.canon_comp, out) out.write("\n") - gen_decomposition_tables(data.canon_fully_decomp, data.compat_fully_decomp, out) + gen_decomposition_tables(data.canon_fully_decomp, data.compat_fully_decomp, data.cjk_compat_variants_fully_decomp, out) gen_combining_mark(data.general_category_mark, out) out.write("\n") @@ -59,6 +59,7 @@ pub use crate::quick_check::{ IsNormalized, }; pub use crate::recompose::Recompositions; +pub use crate::replace::Replacements; pub use crate::stream_safe::StreamSafe; pub use crate::tables::UNICODE_VERSION; use core::str::Chars; @@ -71,6 +72,7 @@ mod normalize; mod perfect_hash; mod quick_check; mod recompose; +mod replace; mod stream_safe; #[rustfmt::skip] @@ -83,7 +85,9 @@ mod test; /// Methods for composing and decomposing characters. pub mod char { - pub use crate::normalize::{compose, decompose_canonical, decompose_compatible}; + pub use crate::normalize::{ + compose, decompose_canonical, decompose_cjk_compat_variants, decompose_compatible, + }; pub use crate::lookups::{canonical_combining_class, is_combining_mark}; } @@ -108,6 +112,18 @@ pub trait UnicodeNormalization<I: Iterator<Item = char>> { /// (compatibility decomposition followed by canonical composition). fn nfkc(self) -> Recompositions<I>; + /// A transformation which replaces CJK Compatibility Ideograph codepoints + /// with normal forms using Standardized Variation Sequences. This is not + /// part of the canonical or compatibility decomposition algorithms, but + /// performing it before those algorithms produces normalized output which + /// better preserves the intent of the original text. + /// + /// Note that many systems today ignore variation selectors, so these + /// may not immediately help text display as intended, but they at + /// least preserve the information in a standardized form, giving + /// implementations the option to recognize them. + fn cjk_compat_variants(self) -> Replacements<I>; + /// An Iterator over the string with Conjoining Grapheme Joiner characters /// inserted according to the Stream-Safe Text Process (UAX15-D4) fn stream_safe(self) -> StreamSafe<I>; @@ -135,6 +151,11 @@ impl<'a> UnicodeNormalization<Chars<'a>> for &'a str { } #[inline] + fn cjk_compat_variants(self) -> Replacements<Chars<'a>> { + replace::new_cjk_compat_variants(self.chars()) + } + + #[inline] fn stream_safe(self) -> StreamSafe<Chars<'a>> { StreamSafe::new(self.chars()) } @@ -162,6 +183,11 @@ impl<I: Iterator<Item = char>> UnicodeNormalization<I> for I { } #[inline] + fn cjk_compat_variants(self) -> Replacements<I> { + replace::new_cjk_compat_variants(self) + } + + #[inline] fn stream_safe(self) -> StreamSafe<I> { StreamSafe::new(self) } diff --git a/src/lookups.rs b/src/lookups.rs index 5bf5090..0111d20 100644 --- a/src/lookups.rs +++ b/src/lookups.rs @@ -64,6 +64,17 @@ pub(crate) fn compatibility_fully_decomposed(c: char) -> Option<&'static [char]> ) } +pub(crate) fn cjk_compat_variants_fully_decomposed(c: char) -> Option<&'static [char]> { + mph_lookup( + c.into(), + CJK_COMPAT_VARIANTS_DECOMPOSED_SALT, + CJK_COMPAT_VARIANTS_DECOMPOSED_KV, + pair_lookup_fk, + pair_lookup_fv_opt, + None, + ) +} + /// Return whether the given character is a combining mark (`General_Category=Mark`) pub fn is_combining_mark(c: char) -> bool { mph_lookup( diff --git a/src/no_std_prelude.rs b/src/no_std_prelude.rs index 838d122..838d122 100644..100755 --- a/src/no_std_prelude.rs +++ b/src/no_std_prelude.rs diff --git a/src/normalize.rs b/src/normalize.rs index 1097c42..b144bd7 100644 --- a/src/normalize.rs +++ b/src/normalize.rs @@ -10,7 +10,8 @@ //! Functions for computing canonical and compatible decompositions for Unicode characters. use crate::lookups::{ - canonical_fully_decomposed, compatibility_fully_decomposed, composition_table, + canonical_fully_decomposed, cjk_compat_variants_fully_decomposed, + compatibility_fully_decomposed, composition_table, }; use core::{char, ops::FnMut}; @@ -36,6 +37,39 @@ pub fn decompose_compatible<F: FnMut(char)>(c: char, emit_char: F) { decompose(c, decompose_char, emit_char) } +/// Compute standard-variation decomposition for character. +/// +/// [Standardized Variation Sequences] are used instead of the standard canonical +/// decompositions, notably for CJK codepoints with singleton canonical decompositions, +/// to avoid losing information. See the +/// [Unicode Variation Sequence FAQ](http://unicode.org/faq/vs.html) and the +/// "Other Enhancements" section of the +/// [Unicode 6.3 Release Summary](https://www.unicode.org/versions/Unicode6.3.0/#Summary) +/// for more information. +#[inline] +pub fn decompose_cjk_compat_variants<F>(c: char, mut emit_char: F) +where + F: FnMut(char), +{ + // 7-bit ASCII never decomposes + if c <= '\x7f' { + emit_char(c); + return; + } + + // Don't perform decomposition for Hangul + + if let Some(decomposed) = cjk_compat_variants_fully_decomposed(c) { + for &d in decomposed { + emit_char(d); + } + return; + } + + // Finally bottom out. + emit_char(c); +} + #[inline] fn decompose<D, F>(c: char, decompose_char: D, mut emit_char: F) where diff --git a/src/replace.rs b/src/replace.rs new file mode 100644 index 0000000..8d8cb42 --- /dev/null +++ b/src/replace.rs @@ -0,0 +1,61 @@ +// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. +use core::fmt::{self, Write}; +use tinyvec::ArrayVec; + +/// External iterator for replacements for a string's characters. +#[derive(Clone)] +pub struct Replacements<I> { + iter: I, + // At this time, the longest replacement sequence has length 2, so we just + // need buffer space for 1 codepoint. + buffer: Option<char>, +} + +#[inline] +pub fn new_cjk_compat_variants<I: Iterator<Item = char>>(iter: I) -> Replacements<I> { + Replacements { iter, buffer: None } +} + +impl<I: Iterator<Item = char>> Iterator for Replacements<I> { + type Item = char; + + #[inline] + fn next(&mut self) -> Option<char> { + if let Some(c) = self.buffer.take() { + return Some(c); + } + + match self.iter.next() { + Some(ch) => { + // At this time, the longest replacement sequence has length 2. + let mut buffer = ArrayVec::<[char; 2]>::new(); + super::char::decompose_cjk_compat_variants(ch, |d| buffer.push(d)); + self.buffer = buffer.get(1).copied(); + Some(buffer[0]) + } + None => None, + } + } + + fn size_hint(&self) -> (usize, Option<usize>) { + let (lower, _) = self.iter.size_hint(); + (lower, None) + } +} + +impl<I: Iterator<Item = char> + Clone> fmt::Display for Replacements<I> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + for c in self.clone() { + f.write_char(c)?; + } + Ok(()) + } +} diff --git a/src/stream_safe.rs b/src/stream_safe.rs index 7ee71c9..30fe810 100644 --- a/src/stream_safe.rs +++ b/src/stream_safe.rs @@ -32,25 +32,26 @@ impl<I: Iterator<Item = char>> Iterator for StreamSafe<I> { #[inline] fn next(&mut self) -> Option<char> { - if let Some(ch) = self.buffer.take() { - return Some(ch); - } - let next_ch = match self.iter.next() { + let next_ch = match self.buffer.take().or_else(|| self.iter.next()) { None => return None, Some(c) => c, }; let d = classify_nonstarters(next_ch); if self.nonstarter_count + d.leading_nonstarters > MAX_NONSTARTERS { + // Since we're emitting a CGJ, the suffix of the emitted string in NFKD has no trailing + // nonstarters, so we can reset the counter to zero. Put `next_ch` back into the + // iterator (via `self.buffer`), and we'll reclassify it next iteration. + self.nonstarter_count = 0; self.buffer = Some(next_ch); - self.nonstarter_count = d.decomposition_len; return Some(COMBINING_GRAPHEME_JOINER); } - // No starters in the decomposition, so keep accumulating + // Is the character all nonstarters in NFKD? If so, increment our counter of contiguous + // nonstarters in NKFD. if d.leading_nonstarters == d.decomposition_len { self.nonstarter_count += d.decomposition_len; } - // Otherwise, restart the nonstarter counter. + // Otherwise, reset the counter to the decomposition's number of trailing nonstarters. else { self.nonstarter_count = d.trailing_nonstarters; } @@ -132,6 +133,13 @@ mod tests { } #[test] + fn test_all_nonstarters() { + let s = "\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}\u{0300}"; + let expected = "\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{034F}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}\u{300}"; + assert_eq!(stream_safe(s), expected); + } + + #[test] fn test_classify_nonstarters() { // Highest character in the `compat_fully_decomp` table is 2FA1D for ch in 0..0x2FA1E { diff --git a/src/tables.rs b/src/tables.rs index f90dedd..81ebf23 100644 --- a/src/tables.rs +++ b/src/tables.rs @@ -15161,6 +15161,2015 @@ pub(crate) const COMPATIBILITY_DECOMPOSED_KV: &[(u32, &'static [char])] = &[ (0x2106, &['\u{0063}', '\u{002F}', '\u{0075}']), ]; +pub(crate) const CJK_COMPAT_VARIANTS_DECOMPOSED_SALT: &[u16] = &[ + 0x5, + 0x0, + 0x0, + 0x0, + 0x162, + 0x14, + 0xb6, + 0x0, + 0x183, + 0xd, + 0x0, + 0x0, + 0x35, + 0x11, + 0x7, + 0x0, + 0x1c, + 0x0, + 0x1, + 0x0, + 0xd3, + 0xb, + 0xa, + 0xe1, + 0x0, + 0x0, + 0x0, + 0x48, + 0x72, + 0xc7, + 0x2, + 0x21, + 0x15, + 0x2c, + 0x0, + 0x0, + 0x0, + 0x5, + 0x1f, + 0x8, + 0x7, + 0x0, + 0x4, + 0x0, + 0x7, + 0x10, + 0x0, + 0x0, + 0x0, + 0x4e, + 0x0, + 0x6, + 0x0, + 0x11, + 0x14, + 0x4, + 0x1a, + 0x2, + 0x58, + 0x0, + 0x17, + 0x0, + 0x0, + 0x0, + 0x4, + 0x0, + 0x1, + 0x0, + 0x1, + 0x0, + 0x4, + 0x6, + 0x16, + 0x20, + 0x4, + 0x0, + 0x1e, + 0x30, + 0x0, + 0x24, + 0x1a, + 0x17, + 0x0, + 0xa0, + 0x29, + 0x34, + 0x2, + 0x0, + 0x4, + 0x0, + 0x23, + 0x29, + 0x21, + 0x0, + 0x0, + 0xb, + 0x0, + 0x20, + 0x1, + 0x7, + 0x8, + 0x9, + 0x8, + 0x0, + 0x1, + 0x0, + 0x1, + 0x4, + 0x3, + 0x1d, + 0x0, + 0x0, + 0x0, + 0x1, + 0x29, + 0xd, + 0x7, + 0x0, + 0x0, + 0x2, + 0xe, + 0x9, + 0x4, + 0xc, + 0x1, + 0x13, + 0x5, + 0x6, + 0x5, + 0x1, + 0x9, + 0x1, + 0xa, + 0x2, + 0x0, + 0x8, + 0x29, + 0x0, + 0x8, + 0x2, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0xd, + 0x0, + 0x9, + 0x10, + 0xf, + 0x0, + 0x11, + 0xf, + 0x0, + 0x8, + 0x1, + 0x1, + 0x5, + 0x0, + 0x1, + 0x26, + 0x5, + 0x39, + 0x8, + 0x1, + 0x17, + 0xd, + 0x4, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0xe, + 0x0, + 0x5, + 0x0, + 0x0, + 0x0, + 0x0, + 0x4, + 0x0, + 0x1, + 0x2, + 0x4, + 0x3, + 0x35, + 0x1, + 0x2, + 0x1, + 0x7, + 0x0, + 0x0, + 0x3, + 0x2, + 0x11, + 0x0, + 0xd, + 0x3, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x4, + 0x5, + 0x0, + 0xe, + 0x0, + 0x0, + 0x3, + 0x6, + 0x2, + 0xb, + 0x2, + 0x1, + 0x3, + 0x12, + 0xb, + 0x0, + 0x0, + 0x0, + 0x2, + 0xb, + 0x1, + 0x4, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x2f, + 0x1, + 0x13, + 0xb, + 0x4, + 0x2, + 0x4, + 0x4, + 0x0, + 0xb, + 0x4, + 0x0, + 0xb, + 0x4, + 0xd, + 0xc, + 0x0, + 0x1e, + 0x0, + 0x21, + 0xd, + 0x2, + 0x7, + 0x0, + 0x0, + 0x0, + 0x1, + 0x2, + 0x0, + 0x20, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x1f, + 0x1, + 0x2, + 0x0, + 0x0, + 0x5, + 0x0, + 0x0, + 0x4, + 0x0, + 0x11, + 0x2, + 0x8, + 0x7, + 0x0, + 0x0, + 0xc, + 0x3, + 0x0, + 0x4, + 0xe, + 0x23, + 0x4, + 0x1, + 0x0, + 0x2, + 0x0, + 0x4, + 0x8, + 0x10, + 0x2, + 0x0, + 0x13, + 0xd, + 0x0, + 0xb, + 0x9, + 0x6, + 0x0, + 0x0, + 0x9, + 0xc, + 0xa, + 0x4, + 0x1a, + 0x3, + 0x1, + 0x3, + 0x0, + 0x1, + 0x0, + 0x6, + 0x3, + 0xa, + 0x0, + 0xa, + 0x6, + 0x8, + 0x8, + 0x3, + 0x19, + 0x0, + 0x0, + 0x0, + 0x0, + 0xc, + 0x5, + 0x0, + 0x5, + 0x1, + 0x0, + 0x2, + 0x0, + 0x8, + 0x0, + 0xc, + 0x0, + 0x2, + 0x0, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x4, + 0x2, + 0x15, + 0x0, + 0x4, + 0x1, + 0x12, + 0x4, + 0x3, + 0xc, + 0x4, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x3, + 0x0, + 0x5, + 0x2, + 0x0, + 0x1, + 0x2, + 0x1, + 0x10, + 0x4, + 0x0, + 0x5, + 0x2, + 0x1, + 0x6, + 0x0, + 0x0, + 0x0, + 0x0, + 0xa, + 0x8, + 0x2, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x4, + 0x4, + 0xc, + 0x2, + 0x0, + 0x6, + 0x3, + 0x3, + 0xf, + 0x0, + 0x3, + 0x5, + 0x1, + 0x0, + 0x0, + 0x8, + 0x0, + 0x2, + 0x4, + 0x2, + 0x13, + 0x0, + 0x0, + 0x0, + 0xa, + 0x6, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0xa, + 0x0, + 0x5, + 0x0, + 0x5, + 0x0, + 0x6, + 0x0, + 0x1, + 0x1, + 0x5, + 0x1, + 0xa, + 0x9, + 0x5, + 0x1, + 0x0, + 0x7, + 0x1, + 0x1, + 0x7, + 0x1, + 0x1f, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x2, + 0x11, + 0x5, + 0x3, + 0x5, + 0x3, + 0x1, + 0x1, + 0x0, + 0x4, + 0x1, + 0x4, + 0x1, + 0x8, + 0x0, + 0x19, + 0x0, + 0x4, + 0x3, + 0x5, + 0x6, + 0x0, + 0x11, + 0xe, + 0x5, + 0x1, + 0x0, + 0x1a, + 0x4, + 0x0, + 0x3, + 0x0, + 0x0, + 0x5, + 0x0, + 0x0, + 0x1, + 0x17, + 0x0, + 0x6, + 0x3, + 0xf, + 0x1, + 0x6, + 0x9, + 0x0, + 0x5, + 0x0, + 0x3, + 0x1, + 0x17, + 0x7, + 0x0, + 0x2, + 0x5, + 0x3, + 0x2, + 0x0, + 0x7, + 0x1, + 0x0, + 0x4, + 0x0, + 0x0, + 0x5, + 0x15, + 0x4, + 0x0, + 0x3, + 0x1, + 0x3, + 0x7, + 0x0, + 0x0, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x9, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x9, + 0x0, + 0x0, + 0x0, + 0x1, + 0x3, + 0x0, + 0x0, + 0x3, + 0x1, + 0x0, + 0x0, + 0x0, + 0x1, + 0x0, + 0x0, + 0x0, + 0x3, + 0x8, + 0x0, + 0x2, + 0x2, + 0x3, + 0x5, + 0x0, + 0x0, + 0x0, + 0x8, + 0x3, + 0x2, + 0x0, + 0x9, + 0x4, + 0x0, + 0x6, + 0xf, + 0x1, + 0x0, + 0x0, + 0x4, + 0x2, + 0x2, + 0x4, + 0x4, + 0xd, + 0x0, + 0x0, + 0x0, + 0x1, + 0x0, + 0x2, + 0x5, + 0x0, + 0x0, + 0xc, + 0x4, + 0x9, + 0x2, + 0x8, + 0x1, + 0x0, + 0x5, + 0x4, + 0x1, + 0x2, + 0x1, + 0x5, + 0x2, + 0xb, + 0x4, + 0xd, + 0x4, + 0x0, + 0x1, + 0x18, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x3, + 0x0, + 0x2, + 0xa, + 0x2, + 0x4, + 0x4, + 0x0, + 0x0, + 0x0, + 0x1, + 0x0, + 0xc, + 0x1, + 0xc, + 0x1, + 0x9, + 0xb, + 0x0, + 0x1, + 0x0, + 0x2, + 0x0, + 0x5, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x7, + 0x2, + 0x0, + 0x6, + 0x4, + 0xa, + 0x1, + 0x1, + 0x5, + 0x2, + 0x6, + 0x4, + 0x3, + 0xd, + 0x2, + 0x2, + 0x0, + 0x1, + 0x2, + 0x3, + 0x2, + 0x0, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x2, + 0x0, + 0x1, + 0x0, + 0x0, + 0x3, + 0x2, + 0x0, + 0x5, + 0x2, + 0x5, + 0x2, + 0x1, + 0x4, + 0x1, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x7, + 0x2, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x1, + 0x0, + 0x2, + 0x0, + 0x0, + 0x4, + 0x8, + 0x0, + 0x3, + 0x2, + 0x2, + 0x2, + 0x2, + 0x4, + 0x1, + 0x4, + 0x2, + 0x0, + 0x1, + 0x4, + 0x1, + 0x1, + 0x2, + 0x0, + 0x0, + 0xc, + 0x0, + 0x1, + 0x2, + 0x0, + 0x6, + 0x2, + 0x0, + 0x0, + 0x8, + 0x1, + 0x9, + 0x1, + 0x3, + 0x0, + 0x4, + 0x1, + 0x0, + 0x6, + 0x0, + 0x3, + 0x7, + 0x0, + 0x0, + 0x2, + 0x1, + 0x0, + 0x3, + 0x2, + 0x0, + 0x2, + 0x7, + 0x0, + 0x0, + 0x0, + 0x0, + 0x5, + 0x3, + 0x1, + 0x3, + 0x0, + 0x5, + 0x0, + 0x1, + 0x0, + 0x3, + 0x1, + 0x1, + 0x2, + 0x3, + 0x0, + 0x2, + 0x3, + 0x0, + 0x0, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x1, + 0x0, + 0x4, + 0x3, + 0x2, + 0x4, + 0x3, + 0x5, + 0x2, + 0x0, + 0x0, + 0x1, + 0x3, + 0x2, + 0x0, + 0x0, + 0x4, + 0x3, + 0x0, + 0x1, + 0x6, + 0x1, + 0x4, + 0x0, + 0x2, + 0x2, + 0x1, + 0x0, + 0xd, + 0x1, + 0x0, + 0x0, + 0x1, + 0x0, + 0x2, + 0x3, + 0x8, + 0x5, + 0x7, + 0x6, + 0x0, + 0x1, + 0x6, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x2, + 0x0, + 0x1, + 0x0, + 0x0, + 0x1, + 0x1, + 0x2, + 0x4, + 0x2, + 0x1, + 0x1, + 0x2, + 0x0, + 0x0, + 0x0, + 0x1, + 0x5, + 0x1, + 0x0, + 0x2, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x1, + 0x4, + 0x0, + 0x2, + 0x0, + 0x1, + 0x3, + 0x3, + 0x1, + 0x0, + 0x4, + 0x0, + 0x1, + 0x1, + 0x1, + 0x1, + 0x1, + 0x4, + 0x0, + 0x0, + 0x3, + 0x1, + 0x3, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x1, + 0x2, + 0x0, + 0x0, + 0x1, + 0x3, + 0x2, + 0x1, + 0x2, + 0x1, + 0x9, + 0x1, + 0x0, + 0x1, + 0x3, + 0x4, + 0x0, + 0x0, + 0x0, + 0x2, + 0x0, + 0x3, + 0x1, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x0, + 0x2, + 0x1, + 0x4, + 0x1, + 0x1, + 0x1, + 0x2, + 0x1, + 0x6, + 0x1, + 0x1, + 0x2, + 0x1, + 0x0, + 0x0, + 0x0, + 0x3, + 0x1, + 0x0, + 0x5, + 0x1, +]; +pub(crate) const CJK_COMPAT_VARIANTS_DECOMPOSED_KV: &[(u32, &'static [char])] = &[ + (0xfa08, &['\u{884C}', '\u{FE00}']), + (0x2f825, &['\u{52C7}', '\u{FE01}']), + (0x2f838, &['\u{20B63}', '\u{FE00}']), + (0x2f95b, &['\u{7A4F}', '\u{FE00}']), + (0x2f8fb, &['\u{23CBC}', '\u{FE00}']), + (0x2f83a, &['\u{53F1}', '\u{FE00}']), + (0x2f8a7, &['\u{614C}', '\u{FE00}']), + (0x2f856, &['\u{5832}', '\u{FE00}']), + (0x2f810, &['\u{5164}', '\u{FE00}']), + (0xfa8b, &['\u{61F2}', '\u{FE01}']), + (0xfa7a, &['\u{5599}', '\u{FE00}']), + (0x2f9ef, &['\u{4995}', '\u{FE00}']), + (0x2f959, &['\u{7A40}', '\u{FE01}']), + (0xf9c8, &['\u{677B}', '\u{FE00}']), + (0xf9c4, &['\u{9F8D}', '\u{FE00}']), + (0x2f833, &['\u{537F}', '\u{FE02}']), + (0xf96c, &['\u{585E}', '\u{FE00}']), + (0xf9a1, &['\u{8AAA}', '\u{FE01}']), + (0xf906, &['\u{53E5}', '\u{FE00}']), + (0x2fa01, &['\u{295B6}', '\u{FE00}']), + (0xf94c, &['\u{6A13}', '\u{FE00}']), + (0xf90f, &['\u{7F85}', '\u{FE00}']), + (0x2f8dd, &['\u{233C3}', '\u{FE00}']), + (0xfa55, &['\u{7A81}', '\u{FE00}']), + (0x2f860, &['\u{216A8}', '\u{FE00}']), + (0x2f999, &['\u{831D}', '\u{FE00}']), + (0xfabc, &['\u{8B01}', '\u{FE01}']), + (0x2f9b9, &['\u{870E}', '\u{FE00}']), + (0xf943, &['\u{5F04}', '\u{FE00}']), + (0x2f952, &['\u{25626}', '\u{FE00}']), + (0x2f8f1, &['\u{6B54}', '\u{FE00}']), + (0xf99c, &['\u{5217}', '\u{FE00}']), + (0xf969, &['\u{6578}', '\u{FE00}']), + (0xf98d, &['\u{8F62}', '\u{FE00}']), + (0xfa7f, &['\u{5954}', '\u{FE00}']), + (0x2f9d6, &['\u{8D1B}', '\u{FE00}']), + (0x2f81b, &['\u{51B5}', '\u{FE01}']), + (0xfa9d, &['\u{77A7}', '\u{FE00}']), + (0x2f8e4, &['\u{688E}', '\u{FE00}']), + (0xfa94, &['\u{6756}', '\u{FE00}']), + (0x2f890, &['\u{5EFE}', '\u{FE00}']), + (0xf93d, &['\u{7DA0}', '\u{FE00}']), + (0x2f924, &['\u{7280}', '\u{FE00}']), + (0x2f983, &['\u{8103}', '\u{FE00}']), + (0xfa2f, &['\u{96B7}', '\u{FE00}']), + (0x2f891, &['\u{22331}', '\u{FE00}']), + (0x2f934, &['\u{7524}', '\u{FE00}']), + (0x2f835, &['\u{7070}', '\u{FE00}']), + (0x2f899, &['\u{5F62}', '\u{FE00}']), + (0x2f8ae, &['\u{61AF}', '\u{FE00}']), + (0xf9d6, &['\u{6DEA}', '\u{FE00}']), + (0x2f9a0, &['\u{8353}', '\u{FE00}']), + (0xfac2, &['\u{8F38}', '\u{FE00}']), + (0x2f851, &['\u{58EE}', '\u{FE00}']), + (0x2f804, &['\u{4F60}', '\u{FE00}']), + (0x2f90d, &['\u{23ED1}', '\u{FE00}']), + (0xf95e, &['\u{4E39}', '\u{FE00}']), + (0x2f8da, &['\u{6721}', '\u{FE00}']), + (0x2f885, &['\u{5E28}', '\u{FE00}']), + (0x2f96a, &['\u{7D00}', '\u{FE00}']), + (0xf907, &['\u{9F9C}', '\u{FE00}']), + (0xf9f9, &['\u{7C92}', '\u{FE00}']), + (0xf94b, &['\u{5C62}', '\u{FE00}']), + (0x2f915, &['\u{701B}', '\u{FE00}']), + (0xf9f1, &['\u{96A3}', '\u{FE00}']), + (0x2f86d, &['\u{5BC3}', '\u{FE00}']), + (0x2f921, &['\u{7235}', '\u{FE01}']), + (0xfa96, &['\u{6BBA}', '\u{FE01}']), + (0xf9e0, &['\u{6613}', '\u{FE00}']), + (0xf921, &['\u{5D50}', '\u{FE00}']), + (0x2f99f, &['\u{8457}', '\u{FE01}']), + (0x2f8b2, &['\u{6210}', '\u{FE00}']), + (0xfab1, &['\u{7F3E}', '\u{FE00}']), + (0xfa6c, &['\u{242EE}', '\u{FE00}']), + (0x2f819, &['\u{4ECC}', '\u{FE00}']), + (0x2f910, &['\u{23F5E}', '\u{FE00}']), + (0x2f8dc, &['\u{6753}', '\u{FE00}']), + (0x2f9d3, &['\u{27CA8}', '\u{FE00}']), + (0x2f8a3, &['\u{6094}', '\u{FE01}']), + (0xf915, &['\u{6D1B}', '\u{FE00}']), + (0x2f88a, &['\u{387C}', '\u{FE00}']), + (0xf9f6, &['\u{81E8}', '\u{FE00}']), + (0x2f9f1, &['\u{28D77}', '\u{FE00}']), + (0xf98e, &['\u{5E74}', '\u{FE00}']), + (0xfad5, &['\u{25249}', '\u{FE00}']), + (0xf93b, &['\u{788C}', '\u{FE00}']), + (0x2f91e, &['\u{719C}', '\u{FE00}']), + (0xf9eb, &['\u{533F}', '\u{FE00}']), + (0xfa42, &['\u{65E2}', '\u{FE00}']), + (0x2f958, &['\u{412F}', '\u{FE00}']), + (0xfa19, &['\u{795E}', '\u{FE00}']), + (0xfaaa, &['\u{7740}', '\u{FE00}']), + (0x2f949, &['\u{4039}', '\u{FE01}']), + (0x2f978, &['\u{7F95}', '\u{FE00}']), + (0x2f8a9, &['\u{614C}', '\u{FE01}']), + (0x2f90a, &['\u{3D33}', '\u{FE00}']), + (0x2f89a, &['\u{5F6B}', '\u{FE00}']), + (0x2f8b5, &['\u{62B1}', '\u{FE00}']), + (0x2f94c, &['\u{4096}', '\u{FE00}']), + (0xfa43, &['\u{6691}', '\u{FE00}']), + (0xf997, &['\u{806F}', '\u{FE00}']), + (0x2f8ba, &['\u{62FC}', '\u{FE00}']), + (0xfa00, &['\u{5207}', '\u{FE00}']), + (0xfac3, &['\u{9072}', '\u{FE00}']), + (0x2f948, &['\u{774A}', '\u{FE01}']), + (0x2f9f4, &['\u{5DB2}', '\u{FE00}']), + (0xfa99, &['\u{6ECB}', '\u{FE00}']), + (0x2f976, &['\u{7F7A}', '\u{FE00}']), + (0xf978, &['\u{5169}', '\u{FE00}']), + (0x2f8fe, &['\u{6C67}', '\u{FE00}']), + (0x2f8e3, &['\u{2346D}', '\u{FE00}']), + (0xf919, &['\u{916A}', '\u{FE00}']), + (0x2f8ef, &['\u{6B21}', '\u{FE00}']), + (0xf939, &['\u{9B6F}', '\u{FE00}']), + (0x2f8c9, &['\u{656C}', '\u{FE00}']), + (0x2f844, &['\u{5563}', '\u{FE00}']), + (0xfabb, &['\u{8ACB}', '\u{FE00}']), + (0x2f9c4, &['\u{8863}', '\u{FE00}']), + (0x2f984, &['\u{440B}', '\u{FE00}']), + (0x2f802, &['\u{4E41}', '\u{FE00}']), + (0xfa15, &['\u{51DE}', '\u{FE00}']), + (0xf9be, &['\u{6599}', '\u{FE00}']), + (0xf942, &['\u{58DF}', '\u{FE00}']), + (0x2f852, &['\u{57CE}', '\u{FE00}']), + (0xfaae, &['\u{7C7B}', '\u{FE00}']), + (0x2fa17, &['\u{9EF9}', '\u{FE00}']), + (0x2f92d, &['\u{3EB8}', '\u{FE01}']), + (0x2f83f, &['\u{5468}', '\u{FE00}']), + (0xf90c, &['\u{5948}', '\u{FE00}']), + (0xf931, &['\u{6AD3}', '\u{FE00}']), + (0xf9c1, &['\u{7642}', '\u{FE00}']), + (0x2f873, &['\u{5C06}', '\u{FE00}']), + (0x2f965, &['\u{25C80}', '\u{FE00}']), + (0xf902, &['\u{8ECA}', '\u{FE00}']), + (0x2f805, &['\u{4FAE}', '\u{FE01}']), + (0x2f8ca, &['\u{2300A}', '\u{FE00}']), + (0xf9c7, &['\u{5289}', '\u{FE00}']), + (0x2f8f4, &['\u{6B9F}', '\u{FE00}']), + (0xfa0d, &['\u{55C0}', '\u{FE00}']), + (0xfa5c, &['\u{81ED}', '\u{FE00}']), + (0xfa4c, &['\u{793E}', '\u{FE00}']), + (0x2f865, &['\u{59D8}', '\u{FE00}']), + (0x2f876, &['\u{3781}', '\u{FE00}']), + (0x2f9d7, &['\u{8D77}', '\u{FE00}']), + (0xf975, &['\u{63A0}', '\u{FE00}']), + (0x2f9bb, &['\u{8779}', '\u{FE01}']), + (0x2f9d2, &['\u{8C55}', '\u{FE00}']), + (0xf9ed, &['\u{541D}', '\u{FE00}']), + (0x2f9b4, &['\u{865C}', '\u{FE01}']), + (0xfa6d, &['\u{8218}', '\u{FE00}']), + (0xf9e5, &['\u{75E2}', '\u{FE00}']), + (0x2f8d8, &['\u{6717}', '\u{FE02}']), + (0x2f93d, &['\u{25044}', '\u{FE00}']), + (0xfa03, &['\u{7CD6}', '\u{FE00}']), + (0xf9a0, &['\u{88C2}', '\u{FE00}']), + (0x2fa12, &['\u{2A105}', '\u{FE00}']), + (0xfa63, &['\u{8B39}', '\u{FE00}']), + (0xf920, &['\u{9E1E}', '\u{FE00}']), + (0xf91f, &['\u{862D}', '\u{FE00}']), + (0x2f97d, &['\u{8060}', '\u{FE00}']), + (0xf990, &['\u{6200}', '\u{FE00}']), + (0xfa57, &['\u{7DF4}', '\u{FE01}']), + (0x2f975, &['\u{262D9}', '\u{FE00}']), + (0xfad8, &['\u{9F43}', '\u{FE00}']), + (0xfab3, &['\u{8352}', '\u{FE00}']), + (0x2f9f3, &['\u{96C3}', '\u{FE00}']), + (0xf9fb, &['\u{7099}', '\u{FE00}']), + (0xf918, &['\u{843D}', '\u{FE00}']), + (0x2f8c3, &['\u{6469}', '\u{FE00}']), + (0xf9ca, &['\u{6D41}', '\u{FE00}']), + (0xf952, &['\u{52D2}', '\u{FE00}']), + (0x2fa0b, &['\u{9C40}', '\u{FE00}']), + (0x2f941, &['\u{250F3}', '\u{FE00}']), + (0x2f862, &['\u{59EC}', '\u{FE00}']), + (0x2f8ff, &['\u{6D16}', '\u{FE00}']), + (0x2f85d, &['\u{591A}', '\u{FE00}']), + (0xf9d9, &['\u{6144}', '\u{FE00}']), + (0x2f855, &['\u{578B}', '\u{FE00}']), + (0x2f98f, &['\u{8291}', '\u{FE00}']), + (0xf9d4, &['\u{502B}', '\u{FE00}']), + (0xf99e, &['\u{54BD}', '\u{FE00}']), + (0x2f850, &['\u{5207}', '\u{FE01}']), + (0xfa22, &['\u{8AF8}', '\u{FE00}']), + (0x2f94f, &['\u{788C}', '\u{FE01}']), + (0xfaa9, &['\u{774A}', '\u{FE00}']), + (0xfa71, &['\u{51B5}', '\u{FE00}']), + (0xf95d, &['\u{8AFE}', '\u{FE00}']), + (0x2f8bd, &['\u{63E4}', '\u{FE00}']), + (0x2fa02, &['\u{98E2}', '\u{FE00}']), + (0x2f93f, &['\u{4008}', '\u{FE00}']), + (0x2f808, &['\u{507A}', '\u{FE00}']), + (0x2f950, &['\u{78CC}', '\u{FE01}']), + (0x2f933, &['\u{3F1B}', '\u{FE00}']), + (0x2f853, &['\u{57F4}', '\u{FE00}']), + (0x2f8f0, &['\u{238A7}', '\u{FE00}']), + (0xf967, &['\u{4E0D}', '\u{FE00}']), + (0xfa16, &['\u{732A}', '\u{FE00}']), + (0xfaa6, &['\u{76CA}', '\u{FE01}']), + (0x2f8b3, &['\u{621B}', '\u{FE00}']), + (0x2f9f7, &['\u{2921A}', '\u{FE00}']), + (0xf986, &['\u{95AD}', '\u{FE00}']), + (0x2f99d, &['\u{83BD}', '\u{FE00}']), + (0x2f9b8, &['\u{8688}', '\u{FE00}']), + (0xf998, &['\u{8F26}', '\u{FE00}']), + (0x2f82b, &['\u{5317}', '\u{FE01}']), + (0x2f872, &['\u{5BFF}', '\u{FE00}']), + (0xfab9, &['\u{8ABF}', '\u{FE00}']), + (0xfa9b, &['\u{701E}', '\u{FE00}']), + (0xf9b0, &['\u{8046}', '\u{FE00}']), + (0xf98b, &['\u{66C6}', '\u{FE00}']), + (0xfad1, &['\u{233D5}', '\u{FE00}']), + (0xf917, &['\u{73DE}', '\u{FE00}']), + (0x2f989, &['\u{23393}', '\u{FE00}']), + (0x2f866, &['\u{5A66}', '\u{FE00}']), + (0xf932, &['\u{7210}', '\u{FE00}']), + (0x2fa0e, &['\u{4CED}', '\u{FE00}']), + (0xfa07, &['\u{8F3B}', '\u{FE00}']), + (0xf9bd, &['\u{5C3F}', '\u{FE00}']), + (0x2f88c, &['\u{5EB3}', '\u{FE00}']), + (0xfa56, &['\u{7BC0}', '\u{FE00}']), + (0xfa64, &['\u{8CD3}', '\u{FE00}']), + (0xfa04, &['\u{5B85}', '\u{FE00}']), + (0xfa9e, &['\u{7235}', '\u{FE00}']), + (0x2f9e0, &['\u{285D2}', '\u{FE00}']), + (0x2f89d, &['\u{5FCD}', '\u{FE00}']), + (0x2f9ee, &['\u{958B}', '\u{FE00}']), + (0xf9db, &['\u{7387}', '\u{FE01}']), + (0xf923, &['\u{85CD}', '\u{FE00}']), + (0x2f841, &['\u{54F6}', '\u{FE00}']), + (0x2f81a, &['\u{51AC}', '\u{FE00}']), + (0xf911, &['\u{87BA}', '\u{FE00}']), + (0xfaad, &['\u{7BC0}', '\u{FE01}']), + (0xfac1, &['\u{8D08}', '\u{FE01}']), + (0x2f928, &['\u{737A}', '\u{FE00}']), + (0x2f935, &['\u{24C36}', '\u{FE00}']), + (0x2f8d5, &['\u{669C}', '\u{FE00}']), + (0xf92e, &['\u{51B7}', '\u{FE00}']), + (0xfa59, &['\u{7E41}', '\u{FE00}']), + (0x2f96b, &['\u{25F86}', '\u{FE00}']), + (0x2f8b9, &['\u{633D}', '\u{FE00}']), + (0x2f877, &['\u{5C60}', '\u{FE00}']), + (0x2fa00, &['\u{9829}', '\u{FE00}']), + (0xfa05, &['\u{6D1E}', '\u{FE00}']), + (0xf9e8, &['\u{88E1}', '\u{FE00}']), + (0x2f8c6, &['\u{6477}', '\u{FE00}']), + (0xf97a, &['\u{6881}', '\u{FE00}']), + (0x2f9ea, &['\u{927C}', '\u{FE00}']), + (0xf944, &['\u{7C60}', '\u{FE00}']), + (0x2f8c4, &['\u{647E}', '\u{FE00}']), + (0x2f9cd, &['\u{46BE}', '\u{FE00}']), + (0x2f8e5, &['\u{681F}', '\u{FE00}']), + (0x2f9d9, &['\u{20804}', '\u{FE00}']), + (0x2f980, &['\u{2335F}', '\u{FE00}']), + (0x2f9a8, &['\u{84F1}', '\u{FE00}']), + (0x2f92f, &['\u{745C}', '\u{FE00}']), + (0x2f951, &['\u{40E3}', '\u{FE00}']), + (0x2f9f9, &['\u{4A76}', '\u{FE00}']), + (0xfab4, &['\u{83EF}', '\u{FE00}']), + (0xf985, &['\u{792A}', '\u{FE00}']), + (0x2f829, &['\u{5305}', '\u{FE00}']), + (0x2f8a2, &['\u{391C}', '\u{FE00}']), + (0x2f9c3, &['\u{8860}', '\u{FE00}']), + (0x2f936, &['\u{753E}', '\u{FE00}']), + (0x2f9af, &['\u{4561}', '\u{FE00}']), + (0xfa77, &['\u{52FA}', '\u{FE00}']), + (0xf956, &['\u{7A1C}', '\u{FE00}']), + (0xfa5f, &['\u{8457}', '\u{FE00}']), + (0x2f93b, &['\u{24FA1}', '\u{FE00}']), + (0xf914, &['\u{6A02}', '\u{FE00}']), + (0x2f994, &['\u{82B3}', '\u{FE00}']), + (0x2f91b, &['\u{20525}', '\u{FE00}']), + (0x2f880, &['\u{5D7C}', '\u{FE00}']), + (0x2f956, &['\u{798F}', '\u{FE01}']), + (0xf958, &['\u{83F1}', '\u{FE00}']), + (0x2f99b, &['\u{83AD}', '\u{FE00}']), + (0x2fa06, &['\u{99C2}', '\u{FE00}']), + (0xfabf, &['\u{8B39}', '\u{FE01}']), + (0x2f8b6, &['\u{62D4}', '\u{FE00}']), + (0x2f8a0, &['\u{6081}', '\u{FE00}']), + (0xfa87, &['\u{614E}', '\u{FE00}']), + (0x2f8ea, &['\u{69EA}', '\u{FE00}']), + (0x2f867, &['\u{36EE}', '\u{FE00}']), + (0xf97d, &['\u{8AD2}', '\u{FE00}']), + (0xf968, &['\u{6CCC}', '\u{FE00}']), + (0xfa5a, &['\u{7F72}', '\u{FE00}']), + (0xf97b, &['\u{7CE7}', '\u{FE00}']), + (0x2fa10, &['\u{2A0CE}', '\u{FE00}']), + (0xfa2b, &['\u{98FC}', '\u{FE00}']), + (0xfa75, &['\u{5180}', '\u{FE00}']), + (0xf94d, &['\u{6DDA}', '\u{FE00}']), + (0xfad4, &['\u{4039}', '\u{FE00}']), + (0x2f8cc, &['\u{66F8}', '\u{FE00}']), + (0xfa8a, &['\u{6160}', '\u{FE00}']), + (0xf9f4, &['\u{6797}', '\u{FE00}']), + (0xfac6, &['\u{967C}', '\u{FE00}']), + (0xfa9c, &['\u{716E}', '\u{FE01}']), + (0xfa10, &['\u{585A}', '\u{FE00}']), + (0xf9e2, &['\u{68A8}', '\u{FE00}']), + (0xf947, &['\u{78CA}', '\u{FE00}']), + (0xf941, &['\u{8AD6}', '\u{FE00}']), + (0xfa4e, &['\u{7948}', '\u{FE00}']), + (0x2f9da, &['\u{8DCB}', '\u{FE00}']), + (0x2f893, &['\u{8201}', '\u{FE00}']), + (0xf96f, &['\u{8AAA}', '\u{FE00}']), + (0xf983, &['\u{65C5}', '\u{FE00}']), + (0xf9f5, &['\u{6DCB}', '\u{FE00}']), + (0xf962, &['\u{7570}', '\u{FE00}']), + (0x2f968, &['\u{7CE8}', '\u{FE00}']), + (0x2f923, &['\u{24608}', '\u{FE00}']), + (0x2fa18, &['\u{9EFE}', '\u{FE00}']), + (0x2f930, &['\u{7471}', '\u{FE01}']), + (0xfa90, &['\u{6556}', '\u{FE00}']), + (0xfa54, &['\u{7A40}', '\u{FE00}']), + (0xf9d8, &['\u{5F8B}', '\u{FE00}']), + (0x2f9e4, &['\u{9111}', '\u{FE00}']), + (0x2fa05, &['\u{99A7}', '\u{FE00}']), + (0x2f964, &['\u{4227}', '\u{FE00}']), + (0xf99f, &['\u{70C8}', '\u{FE00}']), + (0x2f94b, &['\u{4046}', '\u{FE00}']), + (0x2f9a9, &['\u{84F3}', '\u{FE00}']), + (0xfa0c, &['\u{5140}', '\u{FE00}']), + (0x2f986, &['\u{5AB5}', '\u{FE00}']), + (0xfa85, &['\u{5FAD}', '\u{FE00}']), + (0x2f95f, &['\u{7AEE}', '\u{FE00}']), + (0xf9f8, &['\u{7B20}', '\u{FE00}']), + (0xf9b4, &['\u{9818}', '\u{FE00}']), + (0x2f82e, &['\u{535A}', '\u{FE00}']), + (0xfad9, &['\u{9F8E}', '\u{FE00}']), + (0x2f937, &['\u{24C92}', '\u{FE00}']), + (0xf9cf, &['\u{7D10}', '\u{FE00}']), + (0xfaa1, &['\u{7471}', '\u{FE00}']), + (0x2f917, &['\u{704A}', '\u{FE00}']), + (0xfaa5, &['\u{761F}', '\u{FE00}']), + (0xfa3b, &['\u{5C64}', '\u{FE00}']), + (0x2f88d, &['\u{5EB6}', '\u{FE00}']), + (0x2f906, &['\u{23D1E}', '\u{FE00}']), + (0x2f901, &['\u{6D77}', '\u{FE01}']), + (0x2f97a, &['\u{8005}', '\u{FE02}']), + (0xfa60, &['\u{8910}', '\u{FE00}']), + (0x2f92c, &['\u{3EB8}', '\u{FE00}']), + (0x2f80a, &['\u{50E7}', '\u{FE01}']), + (0x2f99a, &['\u{8363}', '\u{FE00}']), + (0x2fa13, &['\u{2A20E}', '\u{FE00}']), + (0x2f938, &['\u{7570}', '\u{FE01}']), + (0x2f813, &['\u{34B9}', '\u{FE00}']), + (0x2f831, &['\u{537F}', '\u{FE00}']), + (0xfa1c, &['\u{9756}', '\u{FE00}']), + (0xfacc, &['\u{983B}', '\u{FE01}']), + (0xfa5e, &['\u{8279}', '\u{FE01}']), + (0x2f995, &['\u{82BD}', '\u{FE00}']), + (0x2f8d3, &['\u{5195}', '\u{FE00}']), + (0xfacd, &['\u{9B12}', '\u{FE00}']), + (0x2f81d, &['\u{51F5}', '\u{FE00}']), + (0x2f97b, &['\u{264DA}', '\u{FE00}']), + (0xfa3a, &['\u{58A8}', '\u{FE00}']), + (0xf9c6, &['\u{962E}', '\u{FE00}']), + (0xfabd, &['\u{8AFE}', '\u{FE01}']), + (0xf92d, &['\u{4F86}', '\u{FE00}']), + (0xf99b, &['\u{934A}', '\u{FE00}']), + (0xf91d, &['\u{6B04}', '\u{FE00}']), + (0x2f84d, &['\u{5717}', '\u{FE00}']), + (0x2f8ad, &['\u{61A4}', '\u{FE00}']), + (0xf9d3, &['\u{9678}', '\u{FE00}']), + (0x2f843, &['\u{5553}', '\u{FE00}']), + (0xf97c, &['\u{826F}', '\u{FE00}']), + (0xfa30, &['\u{4FAE}', '\u{FE00}']), + (0x2f858, &['\u{58AC}', '\u{FE00}']), + (0x2f8a5, &['\u{60C7}', '\u{FE00}']), + (0x2f988, &['\u{267B5}', '\u{FE00}']), + (0x2f9e1, &['\u{285ED}', '\u{FE00}']), + (0xfa74, &['\u{5145}', '\u{FE00}']), + (0x2f882, &['\u{5DE2}', '\u{FE00}']), + (0x2f879, &['\u{5CC0}', '\u{FE00}']), + (0x2f8b7, &['\u{6350}', '\u{FE00}']), + (0xf940, &['\u{9E7F}', '\u{FE00}']), + (0x2f9e5, &['\u{2872E}', '\u{FE00}']), + (0x2f9cf, &['\u{8AA0}', '\u{FE00}']), + (0xfa8e, &['\u{641C}', '\u{FE00}']), + (0x2f90c, &['\u{6EC7}', '\u{FE00}']), + (0x2f985, &['\u{813E}', '\u{FE00}']), + (0x2f849, &['\u{55B3}', '\u{FE00}']), + (0x2f960, &['\u{4202}', '\u{FE00}']), + (0x2f8c2, &['\u{3A2E}', '\u{FE00}']), + (0x2f85f, &['\u{5962}', '\u{FE00}']), + (0x2f916, &['\u{3D96}', '\u{FE00}']), + (0xf9fa, &['\u{72C0}', '\u{FE00}']), + (0x2f824, &['\u{3515}', '\u{FE00}']), + (0xf936, &['\u{865C}', '\u{FE00}']), + (0x2f94a, &['\u{778B}', '\u{FE00}']), + (0x2f80e, &['\u{514D}', '\u{FE01}']), + (0x2f913, &['\u{7039}', '\u{FE00}']), + (0x2f94d, &['\u{2541D}', '\u{FE00}']), + (0xf999, &['\u{84EE}', '\u{FE00}']), + (0x2f979, &['\u{7FFA}', '\u{FE00}']), + (0x2f926, &['\u{24735}', '\u{FE00}']), + (0xf9ea, &['\u{96E2}', '\u{FE00}']), + (0xfa3f, &['\u{618E}', '\u{FE00}']), + (0x2f83b, &['\u{5406}', '\u{FE00}']), + (0xfa5b, &['\u{8005}', '\u{FE00}']), + (0xfa93, &['\u{671B}', '\u{FE00}']), + (0xf913, &['\u{908F}', '\u{FE00}']), + (0xf98c, &['\u{6B77}', '\u{FE00}']), + (0x2f8c0, &['\u{63C5}', '\u{FE00}']), + (0xfad7, &['\u{27ED3}', '\u{FE00}']), + (0xf98a, &['\u{529B}', '\u{FE00}']), + (0xfa26, &['\u{90FD}', '\u{FE00}']), + (0xfabe, &['\u{8AED}', '\u{FE00}']), + (0x2f977, &['\u{2633E}', '\u{FE00}']), + (0xf954, &['\u{51DC}', '\u{FE00}']), + (0xf91a, &['\u{99F1}', '\u{FE00}']), + (0x2f8cd, &['\u{6649}', '\u{FE00}']), + (0x2f8a4, &['\u{226D4}', '\u{FE00}']), + (0xfa84, &['\u{5F69}', '\u{FE00}']), + (0x2f85e, &['\u{5922}', '\u{FE00}']), + (0xfa9f, &['\u{72AF}', '\u{FE00}']), + (0xf9b1, &['\u{9234}', '\u{FE00}']), + (0x2f9ca, &['\u{34BB}', '\u{FE00}']), + (0xfac4, &['\u{9199}', '\u{FE00}']), + (0xf927, &['\u{881F}', '\u{FE00}']), + (0xfa01, &['\u{5EA6}', '\u{FE00}']), + (0xf929, &['\u{6717}', '\u{FE00}']), + (0xf9f3, &['\u{9E9F}', '\u{FE00}']), + (0x2f9e6, &['\u{911B}', '\u{FE00}']), + (0xfa70, &['\u{4E26}', '\u{FE00}']), + (0x2f820, &['\u{523B}', '\u{FE00}']), + (0xf9a9, &['\u{56F9}', '\u{FE00}']), + (0x2f9bf, &['\u{45D7}', '\u{FE00}']), + (0x2f922, &['\u{7250}', '\u{FE00}']), + (0x2f9de, &['\u{8ED4}', '\u{FE00}']), + (0x2f8ec, &['\u{236A3}', '\u{FE00}']), + (0xf9b5, &['\u{4F8B}', '\u{FE00}']), + (0x2f9b7, &['\u{86A9}', '\u{FE00}']), + (0x2f981, &['\u{43D5}', '\u{FE00}']), + (0xfa31, &['\u{50E7}', '\u{FE00}']), + (0x2f9c1, &['\u{8801}', '\u{FE00}']), + (0x2f874, &['\u{5F53}', '\u{FE00}']), + (0xf9d0, &['\u{985E}', '\u{FE00}']), + (0xf94a, &['\u{58D8}', '\u{FE00}']), + (0x2f998, &['\u{82E5}', '\u{FE01}']), + (0x2f91c, &['\u{7145}', '\u{FE00}']), + (0x2f9df, &['\u{8F38}', '\u{FE01}']), + (0x2f859, &['\u{214E4}', '\u{FE00}']), + (0x2f883, &['\u{382F}', '\u{FE00}']), + (0xf9cc, &['\u{7409}', '\u{FE00}']), + (0x2f9b5, &['\u{8667}', '\u{FE00}']), + (0x2f970, &['\u{7E45}', '\u{FE00}']), + (0x2f814, &['\u{5167}', '\u{FE00}']), + (0x2f9ff, &['\u{980B}', '\u{FE02}']), + (0x2f84c, &['\u{5606}', '\u{FE01}']), + (0x2f9a4, &['\u{26C36}', '\u{FE00}']), + (0x2f966, &['\u{7CD2}', '\u{FE00}']), + (0xfa1e, &['\u{7FBD}', '\u{FE00}']), + (0x2fa0c, &['\u{9CFD}', '\u{FE00}']), + (0x2f863, &['\u{5A1B}', '\u{FE00}']), + (0xfaa2, &['\u{7506}', '\u{FE00}']), + (0x2f91a, &['\u{70AD}', '\u{FE00}']), + (0x2f8f8, &['\u{21D0B}', '\u{FE00}']), + (0x2f8a6, &['\u{6148}', '\u{FE00}']), + (0x2f895, &['\u{5F22}', '\u{FE01}']), + (0xf90b, &['\u{5587}', '\u{FE00}']), + (0x2f993, &['\u{82B1}', '\u{FE00}']), + (0x2f8be, &['\u{22BF1}', '\u{FE00}']), + (0xf948, &['\u{8CC2}', '\u{FE00}']), + (0x2f80d, &['\u{2063A}', '\u{FE00}']), + (0x2f81f, &['\u{34DF}', '\u{FE00}']), + (0xf9e4, &['\u{7406}', '\u{FE00}']), + (0x2f823, &['\u{5277}', '\u{FE00}']), + (0x2f9fa, &['\u{97E0}', '\u{FE00}']), + (0x2f8fa, &['\u{6C4E}', '\u{FE00}']), + (0xfa6a, &['\u{983B}', '\u{FE00}']), + (0x2f9f0, &['\u{95B7}', '\u{FE00}']), + (0x2f967, &['\u{42A0}', '\u{FE00}']), + (0xfa8f, &['\u{6452}', '\u{FE00}']), + (0xfa06, &['\u{66B4}', '\u{FE00}']), + (0xf982, &['\u{5EEC}', '\u{FE00}']), + (0xf989, &['\u{9ECE}', '\u{FE00}']), + (0x2f990, &['\u{828B}', '\u{FE00}']), + (0xfac9, &['\u{97DB}', '\u{FE00}']), + (0x2f8ed, &['\u{6ADB}', '\u{FE00}']), + (0x2f822, &['\u{5272}', '\u{FE00}']), + (0xf9cb, &['\u{6E9C}', '\u{FE00}']), + (0xfa4d, &['\u{7949}', '\u{FE00}']), + (0x2f944, &['\u{25133}', '\u{FE00}']), + (0x2f9e8, &['\u{92D7}', '\u{FE00}']), + (0x2f8d2, &['\u{5192}', '\u{FE00}']), + (0x2f97c, &['\u{26523}', '\u{FE00}']), + (0xfa68, &['\u{96E3}', '\u{FE00}']), + (0xfa53, &['\u{798E}', '\u{FE00}']), + (0x2f8f5, &['\u{6BBA}', '\u{FE02}']), + (0x2f945, &['\u{771E}', '\u{FE00}']), + (0xfa95, &['\u{6B79}', '\u{FE00}']), + (0xfa2e, &['\u{90DE}', '\u{FE00}']), + (0xf91b, &['\u{4E82}', '\u{FE00}']), + (0x2f837, &['\u{53DF}', '\u{FE00}']), + (0x2f894, &['\u{5F22}', '\u{FE00}']), + (0x2fa09, &['\u{29B30}', '\u{FE00}']), + (0x2f974, &['\u{4359}', '\u{FE00}']), + (0xf9ba, &['\u{4E86}', '\u{FE00}']), + (0x2f80b, &['\u{50CF}', '\u{FE00}']), + (0xfaca, &['\u{97FF}', '\u{FE01}']), + (0x2f969, &['\u{7CE3}', '\u{FE00}']), + (0x2f8b1, &['\u{61F6}', '\u{FE01}']), + (0x2f8d1, &['\u{3AE4}', '\u{FE00}']), + (0x2f91d, &['\u{24263}', '\u{FE00}']), + (0x2f9d4, &['\u{8CAB}', '\u{FE00}']), + (0x2fa15, &['\u{9EBB}', '\u{FE00}']), + (0x2f954, &['\u{2569A}', '\u{FE00}']), + (0xfa81, &['\u{5B28}', '\u{FE00}']), + (0x2f9a5, &['\u{26D6B}', '\u{FE00}']), + (0x2f90f, &['\u{6F6E}', '\u{FE00}']), + (0xf92a, &['\u{6D6A}', '\u{FE00}']), + (0x2fa19, &['\u{9F05}', '\u{FE00}']), + (0x2f943, &['\u{25119}', '\u{FE00}']), + (0x2f947, &['\u{771F}', '\u{FE01}']), + (0x2fa0a, &['\u{9B12}', '\u{FE01}']), + (0x2f963, &['\u{7BC9}', '\u{FE00}']), + (0xf9bb, &['\u{50DA}', '\u{FE00}']), + (0x2f8ac, &['\u{61B2}', '\u{FE00}']), + (0xf9c5, &['\u{6688}', '\u{FE00}']), + (0x2f97e, &['\u{265A8}', '\u{FE00}']), + (0x2f889, &['\u{22183}', '\u{FE00}']), + (0x2f8e9, &['\u{69A3}', '\u{FE00}']), + (0xf9da, &['\u{6817}', '\u{FE00}']), + (0xface, &['\u{9F9C}', '\u{FE02}']), + (0x2f920, &['\u{7228}', '\u{FE00}']), + (0xf951, &['\u{964B}', '\u{FE00}']), + (0xf9bc, &['\u{5BEE}', '\u{FE00}']), + (0x2f940, &['\u{76F4}', '\u{FE01}']), + (0x2f84e, &['\u{5651}', '\u{FE00}']), + (0xfa48, &['\u{716E}', '\u{FE00}']), + (0x2fa08, &['\u{4BCE}', '\u{FE00}']), + (0xf9e6, &['\u{7F79}', '\u{FE00}']), + (0x2f8c8, &['\u{654F}', '\u{FE01}']), + (0xf912, &['\u{88F8}', '\u{FE00}']), + (0x2f8f7, &['\u{23A8D}', '\u{FE00}']), + (0x2f904, &['\u{6D78}', '\u{FE00}']), + (0xfa76, &['\u{52C7}', '\u{FE00}']), + (0x2f8e8, &['\u{6942}', '\u{FE00}']), + (0x2f9e2, &['\u{9094}', '\u{FE00}']), + (0xf903, &['\u{8CC8}', '\u{FE00}']), + (0xfa9a, &['\u{6F22}', '\u{FE01}']), + (0xf996, &['\u{7DF4}', '\u{FE00}']), + (0x2f8db, &['\u{675E}', '\u{FE00}']), + (0xfa4a, &['\u{7422}', '\u{FE00}']), + (0xfa6b, &['\u{6075}', '\u{FE00}']), + (0x2f8fd, &['\u{6CCD}', '\u{FE00}']), + (0xfa79, &['\u{5555}', '\u{FE00}']), + (0xf987, &['\u{9A6A}', '\u{FE00}']), + (0x2f8f2, &['\u{3C4E}', '\u{FE00}']), + (0xf90d, &['\u{61F6}', '\u{FE00}']), + (0xf922, &['\u{6FEB}', '\u{FE00}']), + (0xfa88, &['\u{6108}', '\u{FE00}']), + (0xf91c, &['\u{5375}', '\u{FE00}']), + (0x2f870, &['\u{5BF3}', '\u{FE00}']), + (0x2f9ac, &['\u{8564}', '\u{FE00}']), + (0x2f839, &['\u{53EB}', '\u{FE00}']), + (0x2fa03, &['\u{4B33}', '\u{FE00}']), + (0x2f854, &['\u{580D}', '\u{FE00}']), + (0x2f92a, &['\u{3EAC}', '\u{FE00}']), + (0xfa35, &['\u{5351}', '\u{FE00}']), + (0x2f9e7, &['\u{9238}', '\u{FE00}']), + (0x2f9a6, &['\u{26CD5}', '\u{FE00}']), + (0xfaaf, &['\u{7D5B}', '\u{FE00}']), + (0x2f911, &['\u{23F8E}', '\u{FE00}']), + (0x2f95d, &['\u{25AA7}', '\u{FE00}']), + (0x2f89c, &['\u{5F9A}', '\u{FE00}']), + (0xfa45, &['\u{6D77}', '\u{FE00}']), + (0xfa1b, &['\u{798F}', '\u{FE00}']), + (0xfa3d, &['\u{6094}', '\u{FE00}']), + (0xf980, &['\u{5442}', '\u{FE00}']), + (0xfa8c, &['\u{6234}', '\u{FE00}']), + (0x2f9e9, &['\u{92D8}', '\u{FE00}']), + (0x2f9f8, &['\u{4A6E}', '\u{FE00}']), + (0x2f902, &['\u{6D41}', '\u{FE02}']), + (0x2fa1d, &['\u{2A600}', '\u{FE00}']), + (0xfab6, &['\u{8941}', '\u{FE00}']), + (0xf995, &['\u{79CA}', '\u{FE00}']), + (0x2f832, &['\u{537F}', '\u{FE01}']), + (0x2f955, &['\u{256C5}', '\u{FE00}']), + (0x2f8fc, &['\u{6CBF}', '\u{FE00}']), + (0x2f875, &['\u{5C22}', '\u{FE00}']), + (0x2f82a, &['\u{5306}', '\u{FE00}']), + (0x2f811, &['\u{5177}', '\u{FE00}']), + (0x2f868, &['\u{36FC}', '\u{FE00}']), + (0x2f925, &['\u{7295}', '\u{FE00}']), + (0xfa20, &['\u{8612}', '\u{FE00}']), + (0x2f83e, &['\u{5448}', '\u{FE00}']), + (0xf9af, &['\u{7F9A}', '\u{FE00}']), + (0x2f997, &['\u{26B3C}', '\u{FE00}']), + (0x2f9ec, &['\u{9415}', '\u{FE00}']), + (0xf9ab, &['\u{5DBA}', '\u{FE00}']), + (0xf935, &['\u{8606}', '\u{FE00}']), + (0xfa80, &['\u{5A62}', '\u{FE00}']), + (0x2f95c, &['\u{2597C}', '\u{FE00}']), + (0xfa92, &['\u{6717}', '\u{FE01}']), + (0xf95b, &['\u{62CF}', '\u{FE00}']), + (0xf93e, &['\u{83C9}', '\u{FE00}']), + (0xf9de, &['\u{540F}', '\u{FE00}']), + (0xf9f0, &['\u{85FA}', '\u{FE00}']), + (0x2f847, &['\u{5599}', '\u{FE01}']), + (0xfa98, &['\u{6EDB}', '\u{FE00}']), + (0xf90e, &['\u{7669}', '\u{FE00}']), + (0xfa4f, &['\u{7950}', '\u{FE00}']), + (0xfaa4, &['\u{761D}', '\u{FE00}']), + (0x2f9c0, &['\u{87E1}', '\u{FE00}']), + (0x2f8bf, &['\u{6422}', '\u{FE00}']), + (0xfa62, &['\u{8B01}', '\u{FE00}']), + (0xf9b6, &['\u{79AE}', '\u{FE00}']), + (0x2f826, &['\u{52C9}', '\u{FE01}']), + (0xf9c9, &['\u{67F3}', '\u{FE00}']), + (0x2f992, &['\u{52B3}', '\u{FE00}']), + (0x2f8e1, &['\u{6852}', '\u{FE00}']), + (0xf959, &['\u{9675}', '\u{FE00}']), + (0x2f892, &['\u{22331}', '\u{FE01}']), + (0xfa18, &['\u{793C}', '\u{FE00}']), + (0x2f87d, &['\u{21DE6}', '\u{FE00}']), + (0xf970, &['\u{6BBA}', '\u{FE00}']), + (0x2f92b, &['\u{73A5}', '\u{FE00}']), + (0x2fa04, &['\u{9929}', '\u{FE00}']), + (0xfa89, &['\u{618E}', '\u{FE01}']), + (0x2f9e3, &['\u{90F1}', '\u{FE00}']), + (0x2f9c2, &['\u{45F9}', '\u{FE00}']), + (0xfacb, &['\u{980B}', '\u{FE00}']), + (0x2f9c8, &['\u{4635}', '\u{FE00}']), + (0x2f908, &['\u{6E2F}', '\u{FE00}']), + (0x2f86f, &['\u{5BE7}', '\u{FE02}']), + (0x2f98a, &['\u{2339C}', '\u{FE00}']), + (0xf9a8, &['\u{4EE4}', '\u{FE00}']), + (0x2f8c7, &['\u{3A6C}', '\u{FE00}']), + (0x2fa16, &['\u{4D56}', '\u{FE00}']), + (0xfa4b, &['\u{7891}', '\u{FE00}']), + (0x2f878, &['\u{5C6E}', '\u{FE01}']), + (0x2f8bb, &['\u{6368}', '\u{FE00}']), + (0x2f816, &['\u{2054B}', '\u{FE00}']), + (0x2f86a, &['\u{5B3E}', '\u{FE00}']), + (0xf9c3, &['\u{907C}', '\u{FE00}']), + (0xf945, &['\u{807E}', '\u{FE00}']), + (0x2f9fe, &['\u{980B}', '\u{FE01}']), + (0xfa86, &['\u{60D8}', '\u{FE00}']), + (0x2f82c, &['\u{5349}', '\u{FE00}']), + (0xf988, &['\u{9E97}', '\u{FE00}']), + (0xfac5, &['\u{9276}', '\u{FE00}']), + (0xfa66, &['\u{8FB6}', '\u{FE00}']), + (0x2f840, &['\u{54A2}', '\u{FE00}']), + (0xf9ee, &['\u{71D0}', '\u{FE00}']), + (0x2f830, &['\u{537D}', '\u{FE00}']), + (0x2f914, &['\u{701E}', '\u{FE01}']), + (0x2f942, &['\u{250F2}', '\u{FE00}']), + (0xfaa3, &['\u{753B}', '\u{FE00}']), + (0xf974, &['\u{82E5}', '\u{FE00}']), + (0x2f807, &['\u{5002}', '\u{FE00}']), + (0x2f905, &['\u{6D85}', '\u{FE00}']), + (0x2f9b2, &['\u{456B}', '\u{FE00}']), + (0x2f887, &['\u{5E69}', '\u{FE00}']), + (0x2f912, &['\u{6FC6}', '\u{FE00}']), + (0xf9ae, &['\u{7469}', '\u{FE00}']), + (0xf96a, &['\u{7D22}', '\u{FE00}']), + (0xf9b7, &['\u{91B4}', '\u{FE00}']), + (0x2f932, &['\u{74CA}', '\u{FE00}']), + (0x2f98d, &['\u{8F9E}', '\u{FE00}']), + (0xfa25, &['\u{9038}', '\u{FE00}']), + (0xf993, &['\u{7149}', '\u{FE00}']), + (0x2f9f5, &['\u{9723}', '\u{FE00}']), + (0xf9df, &['\u{5C65}', '\u{FE00}']), + (0x2f9c7, &['\u{88DE}', '\u{FE00}']), + (0x2f996, &['\u{82E6}', '\u{FE00}']), + (0x2f842, &['\u{5510}', '\u{FE00}']), + (0x2f869, &['\u{5B08}', '\u{FE00}']), + (0x2f861, &['\u{216EA}', '\u{FE00}']), + (0x2f8af, &['\u{61DE}', '\u{FE00}']), + (0x2f8c5, &['\u{649D}', '\u{FE00}']), + (0x2f962, &['\u{7BC6}', '\u{FE00}']), + (0x2f98b, &['\u{8201}', '\u{FE01}']), + (0x2f9a1, &['\u{83CA}', '\u{FE00}']), + (0xfad2, &['\u{3B9D}', '\u{FE00}']), + (0x2f9ae, &['\u{455D}', '\u{FE00}']), + (0x2f8bc, &['\u{6383}', '\u{FE00}']), + (0xf9b3, &['\u{9748}', '\u{FE00}']), + (0x2f88f, &['\u{2A392}', '\u{FE00}']), + (0xf965, &['\u{4FBF}', '\u{FE00}']), + (0x2f953, &['\u{7956}', '\u{FE01}']), + (0x2f84b, &['\u{5716}', '\u{FE00}']), + (0x2f90b, &['\u{6ECB}', '\u{FE01}']), + (0x2f834, &['\u{20A2C}', '\u{FE00}']), + (0xfa2d, &['\u{9DB4}', '\u{FE00}']), + (0x2f8e6, &['\u{6914}', '\u{FE00}']), + (0xf971, &['\u{8FB0}', '\u{FE00}']), + (0x2fa1c, &['\u{9F3B}', '\u{FE00}']), + (0xfa61, &['\u{8996}', '\u{FE00}']), + (0x2f98e, &['\u{446B}', '\u{FE00}']), + (0x2f9c9, &['\u{88FA}', '\u{FE00}']), + (0xfa0b, &['\u{5ED3}', '\u{FE00}']), + (0x2f86b, &['\u{5B3E}', '\u{FE01}']), + (0xf949, &['\u{96F7}', '\u{FE00}']), + (0xfac7, &['\u{96E3}', '\u{FE01}']), + (0xf96e, &['\u{8449}', '\u{FE00}']), + (0xf966, &['\u{5FA9}', '\u{FE00}']), + (0xf955, &['\u{51CC}', '\u{FE00}']), + (0x2f8d0, &['\u{3B08}', '\u{FE00}']), + (0x2f93a, &['\u{7610}', '\u{FE00}']), + (0xf9ff, &['\u{523A}', '\u{FE00}']), + (0xfac8, &['\u{9756}', '\u{FE01}']), + (0xf93c, &['\u{797F}', '\u{FE00}']), + (0x2f845, &['\u{5584}', '\u{FE00}']), + (0x2f9ce, &['\u{46C7}', '\u{FE00}']), + (0xfad6, &['\u{25CD0}', '\u{FE00}']), + (0x2f95a, &['\u{7A4A}', '\u{FE00}']), + (0xf9e9, &['\u{91CC}', '\u{FE00}']), + (0x2f91f, &['\u{243AB}', '\u{FE00}']), + (0xf950, &['\u{7E37}', '\u{FE00}']), + (0x2f8c1, &['\u{63A9}', '\u{FE00}']), + (0x2f9ad, &['\u{26F2C}', '\u{FE00}']), + (0x2f97f, &['\u{8070}', '\u{FE00}']), + (0xfa83, &['\u{5ED9}', '\u{FE00}']), + (0x2f82d, &['\u{5351}', '\u{FE01}']), + (0x2f8df, &['\u{67FA}', '\u{FE00}']), + (0x2f87c, &['\u{5D43}', '\u{FE00}']), + (0xfa58, &['\u{7E09}', '\u{FE00}']), + (0x2f846, &['\u{5584}', '\u{FE01}']), + (0xfa37, &['\u{5606}', '\u{FE00}']), + (0xfa78, &['\u{559D}', '\u{FE01}']), + (0x2f9f6, &['\u{29145}', '\u{FE00}']), + (0x2f99e, &['\u{83E7}', '\u{FE00}']), + (0xfad3, &['\u{4018}', '\u{FE00}']), + (0xfad0, &['\u{22844}', '\u{FE00}']), + (0xf9d5, &['\u{5D19}', '\u{FE00}']), + (0xfab7, &['\u{8986}', '\u{FE00}']), + (0xfa09, &['\u{964D}', '\u{FE00}']), + (0x2f8ce, &['\u{3B19}', '\u{FE00}']), + (0xf957, &['\u{7DBE}', '\u{FE00}']), + (0xf991, &['\u{649A}', '\u{FE00}']), + (0xfab8, &['\u{8996}', '\u{FE01}']), + (0x2f8eb, &['\u{6AA8}', '\u{FE00}']), + (0x2f9b1, &['\u{270D2}', '\u{FE00}']), + (0xfa2a, &['\u{98EF}', '\u{FE00}']), + (0x2f93c, &['\u{24FB8}', '\u{FE00}']), + (0xfa72, &['\u{5168}', '\u{FE00}']), + (0x2f96f, &['\u{7E02}', '\u{FE00}']), + (0x2f8d6, &['\u{80AD}', '\u{FE00}']), + (0x2f886, &['\u{5E3D}', '\u{FE00}']), + (0xf9fd, &['\u{4EC0}', '\u{FE00}']), + (0xf9c0, &['\u{71CE}', '\u{FE00}']), + (0x2f9be, &['\u{8786}', '\u{FE00}']), + (0xf9b8, &['\u{96B8}', '\u{FE00}']), + (0x2f81e, &['\u{5203}', '\u{FE00}']), + (0xf900, &['\u{8C48}', '\u{FE00}']), + (0x2f98c, &['\u{8204}', '\u{FE00}']), + (0x2f93e, &['\u{3FFC}', '\u{FE00}']), + (0xfaa0, &['\u{732A}', '\u{FE01}']), + (0x2f8f3, &['\u{6B72}', '\u{FE00}']), + (0xf961, &['\u{7387}', '\u{FE00}']), + (0x2f83d, &['\u{5438}', '\u{FE00}']), + (0x2f8f6, &['\u{6BBB}', '\u{FE00}']), + (0xf9d2, &['\u{622E}', '\u{FE00}']), + (0x2f84a, &['\u{55C2}', '\u{FE00}']), + (0xf9e1, &['\u{674E}', '\u{FE00}']), + (0xfa7c, &['\u{585A}', '\u{FE01}']), + (0x2f9aa, &['\u{8516}', '\u{FE00}']), + (0xfa51, &['\u{795D}', '\u{FE00}']), + (0x2f8b8, &['\u{22B0C}', '\u{FE00}']), + (0x2f931, &['\u{7485}', '\u{FE00}']), + (0xfa7e, &['\u{5944}', '\u{FE00}']), + (0xf9a6, &['\u{7C3E}', '\u{FE00}']), + (0xf976, &['\u{7565}', '\u{FE00}']), + (0xfa97, &['\u{6D41}', '\u{FE01}']), + (0x2f8e7, &['\u{3B9D}', '\u{FE01}']), + (0x2f88b, &['\u{5EB0}', '\u{FE00}']), + (0x2f9c6, &['\u{88D7}', '\u{FE00}']), + (0x2f8d9, &['\u{671B}', '\u{FE01}']), + (0xfa52, &['\u{798D}', '\u{FE00}']), + (0x2fa0d, &['\u{4CCE}', '\u{FE00}']), + (0x2f900, &['\u{6D3E}', '\u{FE00}']), + (0x2f836, &['\u{53CA}', '\u{FE00}']), + (0xf9ad, &['\u{73B2}', '\u{FE00}']), + (0xf934, &['\u{8001}', '\u{FE00}']), + (0xfab0, &['\u{7DF4}', '\u{FE02}']), + (0x2f809, &['\u{5099}', '\u{FE00}']), + (0x2f9f2, &['\u{49E6}', '\u{FE00}']), + (0x2f86c, &['\u{219C8}', '\u{FE00}']), + (0xf9fc, &['\u{8B58}', '\u{FE00}']), + (0x2f95e, &['\u{25AA7}', '\u{FE01}']), + (0xf9a3, &['\u{5FF5}', '\u{FE00}']), + (0x2f971, &['\u{4334}', '\u{FE00}']), + (0x2f89b, &['\u{38E3}', '\u{FE00}']), + (0xf977, &['\u{4EAE}', '\u{FE00}']), + (0xfa1a, &['\u{7965}', '\u{FE00}']), + (0xfa3c, &['\u{5C6E}', '\u{FE00}']), + (0x2f9bd, &['\u{876B}', '\u{FE00}']), + (0xf928, &['\u{5ECA}', '\u{FE00}']), + (0x2f864, &['\u{5A27}', '\u{FE00}']), + (0x2f9d1, &['\u{8B8A}', '\u{FE01}']), + (0x2f982, &['\u{80B2}', '\u{FE00}']), + (0xf9dc, &['\u{9686}', '\u{FE00}']), + (0x2f972, &['\u{26228}', '\u{FE00}']), + (0x2f8cb, &['\u{65E3}', '\u{FE00}']), + (0xf960, &['\u{6012}', '\u{FE00}']), + (0xf992, &['\u{6F23}', '\u{FE00}']), + (0x2f8b4, &['\u{625D}', '\u{FE00}']), + (0x2f803, &['\u{20122}', '\u{FE00}']), + (0x2f818, &['\u{51A4}', '\u{FE00}']), + (0xf9f7, &['\u{7ACB}', '\u{FE00}']), + (0x2f827, &['\u{52E4}', '\u{FE01}']), + (0x2f9fb, &['\u{2940A}', '\u{FE00}']), + (0x2f987, &['\u{267A7}', '\u{FE00}']), + (0xfaab, &['\u{78CC}', '\u{FE00}']), + (0xfa39, &['\u{5840}', '\u{FE00}']), + (0x2fa07, &['\u{99FE}', '\u{FE00}']), + (0xf9b9, &['\u{60E1}', '\u{FE00}']), + (0x2f86e, &['\u{5BD8}', '\u{FE00}']), + (0x2f8e0, &['\u{6785}', '\u{FE00}']), + (0xfaa7, &['\u{76DB}', '\u{FE00}']), + (0x2f8a8, &['\u{614E}', '\u{FE01}']), + (0xfa0a, &['\u{898B}', '\u{FE00}']), + (0x2fa14, &['\u{2A291}', '\u{FE00}']), + (0x2f888, &['\u{3862}', '\u{FE00}']), + (0x2f9a2, &['\u{83CC}', '\u{FE00}']), + (0x2f848, &['\u{55AB}', '\u{FE00}']), + (0xfaa8, &['\u{76F4}', '\u{FE00}']), + (0xfa67, &['\u{9038}', '\u{FE01}']), + (0xf946, &['\u{7262}', '\u{FE00}']), + (0x2f946, &['\u{771F}', '\u{FE00}']), + (0xfa7d, &['\u{58B3}', '\u{FE00}']), + (0xfa1d, &['\u{7CBE}', '\u{FE00}']), + (0x2fa11, &['\u{4CF8}', '\u{FE00}']), + (0xfa2c, &['\u{9928}', '\u{FE00}']), + (0xf924, &['\u{8964}', '\u{FE00}']), + (0x2f96e, &['\u{7DC7}', '\u{FE00}']), + (0xf96d, &['\u{7701}', '\u{FE00}']), + (0xf95a, &['\u{8B80}', '\u{FE00}']), + (0x2f85c, &['\u{5906}', '\u{FE00}']), + (0xf92b, &['\u{72FC}', '\u{FE00}']), + (0xfac0, &['\u{8B8A}', '\u{FE00}']), + (0xfa8d, &['\u{63C4}', '\u{FE00}']), + (0x2f9d8, &['\u{27F2F}', '\u{FE00}']), + (0xf938, &['\u{9732}', '\u{FE00}']), + (0x2f821, &['\u{5246}', '\u{FE00}']), + (0xf9aa, &['\u{5BE7}', '\u{FE01}']), + (0xf9ce, &['\u{786B}', '\u{FE00}']), + (0xfa47, &['\u{6F22}', '\u{FE00}']), + (0x2f8aa, &['\u{617A}', '\u{FE00}']), + (0x2f918, &['\u{707D}', '\u{FE00}']), + (0x2f8ee, &['\u{3C18}', '\u{FE00}']), + (0xf96b, &['\u{53C3}', '\u{FE00}']), + (0xf909, &['\u{5951}', '\u{FE00}']), + (0x2f87f, &['\u{5D6B}', '\u{FE00}']), + (0xf908, &['\u{9F9C}', '\u{FE01}']), + (0xfa5d, &['\u{8279}', '\u{FE00}']), + (0xf9ac, &['\u{601C}', '\u{FE00}']), + (0x2f896, &['\u{38C7}', '\u{FE00}']), + (0x2f9b0, &['\u{26FB1}', '\u{FE00}']), + (0xf9a7, &['\u{7375}', '\u{FE00}']), + (0xf99d, &['\u{52A3}', '\u{FE00}']), + (0x2f957, &['\u{79EB}', '\u{FE00}']), + (0xf905, &['\u{4E32}', '\u{FE00}']), + (0x2f9bc, &['\u{8728}', '\u{FE00}']), + (0x2f8f9, &['\u{23AFA}', '\u{FE00}']), + (0x2f8b0, &['\u{61F2}', '\u{FE02}']), + (0x2f881, &['\u{5DE1}', '\u{FE00}']), + (0x2fa1b, &['\u{9F16}', '\u{FE00}']), + (0x2f9dd, &['\u{208DE}', '\u{FE00}']), + (0x2f9ed, &['\u{28BFA}', '\u{FE00}']), + (0x2f871, &['\u{21B18}', '\u{FE00}']), + (0x2f8ab, &['\u{618E}', '\u{FE02}']), + (0x2f812, &['\u{2051C}', '\u{FE00}']), + (0xf933, &['\u{76E7}', '\u{FE00}']), + (0xf9f2, &['\u{9C57}', '\u{FE00}']), + (0xf984, &['\u{6FFE}', '\u{FE00}']), + (0x2f90e, &['\u{6DF9}', '\u{FE00}']), + (0xfab2, &['\u{8005}', '\u{FE01}']), + (0xfa32, &['\u{514D}', '\u{FE00}']), + (0x2f96d, &['\u{4301}', '\u{FE00}']), + (0x2f9a7, &['\u{452B}', '\u{FE00}']), + (0xf94f, &['\u{7D2F}', '\u{FE00}']), + (0x2fa0f, &['\u{9D67}', '\u{FE00}']), + (0xf925, &['\u{62C9}', '\u{FE00}']), + (0xfa91, &['\u{6674}', '\u{FE01}']), + (0xf972, &['\u{6C88}', '\u{FE00}']), + (0xf90a, &['\u{91D1}', '\u{FE00}']), + (0xfa02, &['\u{62D3}', '\u{FE00}']), + (0xf92f, &['\u{52DE}', '\u{FE00}']), + (0xf9dd, &['\u{5229}', '\u{FE00}']), + (0xfa17, &['\u{76CA}', '\u{FE00}']), + (0xf93f, &['\u{9304}', '\u{FE00}']), + (0x2f898, &['\u{261DA}', '\u{FE00}']), + (0x2f907, &['\u{6D34}', '\u{FE00}']), + (0xf9ec, &['\u{6EBA}', '\u{FE00}']), + (0xf9e3, &['\u{6CE5}', '\u{FE00}']), + (0xfab5, &['\u{8779}', '\u{FE00}']), + (0xfa40, &['\u{61F2}', '\u{FE00}']), + (0x2f815, &['\u{518D}', '\u{FE00}']), + (0x2f9db, &['\u{8DBC}', '\u{FE00}']), + (0xf91e, &['\u{721B}', '\u{FE00}']), + (0xf92c, &['\u{90CE}', '\u{FE00}']), + (0x2f884, &['\u{5DFD}', '\u{FE00}']), + (0xfa46, &['\u{6E1A}', '\u{FE00}']), + (0x2f9b3, &['\u{8650}', '\u{FE00}']), + (0x2f85b, &['\u{58F7}', '\u{FE00}']), + (0xf9cd, &['\u{7559}', '\u{FE00}']), + (0xf93a, &['\u{9DFA}', '\u{FE00}']), + (0xf97e, &['\u{91CF}', '\u{FE00}']), + (0xfa3e, &['\u{6168}', '\u{FE00}']), + (0x2f9eb, &['\u{93F9}', '\u{FE00}']), + (0x2f8e2, &['\u{6885}', '\u{FE01}']), + (0x2f9b6, &['\u{8669}', '\u{FE00}']), + (0xf916, &['\u{70D9}', '\u{FE00}']), + (0x2f8de, &['\u{3B49}', '\u{FE00}']), + (0xf98f, &['\u{6190}', '\u{FE00}']), + (0xfa12, &['\u{6674}', '\u{FE00}']), + (0xfa44, &['\u{6885}', '\u{FE00}']), + (0xf981, &['\u{5973}', '\u{FE00}']), + (0x2f9dc, &['\u{8DF0}', '\u{FE00}']), + (0xf95c, &['\u{6A02}', '\u{FE01}']), + (0xf937, &['\u{8DEF}', '\u{FE00}']), + (0x2f87a, &['\u{5C8D}', '\u{FE00}']), + (0x2f903, &['\u{6D69}', '\u{FE00}']), + (0x2f9c5, &['\u{27667}', '\u{FE00}']), + (0x2f8cf, &['\u{6691}', '\u{FE01}']), + (0x2f909, &['\u{6E6E}', '\u{FE00}']), + (0x2f991, &['\u{829D}', '\u{FE00}']), + (0xfa65, &['\u{8D08}', '\u{FE00}']), + (0xfa73, &['\u{4F80}', '\u{FE00}']), + (0x2f88e, &['\u{5ECA}', '\u{FE01}']), + (0xf9ef, &['\u{7498}', '\u{FE00}']), + (0x2f9cb, &['\u{278AE}', '\u{FE00}']), + (0x2f9a3, &['\u{83DC}', '\u{FE00}']), + (0x2f99c, &['\u{8323}', '\u{FE00}']), + (0x2f919, &['\u{7077}', '\u{FE00}']), + (0x2f857, &['\u{5831}', '\u{FE00}']), + (0x2f96c, &['\u{7D63}', '\u{FE00}']), + (0x2f800, &['\u{4E3D}', '\u{FE00}']), + (0x2fa1a, &['\u{9F0F}', '\u{FE00}']), + (0xf97f, &['\u{52F5}', '\u{FE00}']), + (0xfaba, &['\u{8AF8}', '\u{FE01}']), + (0xfa82, &['\u{5ED2}', '\u{FE00}']), + (0x2f92e, &['\u{7447}', '\u{FE00}']), + (0xf9fe, &['\u{8336}', '\u{FE00}']), + (0xf994, &['\u{7489}', '\u{FE00}']), + (0x2f83c, &['\u{549E}', '\u{FE00}']), + (0xfa50, &['\u{7956}', '\u{FE00}']), + (0x2f817, &['\u{5197}', '\u{FE00}']), + (0xfa38, &['\u{5668}', '\u{FE00}']), + (0xfa69, &['\u{97FF}', '\u{FE00}']), + (0xfaac, &['\u{7AB1}', '\u{FE00}']), + (0xf901, &['\u{66F4}', '\u{FE00}']), + (0xfa33, &['\u{52C9}', '\u{FE00}']), + (0xf9bf, &['\u{6A02}', '\u{FE02}']), + (0xf9d1, &['\u{516D}', '\u{FE00}']), + (0xf95f, &['\u{5BE7}', '\u{FE00}']), + (0x2f82f, &['\u{5373}', '\u{FE00}']), + (0xf9a4, &['\u{637B}', '\u{FE00}']), + (0x2f89e, &['\u{5FD7}', '\u{FE00}']), + (0x2f801, &['\u{4E38}', '\u{FE00}']), + (0x2f84f, &['\u{5674}', '\u{FE00}']), + (0x2f961, &['\u{25BAB}', '\u{FE00}']), + (0x2f87e, &['\u{5D6E}', '\u{FE00}']), + (0x2f9d5, &['\u{8CC1}', '\u{FE00}']), + (0xf9e7, &['\u{88CF}', '\u{FE00}']), + (0xf973, &['\u{62FE}', '\u{FE00}']), + (0xf9c2, &['\u{84FC}', '\u{FE00}']), + (0x2f9d0, &['\u{8AED}', '\u{FE01}']), + (0xf9a5, &['\u{6BAE}', '\u{FE00}']), + (0x2f80c, &['\u{349E}', '\u{FE00}']), + (0xf930, &['\u{64C4}', '\u{FE00}']), + (0x2f8a1, &['\u{393A}', '\u{FE00}']), + (0x2f828, &['\u{52FA}', '\u{FE01}']), + (0x2f89f, &['\u{5FF9}', '\u{FE00}']), + (0xf964, &['\u{78FB}', '\u{FE00}']), + (0xf94e, &['\u{6F0F}', '\u{FE00}']), + (0x2f8d7, &['\u{43D9}', '\u{FE00}']), + (0x2f806, &['\u{4FBB}', '\u{FE00}']), + (0x2f9cc, &['\u{27966}', '\u{FE00}']), + (0x2f94e, &['\u{784E}', '\u{FE00}']), + (0x2f929, &['\u{738B}', '\u{FE00}']), + (0xfa34, &['\u{52E4}', '\u{FE00}']), + (0x2f939, &['\u{2219F}', '\u{FE00}']), + (0xf910, &['\u{863F}', '\u{FE00}']), + (0xf926, &['\u{81D8}', '\u{FE00}']), + (0xf9a2, &['\u{5EC9}', '\u{FE00}']), + (0xfa49, &['\u{722B}', '\u{FE00}']), + (0xf953, &['\u{808B}', '\u{FE00}']), + (0x2f80f, &['\u{5154}', '\u{FE00}']), + (0xf963, &['\u{5317}', '\u{FE00}']), + (0x2f8d4, &['\u{6700}', '\u{FE00}']), + (0xf9b2, &['\u{96F6}', '\u{FE00}']), + (0x2f973, &['\u{26247}', '\u{FE00}']), + (0x2f897, &['\u{232B8}', '\u{FE00}']), + (0x2f9fc, &['\u{4AB2}', '\u{FE00}']), + (0xf99a, &['\u{9023}', '\u{FE00}']), + (0x2f85a, &['\u{58F2}', '\u{FE00}']), + (0xfacf, &['\u{2284A}', '\u{FE00}']), + (0x2f9ab, &['\u{273CA}', '\u{FE00}']), + (0x2f927, &['\u{24814}', '\u{FE00}']), + (0x2f9fd, &['\u{29496}', '\u{FE00}']), + (0xfa36, &['\u{559D}', '\u{FE00}']), + (0xf904, &['\u{6ED1}', '\u{FE00}']), + (0x2f81c, &['\u{291DF}', '\u{FE00}']), + (0xfa7b, &['\u{55E2}', '\u{FE00}']), + (0xfa41, &['\u{654F}', '\u{FE00}']), + (0x2f87b, &['\u{21DE4}', '\u{FE00}']), + (0x2f9ba, &['\u{86E2}', '\u{FE00}']), + (0xf979, &['\u{51C9}', '\u{FE00}']), + (0xf9d7, &['\u{8F2A}', '\u{FE00}']), +]; + pub(crate) const COMBINING_MARK_SALT: &[u16] = &[ 0x0, 0x10, |