diff options
author | dec05eba <dec05eba@protonmail.com> | 2022-11-05 15:53:28 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2022-11-05 15:53:28 +0100 |
commit | 4daa57f6d139f51a62ea4bcffa738bd5035df33a (patch) | |
tree | ba767bbbf1c7153a12e3d9e866a079c30d1c69e0 | |
parent | f89117b5cf36797b04291942b2f2494895fc58dd (diff) |
Support as many emoji as possible, using separate emoji images in text
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | TODO | 7 | ||||
m--------- | depends/mglpp | 0 | ||||
-rwxr-xr-x | generate-emoji-sequences.py | 117 | ||||
-rwxr-xr-x | generate-emoji-sprite.py | 73 | ||||
-rw-r--r-- | generated/Emoji.cpp | 6658 | ||||
-rw-r--r-- | generated/Emoji.hpp | 11 | ||||
-rw-r--r-- | images/emoji.png | bin | 946761 -> 0 bytes | |||
-rw-r--r-- | include/Text.hpp | 45 | ||||
-rwxr-xr-x | install.sh | 5 | ||||
-rw-r--r-- | plugins/Youtube.hpp | 6 | ||||
-rw-r--r-- | src/QuickMedia.cpp | 18 | ||||
-rw-r--r-- | src/ResourceLoader.cpp | 1 | ||||
-rw-r--r-- | src/Text.cpp | 462 | ||||
-rw-r--r-- | src/plugins/Youtube.cpp | 17 | ||||
-rw-r--r-- | tests/main.cpp | 12 |
16 files changed, 4276 insertions, 3159 deletions
@@ -25,6 +25,7 @@ EXAMPLES: ``` ## Installation If you are running arch linux then you can install QuickMedia from aur (https://aur.archlinux.org/packages/quickmedia-git/), otherwise you will need to first install [sibs](https://git.dec05eba.com/sibs/) and then run `./install.sh` as root.\ +`unzip` and curl needs to be installed to run the `install.sh` script.\ Installing `lld` (the LLVM linker) can improve compile times. ## Dependencies ### Libraries @@ -240,7 +241,7 @@ Cache is stored under `$XDG_CACHE_HOME/quickmedia` or `~/.cache/quickmedia`. ## Tabs [tabbed](https://tools.suckless.org/tabbed/) can be used to put quickmedia windows into tabs. After installing `tabbed`, run `tabbed -c -k quickmedia launcher -e`. ## License -QuickMedia is free software licensed under GPL 3.0, see LICENSE for more details. `images/emoji.png` uses Noto Color Emoji, which is licensed under the Apache license, see: https://github.com/googlefonts/noto-emoji. +QuickMedia is free software licensed under GPL 3.0, see LICENSE for more details. The emojis are from the twemoji project, licensed under Creative Commons Public License 4.0 (see https://raw.githubusercontent.com/twitter/twemoji/v14.0.2/LICENSE-GRAPHICS). # Screenshots ## Youtube search ![](https://dec05eba.com/images/youtube.webp) @@ -11,7 +11,7 @@ Allow deleting watch history with delete key (and show confirmation). Add navigation to nyaa.si submitter torrents. Create a large texture and add downloaded images to it. This will save memory usage because sfml has to use power of two textures (and so does opengl internally) for textures, so if you have multiple textures they will use more memory than one large texture with the same texture data. Use fallback cjk font for regular mgl::Text as well (search, tabs, chapter name when viewing a page, path in file-manager, etc). That should also result in better performance on pinephone. -Fix some japanese fonts not rendering (half width alphanumeric?). +Fix some japanese characters not rendering (half width alphanumeric?). Extract thumbnail from images that are being downloaded, while its downloading and show that while the full image is downloading (upscaled, or with blurhash). Add setting to disable sending typing events to the server (matrix). Take code from dchat to support gifs (inline in text) and support animated webp (either animated or as a static thumbnail). @@ -240,4 +240,7 @@ Download manga pages in parallel. This helps downloading for certain websites su Allow pasting a file link (with or without file://) directly into matrix chat to upload a file (if the chat input is empty). This allows replying-with-media to work with ctrl+v. Matrix image reply to image reply to text reply is a bit broken in the text formatting. The formatting of replying to a message with an image in matrix is a bit weird. The reply image should be below the replied to message instead of on the left side. -Add ctrl+h to go back to the front page.
\ No newline at end of file +Add ctrl+h to go back to the front page. +Async load textures (not just images). This can be done efficiently by using different opengl contexts in different threads and making the context current right before a heavy opengl operation. All threads need to set their opengl context often. +Downloading files should take into account the remove mime type if available. Fallback to file extension. +Text images atlas.
\ No newline at end of file diff --git a/depends/mglpp b/depends/mglpp -Subproject a93ab69dc85a1e4898ccedcad1e59da0986acaa +Subproject d04c98708fd46524c0861baf65e9e4ff62d4879 diff --git a/generate-emoji-sequences.py b/generate-emoji-sequences.py new file mode 100755 index 0000000..b796548 --- /dev/null +++ b/generate-emoji-sequences.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 + +import requests + +response = requests.get("https://unicode.org/Public/emoji/15.0/emoji-test.txt") +response.raise_for_status() + +all_sequences = [] +longest_sequence = 0 + +for line in response.text.splitlines(False): + if len(line) == 0 or line[0] == '#' or line.find("fully-qualified") == -1: + continue + + columns = line.split(";") + codepoints = columns[0].split() + sequence = [] + for codepoint in codepoints: + sequence.append(int(codepoint, base=16)) + longest_sequence = max(longest_sequence, len(sequence)) + all_sequences.append(sequence) + +with open("generated/Emoji.hpp", "w") as header_file: + header_file.write("""#pragma once + +#include <stdint.h> +#include <stddef.h> + +// This file was automatically generated with generate-emoji-sequences.py, do not edit manually! + +namespace QuickMedia { + bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length); +}""") + +with open("generated/Emoji.cpp", "w") as source_file: + source_file.write("""#include "Emoji.hpp" +#include <unordered_map> +#include <array> +#include <mglpp/system/Utf8.hpp> + +// This file was automatically generated with generate-emoji-sequences.py, do not edit manually! + +namespace QuickMedia { + static std::unordered_multimap<uint32_t, std::array<uint32_t, %d>> emoji_sequences = { +""" % (longest_sequence - 1)) + for sequence in all_sequences: + remaining_sequences = [ hex(c) for c in sequence[1:] ] + source_file.write(" { %s, { %s } },\n" % (hex(sequence[0]), ", ".join(remaining_sequences))) + + source_file.write( +""" }; + + bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length) { + uint32_t codepoint; + size_t clen; + if(!mgl::utf8_decode(str, size, &codepoint, &clen)) + return false; + + const size_t str_start_index = clen; + sequence[0] = codepoint; + + auto range = emoji_sequences.equal_range(codepoint); + if(range.first == range.second) + return false; + + auto longest_match_it = range.first; + size_t longest_match_byte_length = str_start_index; + bool match_found = false; + + for(auto it = range.first, end = range.second; it != end; ++it) { + size_t str_index = str_start_index; + + for(size_t i = 0; i < it->second.size(); ++i) { + const uint32_t codepoint_in_sequence = it->second[i]; + if(codepoint_in_sequence == 0) + break; + + if(str_index >= size) + goto next; + + if(!mgl::utf8_decode(str + str_index, size - str_index, &codepoint, &clen)) + goto next; + + if(codepoint != codepoint_in_sequence) + goto next; + + str_index += clen; + } + + if(str_index >= longest_match_byte_length) { + longest_match_it = it; + longest_match_byte_length = str_index; + } + + match_found = true; + next:; + } + + if(!match_found) + return false; + + size_t sequence_index = 1; + for(size_t i = 0; i < longest_match_it->second.size(); ++i) { + const uint32_t codepoint_in_sequence = longest_match_it->second[i]; + if(codepoint_in_sequence == 0) + break; + + sequence[sequence_index] = codepoint_in_sequence; + ++sequence_index; + } + + sequence_len = sequence_index; + byte_length = longest_match_byte_length; + return true; + } +} +""")
\ No newline at end of file diff --git a/generate-emoji-sprite.py b/generate-emoji-sprite.py deleted file mode 100755 index bc26843..0000000 --- a/generate-emoji-sprite.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python3 - -from gi.repository import Gtk, Gdk, Pango, PangoCairo -import cairo - -surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 1024, 1369) -context = cairo.Context(surface) -pc = PangoCairo.create_context(context) -layout = PangoCairo.create_layout(context) -layout.set_font_description(Pango.FontDescription('NotoSans Emoji Normal 12')) -layout.set_width(1024*Pango.SCALE) -layout.set_wrap(Pango.WrapMode.CHAR) - -emoji_start = 0x1F000 -emoji_end = 0x1FB6F -emoji_characters = [] -i = emoji_start -while i <= emoji_end: - emoji_characters.append(chr(i)) - i += 1 - -layout.set_text("".join(emoji_characters), -1) -PangoCairo.show_layout(context, layout) -surface.write_to_png('images/emoji.png') - -with open("generated/Emoji.hpp", "w") as header_file: - header_file.write("""#pragma once - -#include <stdint.h> - -// This file was automatically generated with generate-emoji-sprite.py, do not edit manually! - -namespace QuickMedia { - struct EmojiRectangle { - int x, y; - int width, height; - }; - - bool codepoint_is_emoji(uint32_t codepoint); - EmojiRectangle emoji_get_extents(uint32_t codepoint); -}""") - -with open("generated/Emoji.cpp", "w") as source_file: - source_file.write("""#include "Emoji.hpp" - -// This file was automatically generated with generate-emoji-sprite.py, do not edit manually! - -namespace QuickMedia { - static EmojiRectangle emoji_extents[%s] = { -""" % len(emoji_characters)) - - i = 0 - index = 0 - for e in emoji_characters: - emoji_pos = layout.index_to_pos(index) - source_file.write(" {%s, %s, %s, %s}%s\n" % (int(emoji_pos.x/Pango.SCALE), int(emoji_pos.y/Pango.SCALE), int(emoji_pos.width/Pango.SCALE), int(emoji_pos.height/Pango.SCALE), "," if i < len(emoji_characters) - 1 else "")) - i += 1 - index += 4 - - source_file.write( -""" }; - - bool codepoint_is_emoji(uint32_t codepoint) { - return codepoint >= 0x1F000 && codepoint <= 0x1FB6F; - } - - EmojiRectangle emoji_get_extents(uint32_t codepoint) { - if(codepoint < 0x1F000 || codepoint - 0x1F000 >= %s) - return { 0, 0, 0, 0 }; - return emoji_extents[codepoint - 0x1F000]; - } -} -""" % len(emoji_characters)) diff --git a/generated/Emoji.cpp b/generated/Emoji.cpp index c3b8b21..5156ba8 100644 --- a/generated/Emoji.cpp +++ b/generated/Emoji.cpp @@ -1,2946 +1,3730 @@ #include "Emoji.hpp" +#include <unordered_map> +#include <array> +#include <mglpp/system/Utf8.hpp> -// This file was automatically generated with generate-emoji-sprite.py, do not edit manually! +// This file was automatically generated with generate-emoji-sequences.py, do not edit manually! namespace QuickMedia { - static EmojiRectangle emoji_extents[2928] = { - {0, 0, 13, 21}, - {13, 0, 13, 21}, - {26, 0, 13, 21}, - {39, 0, 13, 21}, - {52, 0, 20, 21}, - {72, 0, 13, 21}, - {85, 0, 13, 21}, - {98, 0, 13, 21}, - {111, 0, 13, 21}, - {124, 0, 13, 21}, - {137, 0, 13, 21}, - {150, 0, 13, 21}, - {163, 0, 13, 21}, - {176, 0, 13, 21}, - {189, 0, 13, 21}, - {202, 0, 13, 21}, - {215, 0, 13, 21}, - {228, 0, 13, 21}, - {241, 0, 13, 21}, - {254, 0, 13, 21}, - {267, 0, 13, 21}, - {280, 0, 13, 21}, - {293, 0, 13, 21}, - {306, 0, 13, 21}, - {319, 0, 13, 21}, - {332, 0, 13, 21}, - {345, 0, 13, 21}, - {358, 0, 13, 21}, - {371, 0, 13, 21}, - {384, 0, 13, 21}, - {397, 0, 13, 21}, - {410, 0, 13, 21}, - {423, 0, 13, 21}, - {436, 0, 13, 21}, - {449, 0, 13, 21}, - {462, 0, 13, 21}, - {475, 0, 13, 21}, - {488, 0, 13, 21}, - {501, 0, 13, 21}, - {514, 0, 13, 21}, - {527, 0, 13, 21}, - {540, 0, 13, 21}, - {553, 0, 13, 21}, - {566, 0, 13, 21}, - {579, 0, 23, 21}, - {602, 0, 23, 21}, - {625, 0, 23, 21}, - {648, 0, 23, 21}, - {671, 0, 22, 21}, - {693, 0, 22, 21}, - {715, 0, 22, 21}, - {737, 0, 22, 21}, - {759, 0, 22, 21}, - {781, 0, 22, 21}, - {803, 0, 22, 21}, - {825, 0, 22, 21}, - {847, 0, 22, 21}, - {869, 0, 22, 21}, - {891, 0, 22, 21}, - {913, 0, 22, 21}, - {935, 0, 22, 21}, - {957, 0, 22, 21}, - {979, 0, 22, 21}, - {1001, 0, 22, 21}, - {0, 21, 22, 19}, - {22, 21, 22, 19}, - {44, 21, 22, 19}, - {66, 21, 22, 19}, - {88, 21, 22, 19}, - {110, 21, 22, 19}, - {132, 21, 22, 19}, - {154, 21, 22, 19}, - {176, 21, 22, 19}, - {198, 21, 22, 19}, - {220, 21, 22, 19}, - {242, 21, 22, 19}, - {264, 21, 22, 19}, - {286, 21, 22, 19}, - {308, 21, 22, 19}, - {330, 21, 22, 19}, - {352, 21, 22, 19}, - {374, 21, 22, 19}, - {396, 21, 22, 19}, - {418, 21, 22, 19}, - {440, 21, 22, 19}, - {462, 21, 22, 19}, - {484, 21, 22, 19}, - {506, 21, 22, 19}, - {528, 21, 22, 19}, - {550, 21, 22, 19}, - {572, 21, 22, 19}, - {594, 21, 22, 19}, - {616, 21, 22, 19}, - {638, 21, 22, 19}, - {660, 21, 22, 19}, - {682, 21, 22, 19}, - {704, 21, 22, 19}, - {726, 21, 22, 19}, - {748, 21, 13, 19}, - {761, 21, 13, 19}, - {774, 21, 13, 19}, - {787, 21, 13, 19}, - {800, 21, 13, 19}, - {813, 21, 13, 19}, - {826, 21, 13, 19}, - {839, 21, 13, 19}, - {852, 21, 13, 19}, - {865, 21, 13, 19}, - {878, 21, 13, 19}, - {891, 21, 13, 19}, - {904, 21, 13, 19}, - {917, 21, 13, 19}, - {930, 21, 13, 19}, - {943, 21, 13, 19}, - {956, 21, 13, 19}, - {969, 21, 13, 19}, - {982, 21, 13, 19}, - {995, 21, 13, 19}, - {1008, 21, 13, 19}, - {0, 40, 13, 21}, - {13, 40, 13, 21}, - {26, 40, 13, 21}, - {39, 40, 13, 21}, - {52, 40, 13, 21}, - {65, 40, 13, 21}, - {78, 40, 13, 21}, - {91, 40, 13, 21}, - {104, 40, 13, 21}, - {117, 40, 13, 21}, - {130, 40, 13, 21}, - {143, 40, 13, 21}, - {156, 40, 13, 21}, - {169, 40, 13, 21}, - {182, 40, 13, 21}, - {195, 40, 13, 21}, - {208, 40, 13, 21}, - {221, 40, 13, 21}, - {234, 40, 13, 21}, - {247, 40, 13, 21}, - {260, 40, 13, 21}, - {273, 40, 13, 21}, - {286, 40, 13, 21}, - {299, 40, 13, 21}, - {312, 40, 13, 21}, - {325, 40, 13, 21}, - {338, 40, 13, 21}, - {351, 40, 13, 21}, - {364, 40, 13, 21}, - {377, 40, 23, 21}, - {400, 40, 23, 21}, - {423, 40, 23, 21}, - {446, 40, 23, 21}, - {469, 40, 23, 21}, - {492, 40, 23, 21}, - {515, 40, 23, 21}, - {538, 40, 23, 21}, - {561, 40, 23, 21}, - {584, 40, 23, 21}, - {607, 40, 23, 21}, - {630, 40, 23, 21}, - {653, 40, 16, 21}, - {669, 40, 16, 21}, - {685, 40, 16, 21}, - {701, 40, 16, 21}, - {717, 40, 16, 21}, - {733, 40, 16, 21}, - {749, 40, 16, 21}, - {765, 40, 16, 21}, - {781, 40, 16, 21}, - {797, 40, 16, 21}, - {813, 40, 16, 21}, - {829, 40, 16, 21}, - {845, 40, 16, 21}, - {861, 40, 16, 21}, - {877, 40, 16, 21}, - {893, 40, 23, 21}, - {916, 40, 23, 21}, - {939, 40, 16, 21}, - {955, 40, 16, 21}, - {971, 40, 16, 21}, - {987, 40, 16, 21}, - {1003, 40, 16, 21}, - {0, 61, 16, 29}, - {16, 61, 16, 29}, - {32, 61, 16, 29}, - {48, 61, 16, 29}, - {64, 61, 16, 29}, - {80, 61, 16, 29}, - {96, 61, 16, 29}, - {112, 61, 17, 29}, - {129, 61, 16, 29}, - {145, 61, 11, 29}, - {156, 61, 23, 29}, - {179, 61, 16, 29}, - {195, 61, 16, 29}, - {211, 61, 16, 29}, - {227, 61, 16, 29}, - {243, 61, 16, 29}, - {259, 61, 16, 29}, - {275, 61, 16, 29}, - {291, 61, 16, 29}, - {307, 61, 16, 29}, - {323, 61, 16, 29}, - {339, 61, 16, 29}, - {355, 61, 16, 29}, - {371, 61, 16, 29}, - {387, 61, 16, 29}, - {403, 61, 20, 29}, - {423, 61, 23, 29}, - {446, 61, 16, 29}, - {462, 61, 16, 29}, - {478, 61, 16, 29}, - {494, 61, 16, 29}, - {510, 61, 16, 29}, - {526, 61, 16, 29}, - {542, 61, 16, 29}, - {558, 61, 16, 29}, - {574, 61, 16, 29}, - {590, 61, 16, 29}, - {606, 61, 16, 29}, - {622, 61, 16, 29}, - {638, 61, 16, 29}, - {654, 61, 16, 29}, - {670, 61, 16, 29}, - {686, 61, 11, 29}, - {697, 61, 11, 29}, - {708, 61, 11, 29}, - {719, 61, 11, 29}, - {730, 61, 11, 29}, - {741, 61, 11, 29}, - {752, 61, 11, 29}, - {763, 61, 11, 29}, - {774, 61, 11, 29}, - {785, 61, 11, 29}, - {796, 61, 11, 29}, - {807, 61, 11, 29}, - {818, 61, 11, 29}, - {829, 61, 11, 29}, - {840, 61, 11, 29}, - {851, 61, 11, 29}, - {862, 61, 11, 29}, - {873, 61, 11, 29}, - {884, 61, 11, 29}, - {895, 61, 11, 29}, - {906, 61, 11, 29}, - {917, 61, 11, 29}, - {928, 61, 23, 29}, - {951, 61, 23, 29}, - {974, 61, 23, 29}, - {997, 61, 23, 29}, - {0, 90, 23, 24}, - {23, 90, 23, 24}, - {46, 90, 23, 24}, - {69, 90, 23, 24}, - {92, 90, 23, 24}, - {115, 90, 23, 24}, - {138, 90, 16, 24}, - {154, 90, 16, 24}, - {170, 90, 16, 24}, - {186, 90, 16, 24}, - {202, 90, 16, 24}, - {218, 90, 16, 24}, - {234, 90, 16, 24}, - {250, 90, 16, 24}, - {266, 90, 16, 24}, - {282, 90, 16, 24}, - {298, 90, 16, 24}, - {314, 90, 16, 24}, - {330, 90, 16, 24}, - {346, 90, 23, 24}, - {369, 90, 23, 24}, - {392, 90, 23, 24}, - {415, 90, 16, 24}, - {431, 90, 16, 24}, - {447, 90, 16, 24}, - {463, 90, 16, 24}, - {479, 90, 16, 24}, - {495, 90, 16, 24}, - {511, 90, 16, 24}, - {527, 90, 16, 24}, - {543, 90, 16, 24}, - {559, 90, 16, 24}, - {575, 90, 16, 24}, - {591, 90, 16, 24}, - {607, 90, 16, 24}, - {623, 90, 16, 24}, - {639, 90, 16, 24}, - {655, 90, 16, 24}, - {671, 90, 16, 24}, - {687, 90, 16, 24}, - {703, 90, 16, 24}, - {719, 90, 16, 24}, - {735, 90, 16, 24}, - {751, 90, 16, 24}, - {767, 90, 16, 24}, - {783, 90, 16, 24}, - {799, 90, 16, 24}, - {815, 90, 16, 24}, - {831, 90, 16, 24}, - {847, 90, 16, 24}, - {863, 90, 16, 24}, - {879, 90, 16, 24}, - {895, 90, 16, 24}, - {911, 90, 13, 24}, - {924, 90, 16, 24}, - {940, 90, 16, 24}, - {956, 90, 16, 24}, - {972, 90, 16, 24}, - {988, 90, 16, 24}, - {1004, 90, 16, 24}, - {0, 114, 16, 24}, - {16, 114, 16, 24}, - {32, 114, 16, 24}, - {48, 114, 16, 24}, - {64, 114, 16, 24}, - {80, 114, 16, 24}, - {96, 114, 16, 24}, - {112, 114, 16, 24}, - {128, 114, 16, 24}, - {144, 114, 16, 24}, - {160, 114, 16, 24}, - {176, 114, 16, 24}, - {192, 114, 16, 24}, - {208, 114, 16, 24}, - {224, 114, 16, 24}, - {240, 114, 16, 24}, - {256, 114, 16, 24}, - {272, 114, 16, 24}, - {288, 114, 16, 24}, - {304, 114, 16, 24}, - {320, 114, 16, 24}, - {336, 114, 16, 24}, - {352, 114, 16, 24}, - {368, 114, 16, 24}, - {384, 114, 16, 24}, - {400, 114, 16, 24}, - {416, 114, 16, 24}, - {432, 114, 16, 24}, - {448, 114, 16, 24}, - {464, 114, 16, 24}, - {480, 114, 16, 24}, - {496, 114, 16, 24}, - {512, 114, 16, 24}, - {528, 114, 16, 24}, - {544, 114, 16, 24}, - {560, 114, 16, 24}, - {576, 114, 16, 24}, - {592, 114, 16, 24}, - {608, 114, 16, 24}, - {624, 114, 16, 24}, - {640, 114, 16, 24}, - {656, 114, 16, 24}, - {672, 114, 16, 24}, - {688, 114, 16, 24}, - {704, 114, 16, 24}, - {720, 114, 16, 24}, - {736, 114, 16, 24}, - {752, 114, 16, 24}, - {768, 114, 16, 24}, - {784, 114, 16, 24}, - {800, 114, 16, 24}, - {816, 114, 16, 24}, - {832, 114, 11, 24}, - {843, 114, 12, 24}, - {855, 114, 12, 24}, - {867, 114, 23, 24}, - {890, 114, 23, 24}, - {913, 114, 23, 24}, - {936, 114, 16, 24}, - {952, 114, 16, 24}, - {968, 114, 16, 24}, - {984, 114, 16, 24}, - {1000, 114, 16, 24}, - {0, 138, 16, 24}, - {16, 138, 16, 24}, - {32, 138, 16, 24}, - {48, 138, 16, 24}, - {64, 138, 16, 24}, - {80, 138, 16, 24}, - {96, 138, 16, 24}, - {112, 138, 16, 24}, - {128, 138, 16, 24}, - {144, 138, 16, 24}, - {160, 138, 16, 24}, - {176, 138, 16, 24}, - {192, 138, 16, 24}, - {208, 138, 16, 24}, - {224, 138, 16, 24}, - {240, 138, 16, 24}, - {256, 138, 16, 24}, - {272, 138, 16, 24}, - {288, 138, 16, 24}, - {304, 138, 16, 24}, - {320, 138, 16, 24}, - {336, 138, 16, 24}, - {352, 138, 16, 24}, - {368, 138, 16, 24}, - {384, 138, 16, 24}, - {400, 138, 20, 24}, - {420, 138, 16, 24}, - {436, 138, 16, 24}, - {452, 138, 20, 24}, - {472, 138, 20, 24}, - {492, 138, 20, 24}, - {512, 138, 20, 24}, - {532, 138, 20, 24}, - {552, 138, 20, 24}, - {572, 138, 20, 24}, - {592, 138, 20, 24}, - {612, 138, 20, 24}, - {632, 138, 20, 24}, - {652, 138, 16, 24}, - {668, 138, 16, 24}, - {684, 138, 16, 24}, - {700, 138, 16, 24}, - {716, 138, 16, 24}, - {732, 138, 16, 24}, - {748, 138, 16, 24}, - {764, 138, 16, 24}, - {780, 138, 16, 24}, - {796, 138, 16, 24}, - {812, 138, 16, 24}, - {828, 138, 16, 24}, - {844, 138, 16, 24}, - {860, 138, 16, 24}, - {876, 138, 16, 24}, - {892, 138, 16, 24}, - {908, 138, 16, 24}, - {924, 138, 16, 24}, - {940, 138, 23, 24}, - {963, 138, 23, 24}, - {986, 138, 23, 24}, - {0, 162, 23, 21}, - {23, 162, 23, 21}, - {46, 162, 23, 21}, - {69, 162, 23, 21}, - {92, 162, 23, 21}, - {115, 162, 23, 21}, - {138, 162, 23, 21}, - {161, 162, 23, 21}, - {184, 162, 23, 21}, - {207, 162, 23, 21}, - {230, 162, 23, 21}, - {253, 162, 23, 21}, - {276, 162, 23, 21}, - {299, 162, 23, 21}, - {322, 162, 23, 21}, - {345, 162, 23, 21}, - {368, 162, 23, 21}, - {391, 162, 23, 21}, - {414, 162, 23, 21}, - {437, 162, 23, 21}, - {460, 162, 23, 21}, - {483, 162, 23, 21}, - {506, 162, 23, 21}, - {529, 162, 23, 21}, - {552, 162, 23, 21}, - {575, 162, 23, 21}, - {598, 162, 23, 21}, - {621, 162, 23, 21}, - {644, 162, 23, 21}, - {667, 162, 23, 21}, - {690, 162, 23, 21}, - {713, 162, 23, 21}, - {736, 162, 23, 21}, - {759, 162, 23, 21}, - {782, 162, 23, 21}, - {805, 162, 23, 21}, - {828, 162, 23, 21}, - {851, 162, 23, 21}, - {874, 162, 23, 21}, - {897, 162, 23, 21}, - {920, 162, 23, 21}, - {943, 162, 23, 21}, - {966, 162, 23, 21}, - {989, 162, 23, 21}, - {0, 183, 23, 24}, - {23, 183, 23, 24}, - {46, 183, 23, 24}, - {69, 183, 23, 24}, - {92, 183, 23, 24}, - {115, 183, 23, 24}, - {138, 183, 23, 24}, - {161, 183, 23, 24}, - {184, 183, 23, 24}, - {207, 183, 23, 24}, - {230, 183, 20, 24}, - {230, 183, 20, 24}, - {250, 183, 20, 24}, - {250, 183, 20, 24}, - {270, 183, 20, 24}, - {270, 183, 20, 24}, - {290, 183, 20, 24}, - {290, 183, 20, 24}, - {310, 183, 20, 24}, - {310, 183, 20, 24}, - {330, 183, 20, 24}, - {330, 183, 20, 24}, - {350, 183, 20, 24}, - {350, 183, 20, 24}, - {370, 183, 20, 24}, - {370, 183, 20, 24}, - {390, 183, 30, 24}, - {390, 183, 30, 24}, - {420, 183, 20, 24}, - {420, 183, 20, 24}, - {440, 183, 20, 24}, - {440, 183, 20, 24}, - {460, 183, 20, 24}, - {460, 183, 20, 24}, - {480, 183, 30, 24}, - {480, 183, 30, 24}, - {510, 183, 16, 24}, - {526, 183, 20, 24}, - {546, 183, 16, 24}, - {562, 183, 23, 24}, - {585, 183, 23, 24}, - {608, 183, 23, 24}, - {631, 183, 23, 24}, - {654, 183, 23, 24}, - {677, 183, 23, 24}, - {700, 183, 23, 24}, - {723, 183, 23, 24}, - {746, 183, 23, 24}, - {769, 183, 23, 24}, - {792, 183, 23, 24}, - {815, 183, 23, 24}, - {838, 183, 23, 24}, - {861, 183, 16, 24}, - {877, 183, 16, 24}, - {893, 183, 16, 24}, - {909, 183, 16, 24}, - {925, 183, 16, 24}, - {941, 183, 16, 24}, - {957, 183, 16, 24}, - {973, 183, 16, 24}, - {989, 183, 16, 24}, - {1005, 183, 16, 24}, - {0, 207, 20, 24}, - {20, 207, 16, 24}, - {36, 207, 16, 24}, - {52, 207, 16, 24}, - {68, 207, 16, 24}, - {84, 207, 16, 24}, - {100, 207, 16, 24}, - {116, 207, 16, 24}, - {132, 207, 16, 24}, - {148, 207, 16, 24}, - {164, 207, 16, 24}, - {180, 207, 16, 24}, - {196, 207, 16, 24}, - {212, 207, 16, 24}, - {228, 207, 16, 24}, - {244, 207, 16, 24}, - {260, 207, 16, 24}, - {276, 207, 16, 24}, - {292, 207, 16, 24}, - {308, 207, 16, 24}, - {324, 207, 16, 24}, - {340, 207, 20, 24}, - {360, 207, 16, 24}, - {376, 207, 16, 24}, - {392, 207, 20, 24}, - {412, 207, 20, 24}, - {432, 207, 20, 24}, - {452, 207, 20, 24}, - {472, 207, 20, 24}, - {492, 207, 16, 24}, - {508, 207, 20, 24}, - {528, 207, 20, 24}, - {548, 207, 20, 24}, - {568, 207, 16, 24}, - {584, 207, 23, 24}, - {607, 207, 23, 24}, - {630, 207, 23, 24}, - {653, 207, 23, 24}, - {676, 207, 16, 24}, - {692, 207, 16, 24}, - {708, 207, 16, 24}, - {724, 207, 16, 24}, - {740, 207, 16, 24}, - {756, 207, 16, 24}, - {772, 207, 16, 24}, - {788, 207, 16, 24}, - {804, 207, 16, 24}, - {820, 207, 23, 24}, - {843, 207, 23, 24}, - {866, 207, 23, 24}, - {889, 207, 23, 24}, - {912, 207, 23, 24}, - {935, 207, 23, 24}, - {958, 207, 23, 24}, - {981, 207, 20, 24}, - {1001, 207, 20, 24}, - {0, 231, 23, 21}, - {23, 231, 23, 21}, - {46, 231, 23, 21}, - {69, 231, 23, 21}, - {92, 231, 23, 21}, - {115, 231, 23, 21}, - {138, 231, 23, 21}, - {161, 231, 23, 21}, - {184, 231, 23, 21}, - {207, 231, 23, 21}, - {230, 231, 23, 21}, - {253, 231, 23, 21}, - {276, 231, 23, 21}, - {299, 231, 23, 21}, - {322, 231, 23, 21}, - {345, 231, 23, 21}, - {368, 231, 23, 21}, - {391, 231, 23, 21}, - {414, 231, 23, 21}, - {437, 231, 23, 21}, - {460, 231, 23, 21}, - {483, 231, 23, 21}, - {506, 231, 23, 21}, - {529, 231, 23, 21}, - {552, 231, 23, 21}, - {575, 231, 23, 21}, - {598, 231, 23, 21}, - {621, 231, 23, 21}, - {644, 231, 23, 21}, - {667, 231, 23, 21}, - {690, 231, 23, 21}, - {713, 231, 23, 21}, - {736, 231, 23, 21}, - {759, 231, 23, 21}, - {782, 231, 23, 21}, - {805, 231, 23, 21}, - {828, 231, 23, 21}, - {851, 231, 23, 21}, - {874, 231, 23, 21}, - {897, 231, 23, 21}, - {920, 231, 23, 21}, - {943, 231, 23, 21}, - {966, 231, 23, 21}, - {989, 231, 23, 21}, - {0, 252, 23, 21}, - {23, 252, 23, 21}, - {46, 252, 23, 21}, - {69, 252, 23, 21}, - {92, 252, 23, 21}, - {115, 252, 23, 21}, - {138, 252, 23, 21}, - {161, 252, 23, 21}, - {184, 252, 23, 21}, - {207, 252, 23, 21}, - {230, 252, 23, 21}, - {253, 252, 23, 21}, - {276, 252, 23, 21}, - {299, 252, 23, 21}, - {322, 252, 23, 21}, - {345, 252, 23, 21}, - {368, 252, 23, 21}, - {391, 252, 23, 21}, - {414, 252, 23, 21}, - {437, 252, 23, 21}, - {460, 252, 23, 21}, - {483, 252, 23, 21}, - {506, 252, 23, 21}, - {529, 252, 23, 21}, - {552, 252, 23, 21}, - {575, 252, 23, 21}, - {598, 252, 23, 21}, - {621, 252, 23, 21}, - {644, 252, 23, 21}, - {667, 252, 23, 21}, - {690, 252, 23, 21}, - {713, 252, 23, 21}, - {736, 252, 23, 21}, - {759, 252, 23, 21}, - {782, 252, 23, 21}, - {805, 252, 23, 21}, - {828, 252, 23, 21}, - {851, 252, 23, 21}, - {874, 252, 23, 21}, - {897, 252, 23, 21}, - {920, 252, 23, 21}, - {943, 252, 23, 21}, - {966, 252, 23, 21}, - {989, 252, 23, 21}, - {0, 273, 23, 21}, - {23, 273, 23, 21}, - {46, 273, 23, 21}, - {69, 273, 23, 21}, - {92, 273, 23, 21}, - {115, 273, 23, 21}, - {138, 273, 23, 21}, - {161, 273, 23, 21}, - {184, 273, 23, 21}, - {207, 273, 23, 21}, - {230, 273, 23, 21}, - {253, 273, 23, 21}, - {276, 273, 23, 21}, - {299, 273, 23, 21}, - {322, 273, 23, 21}, - {345, 273, 23, 21}, - {368, 273, 23, 21}, - {391, 273, 23, 21}, - {414, 273, 23, 21}, - {437, 273, 23, 21}, - {460, 273, 23, 21}, - {483, 273, 23, 21}, - {506, 273, 23, 21}, - {529, 273, 23, 21}, - {552, 273, 23, 21}, - {575, 273, 23, 21}, - {598, 273, 23, 21}, - {621, 273, 23, 21}, - {644, 273, 23, 21}, - {667, 273, 23, 21}, - {690, 273, 23, 21}, - {713, 273, 23, 21}, - {736, 273, 23, 21}, - {759, 273, 23, 21}, - {782, 273, 23, 21}, - {805, 273, 23, 21}, - {828, 273, 23, 21}, - {851, 273, 23, 21}, - {874, 273, 23, 21}, - {897, 273, 23, 21}, - {920, 273, 23, 21}, - {943, 273, 23, 21}, - {966, 273, 23, 21}, - {989, 273, 23, 21}, - {0, 294, 23, 21}, - {23, 294, 23, 21}, - {46, 294, 23, 21}, - {69, 294, 23, 21}, - {92, 294, 23, 21}, - {115, 294, 23, 21}, - {138, 294, 23, 21}, - {161, 294, 23, 21}, - {184, 294, 23, 21}, - {207, 294, 23, 21}, - {230, 294, 23, 21}, - {253, 294, 23, 21}, - {276, 294, 23, 21}, - {299, 294, 23, 21}, - {322, 294, 23, 21}, - {345, 294, 23, 21}, - {368, 294, 23, 21}, - {391, 294, 23, 21}, - {414, 294, 23, 21}, - {437, 294, 23, 21}, - {460, 294, 23, 21}, - {483, 294, 23, 21}, - {506, 294, 23, 21}, - {529, 294, 23, 21}, - {552, 294, 23, 21}, - {575, 294, 23, 21}, - {598, 294, 23, 21}, - {621, 294, 23, 21}, - {644, 294, 23, 21}, - {667, 294, 23, 21}, - {690, 294, 23, 21}, - {713, 294, 23, 21}, - {736, 294, 23, 21}, - {759, 294, 23, 21}, - {782, 294, 23, 21}, - {805, 294, 23, 21}, - {828, 294, 23, 21}, - {851, 294, 23, 21}, - {874, 294, 23, 21}, - {897, 294, 23, 21}, - {920, 294, 23, 21}, - {943, 294, 23, 21}, - {966, 294, 20, 21}, - {986, 294, 20, 21}, - {0, 315, 20, 29}, - {20, 315, 20, 29}, - {40, 315, 20, 29}, - {60, 315, 20, 29}, - {80, 315, 20, 29}, - {100, 315, 20, 29}, - {120, 315, 20, 29}, - {140, 315, 20, 29}, - {160, 315, 20, 29}, - {180, 315, 20, 29}, - {200, 315, 20, 29}, - {220, 315, 20, 29}, - {240, 315, 20, 29}, - {260, 315, 20, 29}, - {280, 315, 20, 29}, - {300, 315, 20, 29}, - {320, 315, 20, 29}, - {340, 315, 20, 29}, - {360, 315, 20, 29}, - {380, 315, 20, 29}, - {400, 315, 20, 29}, - {420, 315, 20, 29}, - {440, 315, 20, 29}, - {460, 315, 20, 29}, - {480, 315, 20, 29}, - {500, 315, 20, 29}, - {520, 315, 20, 29}, - {540, 315, 20, 29}, - {560, 315, 20, 29}, - {580, 315, 20, 29}, - {600, 315, 20, 29}, - {620, 315, 11, 29}, - {631, 315, 11, 29}, - {642, 315, 14, 29}, - {656, 315, 19, 29}, - {675, 315, 17, 29}, - {692, 315, 18, 29}, - {710, 315, 18, 29}, - {728, 315, 20, 29}, - {748, 315, 18, 29}, - {766, 315, 18, 29}, - {784, 315, 18, 29}, - {802, 315, 17, 29}, - {819, 315, 20, 29}, - {839, 315, 20, 29}, - {859, 315, 20, 29}, - {879, 315, 20, 29}, - {899, 315, 20, 29}, - {919, 315, 20, 29}, - {939, 315, 20, 29}, - {959, 315, 20, 29}, - {979, 315, 20, 29}, - {999, 315, 12, 29}, - {0, 344, 20, 18}, - {20, 344, 20, 18}, - {40, 344, 20, 18}, - {60, 344, 20, 18}, - {80, 344, 20, 18}, - {100, 344, 20, 18}, - {120, 344, 20, 18}, - {140, 344, 20, 18}, - {160, 344, 20, 18}, - {180, 344, 20, 18}, - {200, 344, 20, 18}, - {220, 344, 20, 18}, - {240, 344, 20, 18}, - {260, 344, 20, 18}, - {280, 344, 20, 18}, - {300, 344, 20, 18}, - {320, 344, 20, 18}, - {340, 344, 20, 18}, - {360, 344, 20, 18}, - {380, 344, 20, 18}, - {400, 344, 20, 18}, - {420, 344, 20, 18}, - {440, 344, 20, 18}, - {460, 344, 20, 18}, - {480, 344, 20, 18}, - {500, 344, 20, 18}, - {520, 344, 20, 18}, - {540, 344, 20, 18}, - {560, 344, 20, 18}, - {580, 344, 20, 18}, - {600, 344, 20, 18}, - {620, 344, 20, 18}, - {640, 344, 20, 18}, - {660, 344, 20, 18}, - {680, 344, 20, 18}, - {700, 344, 20, 18}, - {720, 344, 20, 18}, - {740, 344, 20, 18}, - {760, 344, 20, 18}, - {780, 344, 20, 18}, - {800, 344, 20, 18}, - {820, 344, 20, 18}, - {840, 344, 20, 18}, - {860, 344, 20, 18}, - {880, 344, 20, 18}, - {900, 344, 20, 18}, - {920, 344, 20, 18}, - {940, 344, 20, 18}, - {960, 344, 20, 18}, - {980, 344, 20, 18}, - {1000, 344, 20, 18}, - {0, 363, 20, 29}, - {20, 363, 20, 29}, - {40, 363, 20, 29}, - {60, 363, 20, 29}, - {80, 363, 20, 29}, - {100, 363, 20, 29}, - {120, 363, 20, 29}, - {140, 363, 20, 29}, - {160, 363, 20, 29}, - {180, 363, 20, 29}, - {200, 363, 20, 29}, - {220, 363, 20, 29}, - {240, 363, 20, 29}, - {260, 363, 20, 29}, - {280, 363, 20, 29}, - {300, 363, 20, 29}, - {320, 363, 20, 29}, - {340, 363, 20, 29}, - {360, 363, 20, 29}, - {380, 363, 17, 29}, - {397, 363, 20, 29}, - {417, 363, 20, 29}, - {437, 363, 20, 29}, - {457, 363, 20, 29}, - {477, 363, 20, 29}, - {497, 363, 20, 29}, - {517, 363, 20, 29}, - {537, 363, 20, 29}, - {557, 363, 20, 29}, - {577, 363, 20, 29}, - {597, 363, 20, 29}, - {617, 363, 20, 29}, - {637, 363, 20, 29}, - {657, 363, 20, 29}, - {677, 363, 20, 29}, - {697, 363, 20, 29}, - {717, 363, 20, 29}, - {737, 363, 20, 29}, - {757, 363, 20, 29}, - {777, 363, 20, 29}, - {797, 363, 20, 29}, - {817, 363, 20, 29}, - {837, 363, 17, 29}, - {854, 363, 14, 29}, - {868, 363, 10, 29}, - {878, 363, 12, 29}, - {890, 363, 17, 29}, - {907, 363, 9, 29}, - {916, 363, 9, 29}, - {925, 363, 16, 29}, - {941, 363, 16, 29}, - {957, 363, 15, 29}, - {972, 363, 16, 29}, - {988, 363, 16, 29}, - {1004, 363, 20, 29}, - {0, 392, 20, 29}, - {20, 392, 20, 29}, - {40, 392, 20, 29}, - {60, 392, 20, 29}, - {80, 392, 20, 29}, - {100, 392, 20, 29}, - {120, 392, 20, 29}, - {140, 392, 20, 29}, - {160, 392, 20, 29}, - {180, 392, 20, 29}, - {200, 392, 20, 29}, - {220, 392, 20, 29}, - {240, 392, 20, 29}, - {260, 392, 20, 29}, - {280, 392, 20, 29}, - {300, 392, 20, 29}, - {320, 392, 20, 29}, - {340, 392, 20, 29}, - {360, 392, 20, 29}, - {380, 392, 20, 29}, - {400, 392, 20, 29}, - {420, 392, 20, 29}, - {440, 392, 20, 29}, - {460, 392, 20, 29}, - {480, 392, 20, 29}, - {500, 392, 20, 29}, - {520, 392, 20, 29}, - {540, 392, 20, 29}, - {560, 392, 20, 29}, - {580, 392, 20, 29}, - {600, 392, 20, 29}, - {620, 392, 20, 29}, - {640, 392, 20, 29}, - {660, 392, 20, 29}, - {680, 392, 20, 29}, - {700, 392, 20, 29}, - {720, 392, 20, 29}, - {740, 392, 20, 29}, - {760, 392, 20, 29}, - {780, 392, 20, 29}, - {800, 392, 20, 29}, - {820, 392, 20, 29}, - {840, 392, 20, 29}, - {860, 392, 20, 29}, - {880, 392, 18, 29}, - {898, 392, 20, 29}, - {918, 392, 20, 29}, - {938, 392, 20, 29}, - {958, 392, 20, 29}, - {978, 392, 20, 29}, - {998, 392, 20, 29}, - {0, 421, 18, 29}, - {18, 421, 18, 29}, - {36, 421, 18, 29}, - {54, 421, 18, 29}, - {72, 421, 18, 29}, - {90, 421, 18, 29}, - {108, 421, 18, 29}, - {126, 421, 18, 29}, - {144, 421, 18, 29}, - {162, 421, 18, 29}, - {180, 421, 18, 29}, - {198, 421, 18, 29}, - {216, 421, 20, 29}, - {236, 421, 20, 29}, - {256, 421, 20, 29}, - {276, 421, 20, 29}, - {296, 421, 20, 29}, - {316, 421, 20, 29}, - {336, 421, 20, 29}, - {356, 421, 20, 29}, - {376, 421, 20, 29}, - {396, 421, 20, 29}, - {416, 421, 20, 29}, - {436, 421, 20, 29}, - {456, 421, 20, 29}, - {476, 421, 20, 29}, - {496, 421, 20, 29}, - {516, 421, 20, 29}, - {536, 421, 20, 29}, - {556, 421, 14, 29}, - {570, 421, 14, 29}, - {584, 421, 18, 29}, - {602, 421, 20, 29}, - {622, 421, 15, 29}, - {637, 421, 15, 29}, - {652, 421, 18, 29}, - {670, 421, 20, 29}, - {690, 421, 20, 29}, - {710, 421, 40, 29}, - {730, 421, 100, 29}, - {730, 421, 100, 29}, - {730, 421, 100, 29}, - {730, 421, 100, 29}, - {730, 421, 100, 29}, - {830, 421, 20, 29}, - {850, 421, 20, 29}, - {870, 421, 20, 29}, - {890, 421, 20, 29}, - {910, 421, 20, 29}, - {930, 421, 20, 29}, - {950, 421, 20, 29}, - {970, 421, 20, 29}, - {990, 421, 20, 29}, - {0, 450, 20, 18}, - {20, 450, 20, 18}, - {40, 450, 20, 18}, - {60, 450, 20, 18}, - {80, 450, 20, 18}, - {100, 450, 20, 18}, - {120, 450, 20, 18}, - {140, 450, 20, 18}, - {160, 450, 20, 18}, - {180, 450, 20, 18}, - {200, 450, 20, 18}, - {220, 450, 20, 18}, - {240, 450, 20, 18}, - {260, 450, 20, 18}, - {280, 450, 20, 18}, - {300, 450, 20, 18}, - {320, 450, 20, 18}, - {340, 450, 20, 18}, - {360, 450, 20, 18}, - {380, 450, 20, 18}, - {400, 450, 20, 18}, - {420, 450, 20, 18}, - {440, 450, 20, 18}, - {460, 450, 20, 18}, - {480, 450, 20, 18}, - {500, 450, 20, 18}, - {520, 450, 20, 18}, - {540, 450, 20, 18}, - {560, 450, 20, 18}, - {580, 450, 20, 18}, - {600, 450, 20, 18}, - {620, 450, 20, 18}, - {640, 450, 20, 18}, - {660, 450, 20, 18}, - {680, 450, 20, 18}, - {700, 450, 20, 18}, - {720, 450, 20, 18}, - {740, 450, 20, 18}, - {760, 450, 20, 18}, - {780, 450, 20, 18}, - {800, 450, 20, 18}, - {820, 450, 20, 18}, - {840, 450, 20, 18}, - {860, 450, 20, 18}, - {880, 450, 20, 18}, - {900, 450, 20, 18}, - {920, 450, 20, 18}, - {940, 450, 20, 18}, - {960, 450, 20, 18}, - {980, 450, 20, 18}, - {1000, 450, 20, 18}, - {0, 469, 20, 29}, - {20, 469, 20, 29}, - {40, 469, 20, 29}, - {60, 469, 17, 29}, - {77, 469, 20, 29}, - {97, 469, 16, 29}, - {113, 469, 20, 29}, - {133, 469, 20, 29}, - {153, 469, 20, 29}, - {173, 469, 20, 29}, - {193, 469, 20, 29}, - {213, 469, 20, 29}, - {233, 469, 20, 29}, - {253, 469, 20, 29}, - {273, 469, 20, 29}, - {293, 469, 20, 29}, - {313, 469, 20, 29}, - {333, 469, 20, 29}, - {353, 469, 20, 29}, - {373, 469, 20, 29}, - {393, 469, 20, 29}, - {413, 469, 20, 29}, - {433, 469, 20, 29}, - {453, 469, 20, 29}, - {473, 469, 20, 29}, - {493, 469, 20, 29}, - {513, 469, 20, 29}, - {533, 469, 20, 29}, - {553, 469, 20, 29}, - {573, 469, 20, 29}, - {593, 469, 20, 29}, - {613, 469, 20, 29}, - {633, 469, 20, 29}, - {653, 469, 20, 29}, - {673, 469, 20, 29}, - {693, 469, 20, 29}, - {713, 469, 20, 29}, - {733, 469, 20, 29}, - {753, 469, 20, 29}, - {773, 469, 20, 29}, - {793, 469, 20, 29}, - {813, 469, 20, 29}, - {833, 469, 20, 29}, - {853, 469, 20, 29}, - {873, 469, 20, 29}, - {893, 469, 20, 29}, - {913, 469, 20, 29}, - {933, 469, 20, 29}, - {953, 469, 20, 29}, - {973, 469, 20, 29}, - {993, 469, 20, 29}, - {0, 498, 20, 18}, - {20, 498, 20, 18}, - {40, 498, 20, 18}, - {60, 498, 20, 18}, - {80, 498, 20, 18}, - {100, 498, 20, 18}, - {120, 498, 20, 18}, - {140, 498, 20, 18}, - {160, 498, 20, 18}, - {180, 498, 20, 18}, - {200, 498, 20, 18}, - {220, 498, 20, 18}, - {240, 498, 20, 18}, - {260, 498, 20, 18}, - {280, 498, 20, 18}, - {300, 498, 20, 18}, - {320, 498, 20, 18}, - {340, 498, 20, 18}, - {360, 498, 20, 18}, - {380, 498, 20, 18}, - {400, 498, 20, 18}, - {420, 498, 20, 18}, - {440, 498, 20, 18}, - {460, 498, 20, 18}, - {480, 498, 20, 18}, - {500, 498, 20, 18}, - {520, 498, 20, 18}, - {540, 498, 20, 18}, - {560, 498, 20, 18}, - {580, 498, 20, 18}, - {600, 498, 20, 18}, - {620, 498, 20, 18}, - {640, 498, 20, 18}, - {660, 498, 20, 18}, - {680, 498, 20, 18}, - {700, 498, 20, 18}, - {720, 498, 20, 18}, - {740, 498, 20, 18}, - {760, 498, 20, 18}, - {780, 498, 20, 18}, - {800, 498, 20, 18}, - {820, 498, 20, 18}, - {840, 498, 20, 18}, - {860, 498, 20, 18}, - {880, 498, 20, 18}, - {900, 498, 20, 18}, - {920, 498, 20, 18}, - {940, 498, 20, 18}, - {960, 498, 20, 18}, - {980, 498, 20, 18}, - {1000, 498, 20, 18}, - {0, 517, 20, 18}, - {20, 517, 20, 18}, - {40, 517, 20, 18}, - {60, 517, 20, 18}, - {80, 517, 20, 18}, - {100, 517, 20, 18}, - {120, 517, 20, 18}, - {140, 517, 20, 18}, - {160, 517, 20, 18}, - {180, 517, 20, 18}, - {200, 517, 20, 18}, - {220, 517, 20, 18}, - {240, 517, 20, 18}, - {260, 517, 20, 18}, - {280, 517, 20, 18}, - {300, 517, 20, 18}, - {320, 517, 20, 18}, - {340, 517, 20, 18}, - {360, 517, 20, 18}, - {380, 517, 20, 18}, - {400, 517, 20, 18}, - {420, 517, 20, 18}, - {440, 517, 20, 18}, - {460, 517, 20, 18}, - {480, 517, 20, 18}, - {500, 517, 20, 18}, - {520, 517, 20, 18}, - {540, 517, 20, 18}, - {560, 517, 20, 18}, - {580, 517, 20, 18}, - {600, 517, 20, 18}, - {620, 517, 20, 18}, - {640, 517, 20, 18}, - {660, 517, 20, 18}, - {680, 517, 20, 18}, - {700, 517, 20, 18}, - {720, 517, 20, 18}, - {740, 517, 20, 18}, - {760, 517, 20, 18}, - {780, 517, 20, 18}, - {800, 517, 20, 18}, - {820, 517, 20, 18}, - {840, 517, 20, 18}, - {860, 517, 20, 18}, - {880, 517, 20, 18}, - {900, 517, 20, 18}, - {920, 517, 20, 18}, - {940, 517, 20, 18}, - {960, 517, 20, 18}, - {980, 517, 20, 18}, - {1000, 517, 20, 18}, - {0, 536, 20, 29}, - {20, 536, 20, 29}, - {40, 536, 20, 29}, - {60, 536, 20, 29}, - {80, 536, 20, 29}, - {100, 536, 20, 29}, - {120, 536, 20, 29}, - {140, 536, 20, 29}, - {160, 536, 20, 29}, - {180, 536, 20, 29}, - {200, 536, 20, 29}, - {220, 536, 20, 29}, - {240, 536, 20, 29}, - {260, 536, 20, 29}, - {280, 536, 20, 29}, - {300, 536, 20, 29}, - {320, 536, 20, 29}, - {340, 536, 20, 29}, - {360, 536, 20, 29}, - {380, 536, 20, 29}, - {400, 536, 20, 29}, - {420, 536, 20, 29}, - {440, 536, 20, 29}, - {460, 536, 20, 29}, - {480, 536, 20, 29}, - {500, 536, 20, 29}, - {520, 536, 20, 29}, - {540, 536, 20, 29}, - {560, 536, 20, 29}, - {580, 536, 20, 29}, - {600, 536, 20, 29}, - {620, 536, 20, 29}, - {640, 536, 20, 29}, - {660, 536, 20, 29}, - {680, 536, 20, 29}, - {700, 536, 20, 29}, - {720, 536, 20, 29}, - {740, 536, 20, 29}, - {760, 536, 20, 29}, - {780, 536, 20, 29}, - {800, 536, 16, 29}, - {816, 536, 18, 29}, - {834, 536, 20, 29}, - {854, 536, 20, 29}, - {874, 536, 20, 29}, - {894, 536, 20, 29}, - {914, 536, 20, 29}, - {934, 536, 20, 29}, - {954, 536, 20, 29}, - {974, 536, 20, 29}, - {994, 536, 20, 29}, - {0, 565, 20, 18}, - {20, 565, 20, 18}, - {40, 565, 20, 18}, - {60, 565, 20, 18}, - {80, 565, 20, 18}, - {100, 565, 20, 18}, - {120, 565, 20, 18}, - {140, 565, 20, 18}, - {160, 565, 20, 18}, - {180, 565, 20, 18}, - {200, 565, 20, 18}, - {220, 565, 20, 18}, - {240, 565, 20, 18}, - {260, 565, 20, 18}, - {280, 565, 20, 18}, - {300, 565, 20, 18}, - {320, 565, 20, 18}, - {340, 565, 20, 18}, - {360, 565, 20, 18}, - {380, 565, 20, 18}, - {400, 565, 20, 18}, - {420, 565, 20, 18}, - {440, 565, 20, 18}, - {460, 565, 20, 18}, - {480, 565, 20, 18}, - {500, 565, 20, 18}, - {520, 565, 20, 18}, - {540, 565, 20, 18}, - {560, 565, 20, 18}, - {580, 565, 20, 18}, - {600, 565, 20, 18}, - {620, 565, 20, 18}, - {640, 565, 20, 18}, - {660, 565, 20, 18}, - {680, 565, 20, 18}, - {700, 565, 20, 18}, - {720, 565, 20, 18}, - {740, 565, 20, 18}, - {760, 565, 20, 18}, - {780, 565, 20, 18}, - {800, 565, 20, 18}, - {820, 565, 20, 18}, - {840, 565, 20, 18}, - {860, 565, 20, 18}, - {880, 565, 20, 18}, - {900, 565, 20, 18}, - {920, 565, 20, 18}, - {940, 565, 20, 18}, - {960, 565, 20, 18}, - {980, 565, 20, 18}, - {1000, 565, 20, 18}, - {0, 583, 20, 35}, - {20, 583, 20, 35}, - {40, 583, 20, 35}, - {60, 583, 15, 35}, - {75, 583, 15, 35}, - {90, 583, 16, 35}, - {106, 583, 16, 35}, - {122, 583, 14, 35}, - {136, 583, 14, 35}, - {150, 583, 14, 35}, - {164, 583, 13, 35}, - {177, 583, 11, 35}, - {188, 583, 11, 35}, - {199, 583, 11, 35}, - {210, 583, 17, 35}, - {227, 583, 16, 35}, - {243, 583, 20, 35}, - {263, 583, 20, 35}, - {283, 583, 20, 35}, - {303, 583, 20, 35}, - {323, 583, 13, 35}, - {336, 583, 20, 35}, - {356, 583, 20, 35}, - {376, 583, 20, 35}, - {396, 583, 20, 35}, - {416, 583, 20, 35}, - {436, 583, 20, 35}, - {456, 583, 20, 35}, - {476, 583, 20, 35}, - {496, 583, 20, 35}, - {516, 583, 20, 35}, - {536, 583, 20, 35}, - {556, 583, 20, 35}, - {576, 583, 20, 35}, - {596, 583, 20, 35}, - {616, 583, 20, 35}, - {636, 583, 20, 35}, - {656, 583, 20, 35}, - {676, 583, 20, 35}, - {696, 583, 20, 35}, - {716, 583, 20, 35}, - {736, 583, 20, 35}, - {756, 583, 20, 35}, - {776, 583, 20, 35}, - {796, 583, 20, 35}, - {816, 583, 17, 35}, - {833, 583, 17, 35}, - {850, 583, 17, 35}, - {867, 583, 15, 35}, - {882, 583, 20, 35}, - {902, 583, 14, 35}, - {916, 583, 19, 35}, - {935, 583, 8, 35}, - {943, 583, 20, 35}, - {963, 583, 16, 35}, - {979, 583, 17, 35}, - {996, 583, 17, 35}, - {0, 618, 20, 29}, - {20, 618, 20, 29}, - {40, 618, 17, 29}, - {57, 618, 16, 29}, - {73, 618, 16, 29}, - {89, 618, 16, 29}, - {105, 618, 20, 29}, - {125, 618, 7, 29}, - {132, 618, 17, 29}, - {149, 618, 7, 29}, - {156, 618, 16, 29}, - {172, 618, 16, 29}, - {188, 618, 16, 29}, - {204, 618, 8, 29}, - {212, 618, 19, 29}, - {231, 618, 19, 29}, - {250, 618, 19, 29}, - {269, 618, 20, 29}, - {289, 618, 19, 29}, - {308, 618, 16, 29}, - {324, 618, 15, 29}, - {339, 618, 17, 29}, - {356, 618, 15, 29}, - {371, 618, 18, 29}, - {389, 618, 17, 29}, - {406, 618, 17, 29}, - {423, 618, 19, 29}, - {442, 618, 17, 29}, - {459, 618, 20, 29}, - {479, 618, 17, 29}, - {496, 618, 15, 29}, - {511, 618, 15, 29}, - {526, 618, 13, 29}, - {539, 618, 20, 29}, - {559, 618, 20, 29}, - {579, 618, 13, 29}, - {592, 618, 20, 29}, - {612, 618, 20, 29}, - {632, 618, 20, 29}, - {652, 618, 20, 29}, - {672, 618, 20, 29}, - {692, 618, 20, 29}, - {712, 618, 13, 29}, - {725, 618, 13, 29}, - {738, 618, 13, 29}, - {751, 618, 13, 29}, - {764, 618, 13, 29}, - {777, 618, 13, 29}, - {790, 618, 20, 29}, - {810, 618, 10, 29}, - {820, 618, 16, 29}, - {836, 618, 18, 29}, - {854, 618, 16, 29}, - {870, 618, 10, 29}, - {880, 618, 14, 29}, - {894, 618, 14, 29}, - {908, 618, 14, 29}, - {922, 618, 19, 29}, - {941, 618, 16, 29}, - {957, 618, 11, 29}, - {968, 618, 11, 29}, - {979, 618, 11, 29}, - {990, 618, 11, 29}, - {1001, 618, 21, 29}, - {0, 647, 16, 29}, - {16, 647, 17, 29}, - {33, 647, 15, 29}, - {48, 647, 15, 29}, - {63, 647, 15, 29}, - {78, 647, 13, 29}, - {91, 647, 13, 29}, - {104, 647, 13, 29}, - {117, 647, 17, 29}, - {134, 647, 17, 29}, - {151, 647, 17, 29}, - {168, 647, 16, 29}, - {184, 647, 16, 29}, - {200, 647, 20, 29}, - {220, 647, 18, 29}, - {238, 647, 16, 29}, - {254, 647, 11, 29}, - {265, 647, 12, 29}, - {277, 647, 12, 29}, - {289, 647, 15, 29}, - {304, 647, 12, 29}, - {316, 647, 12, 29}, - {328, 647, 15, 29}, - {343, 647, 13, 29}, - {356, 647, 13, 29}, - {369, 647, 16, 29}, - {385, 647, 13, 29}, - {398, 647, 13, 29}, - {411, 647, 16, 29}, - {427, 647, 14, 29}, - {441, 647, 13, 29}, - {454, 647, 13, 29}, - {467, 647, 17, 29}, - {484, 647, 11, 29}, - {495, 647, 15, 29}, - {510, 647, 15, 29}, - {525, 647, 14, 29}, - {539, 647, 12, 29}, - {551, 647, 20, 29}, - {571, 647, 20, 29}, - {591, 647, 16, 29}, - {607, 647, 16, 29}, - {623, 647, 16, 29}, - {639, 647, 13, 29}, - {652, 647, 16, 29}, - {668, 647, 18, 29}, - {686, 647, 16, 29}, - {702, 647, 17, 29}, - {719, 647, 16, 29}, - {735, 647, 16, 29}, - {751, 647, 16, 29}, - {767, 647, 16, 29}, - {783, 647, 18, 29}, - {801, 647, 18, 29}, - {819, 647, 20, 29}, - {839, 647, 21, 29}, - {860, 647, 17, 29}, - {877, 647, 17, 29}, - {894, 647, 20, 29}, - {914, 647, 20, 29}, - {934, 647, 19, 29}, - {953, 647, 19, 29}, - {972, 647, 15, 29}, - {987, 647, 17, 29}, - {1004, 647, 12, 29}, - {0, 676, 13, 29}, - {13, 676, 15, 29}, - {28, 676, 13, 29}, - {41, 676, 12, 29}, - {53, 676, 14, 29}, - {67, 676, 22, 29}, - {89, 676, 20, 29}, - {109, 676, 20, 29}, - {129, 676, 20, 29}, - {149, 676, 20, 29}, - {169, 676, 20, 29}, - {189, 676, 20, 29}, - {209, 676, 20, 29}, - {229, 676, 20, 29}, - {249, 676, 20, 29}, - {269, 676, 20, 29}, - {289, 676, 20, 29}, - {309, 676, 20, 29}, - {329, 676, 20, 29}, - {349, 676, 20, 29}, - {369, 676, 20, 29}, - {389, 676, 20, 29}, - {409, 676, 20, 29}, - {429, 676, 20, 29}, - {449, 676, 20, 29}, - {469, 676, 20, 29}, - {489, 676, 20, 29}, - {509, 676, 20, 29}, - {529, 676, 20, 29}, - {549, 676, 20, 29}, - {569, 676, 20, 29}, - {589, 676, 20, 29}, - {609, 676, 20, 29}, - {629, 676, 20, 29}, - {649, 676, 20, 29}, - {669, 676, 20, 29}, - {689, 676, 20, 29}, - {709, 676, 20, 29}, - {729, 676, 20, 29}, - {749, 676, 20, 29}, - {769, 676, 20, 29}, - {789, 676, 20, 29}, - {809, 676, 20, 29}, - {829, 676, 20, 29}, - {849, 676, 20, 29}, - {869, 676, 20, 29}, - {889, 676, 20, 29}, - {909, 676, 20, 29}, - {929, 676, 20, 29}, - {949, 676, 20, 29}, - {969, 676, 20, 29}, - {989, 676, 20, 29}, - {0, 705, 20, 29}, - {20, 705, 20, 29}, - {40, 705, 20, 29}, - {60, 705, 20, 29}, - {80, 705, 20, 29}, - {100, 705, 20, 29}, - {120, 705, 20, 29}, - {140, 705, 20, 29}, - {160, 705, 20, 29}, - {180, 705, 20, 29}, - {200, 705, 20, 29}, - {220, 705, 20, 29}, - {240, 705, 20, 29}, - {260, 705, 20, 29}, - {280, 705, 20, 29}, - {300, 705, 20, 29}, - {320, 705, 20, 29}, - {340, 705, 20, 29}, - {360, 705, 20, 29}, - {380, 705, 20, 29}, - {400, 705, 20, 29}, - {420, 705, 20, 29}, - {440, 705, 20, 29}, - {460, 705, 20, 29}, - {480, 705, 20, 29}, - {500, 705, 20, 29}, - {520, 705, 20, 29}, - {540, 705, 20, 29}, - {560, 705, 20, 29}, - {580, 705, 20, 29}, - {600, 705, 20, 29}, - {620, 705, 20, 29}, - {640, 705, 20, 29}, - {660, 705, 20, 29}, - {680, 705, 20, 29}, - {700, 705, 20, 29}, - {720, 705, 20, 29}, - {740, 705, 20, 29}, - {760, 705, 20, 29}, - {780, 705, 14, 29}, - {794, 705, 15, 29}, - {809, 705, 15, 29}, - {824, 705, 14, 29}, - {838, 705, 15, 29}, - {853, 705, 14, 29}, - {867, 705, 14, 29}, - {881, 705, 15, 29}, - {896, 705, 16, 29}, - {912, 705, 16, 29}, - {928, 705, 16, 29}, - {944, 705, 16, 29}, - {960, 705, 18, 29}, - {978, 705, 18, 29}, - {996, 705, 18, 29}, - {0, 734, 18, 29}, - {18, 734, 16, 29}, - {34, 734, 16, 29}, - {50, 734, 16, 29}, - {66, 734, 16, 29}, - {82, 734, 17, 29}, - {99, 734, 17, 29}, - {116, 734, 17, 29}, - {133, 734, 17, 29}, - {150, 734, 16, 29}, - {166, 734, 16, 29}, - {182, 734, 16, 29}, - {198, 734, 16, 29}, - {214, 734, 17, 29}, - {231, 734, 12, 29}, - {243, 734, 17, 29}, - {260, 734, 12, 29}, - {272, 734, 20, 29}, - {292, 734, 20, 29}, - {312, 734, 11, 29}, - {323, 734, 12, 29}, - {335, 734, 14, 29}, - {349, 734, 20, 29}, - {369, 734, 11, 29}, - {380, 734, 11, 29}, - {391, 734, 11, 29}, - {402, 734, 11, 29}, - {413, 734, 8, 29}, - {421, 734, 9, 29}, - {430, 734, 19, 29}, - {449, 734, 19, 29}, - {468, 734, 19, 29}, - {487, 734, 19, 29}, - {506, 734, 20, 29}, - {526, 734, 20, 29}, - {546, 734, 20, 29}, - {566, 734, 20, 29}, - {586, 734, 20, 29}, - {606, 734, 20, 29}, - {626, 734, 20, 29}, - {646, 734, 20, 29}, - {666, 734, 20, 29}, - {686, 734, 20, 29}, - {706, 734, 20, 29}, - {726, 734, 20, 29}, - {746, 734, 20, 29}, - {766, 734, 20, 29}, - {786, 734, 20, 29}, - {806, 734, 20, 29}, - {826, 734, 20, 29}, - {846, 734, 20, 29}, - {866, 734, 20, 29}, - {886, 734, 20, 29}, - {906, 734, 20, 29}, - {926, 734, 20, 29}, - {946, 734, 20, 29}, - {966, 734, 20, 29}, - {986, 734, 20, 29}, - {0, 763, 20, 29}, - {20, 763, 20, 29}, - {40, 763, 20, 29}, - {60, 763, 20, 29}, - {80, 763, 20, 29}, - {100, 763, 20, 29}, - {120, 763, 20, 29}, - {140, 763, 20, 29}, - {160, 763, 20, 29}, - {180, 763, 20, 29}, - {200, 763, 20, 29}, - {220, 763, 20, 29}, - {240, 763, 20, 29}, - {260, 763, 20, 29}, - {280, 763, 20, 29}, - {300, 763, 20, 29}, - {320, 763, 20, 29}, - {340, 763, 20, 29}, - {360, 763, 20, 29}, - {380, 763, 20, 29}, - {400, 763, 20, 29}, - {420, 763, 20, 29}, - {440, 763, 20, 29}, - {460, 763, 20, 29}, - {480, 763, 20, 29}, - {500, 763, 20, 29}, - {520, 763, 20, 29}, - {540, 763, 20, 29}, - {560, 763, 20, 29}, - {580, 763, 20, 29}, - {600, 763, 20, 29}, - {620, 763, 20, 29}, - {640, 763, 20, 29}, - {660, 763, 20, 29}, - {680, 763, 20, 29}, - {700, 763, 20, 29}, - {720, 763, 20, 29}, - {740, 763, 20, 29}, - {760, 763, 20, 29}, - {780, 763, 20, 29}, - {800, 763, 20, 29}, - {820, 763, 20, 29}, - {840, 763, 20, 29}, - {860, 763, 20, 29}, - {880, 763, 20, 29}, - {900, 763, 16, 29}, - {916, 763, 16, 29}, - {932, 763, 16, 29}, - {948, 763, 9, 29}, - {957, 763, 9, 29}, - {966, 763, 18, 29}, - {984, 763, 20, 29}, - {1004, 763, 16, 29}, - {0, 792, 13, 35}, - {13, 792, 17, 35}, - {30, 792, 20, 35}, - {50, 792, 20, 35}, - {70, 792, 20, 35}, - {90, 792, 16, 35}, - {106, 792, 16, 35}, - {122, 792, 20, 35}, - {142, 792, 20, 35}, - {162, 792, 20, 35}, - {182, 792, 23, 35}, - {205, 792, 23, 35}, - {228, 792, 23, 35}, - {251, 792, 23, 35}, - {274, 792, 23, 35}, - {297, 792, 23, 35}, - {320, 792, 23, 35}, - {343, 792, 23, 35}, - {366, 792, 16, 35}, - {382, 792, 14, 35}, - {396, 792, 11, 35}, - {407, 792, 18, 35}, - {425, 792, 18, 35}, - {443, 792, 17, 35}, - {460, 792, 11, 35}, - {471, 792, 15, 35}, - {486, 792, 16, 35}, - {502, 792, 18, 35}, - {520, 792, 12, 35}, - {532, 792, 20, 35}, - {552, 792, 20, 35}, - {572, 792, 23, 35}, - {595, 792, 23, 35}, - {618, 792, 23, 35}, - {641, 792, 17, 35}, - {658, 792, 15, 35}, - {673, 792, 18, 35}, - {691, 792, 18, 35}, - {709, 792, 20, 35}, - {729, 792, 20, 35}, - {749, 792, 20, 35}, - {769, 792, 20, 35}, - {789, 792, 20, 35}, - {809, 792, 20, 35}, - {829, 792, 20, 35}, - {849, 792, 20, 35}, - {869, 792, 20, 35}, - {889, 792, 23, 35}, - {912, 792, 23, 35}, - {935, 792, 23, 35}, - {958, 792, 18, 35}, - {976, 792, 14, 35}, - {990, 792, 14, 35}, - {1004, 792, 14, 35}, - {0, 827, 14, 34}, - {14, 827, 18, 34}, - {32, 827, 19, 34}, - {51, 827, 17, 34}, - {68, 827, 11, 34}, - {79, 827, 13, 34}, - {92, 827, 13, 34}, - {105, 827, 13, 34}, - {118, 827, 8, 34}, - {126, 827, 11, 34}, - {137, 827, 11, 34}, - {148, 827, 14, 34}, - {162, 827, 14, 34}, - {176, 827, 11, 34}, - {187, 827, 15, 34}, - {202, 827, 18, 34}, - {220, 827, 13, 34}, - {233, 827, 13, 34}, - {246, 827, 13, 34}, - {259, 827, 13, 34}, - {272, 827, 9, 34}, - {281, 827, 19, 34}, - {300, 827, 16, 34}, - {316, 827, 15, 34}, - {331, 827, 18, 34}, - {349, 827, 16, 34}, - {365, 827, 10, 34}, - {375, 827, 10, 34}, - {385, 827, 10, 34}, - {395, 827, 15, 34}, - {410, 827, 10, 34}, - {420, 827, 6, 34}, - {426, 827, 22, 34}, - {448, 827, 8, 34}, - {456, 827, 8, 34}, - {464, 827, 8, 34}, - {472, 827, 13, 34}, - {485, 827, 12, 34}, - {497, 827, 12, 34}, - {509, 827, 10, 34}, - {519, 827, 10, 34}, - {529, 827, 8, 34}, - {537, 827, 7, 34}, - {544, 827, 8, 34}, - {552, 827, 10, 34}, - {562, 827, 8, 34}, - {570, 827, 15, 34}, - {585, 827, 17, 34}, - {602, 827, 10, 34}, - {612, 827, 10, 34}, - {622, 827, 13, 34}, - {635, 827, 11, 34}, - {646, 827, 15, 34}, - {661, 827, 12, 34}, - {673, 827, 15, 34}, - {688, 827, 10, 34}, - {698, 827, 15, 34}, - {713, 827, 15, 34}, - {728, 827, 14, 34}, - {742, 827, 8, 34}, - {750, 827, 15, 34}, - {765, 827, 11, 34}, - {776, 827, 11, 34}, - {787, 827, 14, 34}, - {801, 827, 16, 34}, - {817, 827, 8, 34}, - {825, 827, 13, 34}, - {838, 827, 23, 34}, - {861, 827, 16, 34}, - {877, 827, 15, 34}, - {892, 827, 13, 34}, - {905, 827, 7, 34}, - {912, 827, 9, 34}, - {921, 827, 9, 34}, - {930, 827, 12, 34}, - {942, 827, 9, 34}, - {951, 827, 20, 34}, - {971, 827, 15, 34}, - {986, 827, 15, 34}, - {1001, 827, 14, 34}, - {0, 861, 11, 35}, - {11, 861, 13, 35}, - {24, 861, 15, 35}, - {39, 861, 13, 35}, - {52, 861, 9, 35}, - {61, 861, 17, 35}, - {78, 861, 17, 35}, - {95, 861, 16, 35}, - {111, 861, 19, 35}, - {130, 861, 15, 35}, - {145, 861, 16, 35}, - {161, 861, 16, 35}, - {177, 861, 22, 35}, - {199, 861, 12, 35}, - {211, 861, 14, 35}, - {225, 861, 13, 35}, - {238, 861, 15, 35}, - {253, 861, 10, 35}, - {263, 861, 11, 35}, - {274, 861, 12, 35}, - {286, 861, 11, 35}, - {297, 861, 13, 35}, - {310, 861, 18, 35}, - {328, 861, 17, 35}, - {345, 861, 15, 35}, - {360, 861, 9, 35}, - {369, 861, 15, 35}, - {384, 861, 13, 35}, - {397, 861, 15, 35}, - {412, 861, 13, 35}, - {425, 861, 16, 35}, - {441, 861, 17, 35}, - {458, 861, 23, 35}, - {481, 861, 23, 35}, - {504, 861, 23, 35}, - {527, 861, 23, 35}, - {550, 861, 23, 35}, - {573, 861, 23, 35}, - {596, 861, 23, 35}, - {619, 861, 23, 35}, - {642, 861, 23, 35}, - {665, 861, 23, 35}, - {688, 861, 23, 35}, - {711, 861, 23, 35}, - {734, 861, 8, 35}, - {742, 861, 14, 35}, - {756, 861, 8, 35}, - {764, 861, 14, 35}, - {778, 861, 6, 35}, - {784, 861, 14, 35}, - {798, 861, 14, 35}, - {812, 861, 14, 35}, - {826, 861, 14, 35}, - {840, 861, 14, 35}, - {854, 861, 14, 35}, - {868, 861, 14, 35}, - {882, 861, 4, 35}, - {886, 861, 5, 35}, - {891, 861, 13, 35}, - {904, 861, 13, 35}, - {917, 861, 13, 35}, - {930, 861, 13, 35}, - {943, 861, 13, 35}, - {956, 861, 13, 35}, - {969, 861, 13, 35}, - {982, 861, 13, 35}, - {995, 861, 13, 35}, - {1008, 861, 4, 35}, - {1012, 861, 5, 35}, - {0, 896, 10, 29}, - {10, 896, 18, 29}, - {28, 896, 18, 29}, - {46, 896, 18, 29}, - {64, 896, 3, 29}, - {67, 896, 4, 29}, - {71, 896, 7, 29}, - {78, 896, 12, 29}, - {90, 896, 14, 29}, - {104, 896, 14, 29}, - {118, 896, 14, 29}, - {132, 896, 14, 29}, - {146, 896, 14, 29}, - {160, 896, 14, 29}, - {174, 896, 14, 29}, - {188, 896, 11, 29}, - {199, 896, 11, 29}, - {210, 896, 11, 29}, - {221, 896, 11, 29}, - {232, 896, 12, 29}, - {244, 896, 12, 29}, - {256, 896, 12, 29}, - {268, 896, 13, 29}, - {281, 896, 13, 29}, - {294, 896, 14, 29}, - {308, 896, 14, 29}, - {322, 896, 14, 29}, - {336, 896, 14, 29}, - {350, 896, 13, 29}, - {363, 896, 13, 29}, - {376, 896, 13, 29}, - {389, 896, 13, 29}, - {402, 896, 13, 29}, - {415, 896, 13, 29}, - {428, 896, 14, 29}, - {442, 896, 14, 29}, - {456, 896, 14, 29}, - {470, 896, 14, 29}, - {484, 896, 14, 29}, - {498, 896, 12, 29}, - {510, 896, 12, 29}, - {522, 896, 12, 29}, - {534, 896, 12, 29}, - {546, 896, 14, 29}, - {560, 896, 14, 29}, - {574, 896, 14, 29}, - {588, 896, 14, 29}, - {602, 896, 14, 29}, - {616, 896, 13, 29}, - {629, 896, 13, 29}, - {642, 896, 12, 29}, - {654, 896, 12, 29}, - {666, 896, 12, 29}, - {678, 896, 14, 29}, - {692, 896, 13, 29}, - {705, 896, 14, 29}, - {719, 896, 14, 29}, - {733, 896, 15, 29}, - {748, 896, 15, 29}, - {763, 896, 15, 29}, - {778, 896, 14, 29}, - {792, 896, 14, 29}, - {806, 896, 14, 29}, - {820, 896, 14, 29}, - {834, 896, 23, 29}, - {857, 896, 23, 29}, - {880, 896, 23, 29}, - {903, 896, 23, 29}, - {926, 896, 23, 29}, - {949, 896, 23, 29}, - {972, 896, 23, 29}, - {995, 896, 20, 29}, - {0, 925, 20, 29}, - {20, 925, 20, 29}, - {40, 925, 20, 29}, - {60, 925, 20, 29}, - {80, 925, 20, 29}, - {100, 925, 20, 29}, - {120, 925, 20, 29}, - {140, 925, 20, 29}, - {160, 925, 20, 29}, - {180, 925, 20, 29}, - {200, 925, 20, 29}, - {220, 925, 23, 29}, - {243, 925, 23, 29}, - {266, 925, 23, 29}, - {289, 925, 23, 29}, - {312, 925, 23, 29}, - {335, 925, 23, 29}, - {358, 925, 23, 29}, - {381, 925, 23, 29}, - {404, 925, 23, 29}, - {427, 925, 23, 29}, - {450, 925, 23, 29}, - {473, 925, 23, 29}, - {496, 925, 23, 29}, - {519, 925, 23, 29}, - {542, 925, 23, 29}, - {565, 925, 23, 29}, - {588, 925, 23, 29}, - {611, 925, 23, 29}, - {634, 925, 23, 29}, - {657, 925, 23, 29}, - {680, 925, 13, 29}, - {693, 925, 6, 29}, - {699, 925, 13, 29}, - {712, 925, 6, 29}, - {718, 925, 13, 29}, - {731, 925, 9, 29}, - {740, 925, 13, 29}, - {753, 925, 9, 29}, - {762, 925, 15, 29}, - {777, 925, 13, 29}, - {790, 925, 15, 29}, - {805, 925, 13, 29}, - {818, 925, 23, 29}, - {841, 925, 23, 29}, - {864, 925, 23, 29}, - {887, 925, 23, 29}, - {910, 925, 14, 29}, - {924, 925, 6, 29}, - {930, 925, 14, 29}, - {944, 925, 6, 29}, - {950, 925, 14, 29}, - {964, 925, 7, 29}, - {971, 925, 14, 29}, - {985, 925, 7, 29}, - {992, 925, 14, 29}, - {1006, 925, 8, 29}, - {0, 954, 14, 29}, - {14, 954, 8, 29}, - {22, 954, 14, 29}, - {36, 954, 10, 29}, - {46, 954, 14, 29}, - {60, 954, 10, 29}, - {70, 954, 14, 29}, - {84, 954, 9, 29}, - {93, 954, 14, 29}, - {107, 954, 9, 29}, - {116, 954, 13, 29}, - {129, 954, 9, 29}, - {138, 954, 13, 29}, - {151, 954, 9, 29}, - {160, 954, 13, 29}, - {173, 954, 9, 29}, - {182, 954, 13, 29}, - {195, 954, 9, 29}, - {204, 954, 13, 29}, - {217, 954, 11, 29}, - {228, 954, 13, 29}, - {241, 954, 11, 29}, - {252, 954, 16, 29}, - {268, 954, 11, 29}, - {279, 954, 16, 29}, - {295, 954, 11, 29}, - {306, 954, 13, 29}, - {319, 954, 9, 29}, - {328, 954, 13, 29}, - {341, 954, 9, 29}, - {350, 954, 8, 29}, - {358, 954, 10, 29}, - {368, 954, 8, 29}, - {376, 954, 10, 29}, - {386, 954, 6, 29}, - {392, 954, 13, 29}, - {405, 954, 6, 29}, - {411, 954, 13, 29}, - {424, 954, 9, 29}, - {433, 954, 16, 29}, - {449, 954, 9, 29}, - {458, 954, 16, 29}, - {474, 954, 17, 29}, - {491, 954, 16, 29}, - {507, 954, 17, 29}, - {524, 954, 16, 29}, - {540, 954, 23, 29}, - {563, 954, 23, 29}, - {586, 954, 23, 29}, - {609, 954, 23, 29}, - {632, 954, 23, 29}, - {655, 954, 23, 29}, - {678, 954, 23, 29}, - {701, 954, 23, 29}, - {724, 954, 13, 29}, - {737, 954, 8, 29}, - {745, 954, 13, 29}, - {758, 954, 8, 29}, - {766, 954, 11, 29}, - {777, 954, 11, 29}, - {788, 954, 11, 29}, - {799, 954, 11, 29}, - {810, 954, 17, 29}, - {827, 954, 8, 29}, - {835, 954, 23, 29}, - {858, 954, 23, 29}, - {881, 954, 23, 29}, - {904, 954, 23, 29}, - {927, 954, 23, 29}, - {950, 954, 23, 29}, - {973, 954, 13, 29}, - {986, 954, 11, 29}, - {997, 954, 13, 29}, - {1010, 954, 11, 29}, - {0, 983, 10, 29}, - {10, 983, 10, 29}, - {20, 983, 10, 29}, - {30, 983, 10, 29}, - {40, 983, 13, 29}, - {53, 983, 11, 29}, - {64, 983, 13, 29}, - {77, 983, 11, 29}, - {88, 983, 10, 29}, - {98, 983, 10, 29}, - {108, 983, 10, 29}, - {118, 983, 10, 29}, - {128, 983, 13, 29}, - {141, 983, 11, 29}, - {152, 983, 13, 29}, - {165, 983, 11, 29}, - {176, 983, 11, 29}, - {187, 983, 11, 29}, - {198, 983, 11, 29}, - {209, 983, 11, 29}, - {220, 983, 13, 29}, - {233, 983, 11, 29}, - {244, 983, 13, 29}, - {257, 983, 11, 29}, - {268, 983, 11, 29}, - {279, 983, 11, 29}, - {290, 983, 11, 29}, - {301, 983, 11, 29}, - {312, 983, 13, 29}, - {325, 983, 11, 29}, - {336, 983, 13, 29}, - {349, 983, 11, 29}, - {360, 983, 12, 29}, - {372, 983, 12, 29}, - {384, 983, 12, 29}, - {396, 983, 12, 29}, - {408, 983, 23, 29}, - {431, 983, 23, 29}, - {454, 983, 23, 29}, - {477, 983, 23, 29}, - {500, 983, 23, 29}, - {523, 983, 23, 29}, - {546, 983, 23, 29}, - {569, 983, 23, 29}, - {592, 983, 6, 29}, - {598, 983, 9, 29}, - {607, 983, 6, 29}, - {613, 983, 9, 29}, - {622, 983, 9, 29}, - {631, 983, 13, 29}, - {644, 983, 9, 29}, - {653, 983, 13, 29}, - {666, 983, 13, 29}, - {679, 983, 8, 29}, - {687, 983, 13, 29}, - {700, 983, 8, 29}, - {708, 983, 7, 29}, - {715, 983, 5, 29}, - {720, 983, 4, 29}, - {724, 983, 4, 29}, - {728, 983, 16, 29}, - {744, 983, 16, 29}, - {760, 983, 16, 29}, - {776, 983, 16, 29}, - {792, 983, 16, 29}, - {808, 983, 16, 29}, - {824, 983, 16, 29}, - {840, 983, 16, 29}, - {856, 983, 16, 29}, - {872, 983, 16, 29}, - {888, 983, 16, 29}, - {904, 983, 16, 29}, - {920, 983, 7, 29}, - {927, 983, 6, 29}, - {933, 983, 23, 29}, - {956, 983, 23, 29}, - {979, 983, 16, 29}, - {995, 983, 16, 29}, - {0, 1012, 23, 21}, - {23, 1012, 23, 21}, - {46, 1012, 23, 21}, - {69, 1012, 23, 21}, - {92, 1012, 23, 21}, - {115, 1012, 23, 21}, - {138, 1012, 23, 21}, - {161, 1012, 23, 21}, - {184, 1012, 23, 21}, - {207, 1012, 23, 21}, - {230, 1012, 23, 21}, - {253, 1012, 23, 21}, - {276, 1012, 23, 21}, - {299, 1012, 23, 21}, - {322, 1012, 23, 21}, - {345, 1012, 23, 21}, - {368, 1012, 23, 21}, - {391, 1012, 23, 21}, - {414, 1012, 23, 21}, - {437, 1012, 23, 21}, - {460, 1012, 23, 21}, - {483, 1012, 23, 21}, - {506, 1012, 23, 21}, - {529, 1012, 23, 21}, - {552, 1012, 23, 21}, - {575, 1012, 23, 21}, - {598, 1012, 23, 21}, - {621, 1012, 23, 21}, - {644, 1012, 23, 21}, - {667, 1012, 23, 21}, - {690, 1012, 23, 21}, - {713, 1012, 23, 21}, - {736, 1012, 23, 21}, - {759, 1012, 23, 21}, - {782, 1012, 23, 21}, - {805, 1012, 23, 21}, - {828, 1012, 23, 21}, - {851, 1012, 23, 21}, - {874, 1012, 23, 21}, - {897, 1012, 23, 21}, - {920, 1012, 23, 21}, - {943, 1012, 23, 21}, - {966, 1012, 23, 21}, - {989, 1012, 23, 21}, - {0, 1033, 23, 22}, - {23, 1033, 23, 22}, - {46, 1033, 23, 22}, - {69, 1033, 23, 22}, - {92, 1033, 23, 22}, - {115, 1033, 23, 22}, - {138, 1033, 23, 22}, - {161, 1033, 23, 22}, - {184, 1033, 23, 22}, - {207, 1033, 23, 22}, - {230, 1033, 23, 22}, - {253, 1033, 23, 22}, - {276, 1033, 23, 22}, - {299, 1033, 23, 22}, - {322, 1033, 23, 22}, - {345, 1033, 23, 22}, - {368, 1033, 23, 22}, - {391, 1033, 23, 22}, - {414, 1033, 23, 22}, - {437, 1033, 23, 22}, - {460, 1033, 23, 22}, - {483, 1033, 23, 22}, - {506, 1033, 23, 22}, - {529, 1033, 23, 22}, - {552, 1033, 23, 22}, - {575, 1033, 23, 22}, - {598, 1033, 23, 22}, - {621, 1033, 23, 22}, - {644, 1033, 23, 22}, - {667, 1033, 23, 22}, - {690, 1033, 23, 22}, - {713, 1033, 23, 22}, - {736, 1033, 23, 22}, - {759, 1033, 23, 22}, - {782, 1033, 23, 22}, - {805, 1033, 23, 22}, - {828, 1033, 23, 22}, - {851, 1033, 23, 22}, - {874, 1033, 23, 22}, - {897, 1033, 23, 22}, - {920, 1033, 23, 22}, - {943, 1033, 23, 22}, - {966, 1033, 23, 22}, - {989, 1033, 23, 22}, - {0, 1055, 23, 29}, - {23, 1055, 23, 29}, - {46, 1055, 20, 29}, - {66, 1055, 20, 29}, - {86, 1055, 20, 29}, - {106, 1055, 20, 29}, - {126, 1055, 20, 29}, - {146, 1055, 20, 29}, - {166, 1055, 20, 29}, - {186, 1055, 20, 29}, - {206, 1055, 20, 29}, - {226, 1055, 20, 29}, - {246, 1055, 20, 29}, - {266, 1055, 20, 29}, - {286, 1055, 20, 29}, - {306, 1055, 20, 29}, - {326, 1055, 20, 29}, - {346, 1055, 20, 29}, - {366, 1055, 20, 29}, - {386, 1055, 20, 29}, - {406, 1055, 20, 29}, - {426, 1055, 20, 29}, - {446, 1055, 20, 29}, - {466, 1055, 20, 29}, - {486, 1055, 20, 29}, - {506, 1055, 20, 29}, - {526, 1055, 20, 29}, - {546, 1055, 20, 29}, - {566, 1055, 20, 29}, - {586, 1055, 20, 29}, - {606, 1055, 20, 29}, - {626, 1055, 20, 29}, - {646, 1055, 20, 29}, - {666, 1055, 20, 29}, - {686, 1055, 20, 29}, - {706, 1055, 20, 29}, - {726, 1055, 20, 29}, - {746, 1055, 20, 29}, - {766, 1055, 20, 29}, - {786, 1055, 20, 29}, - {806, 1055, 20, 29}, - {826, 1055, 20, 29}, - {846, 1055, 20, 29}, - {866, 1055, 20, 29}, - {886, 1055, 20, 29}, - {906, 1055, 20, 29}, - {926, 1055, 20, 29}, - {946, 1055, 20, 29}, - {966, 1055, 20, 29}, - {986, 1055, 14, 29}, - {1000, 1055, 20, 29}, - {0, 1084, 20, 29}, - {20, 1084, 20, 29}, - {40, 1084, 20, 29}, - {60, 1084, 20, 29}, - {80, 1084, 20, 29}, - {100, 1084, 20, 29}, - {120, 1084, 20, 29}, - {140, 1084, 20, 29}, - {160, 1084, 20, 29}, - {180, 1084, 17, 29}, - {197, 1084, 20, 29}, - {217, 1084, 20, 29}, - {237, 1084, 20, 29}, - {257, 1084, 20, 29}, - {277, 1084, 20, 29}, - {297, 1084, 20, 29}, - {317, 1084, 20, 29}, - {337, 1084, 20, 29}, - {357, 1084, 20, 29}, - {377, 1084, 20, 29}, - {397, 1084, 20, 29}, - {417, 1084, 20, 29}, - {437, 1084, 20, 29}, - {457, 1084, 20, 29}, - {477, 1084, 20, 29}, - {497, 1084, 20, 29}, - {517, 1084, 20, 29}, - {537, 1084, 20, 29}, - {557, 1084, 20, 29}, - {577, 1084, 20, 29}, - {597, 1084, 20, 29}, - {617, 1084, 20, 29}, - {637, 1084, 20, 29}, - {657, 1084, 20, 29}, - {677, 1084, 20, 29}, - {697, 1084, 20, 29}, - {717, 1084, 20, 29}, - {737, 1084, 20, 29}, - {757, 1084, 20, 29}, - {777, 1084, 20, 29}, - {797, 1084, 20, 29}, - {817, 1084, 20, 29}, - {837, 1084, 20, 29}, - {857, 1084, 20, 29}, - {877, 1084, 20, 29}, - {897, 1084, 20, 29}, - {917, 1084, 20, 29}, - {937, 1084, 20, 29}, - {957, 1084, 20, 29}, - {977, 1084, 20, 29}, - {997, 1084, 20, 29}, - {0, 1113, 20, 21}, - {20, 1113, 20, 21}, - {40, 1113, 20, 21}, - {60, 1113, 20, 21}, - {80, 1113, 20, 21}, - {100, 1113, 20, 21}, - {120, 1113, 20, 21}, - {140, 1113, 20, 21}, - {160, 1113, 20, 21}, - {180, 1113, 23, 21}, - {203, 1113, 20, 21}, - {223, 1113, 20, 21}, - {243, 1113, 20, 21}, - {263, 1113, 20, 21}, - {283, 1113, 20, 21}, - {303, 1113, 20, 21}, - {323, 1113, 20, 21}, - {343, 1113, 20, 21}, - {363, 1113, 20, 21}, - {383, 1113, 20, 21}, - {403, 1113, 20, 21}, - {423, 1113, 20, 21}, - {443, 1113, 20, 21}, - {463, 1113, 20, 21}, - {483, 1113, 20, 21}, - {503, 1113, 20, 21}, - {523, 1113, 20, 21}, - {543, 1113, 20, 21}, - {563, 1113, 20, 21}, - {583, 1113, 20, 21}, - {603, 1113, 20, 21}, - {623, 1113, 20, 21}, - {643, 1113, 20, 21}, - {663, 1113, 20, 21}, - {683, 1113, 20, 21}, - {703, 1113, 20, 21}, - {723, 1113, 20, 21}, - {743, 1113, 20, 21}, - {763, 1113, 20, 21}, - {783, 1113, 20, 21}, - {803, 1113, 20, 21}, - {823, 1113, 20, 21}, - {843, 1113, 20, 21}, - {863, 1113, 20, 21}, - {883, 1113, 20, 21}, - {903, 1113, 20, 21}, - {923, 1113, 20, 21}, - {943, 1113, 20, 21}, - {963, 1113, 20, 21}, - {983, 1113, 20, 21}, - {1003, 1113, 20, 21}, - {0, 1135, 20, 21}, - {20, 1135, 20, 21}, - {40, 1135, 20, 21}, - {60, 1135, 20, 21}, - {80, 1135, 20, 21}, - {100, 1135, 20, 21}, - {120, 1135, 20, 21}, - {140, 1135, 20, 21}, - {160, 1135, 20, 21}, - {180, 1135, 20, 21}, - {200, 1135, 20, 21}, - {220, 1135, 20, 21}, - {240, 1135, 20, 21}, - {260, 1135, 20, 21}, - {280, 1135, 20, 21}, - {300, 1135, 20, 21}, - {320, 1135, 20, 21}, - {340, 1135, 20, 21}, - {360, 1135, 20, 21}, - {380, 1135, 20, 21}, - {400, 1135, 20, 21}, - {420, 1135, 20, 21}, - {440, 1135, 20, 21}, - {460, 1135, 20, 21}, - {480, 1135, 20, 21}, - {500, 1135, 20, 21}, - {520, 1135, 20, 21}, - {540, 1135, 20, 21}, - {560, 1135, 20, 21}, - {580, 1135, 20, 21}, - {600, 1135, 20, 21}, - {620, 1135, 20, 21}, - {640, 1135, 20, 21}, - {660, 1135, 20, 21}, - {680, 1135, 20, 21}, - {700, 1135, 20, 21}, - {720, 1135, 20, 21}, - {740, 1135, 20, 21}, - {760, 1135, 20, 21}, - {780, 1135, 20, 21}, - {800, 1135, 20, 21}, - {820, 1135, 23, 21}, - {843, 1135, 20, 21}, - {863, 1135, 20, 21}, - {883, 1135, 20, 21}, - {903, 1135, 20, 21}, - {923, 1135, 20, 21}, - {943, 1135, 20, 21}, - {963, 1135, 20, 21}, - {983, 1135, 20, 21}, - {1003, 1135, 20, 21}, - {0, 1157, 20, 29}, - {20, 1157, 20, 29}, - {40, 1157, 20, 29}, - {60, 1157, 20, 29}, - {80, 1157, 20, 29}, - {100, 1157, 20, 29}, - {120, 1157, 20, 29}, - {140, 1157, 20, 29}, - {160, 1157, 20, 29}, - {180, 1157, 20, 29}, - {200, 1157, 20, 29}, - {220, 1157, 20, 29}, - {240, 1157, 20, 29}, - {260, 1157, 20, 29}, - {280, 1157, 20, 29}, - {300, 1157, 20, 29}, - {320, 1157, 20, 29}, - {340, 1157, 20, 29}, - {360, 1157, 20, 29}, - {380, 1157, 20, 29}, - {400, 1157, 20, 29}, - {420, 1157, 20, 29}, - {440, 1157, 20, 29}, - {460, 1157, 20, 29}, - {480, 1157, 20, 29}, - {500, 1157, 20, 29}, - {520, 1157, 20, 29}, - {540, 1157, 20, 29}, - {560, 1157, 20, 29}, - {580, 1157, 20, 29}, - {600, 1157, 20, 29}, - {620, 1157, 20, 29}, - {640, 1157, 20, 29}, - {660, 1157, 20, 29}, - {680, 1157, 20, 29}, - {700, 1157, 20, 29}, - {720, 1157, 20, 29}, - {740, 1157, 20, 29}, - {760, 1157, 20, 29}, - {780, 1157, 20, 29}, - {800, 1157, 20, 29}, - {820, 1157, 20, 29}, - {840, 1157, 16, 29}, - {856, 1157, 16, 29}, - {872, 1157, 16, 29}, - {888, 1157, 16, 29}, - {904, 1157, 16, 29}, - {920, 1157, 16, 29}, - {936, 1157, 16, 29}, - {952, 1157, 16, 29}, - {968, 1157, 16, 29}, - {984, 1157, 16, 29}, - {1000, 1157, 16, 29}, - {0, 1186, 16, 29}, - {16, 1186, 16, 29}, - {32, 1186, 16, 29}, - {48, 1186, 16, 29}, - {64, 1186, 16, 29}, - {80, 1186, 16, 29}, - {96, 1186, 16, 29}, - {112, 1186, 16, 29}, - {128, 1186, 16, 29}, - {144, 1186, 16, 29}, - {160, 1186, 16, 29}, - {176, 1186, 16, 29}, - {192, 1186, 16, 29}, - {208, 1186, 16, 29}, - {224, 1186, 16, 29}, - {240, 1186, 16, 29}, - {256, 1186, 16, 29}, - {272, 1186, 16, 29}, - {288, 1186, 16, 29}, - {304, 1186, 16, 29}, - {320, 1186, 16, 29}, - {336, 1186, 16, 29}, - {352, 1186, 16, 29}, - {368, 1186, 16, 29}, - {384, 1186, 16, 29}, - {400, 1186, 16, 29}, - {416, 1186, 16, 29}, - {432, 1186, 16, 29}, - {448, 1186, 16, 29}, - {464, 1186, 16, 29}, - {480, 1186, 16, 29}, - {496, 1186, 16, 29}, - {512, 1186, 16, 29}, - {528, 1186, 16, 29}, - {544, 1186, 16, 29}, - {560, 1186, 16, 29}, - {576, 1186, 16, 29}, - {592, 1186, 16, 29}, - {608, 1186, 16, 29}, - {624, 1186, 16, 29}, - {640, 1186, 16, 29}, - {656, 1186, 16, 29}, - {672, 1186, 16, 29}, - {688, 1186, 16, 29}, - {704, 1186, 16, 29}, - {720, 1186, 16, 29}, - {736, 1186, 16, 29}, - {752, 1186, 16, 29}, - {768, 1186, 16, 29}, - {784, 1186, 16, 29}, - {800, 1186, 16, 29}, - {816, 1186, 16, 29}, - {832, 1186, 16, 29}, - {848, 1186, 16, 29}, - {864, 1186, 16, 29}, - {880, 1186, 16, 29}, - {896, 1186, 16, 29}, - {912, 1186, 16, 29}, - {928, 1186, 16, 29}, - {944, 1186, 16, 29}, - {960, 1186, 16, 29}, - {976, 1186, 16, 29}, - {992, 1186, 16, 29}, - {1008, 1186, 16, 29}, - {0, 1215, 16, 29}, - {16, 1215, 16, 29}, - {32, 1215, 16, 29}, - {48, 1215, 16, 29}, - {64, 1215, 16, 29}, - {80, 1215, 16, 29}, - {96, 1215, 16, 29}, - {112, 1215, 16, 29}, - {128, 1215, 16, 29}, - {144, 1215, 23, 29}, - {167, 1215, 23, 29}, - {190, 1215, 23, 29}, - {213, 1215, 23, 29}, - {236, 1215, 23, 29}, - {259, 1215, 23, 29}, - {282, 1215, 23, 29}, - {305, 1215, 23, 29}, - {328, 1215, 23, 29}, - {351, 1215, 23, 29}, - {374, 1215, 23, 29}, - {397, 1215, 23, 29}, - {420, 1215, 16, 29}, - {436, 1215, 16, 29}, - {452, 1215, 16, 29}, - {468, 1215, 16, 29}, - {484, 1215, 16, 29}, - {500, 1215, 16, 29}, - {516, 1215, 16, 29}, - {532, 1215, 16, 29}, - {548, 1215, 16, 29}, - {564, 1215, 16, 29}, - {580, 1215, 16, 29}, - {596, 1215, 16, 29}, - {612, 1215, 16, 29}, - {628, 1215, 16, 29}, - {644, 1215, 23, 29}, - {667, 1215, 23, 29}, - {690, 1215, 20, 29}, - {710, 1215, 20, 29}, - {730, 1215, 20, 29}, - {750, 1215, 20, 29}, - {770, 1215, 20, 29}, - {790, 1215, 23, 29}, - {813, 1215, 23, 29}, - {836, 1215, 23, 29}, - {859, 1215, 20, 29}, - {879, 1215, 20, 29}, - {899, 1215, 20, 29}, - {919, 1215, 23, 29}, - {942, 1215, 23, 29}, - {965, 1215, 23, 29}, - {988, 1215, 23, 29}, - {0, 1244, 23, 21}, - {23, 1244, 20, 21}, - {43, 1244, 20, 21}, - {63, 1244, 20, 21}, - {83, 1244, 20, 21}, - {103, 1244, 20, 21}, - {123, 1244, 20, 21}, - {143, 1244, 20, 21}, - {163, 1244, 23, 21}, - {186, 1244, 23, 21}, - {209, 1244, 23, 21}, - {232, 1244, 23, 21}, - {255, 1244, 23, 21}, - {278, 1244, 23, 21}, - {301, 1244, 23, 21}, - {324, 1244, 23, 21}, - {347, 1244, 23, 21}, - {370, 1244, 20, 21}, - {390, 1244, 20, 21}, - {410, 1244, 20, 21}, - {430, 1244, 20, 21}, - {450, 1244, 20, 21}, - {470, 1244, 20, 21}, - {490, 1244, 20, 21}, - {510, 1244, 20, 21}, - {530, 1244, 20, 21}, - {550, 1244, 20, 21}, - {570, 1244, 20, 21}, - {590, 1244, 20, 21}, - {610, 1244, 20, 21}, - {630, 1244, 20, 21}, - {650, 1244, 20, 21}, - {670, 1244, 20, 21}, - {690, 1244, 20, 21}, - {710, 1244, 20, 21}, - {730, 1244, 20, 21}, - {750, 1244, 20, 21}, - {770, 1244, 20, 21}, - {790, 1244, 20, 21}, - {810, 1244, 20, 21}, - {830, 1244, 20, 21}, - {850, 1244, 20, 21}, - {870, 1244, 23, 21}, - {893, 1244, 23, 21}, - {916, 1244, 23, 21}, - {939, 1244, 23, 21}, - {962, 1244, 23, 21}, - {985, 1244, 23, 21}, - {0, 1266, 23, 22}, - {23, 1266, 20, 22}, - {43, 1266, 20, 22}, - {63, 1266, 20, 22}, - {83, 1266, 20, 22}, - {103, 1266, 20, 22}, - {123, 1266, 20, 22}, - {143, 1266, 20, 22}, - {163, 1266, 23, 22}, - {186, 1266, 23, 22}, - {209, 1266, 23, 22}, - {232, 1266, 23, 22}, - {255, 1266, 23, 22}, - {278, 1266, 23, 22}, - {301, 1266, 23, 22}, - {324, 1266, 23, 22}, - {347, 1266, 23, 22}, - {370, 1266, 20, 22}, - {390, 1266, 20, 22}, - {410, 1266, 20, 22}, - {430, 1266, 23, 22}, - {453, 1266, 23, 22}, - {476, 1266, 23, 22}, - {499, 1266, 23, 22}, - {522, 1266, 23, 22}, - {545, 1266, 23, 22}, - {568, 1266, 23, 22}, - {591, 1266, 23, 22}, - {614, 1266, 23, 22}, - {637, 1266, 23, 22}, - {660, 1266, 23, 22}, - {683, 1266, 23, 22}, - {706, 1266, 23, 22}, - {729, 1266, 20, 22}, - {749, 1266, 20, 22}, - {769, 1266, 20, 22}, - {789, 1266, 20, 22}, - {809, 1266, 20, 22}, - {829, 1266, 20, 22}, - {849, 1266, 20, 22}, - {869, 1266, 23, 22}, - {892, 1266, 23, 22}, - {915, 1266, 23, 22}, - {938, 1266, 23, 22}, - {961, 1266, 23, 22}, - {984, 1266, 23, 22}, - {0, 1288, 23, 29}, - {23, 1288, 23, 29}, - {46, 1288, 23, 29}, - {69, 1288, 23, 29}, - {92, 1288, 23, 29}, - {115, 1288, 23, 29}, - {138, 1288, 23, 29}, - {161, 1288, 23, 29}, - {184, 1288, 23, 29}, - {207, 1288, 23, 29}, - {230, 1288, 23, 29}, - {253, 1288, 23, 29}, - {276, 1288, 23, 29}, - {299, 1288, 23, 29}, - {322, 1288, 23, 29}, - {345, 1288, 23, 29}, - {368, 1288, 23, 29}, - {391, 1288, 23, 29}, - {414, 1288, 23, 29}, - {437, 1288, 23, 29}, - {460, 1288, 23, 29}, - {483, 1288, 23, 29}, - {506, 1288, 23, 29}, - {529, 1288, 23, 29}, - {552, 1288, 23, 29}, - {575, 1288, 23, 29}, - {598, 1288, 23, 29}, - {621, 1288, 23, 29}, - {644, 1288, 23, 29}, - {667, 1288, 23, 29}, - {690, 1288, 23, 29}, - {713, 1288, 23, 29}, - {736, 1288, 23, 29}, - {759, 1288, 23, 29}, - {782, 1288, 23, 29}, - {805, 1288, 16, 29}, - {821, 1288, 16, 29}, - {837, 1288, 16, 29}, - {853, 1288, 16, 29}, - {869, 1288, 16, 29}, - {885, 1288, 16, 29}, - {901, 1288, 16, 29}, - {917, 1288, 16, 29}, - {933, 1288, 16, 29}, - {949, 1288, 16, 29}, - {965, 1288, 16, 29}, - {981, 1288, 16, 29}, - {997, 1288, 16, 29}, - {0, 1317, 16, 29}, - {16, 1317, 16, 29}, - {32, 1317, 16, 29}, - {48, 1317, 16, 29}, - {64, 1317, 16, 29}, - {80, 1317, 16, 29}, - {96, 1317, 16, 29}, - {112, 1317, 16, 29}, - {128, 1317, 16, 29}, - {144, 1317, 16, 29}, - {160, 1317, 16, 29}, - {176, 1317, 16, 29}, - {192, 1317, 16, 29}, - {208, 1317, 16, 29}, - {224, 1317, 16, 29}, - {240, 1317, 16, 29}, - {256, 1317, 16, 29}, - {272, 1317, 16, 29}, - {288, 1317, 16, 29}, - {304, 1317, 16, 29}, - {320, 1317, 16, 29}, - {336, 1317, 16, 29}, - {352, 1317, 16, 29}, - {368, 1317, 16, 29}, - {384, 1317, 16, 29}, - {400, 1317, 16, 29}, - {416, 1317, 16, 29}, - {432, 1317, 16, 29}, - {448, 1317, 16, 29}, - {464, 1317, 16, 29}, - {480, 1317, 16, 29}, - {496, 1317, 16, 29}, - {512, 1317, 16, 29}, - {528, 1317, 16, 29}, - {544, 1317, 16, 29}, - {560, 1317, 16, 29}, - {576, 1317, 16, 29}, - {592, 1317, 16, 29}, - {608, 1317, 16, 29}, - {624, 1317, 16, 29}, - {640, 1317, 16, 29}, - {656, 1317, 16, 29}, - {672, 1317, 16, 29}, - {688, 1317, 16, 29}, - {704, 1317, 16, 29}, - {720, 1317, 16, 29}, - {736, 1317, 16, 29}, - {752, 1317, 16, 29}, - {768, 1317, 16, 29}, - {784, 1317, 16, 29}, - {800, 1317, 16, 29}, - {816, 1317, 16, 29}, - {832, 1317, 16, 29}, - {848, 1317, 16, 29}, - {864, 1317, 16, 29}, - {880, 1317, 16, 29}, - {896, 1317, 16, 29}, - {912, 1317, 16, 29}, - {928, 1317, 16, 29}, - {944, 1317, 16, 29}, - {960, 1317, 16, 29}, - {976, 1317, 16, 29}, - {992, 1317, 16, 29}, - {1008, 1317, 16, 29}, - {0, 1346, 16, 29}, - {16, 1346, 16, 29}, - {32, 1346, 16, 29}, - {48, 1346, 16, 29}, - {64, 1346, 16, 29}, - {80, 1346, 16, 29}, - {96, 1346, 16, 29}, - {112, 1346, 16, 29}, - {128, 1346, 16, 29}, - {144, 1346, 16, 29}, - {160, 1346, 16, 29}, - {176, 1346, 16, 29}, - {192, 1346, 16, 29}, - {208, 1346, 16, 29}, - {224, 1346, 16, 29}, - {240, 1346, 16, 29}, - {256, 1346, 16, 29}, - {272, 1346, 16, 29}, - {288, 1346, 16, 29}, - {304, 1346, 16, 29}, - {320, 1346, 16, 29}, - {336, 1346, 16, 29}, - {352, 1346, 16, 29}, - {368, 1346, 16, 29}, - {384, 1346, 16, 29}, - {400, 1346, 16, 29}, - {416, 1346, 16, 29}, - {432, 1346, 16, 29}, - {448, 1346, 16, 29}, - {464, 1346, 16, 29}, - {480, 1346, 16, 29}, - {496, 1346, 16, 29}, - {512, 1346, 16, 29}, - {528, 1346, 16, 29}, - {544, 1346, 16, 29} + static std::unordered_multimap<uint32_t, std::array<uint32_t, 9>> emoji_sequences = { + { 0x1f600, { } }, + { 0x1f603, { } }, + { 0x1f604, { } }, + { 0x1f601, { } }, + { 0x1f606, { } }, + { 0x1f605, { } }, + { 0x1f923, { } }, + { 0x1f602, { } }, + { 0x1f642, { } }, + { 0x1f643, { } }, + { 0x1fae0, { } }, + { 0x1f609, { } }, + { 0x1f60a, { } }, + { 0x1f607, { } }, + { 0x1f970, { } }, + { 0x1f60d, { } }, + { 0x1f929, { } }, + { 0x1f618, { } }, + { 0x1f617, { } }, + { 0x263a, { 0xfe0f } }, + { 0x1f61a, { } }, + { 0x1f619, { } }, + { 0x1f972, { } }, + { 0x1f60b, { } }, + { 0x1f61b, { } }, + { 0x1f61c, { } }, + { 0x1f92a, { } }, + { 0x1f61d, { } }, + { 0x1f911, { } }, + { 0x1f917, { } }, + { 0x1f92d, { } }, + { 0x1fae2, { } }, + { 0x1fae3, { } }, + { 0x1f92b, { } }, + { 0x1f914, { } }, + { 0x1fae1, { } }, + { 0x1f910, { } }, + { 0x1f928, { } }, + { 0x1f610, { } }, + { 0x1f611, { } }, + { 0x1f636, { } }, + { 0x1fae5, { } }, + { 0x1f636, { 0x200d, 0x1f32b, 0xfe0f } }, + { 0x1f60f, { } }, + { 0x1f612, { } }, + { 0x1f644, { } }, + { 0x1f62c, { } }, + { 0x1f62e, { 0x200d, 0x1f4a8 } }, + { 0x1f925, { } }, + { 0x1fae8, { } }, + { 0x1f60c, { } }, + { 0x1f614, { } }, + { 0x1f62a, { } }, + { 0x1f924, { } }, + { 0x1f634, { } }, + { 0x1f637, { } }, + { 0x1f912, { } }, + { 0x1f915, { } }, + { 0x1f922, { } }, + { 0x1f92e, { } }, + { 0x1f927, { } }, + { 0x1f975, { } }, + { 0x1f976, { } }, + { 0x1f974, { } }, + { 0x1f635, { } }, + { 0x1f635, { 0x200d, 0x1f4ab } }, + { 0x1f92f, { } }, + { 0x1f920, { } }, + { 0x1f973, { } }, + { 0x1f978, { } }, + { 0x1f60e, { } }, + { 0x1f913, { } }, + { 0x1f9d0, { } }, + { 0x1f615, { } }, + { 0x1fae4, { } }, + { 0x1f61f, { } }, + { 0x1f641, { } }, + { 0x2639, { 0xfe0f } }, + { 0x1f62e, { } }, + { 0x1f62f, { } }, + { 0x1f632, { } }, + { 0x1f633, { } }, + { 0x1f97a, { } }, + { 0x1f979, { } }, + { 0x1f626, { } }, + { 0x1f627, { } }, + { 0x1f628, { } }, + { 0x1f630, { } }, + { 0x1f625, { } }, + { 0x1f622, { } }, + { 0x1f62d, { } }, + { 0x1f631, { } }, + { 0x1f616, { } }, + { 0x1f623, { } }, + { 0x1f61e, { } }, + { 0x1f613, { } }, + { 0x1f629, { } }, + { 0x1f62b, { } }, + { 0x1f971, { } }, + { 0x1f624, { } }, + { 0x1f621, { } }, + { 0x1f620, { } }, + { 0x1f92c, { } }, + { 0x1f608, { } }, + { 0x1f47f, { } }, + { 0x1f480, { } }, + { 0x2620, { 0xfe0f } }, + { 0x1f4a9, { } }, + { 0x1f921, { } }, + { 0x1f479, { } }, + { 0x1f47a, { } }, + { 0x1f47b, { } }, + { 0x1f47d, { } }, + { 0x1f47e, { } }, + { 0x1f916, { } }, + { 0x1f63a, { } }, + { 0x1f638, { } }, + { 0x1f639, { } }, + { 0x1f63b, { } }, + { 0x1f63c, { } }, + { 0x1f63d, { } }, + { 0x1f640, { } }, + { 0x1f63f, { } }, + { 0x1f63e, { } }, + { 0x1f648, { } }, + { 0x1f649, { } }, + { 0x1f64a, { } }, + { 0x1f48c, { } }, + { 0x1f498, { } }, + { 0x1f49d, { } }, + { 0x1f496, { } }, + { 0x1f497, { } }, + { 0x1f493, { } }, + { 0x1f49e, { } }, + { 0x1f495, { } }, + { 0x1f49f, { } }, + { 0x2763, { 0xfe0f } }, + { 0x1f494, { } }, + { 0x2764, { 0xfe0f, 0x200d, 0x1f525 } }, + { 0x2764, { 0xfe0f, 0x200d, 0x1fa79 } }, + { 0x2764, { 0xfe0f } }, + { 0x1fa77, { } }, + { 0x1f9e1, { } }, + { 0x1f49b, { } }, + { 0x1f49a, { } }, + { 0x1f499, { } }, + { 0x1fa75, { } }, + { 0x1f49c, { } }, + { 0x1f90e, { } }, + { 0x1f5a4, { } }, + { 0x1fa76, { } }, + { 0x1f90d, { } }, + { 0x1f48b, { } }, + { 0x1f4af, { } }, + { 0x1f4a2, { } }, + { 0x1f4a5, { } }, + { 0x1f4ab, { } }, + { 0x1f4a6, { } }, + { 0x1f4a8, { } }, + { 0x1f573, { 0xfe0f } }, + { 0x1f4ac, { } }, + { 0x1f441, { 0xfe0f, 0x200d, 0x1f5e8, 0xfe0f } }, + { 0x1f5e8, { 0xfe0f } }, + { 0x1f5ef, { 0xfe0f } }, + { 0x1f4ad, { } }, + { 0x1f4a4, { } }, + { 0x1f44b, { } }, + { 0x1f44b, { 0x1f3fb } }, + { 0x1f44b, { 0x1f3fc } }, + { 0x1f44b, { 0x1f3fd } }, + { 0x1f44b, { 0x1f3fe } }, + { 0x1f44b, { 0x1f3ff } }, + { 0x1f91a, { } }, + { 0x1f91a, { 0x1f3fb } }, + { 0x1f91a, { 0x1f3fc } }, + { 0x1f91a, { 0x1f3fd } }, + { 0x1f91a, { 0x1f3fe } }, + { 0x1f91a, { 0x1f3ff } }, + { 0x1f590, { 0xfe0f } }, + { 0x1f590, { 0x1f3fb } }, + { 0x1f590, { 0x1f3fc } }, + { 0x1f590, { 0x1f3fd } }, + { 0x1f590, { 0x1f3fe } }, + { 0x1f590, { 0x1f3ff } }, + { 0x270b, { } }, + { 0x270b, { 0x1f3fb } }, + { 0x270b, { 0x1f3fc } }, + { 0x270b, { 0x1f3fd } }, + { 0x270b, { 0x1f3fe } }, + { 0x270b, { 0x1f3ff } }, + { 0x1f596, { } }, + { 0x1f596, { 0x1f3fb } }, + { 0x1f596, { 0x1f3fc } }, + { 0x1f596, { 0x1f3fd } }, + { 0x1f596, { 0x1f3fe } }, + { 0x1f596, { 0x1f3ff } }, + { 0x1faf1, { } }, + { 0x1faf1, { 0x1f3fb } }, + { 0x1faf1, { 0x1f3fc } }, + { 0x1faf1, { 0x1f3fd } }, + { 0x1faf1, { 0x1f3fe } }, + { 0x1faf1, { 0x1f3ff } }, + { 0x1faf2, { } }, + { 0x1faf2, { 0x1f3fb } }, + { 0x1faf2, { 0x1f3fc } }, + { 0x1faf2, { 0x1f3fd } }, + { 0x1faf2, { 0x1f3fe } }, + { 0x1faf2, { 0x1f3ff } }, + { 0x1faf3, { } }, + { 0x1faf3, { 0x1f3fb } }, + { 0x1faf3, { 0x1f3fc } }, + { 0x1faf3, { 0x1f3fd } }, + { 0x1faf3, { 0x1f3fe } }, + { 0x1faf3, { 0x1f3ff } }, + { 0x1faf4, { } }, + { 0x1faf4, { 0x1f3fb } }, + { 0x1faf4, { 0x1f3fc } }, + { 0x1faf4, { 0x1f3fd } }, + { 0x1faf4, { 0x1f3fe } }, + { 0x1faf4, { 0x1f3ff } }, + { 0x1faf7, { } }, + { 0x1faf7, { 0x1f3fb } }, + { 0x1faf7, { 0x1f3fc } }, + { 0x1faf7, { 0x1f3fd } }, + { 0x1faf7, { 0x1f3fe } }, + { 0x1faf7, { 0x1f3ff } }, + { 0x1faf8, { } }, + { 0x1faf8, { 0x1f3fb } }, + { 0x1faf8, { 0x1f3fc } }, + { 0x1faf8, { 0x1f3fd } }, + { 0x1faf8, { 0x1f3fe } }, + { 0x1faf8, { 0x1f3ff } }, + { 0x1f44c, { } }, + { 0x1f44c, { 0x1f3fb } }, + { 0x1f44c, { 0x1f3fc } }, + { 0x1f44c, { 0x1f3fd } }, + { 0x1f44c, { 0x1f3fe } }, + { 0x1f44c, { 0x1f3ff } }, + { 0x1f90c, { } }, + { 0x1f90c, { 0x1f3fb } }, + { 0x1f90c, { 0x1f3fc } }, + { 0x1f90c, { 0x1f3fd } }, + { 0x1f90c, { 0x1f3fe } }, + { 0x1f90c, { 0x1f3ff } }, + { 0x1f90f, { } }, + { 0x1f90f, { 0x1f3fb } }, + { 0x1f90f, { 0x1f3fc } }, + { 0x1f90f, { 0x1f3fd } }, + { 0x1f90f, { 0x1f3fe } }, + { 0x1f90f, { 0x1f3ff } }, + { 0x270c, { 0xfe0f } }, + { 0x270c, { 0x1f3fb } }, + { 0x270c, { 0x1f3fc } }, + { 0x270c, { 0x1f3fd } }, + { 0x270c, { 0x1f3fe } }, + { 0x270c, { 0x1f3ff } }, + { 0x1f91e, { } }, + { 0x1f91e, { 0x1f3fb } }, + { 0x1f91e, { 0x1f3fc } }, + { 0x1f91e, { 0x1f3fd } }, + { 0x1f91e, { 0x1f3fe } }, + { 0x1f91e, { 0x1f3ff } }, + { 0x1faf0, { } }, + { 0x1faf0, { 0x1f3fb } }, + { 0x1faf0, { 0x1f3fc } }, + { 0x1faf0, { 0x1f3fd } }, + { 0x1faf0, { 0x1f3fe } }, + { 0x1faf0, { 0x1f3ff } }, + { 0x1f91f, { } }, + { 0x1f91f, { 0x1f3fb } }, + { 0x1f91f, { 0x1f3fc } }, + { 0x1f91f, { 0x1f3fd } }, + { 0x1f91f, { 0x1f3fe } }, + { 0x1f91f, { 0x1f3ff } }, + { 0x1f918, { } }, + { 0x1f918, { 0x1f3fb } }, + { 0x1f918, { 0x1f3fc } }, + { 0x1f918, { 0x1f3fd } }, + { 0x1f918, { 0x1f3fe } }, + { 0x1f918, { 0x1f3ff } }, + { 0x1f919, { } }, + { 0x1f919, { 0x1f3fb } }, + { 0x1f919, { 0x1f3fc } }, + { 0x1f919, { 0x1f3fd } }, + { 0x1f919, { 0x1f3fe } }, + { 0x1f919, { 0x1f3ff } }, + { 0x1f448, { } }, + { 0x1f448, { 0x1f3fb } }, + { 0x1f448, { 0x1f3fc } }, + { 0x1f448, { 0x1f3fd } }, + { 0x1f448, { 0x1f3fe } }, + { 0x1f448, { 0x1f3ff } }, + { 0x1f449, { } }, + { 0x1f449, { 0x1f3fb } }, + { 0x1f449, { 0x1f3fc } }, + { 0x1f449, { 0x1f3fd } }, + { 0x1f449, { 0x1f3fe } }, + { 0x1f449, { 0x1f3ff } }, + { 0x1f446, { } }, + { 0x1f446, { 0x1f3fb } }, + { 0x1f446, { 0x1f3fc } }, + { 0x1f446, { 0x1f3fd } }, + { 0x1f446, { 0x1f3fe } }, + { 0x1f446, { 0x1f3ff } }, + { 0x1f595, { } }, + { 0x1f595, { 0x1f3fb } }, + { 0x1f595, { 0x1f3fc } }, + { 0x1f595, { 0x1f3fd } }, + { 0x1f595, { 0x1f3fe } }, + { 0x1f595, { 0x1f3ff } }, + { 0x1f447, { } }, + { 0x1f447, { 0x1f3fb } }, + { 0x1f447, { 0x1f3fc } }, + { 0x1f447, { 0x1f3fd } }, + { 0x1f447, { 0x1f3fe } }, + { 0x1f447, { 0x1f3ff } }, + { 0x261d, { 0xfe0f } }, + { 0x261d, { 0x1f3fb } }, + { 0x261d, { 0x1f3fc } }, + { 0x261d, { 0x1f3fd } }, + { 0x261d, { 0x1f3fe } }, + { 0x261d, { 0x1f3ff } }, + { 0x1faf5, { } }, + { 0x1faf5, { 0x1f3fb } }, + { 0x1faf5, { 0x1f3fc } }, + { 0x1faf5, { 0x1f3fd } }, + { 0x1faf5, { 0x1f3fe } }, + { 0x1faf5, { 0x1f3ff } }, + { 0x1f44d, { } }, + { 0x1f44d, { 0x1f3fb } }, + { 0x1f44d, { 0x1f3fc } }, + { 0x1f44d, { 0x1f3fd } }, + { 0x1f44d, { 0x1f3fe } }, + { 0x1f44d, { 0x1f3ff } }, + { 0x1f44e, { } }, + { 0x1f44e, { 0x1f3fb } }, + { 0x1f44e, { 0x1f3fc } }, + { 0x1f44e, { 0x1f3fd } }, + { 0x1f44e, { 0x1f3fe } }, + { 0x1f44e, { 0x1f3ff } }, + { 0x270a, { } }, + { 0x270a, { 0x1f3fb } }, + { 0x270a, { 0x1f3fc } }, + { 0x270a, { 0x1f3fd } }, + { 0x270a, { 0x1f3fe } }, + { 0x270a, { 0x1f3ff } }, + { 0x1f44a, { } }, + { 0x1f44a, { 0x1f3fb } }, + { 0x1f44a, { 0x1f3fc } }, + { 0x1f44a, { 0x1f3fd } }, + { 0x1f44a, { 0x1f3fe } }, + { 0x1f44a, { 0x1f3ff } }, + { 0x1f91b, { } }, + { 0x1f91b, { 0x1f3fb } }, + { 0x1f91b, { 0x1f3fc } }, + { 0x1f91b, { 0x1f3fd } }, + { 0x1f91b, { 0x1f3fe } }, + { 0x1f91b, { 0x1f3ff } }, + { 0x1f91c, { } }, + { 0x1f91c, { 0x1f3fb } }, + { 0x1f91c, { 0x1f3fc } }, + { 0x1f91c, { 0x1f3fd } }, + { 0x1f91c, { 0x1f3fe } }, + { 0x1f91c, { 0x1f3ff } }, + { 0x1f44f, { } }, + { 0x1f44f, { 0x1f3fb } }, + { 0x1f44f, { 0x1f3fc } }, + { 0x1f44f, { 0x1f3fd } }, + { 0x1f44f, { 0x1f3fe } }, + { 0x1f44f, { 0x1f3ff } }, + { 0x1f64c, { } }, + { 0x1f64c, { 0x1f3fb } }, + { 0x1f64c, { 0x1f3fc } }, + { 0x1f64c, { 0x1f3fd } }, + { 0x1f64c, { 0x1f3fe } }, + { 0x1f64c, { 0x1f3ff } }, + { 0x1faf6, { } }, + { 0x1faf6, { 0x1f3fb } }, + { 0x1faf6, { 0x1f3fc } }, + { 0x1faf6, { 0x1f3fd } }, + { 0x1faf6, { 0x1f3fe } }, + { 0x1faf6, { 0x1f3ff } }, + { 0x1f450, { } }, + { 0x1f450, { 0x1f3fb } }, + { 0x1f450, { 0x1f3fc } }, + { 0x1f450, { 0x1f3fd } }, + { 0x1f450, { 0x1f3fe } }, + { 0x1f450, { 0x1f3ff } }, + { 0x1f932, { } }, + { 0x1f932, { 0x1f3fb } }, + { 0x1f932, { 0x1f3fc } }, + { 0x1f932, { 0x1f3fd } }, + { 0x1f932, { 0x1f3fe } }, + { 0x1f932, { 0x1f3ff } }, + { 0x1f91d, { } }, + { 0x1f91d, { 0x1f3fb } }, + { 0x1f91d, { 0x1f3fc } }, + { 0x1f91d, { 0x1f3fd } }, + { 0x1f91d, { 0x1f3fe } }, + { 0x1f91d, { 0x1f3ff } }, + { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fc } }, + { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fd } }, + { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3fe } }, + { 0x1faf1, { 0x1f3fb, 0x200d, 0x1faf2, 0x1f3ff } }, + { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fb } }, + { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fd } }, + { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3fe } }, + { 0x1faf1, { 0x1f3fc, 0x200d, 0x1faf2, 0x1f3ff } }, + { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fb } }, + { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fc } }, + { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3fe } }, + { 0x1faf1, { 0x1f3fd, 0x200d, 0x1faf2, 0x1f3ff } }, + { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fb } }, + { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fc } }, + { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3fd } }, + { 0x1faf1, { 0x1f3fe, 0x200d, 0x1faf2, 0x1f3ff } }, + { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fb } }, + { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fc } }, + { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fd } }, + { 0x1faf1, { 0x1f3ff, 0x200d, 0x1faf2, 0x1f3fe } }, + { 0x1f64f, { } }, + { 0x1f64f, { 0x1f3fb } }, + { 0x1f64f, { 0x1f3fc } }, + { 0x1f64f, { 0x1f3fd } }, + { 0x1f64f, { 0x1f3fe } }, + { 0x1f64f, { 0x1f3ff } }, + { 0x270d, { 0xfe0f } }, + { 0x270d, { 0x1f3fb } }, + { 0x270d, { 0x1f3fc } }, + { 0x270d, { 0x1f3fd } }, + { 0x270d, { 0x1f3fe } }, + { 0x270d, { 0x1f3ff } }, + { 0x1f485, { } }, + { 0x1f485, { 0x1f3fb } }, + { 0x1f485, { 0x1f3fc } }, + { 0x1f485, { 0x1f3fd } }, + { 0x1f485, { 0x1f3fe } }, + { 0x1f485, { 0x1f3ff } }, + { 0x1f933, { } }, + { 0x1f933, { 0x1f3fb } }, + { 0x1f933, { 0x1f3fc } }, + { 0x1f933, { 0x1f3fd } }, + { 0x1f933, { 0x1f3fe } }, + { 0x1f933, { 0x1f3ff } }, + { 0x1f4aa, { } }, + { 0x1f4aa, { 0x1f3fb } }, + { 0x1f4aa, { 0x1f3fc } }, + { 0x1f4aa, { 0x1f3fd } }, + { 0x1f4aa, { 0x1f3fe } }, + { 0x1f4aa, { 0x1f3ff } }, + { 0x1f9be, { } }, + { 0x1f9bf, { } }, + { 0x1f9b5, { } }, + { 0x1f9b5, { 0x1f3fb } }, + { 0x1f9b5, { 0x1f3fc } }, + { 0x1f9b5, { 0x1f3fd } }, + { 0x1f9b5, { 0x1f3fe } }, + { 0x1f9b5, { 0x1f3ff } }, + { 0x1f9b6, { } }, + { 0x1f9b6, { 0x1f3fb } }, + { 0x1f9b6, { 0x1f3fc } }, + { 0x1f9b6, { 0x1f3fd } }, + { 0x1f9b6, { 0x1f3fe } }, + { 0x1f9b6, { 0x1f3ff } }, + { 0x1f442, { } }, + { 0x1f442, { 0x1f3fb } }, + { 0x1f442, { 0x1f3fc } }, + { 0x1f442, { 0x1f3fd } }, + { 0x1f442, { 0x1f3fe } }, + { 0x1f442, { 0x1f3ff } }, + { 0x1f9bb, { } }, + { 0x1f9bb, { 0x1f3fb } }, + { 0x1f9bb, { 0x1f3fc } }, + { 0x1f9bb, { 0x1f3fd } }, + { 0x1f9bb, { 0x1f3fe } }, + { 0x1f9bb, { 0x1f3ff } }, + { 0x1f443, { } }, + { 0x1f443, { 0x1f3fb } }, + { 0x1f443, { 0x1f3fc } }, + { 0x1f443, { 0x1f3fd } }, + { 0x1f443, { 0x1f3fe } }, + { 0x1f443, { 0x1f3ff } }, + { 0x1f9e0, { } }, + { 0x1fac0, { } }, + { 0x1fac1, { } }, + { 0x1f9b7, { } }, + { 0x1f9b4, { } }, + { 0x1f440, { } }, + { 0x1f441, { 0xfe0f } }, + { 0x1f445, { } }, + { 0x1f444, { } }, + { 0x1fae6, { } }, + { 0x1f476, { } }, + { 0x1f476, { 0x1f3fb } }, + { 0x1f476, { 0x1f3fc } }, + { 0x1f476, { 0x1f3fd } }, + { 0x1f476, { 0x1f3fe } }, + { 0x1f476, { 0x1f3ff } }, + { 0x1f9d2, { } }, + { 0x1f9d2, { 0x1f3fb } }, + { 0x1f9d2, { 0x1f3fc } }, + { 0x1f9d2, { 0x1f3fd } }, + { 0x1f9d2, { 0x1f3fe } }, + { 0x1f9d2, { 0x1f3ff } }, + { 0x1f466, { } }, + { 0x1f466, { 0x1f3fb } }, + { 0x1f466, { 0x1f3fc } }, + { 0x1f466, { 0x1f3fd } }, + { 0x1f466, { 0x1f3fe } }, + { 0x1f466, { 0x1f3ff } }, + { 0x1f467, { } }, + { 0x1f467, { 0x1f3fb } }, + { 0x1f467, { 0x1f3fc } }, + { 0x1f467, { 0x1f3fd } }, + { 0x1f467, { 0x1f3fe } }, + { 0x1f467, { 0x1f3ff } }, + { 0x1f9d1, { } }, + { 0x1f9d1, { 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fe } }, + { 0x1f9d1, { 0x1f3ff } }, + { 0x1f471, { } }, + { 0x1f471, { 0x1f3fb } }, + { 0x1f471, { 0x1f3fc } }, + { 0x1f471, { 0x1f3fd } }, + { 0x1f471, { 0x1f3fe } }, + { 0x1f471, { 0x1f3ff } }, + { 0x1f468, { } }, + { 0x1f468, { 0x1f3fb } }, + { 0x1f468, { 0x1f3fc } }, + { 0x1f468, { 0x1f3fd } }, + { 0x1f468, { 0x1f3fe } }, + { 0x1f468, { 0x1f3ff } }, + { 0x1f9d4, { } }, + { 0x1f9d4, { 0x1f3fb } }, + { 0x1f9d4, { 0x1f3fc } }, + { 0x1f9d4, { 0x1f3fd } }, + { 0x1f9d4, { 0x1f3fe } }, + { 0x1f9d4, { 0x1f3ff } }, + { 0x1f9d4, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d4, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f468, { 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b0 } }, + { 0x1f468, { 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b1 } }, + { 0x1f468, { 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b3 } }, + { 0x1f468, { 0x200d, 0x1f9b2 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9b2 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9b2 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9b2 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9b2 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9b2 } }, + { 0x1f469, { } }, + { 0x1f469, { 0x1f3fb } }, + { 0x1f469, { 0x1f3fc } }, + { 0x1f469, { 0x1f3fd } }, + { 0x1f469, { 0x1f3fe } }, + { 0x1f469, { 0x1f3ff } }, + { 0x1f469, { 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b0 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b0 } }, + { 0x1f469, { 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b1 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b1 } }, + { 0x1f469, { 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b3 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b3 } }, + { 0x1f469, { 0x200d, 0x1f9b2 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9b2 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9b2 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9b2 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9b2 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9b2 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9b2 } }, + { 0x1f471, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f471, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f471, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f471, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f471, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f471, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f471, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d3, { } }, + { 0x1f9d3, { 0x1f3fb } }, + { 0x1f9d3, { 0x1f3fc } }, + { 0x1f9d3, { 0x1f3fd } }, + { 0x1f9d3, { 0x1f3fe } }, + { 0x1f9d3, { 0x1f3ff } }, + { 0x1f474, { } }, + { 0x1f474, { 0x1f3fb } }, + { 0x1f474, { 0x1f3fc } }, + { 0x1f474, { 0x1f3fd } }, + { 0x1f474, { 0x1f3fe } }, + { 0x1f474, { 0x1f3ff } }, + { 0x1f475, { } }, + { 0x1f475, { 0x1f3fb } }, + { 0x1f475, { 0x1f3fc } }, + { 0x1f475, { 0x1f3fd } }, + { 0x1f475, { 0x1f3fe } }, + { 0x1f475, { 0x1f3ff } }, + { 0x1f64d, { } }, + { 0x1f64d, { 0x1f3fb } }, + { 0x1f64d, { 0x1f3fc } }, + { 0x1f64d, { 0x1f3fd } }, + { 0x1f64d, { 0x1f3fe } }, + { 0x1f64d, { 0x1f3ff } }, + { 0x1f64d, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64d, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64d, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64d, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64d, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64d, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64d, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { } }, + { 0x1f64e, { 0x1f3fb } }, + { 0x1f64e, { 0x1f3fc } }, + { 0x1f64e, { 0x1f3fd } }, + { 0x1f64e, { 0x1f3fe } }, + { 0x1f64e, { 0x1f3ff } }, + { 0x1f64e, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64e, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { } }, + { 0x1f645, { 0x1f3fb } }, + { 0x1f645, { 0x1f3fc } }, + { 0x1f645, { 0x1f3fd } }, + { 0x1f645, { 0x1f3fe } }, + { 0x1f645, { 0x1f3ff } }, + { 0x1f645, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f645, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f645, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { } }, + { 0x1f646, { 0x1f3fb } }, + { 0x1f646, { 0x1f3fc } }, + { 0x1f646, { 0x1f3fd } }, + { 0x1f646, { 0x1f3fe } }, + { 0x1f646, { 0x1f3ff } }, + { 0x1f646, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f646, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f646, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { } }, + { 0x1f481, { 0x1f3fb } }, + { 0x1f481, { 0x1f3fc } }, + { 0x1f481, { 0x1f3fd } }, + { 0x1f481, { 0x1f3fe } }, + { 0x1f481, { 0x1f3ff } }, + { 0x1f481, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f481, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f481, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { } }, + { 0x1f64b, { 0x1f3fb } }, + { 0x1f64b, { 0x1f3fc } }, + { 0x1f64b, { 0x1f3fd } }, + { 0x1f64b, { 0x1f3fe } }, + { 0x1f64b, { 0x1f3ff } }, + { 0x1f64b, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f64b, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f64b, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { } }, + { 0x1f9cf, { 0x1f3fb } }, + { 0x1f9cf, { 0x1f3fc } }, + { 0x1f9cf, { 0x1f3fd } }, + { 0x1f9cf, { 0x1f3fe } }, + { 0x1f9cf, { 0x1f3ff } }, + { 0x1f9cf, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cf, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cf, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { } }, + { 0x1f647, { 0x1f3fb } }, + { 0x1f647, { 0x1f3fc } }, + { 0x1f647, { 0x1f3fd } }, + { 0x1f647, { 0x1f3fe } }, + { 0x1f647, { 0x1f3ff } }, + { 0x1f647, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f647, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f647, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { } }, + { 0x1f926, { 0x1f3fb } }, + { 0x1f926, { 0x1f3fc } }, + { 0x1f926, { 0x1f3fd } }, + { 0x1f926, { 0x1f3fe } }, + { 0x1f926, { 0x1f3ff } }, + { 0x1f926, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f926, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f926, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { } }, + { 0x1f937, { 0x1f3fb } }, + { 0x1f937, { 0x1f3fc } }, + { 0x1f937, { 0x1f3fd } }, + { 0x1f937, { 0x1f3fe } }, + { 0x1f937, { 0x1f3ff } }, + { 0x1f937, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f937, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f937, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d1, { 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2695, 0xfe0f } }, + { 0x1f9d1, { 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f393 } }, + { 0x1f468, { 0x200d, 0x1f393 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f393 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f393 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f393 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f393 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f393 } }, + { 0x1f469, { 0x200d, 0x1f393 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f393 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f393 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f393 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f393 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f393 } }, + { 0x1f9d1, { 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3eb } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3eb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3eb } }, + { 0x1f9d1, { 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2696, 0xfe0f } }, + { 0x1f9d1, { 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f33e } }, + { 0x1f468, { 0x200d, 0x1f33e } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f33e } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f33e } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f33e } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f33e } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f33e } }, + { 0x1f469, { 0x200d, 0x1f33e } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f33e } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f33e } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f33e } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f33e } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f33e } }, + { 0x1f9d1, { 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f373 } }, + { 0x1f468, { 0x200d, 0x1f373 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f373 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f373 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f373 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f373 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f373 } }, + { 0x1f469, { 0x200d, 0x1f373 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f373 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f373 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f373 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f373 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f373 } }, + { 0x1f9d1, { 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f527 } }, + { 0x1f468, { 0x200d, 0x1f527 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f527 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f527 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f527 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f527 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f527 } }, + { 0x1f469, { 0x200d, 0x1f527 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f527 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f527 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f527 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f527 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f527 } }, + { 0x1f9d1, { 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3ed } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3ed } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3ed } }, + { 0x1f9d1, { 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f4bc } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f4bc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f4bc } }, + { 0x1f9d1, { 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f52c } }, + { 0x1f468, { 0x200d, 0x1f52c } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f52c } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f52c } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f52c } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f52c } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f52c } }, + { 0x1f469, { 0x200d, 0x1f52c } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f52c } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f52c } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f52c } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f52c } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f52c } }, + { 0x1f9d1, { 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f4bb } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f4bb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f4bb } }, + { 0x1f9d1, { 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3a4 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3a4 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3a4 } }, + { 0x1f9d1, { 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f3a8 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f3a8 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f3a8 } }, + { 0x1f9d1, { 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2708, 0xfe0f } }, + { 0x1f9d1, { 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f680 } }, + { 0x1f468, { 0x200d, 0x1f680 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f680 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f680 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f680 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f680 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f680 } }, + { 0x1f469, { 0x200d, 0x1f680 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f680 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f680 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f680 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f680 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f680 } }, + { 0x1f9d1, { 0x200d, 0x1f692 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f692 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f692 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f692 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f692 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f692 } }, + { 0x1f468, { 0x200d, 0x1f692 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f692 } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f692 } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f692 } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f692 } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f692 } }, + { 0x1f469, { 0x200d, 0x1f692 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f692 } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f692 } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f692 } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f692 } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f692 } }, + { 0x1f46e, { } }, + { 0x1f46e, { 0x1f3fb } }, + { 0x1f46e, { 0x1f3fc } }, + { 0x1f46e, { 0x1f3fd } }, + { 0x1f46e, { 0x1f3fe } }, + { 0x1f46e, { 0x1f3ff } }, + { 0x1f46e, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46e, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f46e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f46e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f46e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f46e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f46e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0xfe0f } }, + { 0x1f575, { 0x1f3fb } }, + { 0x1f575, { 0x1f3fc } }, + { 0x1f575, { 0x1f3fd } }, + { 0x1f575, { 0x1f3fe } }, + { 0x1f575, { 0x1f3ff } }, + { 0x1f575, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f575, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f575, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { } }, + { 0x1f482, { 0x1f3fb } }, + { 0x1f482, { 0x1f3fc } }, + { 0x1f482, { 0x1f3fd } }, + { 0x1f482, { 0x1f3fe } }, + { 0x1f482, { 0x1f3ff } }, + { 0x1f482, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f482, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f482, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f977, { } }, + { 0x1f977, { 0x1f3fb } }, + { 0x1f977, { 0x1f3fc } }, + { 0x1f977, { 0x1f3fd } }, + { 0x1f977, { 0x1f3fe } }, + { 0x1f977, { 0x1f3ff } }, + { 0x1f477, { } }, + { 0x1f477, { 0x1f3fb } }, + { 0x1f477, { 0x1f3fc } }, + { 0x1f477, { 0x1f3fd } }, + { 0x1f477, { 0x1f3fe } }, + { 0x1f477, { 0x1f3ff } }, + { 0x1f477, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f477, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f477, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f477, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f477, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f477, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f477, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1fac5, { } }, + { 0x1fac5, { 0x1f3fb } }, + { 0x1fac5, { 0x1f3fc } }, + { 0x1fac5, { 0x1f3fd } }, + { 0x1fac5, { 0x1f3fe } }, + { 0x1fac5, { 0x1f3ff } }, + { 0x1f934, { } }, + { 0x1f934, { 0x1f3fb } }, + { 0x1f934, { 0x1f3fc } }, + { 0x1f934, { 0x1f3fd } }, + { 0x1f934, { 0x1f3fe } }, + { 0x1f934, { 0x1f3ff } }, + { 0x1f478, { } }, + { 0x1f478, { 0x1f3fb } }, + { 0x1f478, { 0x1f3fc } }, + { 0x1f478, { 0x1f3fd } }, + { 0x1f478, { 0x1f3fe } }, + { 0x1f478, { 0x1f3ff } }, + { 0x1f473, { } }, + { 0x1f473, { 0x1f3fb } }, + { 0x1f473, { 0x1f3fc } }, + { 0x1f473, { 0x1f3fd } }, + { 0x1f473, { 0x1f3fe } }, + { 0x1f473, { 0x1f3ff } }, + { 0x1f473, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f473, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f473, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f473, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f473, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f473, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f473, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f472, { } }, + { 0x1f472, { 0x1f3fb } }, + { 0x1f472, { 0x1f3fc } }, + { 0x1f472, { 0x1f3fd } }, + { 0x1f472, { 0x1f3fe } }, + { 0x1f472, { 0x1f3ff } }, + { 0x1f9d5, { } }, + { 0x1f9d5, { 0x1f3fb } }, + { 0x1f9d5, { 0x1f3fc } }, + { 0x1f9d5, { 0x1f3fd } }, + { 0x1f9d5, { 0x1f3fe } }, + { 0x1f9d5, { 0x1f3ff } }, + { 0x1f935, { } }, + { 0x1f935, { 0x1f3fb } }, + { 0x1f935, { 0x1f3fc } }, + { 0x1f935, { 0x1f3fd } }, + { 0x1f935, { 0x1f3fe } }, + { 0x1f935, { 0x1f3ff } }, + { 0x1f935, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f935, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f935, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f935, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f935, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f935, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f935, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { } }, + { 0x1f470, { 0x1f3fb } }, + { 0x1f470, { 0x1f3fc } }, + { 0x1f470, { 0x1f3fd } }, + { 0x1f470, { 0x1f3fe } }, + { 0x1f470, { 0x1f3ff } }, + { 0x1f470, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f470, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f470, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f930, { } }, + { 0x1f930, { 0x1f3fb } }, + { 0x1f930, { 0x1f3fc } }, + { 0x1f930, { 0x1f3fd } }, + { 0x1f930, { 0x1f3fe } }, + { 0x1f930, { 0x1f3ff } }, + { 0x1fac3, { } }, + { 0x1fac3, { 0x1f3fb } }, + { 0x1fac3, { 0x1f3fc } }, + { 0x1fac3, { 0x1f3fd } }, + { 0x1fac3, { 0x1f3fe } }, + { 0x1fac3, { 0x1f3ff } }, + { 0x1fac4, { } }, + { 0x1fac4, { 0x1f3fb } }, + { 0x1fac4, { 0x1f3fc } }, + { 0x1fac4, { 0x1f3fd } }, + { 0x1fac4, { 0x1f3fe } }, + { 0x1fac4, { 0x1f3ff } }, + { 0x1f931, { } }, + { 0x1f931, { 0x1f3fb } }, + { 0x1f931, { 0x1f3fc } }, + { 0x1f931, { 0x1f3fd } }, + { 0x1f931, { 0x1f3fe } }, + { 0x1f931, { 0x1f3ff } }, + { 0x1f469, { 0x200d, 0x1f37c } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f37c } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f37c } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f37c } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f37c } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f37c } }, + { 0x1f468, { 0x200d, 0x1f37c } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f37c } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f37c } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f37c } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f37c } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f37c } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f37c } }, + { 0x1f47c, { } }, + { 0x1f47c, { 0x1f3fb } }, + { 0x1f47c, { 0x1f3fc } }, + { 0x1f47c, { 0x1f3fd } }, + { 0x1f47c, { 0x1f3fe } }, + { 0x1f47c, { 0x1f3ff } }, + { 0x1f385, { } }, + { 0x1f385, { 0x1f3fb } }, + { 0x1f385, { 0x1f3fc } }, + { 0x1f385, { 0x1f3fd } }, + { 0x1f385, { 0x1f3fe } }, + { 0x1f385, { 0x1f3ff } }, + { 0x1f936, { } }, + { 0x1f936, { 0x1f3fb } }, + { 0x1f936, { 0x1f3fc } }, + { 0x1f936, { 0x1f3fd } }, + { 0x1f936, { 0x1f3fe } }, + { 0x1f936, { 0x1f3ff } }, + { 0x1f9d1, { 0x200d, 0x1f384 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f384 } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f384 } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f384 } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f384 } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f384 } }, + { 0x1f9b8, { } }, + { 0x1f9b8, { 0x1f3fb } }, + { 0x1f9b8, { 0x1f3fc } }, + { 0x1f9b8, { 0x1f3fd } }, + { 0x1f9b8, { 0x1f3fe } }, + { 0x1f9b8, { 0x1f3ff } }, + { 0x1f9b8, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b8, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b8, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b8, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { } }, + { 0x1f9b9, { 0x1f3fb } }, + { 0x1f9b9, { 0x1f3fc } }, + { 0x1f9b9, { 0x1f3fd } }, + { 0x1f9b9, { 0x1f3fe } }, + { 0x1f9b9, { 0x1f3ff } }, + { 0x1f9b9, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9b9, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9b9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { } }, + { 0x1f9d9, { 0x1f3fb } }, + { 0x1f9d9, { 0x1f3fc } }, + { 0x1f9d9, { 0x1f3fd } }, + { 0x1f9d9, { 0x1f3fe } }, + { 0x1f9d9, { 0x1f3ff } }, + { 0x1f9d9, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d9, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { } }, + { 0x1f9da, { 0x1f3fb } }, + { 0x1f9da, { 0x1f3fc } }, + { 0x1f9da, { 0x1f3fd } }, + { 0x1f9da, { 0x1f3fe } }, + { 0x1f9da, { 0x1f3ff } }, + { 0x1f9da, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9da, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9da, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { } }, + { 0x1f9db, { 0x1f3fb } }, + { 0x1f9db, { 0x1f3fc } }, + { 0x1f9db, { 0x1f3fd } }, + { 0x1f9db, { 0x1f3fe } }, + { 0x1f9db, { 0x1f3ff } }, + { 0x1f9db, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9db, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9db, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { } }, + { 0x1f9dc, { 0x1f3fb } }, + { 0x1f9dc, { 0x1f3fc } }, + { 0x1f9dc, { 0x1f3fd } }, + { 0x1f9dc, { 0x1f3fe } }, + { 0x1f9dc, { 0x1f3ff } }, + { 0x1f9dc, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dc, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dc, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { } }, + { 0x1f9dd, { 0x1f3fb } }, + { 0x1f9dd, { 0x1f3fc } }, + { 0x1f9dd, { 0x1f3fd } }, + { 0x1f9dd, { 0x1f3fe } }, + { 0x1f9dd, { 0x1f3ff } }, + { 0x1f9dd, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9dd, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9dd, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9de, { } }, + { 0x1f9de, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9de, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9df, { } }, + { 0x1f9df, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9df, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cc, { } }, + { 0x1f486, { } }, + { 0x1f486, { 0x1f3fb } }, + { 0x1f486, { 0x1f3fc } }, + { 0x1f486, { 0x1f3fd } }, + { 0x1f486, { 0x1f3fe } }, + { 0x1f486, { 0x1f3ff } }, + { 0x1f486, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f486, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f486, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f486, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f486, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f486, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f486, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { } }, + { 0x1f487, { 0x1f3fb } }, + { 0x1f487, { 0x1f3fc } }, + { 0x1f487, { 0x1f3fd } }, + { 0x1f487, { 0x1f3fe } }, + { 0x1f487, { 0x1f3ff } }, + { 0x1f487, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f487, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f487, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { } }, + { 0x1f6b6, { 0x1f3fb } }, + { 0x1f6b6, { 0x1f3fc } }, + { 0x1f6b6, { 0x1f3fd } }, + { 0x1f6b6, { 0x1f3fe } }, + { 0x1f6b6, { 0x1f3ff } }, + { 0x1f6b6, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b6, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b6, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { } }, + { 0x1f9cd, { 0x1f3fb } }, + { 0x1f9cd, { 0x1f3fc } }, + { 0x1f9cd, { 0x1f3fd } }, + { 0x1f9cd, { 0x1f3fe } }, + { 0x1f9cd, { 0x1f3ff } }, + { 0x1f9cd, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9cd, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9cd, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { } }, + { 0x1f9ce, { 0x1f3fb } }, + { 0x1f9ce, { 0x1f3fc } }, + { 0x1f9ce, { 0x1f3fd } }, + { 0x1f9ce, { 0x1f3fe } }, + { 0x1f9ce, { 0x1f3ff } }, + { 0x1f9ce, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9ce, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9ce, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d1, { 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9af } }, + { 0x1f468, { 0x200d, 0x1f9af } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9af } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9af } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9af } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9af } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9af } }, + { 0x1f469, { 0x200d, 0x1f9af } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9af } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9af } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9af } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9af } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9af } }, + { 0x1f9d1, { 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9bc } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9bc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9bc } }, + { 0x1f9d1, { 0x200d, 0x1f9bd } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f9bd } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f9bd } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f9bd } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f9bd } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f9bd } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f9bd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f9bd } }, + { 0x1f3c3, { } }, + { 0x1f3c3, { 0x1f3fb } }, + { 0x1f3c3, { 0x1f3fc } }, + { 0x1f3c3, { 0x1f3fd } }, + { 0x1f3c3, { 0x1f3fe } }, + { 0x1f3c3, { 0x1f3ff } }, + { 0x1f3c3, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c3, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c3, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c3, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f483, { } }, + { 0x1f483, { 0x1f3fb } }, + { 0x1f483, { 0x1f3fc } }, + { 0x1f483, { 0x1f3fd } }, + { 0x1f483, { 0x1f3fe } }, + { 0x1f483, { 0x1f3ff } }, + { 0x1f57a, { } }, + { 0x1f57a, { 0x1f3fb } }, + { 0x1f57a, { 0x1f3fc } }, + { 0x1f57a, { 0x1f3fd } }, + { 0x1f57a, { 0x1f3fe } }, + { 0x1f57a, { 0x1f3ff } }, + { 0x1f574, { 0xfe0f } }, + { 0x1f574, { 0x1f3fb } }, + { 0x1f574, { 0x1f3fc } }, + { 0x1f574, { 0x1f3fd } }, + { 0x1f574, { 0x1f3fe } }, + { 0x1f574, { 0x1f3ff } }, + { 0x1f46f, { } }, + { 0x1f46f, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f46f, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { } }, + { 0x1f9d6, { 0x1f3fb } }, + { 0x1f9d6, { 0x1f3fc } }, + { 0x1f9d6, { 0x1f3fd } }, + { 0x1f9d6, { 0x1f3fe } }, + { 0x1f9d6, { 0x1f3ff } }, + { 0x1f9d6, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d6, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d6, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { } }, + { 0x1f9d7, { 0x1f3fb } }, + { 0x1f9d7, { 0x1f3fc } }, + { 0x1f9d7, { 0x1f3fd } }, + { 0x1f9d7, { 0x1f3fe } }, + { 0x1f9d7, { 0x1f3ff } }, + { 0x1f9d7, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d7, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d7, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93a, { } }, + { 0x1f3c7, { } }, + { 0x1f3c7, { 0x1f3fb } }, + { 0x1f3c7, { 0x1f3fc } }, + { 0x1f3c7, { 0x1f3fd } }, + { 0x1f3c7, { 0x1f3fe } }, + { 0x1f3c7, { 0x1f3ff } }, + { 0x26f7, { 0xfe0f } }, + { 0x1f3c2, { } }, + { 0x1f3c2, { 0x1f3fb } }, + { 0x1f3c2, { 0x1f3fc } }, + { 0x1f3c2, { 0x1f3fd } }, + { 0x1f3c2, { 0x1f3fe } }, + { 0x1f3c2, { 0x1f3ff } }, + { 0x1f3cc, { 0xfe0f } }, + { 0x1f3cc, { 0x1f3fb } }, + { 0x1f3cc, { 0x1f3fc } }, + { 0x1f3cc, { 0x1f3fd } }, + { 0x1f3cc, { 0x1f3fe } }, + { 0x1f3cc, { 0x1f3ff } }, + { 0x1f3cc, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cc, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cc, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cc, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { } }, + { 0x1f3c4, { 0x1f3fb } }, + { 0x1f3c4, { 0x1f3fc } }, + { 0x1f3c4, { 0x1f3fd } }, + { 0x1f3c4, { 0x1f3fe } }, + { 0x1f3c4, { 0x1f3ff } }, + { 0x1f3c4, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3c4, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3c4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { } }, + { 0x1f6a3, { 0x1f3fb } }, + { 0x1f6a3, { 0x1f3fc } }, + { 0x1f6a3, { 0x1f3fd } }, + { 0x1f6a3, { 0x1f3fe } }, + { 0x1f6a3, { 0x1f3ff } }, + { 0x1f6a3, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6a3, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6a3, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { } }, + { 0x1f3ca, { 0x1f3fb } }, + { 0x1f3ca, { 0x1f3fc } }, + { 0x1f3ca, { 0x1f3fd } }, + { 0x1f3ca, { 0x1f3fe } }, + { 0x1f3ca, { 0x1f3ff } }, + { 0x1f3ca, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3ca, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3ca, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0xfe0f } }, + { 0x26f9, { 0x1f3fb } }, + { 0x26f9, { 0x1f3fc } }, + { 0x26f9, { 0x1f3fd } }, + { 0x26f9, { 0x1f3fe } }, + { 0x26f9, { 0x1f3ff } }, + { 0x26f9, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x26f9, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x26f9, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0xfe0f } }, + { 0x1f3cb, { 0x1f3fb } }, + { 0x1f3cb, { 0x1f3fc } }, + { 0x1f3cb, { 0x1f3fd } }, + { 0x1f3cb, { 0x1f3fe } }, + { 0x1f3cb, { 0x1f3ff } }, + { 0x1f3cb, { 0xfe0f, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f3cb, { 0xfe0f, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f3cb, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { } }, + { 0x1f6b4, { 0x1f3fb } }, + { 0x1f6b4, { 0x1f3fc } }, + { 0x1f6b4, { 0x1f3fd } }, + { 0x1f6b4, { 0x1f3fe } }, + { 0x1f6b4, { 0x1f3ff } }, + { 0x1f6b4, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b4, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b4, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { } }, + { 0x1f6b5, { 0x1f3fb } }, + { 0x1f6b5, { 0x1f3fc } }, + { 0x1f6b5, { 0x1f3fd } }, + { 0x1f6b5, { 0x1f3fe } }, + { 0x1f6b5, { 0x1f3ff } }, + { 0x1f6b5, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f6b5, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6b5, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { } }, + { 0x1f938, { 0x1f3fb } }, + { 0x1f938, { 0x1f3fc } }, + { 0x1f938, { 0x1f3fd } }, + { 0x1f938, { 0x1f3fe } }, + { 0x1f938, { 0x1f3ff } }, + { 0x1f938, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f938, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f938, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93c, { } }, + { 0x1f93c, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93c, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { } }, + { 0x1f93d, { 0x1f3fb } }, + { 0x1f93d, { 0x1f3fc } }, + { 0x1f93d, { 0x1f3fd } }, + { 0x1f93d, { 0x1f3fe } }, + { 0x1f93d, { 0x1f3ff } }, + { 0x1f93d, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93d, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93d, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { } }, + { 0x1f93e, { 0x1f3fb } }, + { 0x1f93e, { 0x1f3fc } }, + { 0x1f93e, { 0x1f3fd } }, + { 0x1f93e, { 0x1f3fe } }, + { 0x1f93e, { 0x1f3ff } }, + { 0x1f93e, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f93e, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f93e, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { } }, + { 0x1f939, { 0x1f3fb } }, + { 0x1f939, { 0x1f3fc } }, + { 0x1f939, { 0x1f3fd } }, + { 0x1f939, { 0x1f3fe } }, + { 0x1f939, { 0x1f3ff } }, + { 0x1f939, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f939, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f939, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { } }, + { 0x1f9d8, { 0x1f3fb } }, + { 0x1f9d8, { 0x1f3fc } }, + { 0x1f9d8, { 0x1f3fd } }, + { 0x1f9d8, { 0x1f3fe } }, + { 0x1f9d8, { 0x1f3ff } }, + { 0x1f9d8, { 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fb, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fc, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fd, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fe, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x1f3ff, 0x200d, 0x2642, 0xfe0f } }, + { 0x1f9d8, { 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fb, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fc, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fd, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { 0x1f3fe, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f9d8, { 0x1f3ff, 0x200d, 0x2640, 0xfe0f } }, + { 0x1f6c0, { } }, + { 0x1f6c0, { 0x1f3fb } }, + { 0x1f6c0, { 0x1f3fc } }, + { 0x1f6c0, { 0x1f3fd } }, + { 0x1f6c0, { 0x1f3fe } }, + { 0x1f6c0, { 0x1f3ff } }, + { 0x1f6cc, { } }, + { 0x1f6cc, { 0x1f3fb } }, + { 0x1f6cc, { 0x1f3fc } }, + { 0x1f6cc, { 0x1f3fd } }, + { 0x1f6cc, { 0x1f3fe } }, + { 0x1f6cc, { 0x1f3ff } }, + { 0x1f9d1, { 0x200d, 0x1f91d, 0x200d, 0x1f9d1 } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f46d, { } }, + { 0x1f46d, { 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f46d, { 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f46d, { 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f46d, { 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f46d, { 0x1f3ff } }, + { 0x1f46b, { } }, + { 0x1f46b, { 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f46b, { 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f46b, { 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f46b, { 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f46b, { 0x1f3ff } }, + { 0x1f46c, { } }, + { 0x1f46c, { 0x1f3fb } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f46c, { 0x1f3fc } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f46c, { 0x1f3fd } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f46c, { 0x1f3fe } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x1f91d, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f46c, { 0x1f3ff } }, + { 0x1f48f, { } }, + { 0x1f48f, { 0x1f3fb } }, + { 0x1f48f, { 0x1f3fc } }, + { 0x1f48f, { 0x1f3fd } }, + { 0x1f48f, { 0x1f3fe } }, + { 0x1f48f, { 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f48b, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f491, { } }, + { 0x1f491, { 0x1f3fb } }, + { 0x1f491, { 0x1f3fc } }, + { 0x1f491, { 0x1f3fd } }, + { 0x1f491, { 0x1f3fe } }, + { 0x1f491, { 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f9d1, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3ff } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fb } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fc } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fd } }, + { 0x1f9d1, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f9d1, 0x1f3fe } }, + { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468 } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fb } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fc } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fd } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3fe } }, + { 0x1f468, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f468, 0x1f3ff } }, + { 0x1f469, { 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469 } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fb, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fc, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fd, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3fe, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fb } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fc } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fd } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3fe } }, + { 0x1f469, { 0x1f3ff, 0x200d, 0x2764, 0xfe0f, 0x200d, 0x1f469, 0x1f3ff } }, + { 0x1f46a, { } }, + { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467 } }, + { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f466, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f467 } }, + { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467 } }, + { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f466, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f468, 0x200d, 0x1f467, 0x200d, 0x1f467 } }, + { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467 } }, + { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f466, 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f469, 0x200d, 0x1f467, 0x200d, 0x1f467 } }, + { 0x1f468, { 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f466, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f467 } }, + { 0x1f468, { 0x200d, 0x1f467, 0x200d, 0x1f466 } }, + { 0x1f468, { 0x200d, 0x1f467, 0x200d, 0x1f467 } }, + { 0x1f469, { 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f466, 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f467 } }, + { 0x1f469, { 0x200d, 0x1f467, 0x200d, 0x1f466 } }, + { 0x1f469, { 0x200d, 0x1f467, 0x200d, 0x1f467 } }, + { 0x1f5e3, { 0xfe0f } }, + { 0x1f464, { } }, + { 0x1f465, { } }, + { 0x1fac2, { } }, + { 0x1f463, { } }, + { 0x1f435, { } }, + { 0x1f412, { } }, + { 0x1f98d, { } }, + { 0x1f9a7, { } }, + { 0x1f436, { } }, + { 0x1f415, { } }, + { 0x1f9ae, { } }, + { 0x1f415, { 0x200d, 0x1f9ba } }, + { 0x1f429, { } }, + { 0x1f43a, { } }, + { 0x1f98a, { } }, + { 0x1f99d, { } }, + { 0x1f431, { } }, + { 0x1f408, { } }, + { 0x1f408, { 0x200d, 0x2b1b } }, + { 0x1f981, { } }, + { 0x1f42f, { } }, + { 0x1f405, { } }, + { 0x1f406, { } }, + { 0x1f434, { } }, + { 0x1face, { } }, + { 0x1facf, { } }, + { 0x1f40e, { } }, + { 0x1f984, { } }, + { 0x1f993, { } }, + { 0x1f98c, { } }, + { 0x1f9ac, { } }, + { 0x1f42e, { } }, + { 0x1f402, { } }, + { 0x1f403, { } }, + { 0x1f404, { } }, + { 0x1f437, { } }, + { 0x1f416, { } }, + { 0x1f417, { } }, + { 0x1f43d, { } }, + { 0x1f40f, { } }, + { 0x1f411, { } }, + { 0x1f410, { } }, + { 0x1f42a, { } }, + { 0x1f42b, { } }, + { 0x1f999, { } }, + { 0x1f992, { } }, + { 0x1f418, { } }, + { 0x1f9a3, { } }, + { 0x1f98f, { } }, + { 0x1f99b, { } }, + { 0x1f42d, { } }, + { 0x1f401, { } }, + { 0x1f400, { } }, + { 0x1f439, { } }, + { 0x1f430, { } }, + { 0x1f407, { } }, + { 0x1f43f, { 0xfe0f } }, + { 0x1f9ab, { } }, + { 0x1f994, { } }, + { 0x1f987, { } }, + { 0x1f43b, { } }, + { 0x1f43b, { 0x200d, 0x2744, 0xfe0f } }, + { 0x1f428, { } }, + { 0x1f43c, { } }, + { 0x1f9a5, { } }, + { 0x1f9a6, { } }, + { 0x1f9a8, { } }, + { 0x1f998, { } }, + { 0x1f9a1, { } }, + { 0x1f43e, { } }, + { 0x1f983, { } }, + { 0x1f414, { } }, + { 0x1f413, { } }, + { 0x1f423, { } }, + { 0x1f424, { } }, + { 0x1f425, { } }, + { 0x1f426, { } }, + { 0x1f427, { } }, + { 0x1f54a, { 0xfe0f } }, + { 0x1f985, { } }, + { 0x1f986, { } }, + { 0x1f9a2, { } }, + { 0x1f989, { } }, + { 0x1f9a4, { } }, + { 0x1fab6, { } }, + { 0x1f9a9, { } }, + { 0x1f99a, { } }, + { 0x1f99c, { } }, + { 0x1fabd, { } }, + { 0x1f426, { 0x200d, 0x2b1b } }, + { 0x1fabf, { } }, + { 0x1f438, { } }, + { 0x1f40a, { } }, + { 0x1f422, { } }, + { 0x1f98e, { } }, + { 0x1f40d, { } }, + { 0x1f432, { } }, + { 0x1f409, { } }, + { 0x1f995, { } }, + { 0x1f996, { } }, + { 0x1f433, { } }, + { 0x1f40b, { } }, + { 0x1f42c, { } }, + { 0x1f9ad, { } }, + { 0x1f41f, { } }, + { 0x1f420, { } }, + { 0x1f421, { } }, + { 0x1f988, { } }, + { 0x1f419, { } }, + { 0x1f41a, { } }, + { 0x1fab8, { } }, + { 0x1fabc, { } }, + { 0x1f40c, { } }, + { 0x1f98b, { } }, + { 0x1f41b, { } }, + { 0x1f41c, { } }, + { 0x1f41d, { } }, + { 0x1fab2, { } }, + { 0x1f41e, { } }, + { 0x1f997, { } }, + { 0x1fab3, { } }, + { 0x1f577, { 0xfe0f } }, + { 0x1f578, { 0xfe0f } }, + { 0x1f982, { } }, + { 0x1f99f, { } }, + { 0x1fab0, { } }, + { 0x1fab1, { } }, + { 0x1f9a0, { } }, + { 0x1f490, { } }, + { 0x1f338, { } }, + { 0x1f4ae, { } }, + { 0x1fab7, { } }, + { 0x1f3f5, { 0xfe0f } }, + { 0x1f339, { } }, + { 0x1f940, { } }, + { 0x1f33a, { } }, + { 0x1f33b, { } }, + { 0x1f33c, { } }, + { 0x1f337, { } }, + { 0x1fabb, { } }, + { 0x1f331, { } }, + { 0x1fab4, { } }, + { 0x1f332, { } }, + { 0x1f333, { } }, + { 0x1f334, { } }, + { 0x1f335, { } }, + { 0x1f33e, { } }, + { 0x1f33f, { } }, + { 0x2618, { 0xfe0f } }, + { 0x1f340, { } }, + { 0x1f341, { } }, + { 0x1f342, { } }, + { 0x1f343, { } }, + { 0x1fab9, { } }, + { 0x1faba, { } }, + { 0x1f344, { } }, + { 0x1f347, { } }, + { 0x1f348, { } }, + { 0x1f349, { } }, + { 0x1f34a, { } }, + { 0x1f34b, { } }, + { 0x1f34c, { } }, + { 0x1f34d, { } }, + { 0x1f96d, { } }, + { 0x1f34e, { } }, + { 0x1f34f, { } }, + { 0x1f350, { } }, + { 0x1f351, { } }, + { 0x1f352, { } }, + { 0x1f353, { } }, + { 0x1fad0, { } }, + { 0x1f95d, { } }, + { 0x1f345, { } }, + { 0x1fad2, { } }, + { 0x1f965, { } }, + { 0x1f951, { } }, + { 0x1f346, { } }, + { 0x1f954, { } }, + { 0x1f955, { } }, + { 0x1f33d, { } }, + { 0x1f336, { 0xfe0f } }, + { 0x1fad1, { } }, + { 0x1f952, { } }, + { 0x1f96c, { } }, + { 0x1f966, { } }, + { 0x1f9c4, { } }, + { 0x1f9c5, { } }, + { 0x1f95c, { } }, + { 0x1fad8, { } }, + { 0x1f330, { } }, + { 0x1fada, { } }, + { 0x1fadb, { } }, + { 0x1f35e, { } }, + { 0x1f950, { } }, + { 0x1f956, { } }, + { 0x1fad3, { } }, + { 0x1f968, { } }, + { 0x1f96f, { } }, + { 0x1f95e, { } }, + { 0x1f9c7, { } }, + { 0x1f9c0, { } }, + { 0x1f356, { } }, + { 0x1f357, { } }, + { 0x1f969, { } }, + { 0x1f953, { } }, + { 0x1f354, { } }, + { 0x1f35f, { } }, + { 0x1f355, { } }, + { 0x1f32d, { } }, + { 0x1f96a, { } }, + { 0x1f32e, { } }, + { 0x1f32f, { } }, + { 0x1fad4, { } }, + { 0x1f959, { } }, + { 0x1f9c6, { } }, + { 0x1f95a, { } }, + { 0x1f373, { } }, + { 0x1f958, { } }, + { 0x1f372, { } }, + { 0x1fad5, { } }, + { 0x1f963, { } }, + { 0x1f957, { } }, + { 0x1f37f, { } }, + { 0x1f9c8, { } }, + { 0x1f9c2, { } }, + { 0x1f96b, { } }, + { 0x1f371, { } }, + { 0x1f358, { } }, + { 0x1f359, { } }, + { 0x1f35a, { } }, + { 0x1f35b, { } }, + { 0x1f35c, { } }, + { 0x1f35d, { } }, + { 0x1f360, { } }, + { 0x1f362, { } }, + { 0x1f363, { } }, + { 0x1f364, { } }, + { 0x1f365, { } }, + { 0x1f96e, { } }, + { 0x1f361, { } }, + { 0x1f95f, { } }, + { 0x1f960, { } }, + { 0x1f961, { } }, + { 0x1f980, { } }, + { 0x1f99e, { } }, + { 0x1f990, { } }, + { 0x1f991, { } }, + { 0x1f9aa, { } }, + { 0x1f366, { } }, + { 0x1f367, { } }, + { 0x1f368, { } }, + { 0x1f369, { } }, + { 0x1f36a, { } }, + { 0x1f382, { } }, + { 0x1f370, { } }, + { 0x1f9c1, { } }, + { 0x1f967, { } }, + { 0x1f36b, { } }, + { 0x1f36c, { } }, + { 0x1f36d, { } }, + { 0x1f36e, { } }, + { 0x1f36f, { } }, + { 0x1f37c, { } }, + { 0x1f95b, { } }, + { 0x2615, { } }, + { 0x1fad6, { } }, + { 0x1f375, { } }, + { 0x1f376, { } }, + { 0x1f37e, { } }, + { 0x1f377, { } }, + { 0x1f378, { } }, + { 0x1f379, { } }, + { 0x1f37a, { } }, + { 0x1f37b, { } }, + { 0x1f942, { } }, + { 0x1f943, { } }, + { 0x1fad7, { } }, + { 0x1f964, { } }, + { 0x1f9cb, { } }, + { 0x1f9c3, { } }, + { 0x1f9c9, { } }, + { 0x1f9ca, { } }, + { 0x1f962, { } }, + { 0x1f37d, { 0xfe0f } }, + { 0x1f374, { } }, + { 0x1f944, { } }, + { 0x1f52a, { } }, + { 0x1fad9, { } }, + { 0x1f3fa, { } }, + { 0x1f30d, { } }, + { 0x1f30e, { } }, + { 0x1f30f, { } }, + { 0x1f310, { } }, + { 0x1f5fa, { 0xfe0f } }, + { 0x1f5fe, { } }, + { 0x1f9ed, { } }, + { 0x1f3d4, { 0xfe0f } }, + { 0x26f0, { 0xfe0f } }, + { 0x1f30b, { } }, + { 0x1f5fb, { } }, + { 0x1f3d5, { 0xfe0f } }, + { 0x1f3d6, { 0xfe0f } }, + { 0x1f3dc, { 0xfe0f } }, + { 0x1f3dd, { 0xfe0f } }, + { 0x1f3de, { 0xfe0f } }, + { 0x1f3df, { 0xfe0f } }, + { 0x1f3db, { 0xfe0f } }, + { 0x1f3d7, { 0xfe0f } }, + { 0x1f9f1, { } }, + { 0x1faa8, { } }, + { 0x1fab5, { } }, + { 0x1f6d6, { } }, + { 0x1f3d8, { 0xfe0f } }, + { 0x1f3da, { 0xfe0f } }, + { 0x1f3e0, { } }, + { 0x1f3e1, { } }, + { 0x1f3e2, { } }, + { 0x1f3e3, { } }, + { 0x1f3e4, { } }, + { 0x1f3e5, { } }, + { 0x1f3e6, { } }, + { 0x1f3e8, { } }, + { 0x1f3e9, { } }, + { 0x1f3ea, { } }, + { 0x1f3eb, { } }, + { 0x1f3ec, { } }, + { 0x1f3ed, { } }, + { 0x1f3ef, { } }, + { 0x1f3f0, { } }, + { 0x1f492, { } }, + { 0x1f5fc, { } }, + { 0x1f5fd, { } }, + { 0x26ea, { } }, + { 0x1f54c, { } }, + { 0x1f6d5, { } }, + { 0x1f54d, { } }, + { 0x26e9, { 0xfe0f } }, + { 0x1f54b, { } }, + { 0x26f2, { } }, + { 0x26fa, { } }, + { 0x1f301, { } }, + { 0x1f303, { } }, + { 0x1f3d9, { 0xfe0f } }, + { 0x1f304, { } }, + { 0x1f305, { } }, + { 0x1f306, { } }, + { 0x1f307, { } }, + { 0x1f309, { } }, + { 0x2668, { 0xfe0f } }, + { 0x1f3a0, { } }, + { 0x1f6dd, { } }, + { 0x1f3a1, { } }, + { 0x1f3a2, { } }, + { 0x1f488, { } }, + { 0x1f3aa, { } }, + { 0x1f682, { } }, + { 0x1f683, { } }, + { 0x1f684, { } }, + { 0x1f685, { } }, + { 0x1f686, { } }, + { 0x1f687, { } }, + { 0x1f688, { } }, + { 0x1f689, { } }, + { 0x1f68a, { } }, + { 0x1f69d, { } }, + { 0x1f69e, { } }, + { 0x1f68b, { } }, + { 0x1f68c, { } }, + { 0x1f68d, { } }, + { 0x1f68e, { } }, + { 0x1f690, { } }, + { 0x1f691, { } }, + { 0x1f692, { } }, + { 0x1f693, { } }, + { 0x1f694, { } }, + { 0x1f695, { } }, + { 0x1f696, { } }, + { 0x1f697, { } }, + { 0x1f698, { } }, + { 0x1f699, { } }, + { 0x1f6fb, { } }, + { 0x1f69a, { } }, + { 0x1f69b, { } }, + { 0x1f69c, { } }, + { 0x1f3ce, { 0xfe0f } }, + { 0x1f3cd, { 0xfe0f } }, + { 0x1f6f5, { } }, + { 0x1f9bd, { } }, + { 0x1f9bc, { } }, + { 0x1f6fa, { } }, + { 0x1f6b2, { } }, + { 0x1f6f4, { } }, + { 0x1f6f9, { } }, + { 0x1f6fc, { } }, + { 0x1f68f, { } }, + { 0x1f6e3, { 0xfe0f } }, + { 0x1f6e4, { 0xfe0f } }, + { 0x1f6e2, { 0xfe0f } }, + { 0x26fd, { } }, + { 0x1f6de, { } }, + { 0x1f6a8, { } }, + { 0x1f6a5, { } }, + { 0x1f6a6, { } }, + { 0x1f6d1, { } }, + { 0x1f6a7, { } }, + { 0x2693, { } }, + { 0x1f6df, { } }, + { 0x26f5, { } }, + { 0x1f6f6, { } }, + { 0x1f6a4, { } }, + { 0x1f6f3, { 0xfe0f } }, + { 0x26f4, { 0xfe0f } }, + { 0x1f6e5, { 0xfe0f } }, + { 0x1f6a2, { } }, + { 0x2708, { 0xfe0f } }, + { 0x1f6e9, { 0xfe0f } }, + { 0x1f6eb, { } }, + { 0x1f6ec, { } }, + { 0x1fa82, { } }, + { 0x1f4ba, { } }, + { 0x1f681, { } }, + { 0x1f69f, { } }, + { 0x1f6a0, { } }, + { 0x1f6a1, { } }, + { 0x1f6f0, { 0xfe0f } }, + { 0x1f680, { } }, + { 0x1f6f8, { } }, + { 0x1f6ce, { 0xfe0f } }, + { 0x1f9f3, { } }, + { 0x231b, { } }, + { 0x23f3, { } }, + { 0x231a, { } }, + { 0x23f0, { } }, + { 0x23f1, { 0xfe0f } }, + { 0x23f2, { 0xfe0f } }, + { 0x1f570, { 0xfe0f } }, + { 0x1f55b, { } }, + { 0x1f567, { } }, + { 0x1f550, { } }, + { 0x1f55c, { } }, + { 0x1f551, { } }, + { 0x1f55d, { } }, + { 0x1f552, { } }, + { 0x1f55e, { } }, + { 0x1f553, { } }, + { 0x1f55f, { } }, + { 0x1f554, { } }, + { 0x1f560, { } }, + { 0x1f555, { } }, + { 0x1f561, { } }, + { 0x1f556, { } }, + { 0x1f562, { } }, + { 0x1f557, { } }, + { 0x1f563, { } }, + { 0x1f558, { } }, + { 0x1f564, { } }, + { 0x1f559, { } }, + { 0x1f565, { } }, + { 0x1f55a, { } }, + { 0x1f566, { } }, + { 0x1f311, { } }, + { 0x1f312, { } }, + { 0x1f313, { } }, + { 0x1f314, { } }, + { 0x1f315, { } }, + { 0x1f316, { } }, + { 0x1f317, { } }, + { 0x1f318, { } }, + { 0x1f319, { } }, + { 0x1f31a, { } }, + { 0x1f31b, { } }, + { 0x1f31c, { } }, + { 0x1f321, { 0xfe0f } }, + { 0x2600, { 0xfe0f } }, + { 0x1f31d, { } }, + { 0x1f31e, { } }, + { 0x1fa90, { } }, + { 0x2b50, { } }, + { 0x1f31f, { } }, + { 0x1f320, { } }, + { 0x1f30c, { } }, + { 0x2601, { 0xfe0f } }, + { 0x26c5, { } }, + { 0x26c8, { 0xfe0f } }, + { 0x1f324, { 0xfe0f } }, + { 0x1f325, { 0xfe0f } }, + { 0x1f326, { 0xfe0f } }, + { 0x1f327, { 0xfe0f } }, + { 0x1f328, { 0xfe0f } }, + { 0x1f329, { 0xfe0f } }, + { 0x1f32a, { 0xfe0f } }, + { 0x1f32b, { 0xfe0f } }, + { 0x1f32c, { 0xfe0f } }, + { 0x1f300, { } }, + { 0x1f308, { } }, + { 0x1f302, { } }, + { 0x2602, { 0xfe0f } }, + { 0x2614, { } }, + { 0x26f1, { 0xfe0f } }, + { 0x26a1, { } }, + { 0x2744, { 0xfe0f } }, + { 0x2603, { 0xfe0f } }, + { 0x26c4, { } }, + { 0x2604, { 0xfe0f } }, + { 0x1f525, { } }, + { 0x1f4a7, { } }, + { 0x1f30a, { } }, + { 0x1f383, { } }, + { 0x1f384, { } }, + { 0x1f386, { } }, + { 0x1f387, { } }, + { 0x1f9e8, { } }, + { 0x2728, { } }, + { 0x1f388, { } }, + { 0x1f389, { } }, + { 0x1f38a, { } }, + { 0x1f38b, { } }, + { 0x1f38d, { } }, + { 0x1f38e, { } }, + { 0x1f38f, { } }, + { 0x1f390, { } }, + { 0x1f391, { } }, + { 0x1f9e7, { } }, + { 0x1f380, { } }, + { 0x1f381, { } }, + { 0x1f397, { 0xfe0f } }, + { 0x1f39f, { 0xfe0f } }, + { 0x1f3ab, { } }, + { 0x1f396, { 0xfe0f } }, + { 0x1f3c6, { } }, + { 0x1f3c5, { } }, + { 0x1f947, { } }, + { 0x1f948, { } }, + { 0x1f949, { } }, + { 0x26bd, { } }, + { 0x26be, { } }, + { 0x1f94e, { } }, + { 0x1f3c0, { } }, + { 0x1f3d0, { } }, + { 0x1f3c8, { } }, + { 0x1f3c9, { } }, + { 0x1f3be, { } }, + { 0x1f94f, { } }, + { 0x1f3b3, { } }, + { 0x1f3cf, { } }, + { 0x1f3d1, { } }, + { 0x1f3d2, { } }, + { 0x1f94d, { } }, + { 0x1f3d3, { } }, + { 0x1f3f8, { } }, + { 0x1f94a, { } }, + { 0x1f94b, { } }, + { 0x1f945, { } }, + { 0x26f3, { } }, + { 0x26f8, { 0xfe0f } }, + { 0x1f3a3, { } }, + { 0x1f93f, { } }, + { 0x1f3bd, { } }, + { 0x1f3bf, { } }, + { 0x1f6f7, { } }, + { 0x1f94c, { } }, + { 0x1f3af, { } }, + { 0x1fa80, { } }, + { 0x1fa81, { } }, + { 0x1f52b, { } }, + { 0x1f3b1, { } }, + { 0x1f52e, { } }, + { 0x1fa84, { } }, + { 0x1f3ae, { } }, + { 0x1f579, { 0xfe0f } }, + { 0x1f3b0, { } }, + { 0x1f3b2, { } }, + { 0x1f9e9, { } }, + { 0x1f9f8, { } }, + { 0x1fa85, { } }, + { 0x1faa9, { } }, + { 0x1fa86, { } }, + { 0x2660, { 0xfe0f } }, + { 0x2665, { 0xfe0f } }, + { 0x2666, { 0xfe0f } }, + { 0x2663, { 0xfe0f } }, + { 0x265f, { 0xfe0f } }, + { 0x1f0cf, { } }, + { 0x1f004, { } }, + { 0x1f3b4, { } }, + { 0x1f3ad, { } }, + { 0x1f5bc, { 0xfe0f } }, + { 0x1f3a8, { } }, + { 0x1f9f5, { } }, + { 0x1faa1, { } }, + { 0x1f9f6, { } }, + { 0x1faa2, { } }, + { 0x1f453, { } }, + { 0x1f576, { 0xfe0f } }, + { 0x1f97d, { } }, + { 0x1f97c, { } }, + { 0x1f9ba, { } }, + { 0x1f454, { } }, + { 0x1f455, { } }, + { 0x1f456, { } }, + { 0x1f9e3, { } }, + { 0x1f9e4, { } }, + { 0x1f9e5, { } }, + { 0x1f9e6, { } }, + { 0x1f457, { } }, + { 0x1f458, { } }, + { 0x1f97b, { } }, + { 0x1fa71, { } }, + { 0x1fa72, { } }, + { 0x1fa73, { } }, + { 0x1f459, { } }, + { 0x1f45a, { } }, + { 0x1faad, { } }, + { 0x1f45b, { } }, + { 0x1f45c, { } }, + { 0x1f45d, { } }, + { 0x1f6cd, { 0xfe0f } }, + { 0x1f392, { } }, + { 0x1fa74, { } }, + { 0x1f45e, { } }, + { 0x1f45f, { } }, + { 0x1f97e, { } }, + { 0x1f97f, { } }, + { 0x1f460, { } }, + { 0x1f461, { } }, + { 0x1fa70, { } }, + { 0x1f462, { } }, + { 0x1faae, { } }, + { 0x1f451, { } }, + { 0x1f452, { } }, + { 0x1f3a9, { } }, + { 0x1f393, { } }, + { 0x1f9e2, { } }, + { 0x1fa96, { } }, + { 0x26d1, { 0xfe0f } }, + { 0x1f4ff, { } }, + { 0x1f484, { } }, + { 0x1f48d, { } }, + { 0x1f48e, { } }, + { 0x1f507, { } }, + { 0x1f508, { } }, + { 0x1f509, { } }, + { 0x1f50a, { } }, + { 0x1f4e2, { } }, + { 0x1f4e3, { } }, + { 0x1f4ef, { } }, + { 0x1f514, { } }, + { 0x1f515, { } }, + { 0x1f3bc, { } }, + { 0x1f3b5, { } }, + { 0x1f3b6, { } }, + { 0x1f399, { 0xfe0f } }, + { 0x1f39a, { 0xfe0f } }, + { 0x1f39b, { 0xfe0f } }, + { 0x1f3a4, { } }, + { 0x1f3a7, { } }, + { 0x1f4fb, { } }, + { 0x1f3b7, { } }, + { 0x1fa97, { } }, + { 0x1f3b8, { } }, + { 0x1f3b9, { } }, + { 0x1f3ba, { } }, + { 0x1f3bb, { } }, + { 0x1fa95, { } }, + { 0x1f941, { } }, + { 0x1fa98, { } }, + { 0x1fa87, { } }, + { 0x1fa88, { } }, + { 0x1f4f1, { } }, + { 0x1f4f2, { } }, + { 0x260e, { 0xfe0f } }, + { 0x1f4de, { } }, + { 0x1f4df, { } }, + { 0x1f4e0, { } }, + { 0x1f50b, { } }, + { 0x1faab, { } }, + { 0x1f50c, { } }, + { 0x1f4bb, { } }, + { 0x1f5a5, { 0xfe0f } }, + { 0x1f5a8, { 0xfe0f } }, + { 0x2328, { 0xfe0f } }, + { 0x1f5b1, { 0xfe0f } }, + { 0x1f5b2, { 0xfe0f } }, + { 0x1f4bd, { } }, + { 0x1f4be, { } }, + { 0x1f4bf, { } }, + { 0x1f4c0, { } }, + { 0x1f9ee, { } }, + { 0x1f3a5, { } }, + { 0x1f39e, { 0xfe0f } }, + { 0x1f4fd, { 0xfe0f } }, + { 0x1f3ac, { } }, + { 0x1f4fa, { } }, + { 0x1f4f7, { } }, + { 0x1f4f8, { } }, + { 0x1f4f9, { } }, + { 0x1f4fc, { } }, + { 0x1f50d, { } }, + { 0x1f50e, { } }, + { 0x1f56f, { 0xfe0f } }, + { 0x1f4a1, { } }, + { 0x1f526, { } }, + { 0x1f3ee, { } }, + { 0x1fa94, { } }, + { 0x1f4d4, { } }, + { 0x1f4d5, { } }, + { 0x1f4d6, { } }, + { 0x1f4d7, { } }, + { 0x1f4d8, { } }, + { 0x1f4d9, { } }, + { 0x1f4da, { } }, + { 0x1f4d3, { } }, + { 0x1f4d2, { } }, + { 0x1f4c3, { } }, + { 0x1f4dc, { } }, + { 0x1f4c4, { } }, + { 0x1f4f0, { } }, + { 0x1f5de, { 0xfe0f } }, + { 0x1f4d1, { } }, + { 0x1f516, { } }, + { 0x1f3f7, { 0xfe0f } }, + { 0x1f4b0, { } }, + { 0x1fa99, { } }, + { 0x1f4b4, { } }, + { 0x1f4b5, { } }, + { 0x1f4b6, { } }, + { 0x1f4b7, { } }, + { 0x1f4b8, { } }, + { 0x1f4b3, { } }, + { 0x1f9fe, { } }, + { 0x1f4b9, { } }, + { 0x2709, { 0xfe0f } }, + { 0x1f4e7, { } }, + { 0x1f4e8, { } }, + { 0x1f4e9, { } }, + { 0x1f4e4, { } }, + { 0x1f4e5, { } }, + { 0x1f4e6, { } }, + { 0x1f4eb, { } }, + { 0x1f4ea, { } }, + { 0x1f4ec, { } }, + { 0x1f4ed, { } }, + { 0x1f4ee, { } }, + { 0x1f5f3, { 0xfe0f } }, + { 0x270f, { 0xfe0f } }, + { 0x2712, { 0xfe0f } }, + { 0x1f58b, { 0xfe0f } }, + { 0x1f58a, { 0xfe0f } }, + { 0x1f58c, { 0xfe0f } }, + { 0x1f58d, { 0xfe0f } }, + { 0x1f4dd, { } }, + { 0x1f4bc, { } }, + { 0x1f4c1, { } }, + { 0x1f4c2, { } }, + { 0x1f5c2, { 0xfe0f } }, + { 0x1f4c5, { } }, + { 0x1f4c6, { } }, + { 0x1f5d2, { 0xfe0f } }, + { 0x1f5d3, { 0xfe0f } }, + { 0x1f4c7, { } }, + { 0x1f4c8, { } }, + { 0x1f4c9, { } }, + { 0x1f4ca, { } }, + { 0x1f4cb, { } }, + { 0x1f4cc, { } }, + { 0x1f4cd, { } }, + { 0x1f4ce, { } }, + { 0x1f587, { 0xfe0f } }, + { 0x1f4cf, { } }, + { 0x1f4d0, { } }, + { 0x2702, { 0xfe0f } }, + { 0x1f5c3, { 0xfe0f } }, + { 0x1f5c4, { 0xfe0f } }, + { 0x1f5d1, { 0xfe0f } }, + { 0x1f512, { } }, + { 0x1f513, { } }, + { 0x1f50f, { } }, + { 0x1f510, { } }, + { 0x1f511, { } }, + { 0x1f5dd, { 0xfe0f } }, + { 0x1f528, { } }, + { 0x1fa93, { } }, + { 0x26cf, { 0xfe0f } }, + { 0x2692, { 0xfe0f } }, + { 0x1f6e0, { 0xfe0f } }, + { 0x1f5e1, { 0xfe0f } }, + { 0x2694, { 0xfe0f } }, + { 0x1f4a3, { } }, + { 0x1fa83, { } }, + { 0x1f3f9, { } }, + { 0x1f6e1, { 0xfe0f } }, + { 0x1fa9a, { } }, + { 0x1f527, { } }, + { 0x1fa9b, { } }, + { 0x1f529, { } }, + { 0x2699, { 0xfe0f } }, + { 0x1f5dc, { 0xfe0f } }, + { 0x2696, { 0xfe0f } }, + { 0x1f9af, { } }, + { 0x1f517, { } }, + { 0x26d3, { 0xfe0f } }, + { 0x1fa9d, { } }, + { 0x1f9f0, { } }, + { 0x1f9f2, { } }, + { 0x1fa9c, { } }, + { 0x2697, { 0xfe0f } }, + { 0x1f9ea, { } }, + { 0x1f9eb, { } }, + { 0x1f9ec, { } }, + { 0x1f52c, { } }, + { 0x1f52d, { } }, + { 0x1f4e1, { } }, + { 0x1f489, { } }, + { 0x1fa78, { } }, + { 0x1f48a, { } }, + { 0x1fa79, { } }, + { 0x1fa7c, { } }, + { 0x1fa7a, { } }, + { 0x1fa7b, { } }, + { 0x1f6aa, { } }, + { 0x1f6d7, { } }, + { 0x1fa9e, { } }, + { 0x1fa9f, { } }, + { 0x1f6cf, { 0xfe0f } }, + { 0x1f6cb, { 0xfe0f } }, + { 0x1fa91, { } }, + { 0x1f6bd, { } }, + { 0x1faa0, { } }, + { 0x1f6bf, { } }, + { 0x1f6c1, { } }, + { 0x1faa4, { } }, + { 0x1fa92, { } }, + { 0x1f9f4, { } }, + { 0x1f9f7, { } }, + { 0x1f9f9, { } }, + { 0x1f9fa, { } }, + { 0x1f9fb, { } }, + { 0x1faa3, { } }, + { 0x1f9fc, { } }, + { 0x1fae7, { } }, + { 0x1faa5, { } }, + { 0x1f9fd, { } }, + { 0x1f9ef, { } }, + { 0x1f6d2, { } }, + { 0x1f6ac, { } }, + { 0x26b0, { 0xfe0f } }, + { 0x1faa6, { } }, + { 0x26b1, { 0xfe0f } }, + { 0x1f9ff, { } }, + { 0x1faac, { } }, + { 0x1f5ff, { } }, + { 0x1faa7, { } }, + { 0x1faaa, { } }, + { 0x1f3e7, { } }, + { 0x1f6ae, { } }, + { 0x1f6b0, { } }, + { 0x267f, { } }, + { 0x1f6b9, { } }, + { 0x1f6ba, { } }, + { 0x1f6bb, { } }, + { 0x1f6bc, { } }, + { 0x1f6be, { } }, + { 0x1f6c2, { } }, + { 0x1f6c3, { } }, + { 0x1f6c4, { } }, + { 0x1f6c5, { } }, + { 0x26a0, { 0xfe0f } }, + { 0x1f6b8, { } }, + { 0x26d4, { } }, + { 0x1f6ab, { } }, + { 0x1f6b3, { } }, + { 0x1f6ad, { } }, + { 0x1f6af, { } }, + { 0x1f6b1, { } }, + { 0x1f6b7, { } }, + { 0x1f4f5, { } }, + { 0x1f51e, { } }, + { 0x2622, { 0xfe0f } }, + { 0x2623, { 0xfe0f } }, + { 0x2b06, { 0xfe0f } }, + { 0x2197, { 0xfe0f } }, + { 0x27a1, { 0xfe0f } }, + { 0x2198, { 0xfe0f } }, + { 0x2b07, { 0xfe0f } }, + { 0x2199, { 0xfe0f } }, + { 0x2b05, { 0xfe0f } }, + { 0x2196, { 0xfe0f } }, + { 0x2195, { 0xfe0f } }, + { 0x2194, { 0xfe0f } }, + { 0x21a9, { 0xfe0f } }, + { 0x21aa, { 0xfe0f } }, + { 0x2934, { 0xfe0f } }, + { 0x2935, { 0xfe0f } }, + { 0x1f503, { } }, + { 0x1f504, { } }, + { 0x1f519, { } }, + { 0x1f51a, { } }, + { 0x1f51b, { } }, + { 0x1f51c, { } }, + { 0x1f51d, { } }, + { 0x1f6d0, { } }, + { 0x269b, { 0xfe0f } }, + { 0x1f549, { 0xfe0f } }, + { 0x2721, { 0xfe0f } }, + { 0x2638, { 0xfe0f } }, + { 0x262f, { 0xfe0f } }, + { 0x271d, { 0xfe0f } }, + { 0x2626, { 0xfe0f } }, + { 0x262a, { 0xfe0f } }, + { 0x262e, { 0xfe0f } }, + { 0x1f54e, { } }, + { 0x1f52f, { } }, + { 0x1faaf, { } }, + { 0x2648, { } }, + { 0x2649, { } }, + { 0x264a, { } }, + { 0x264b, { } }, + { 0x264c, { } }, + { 0x264d, { } }, + { 0x264e, { } }, + { 0x264f, { } }, + { 0x2650, { } }, + { 0x2651, { } }, + { 0x2652, { } }, + { 0x2653, { } }, + { 0x26ce, { } }, + { 0x1f500, { } }, + { 0x1f501, { } }, + { 0x1f502, { } }, + { 0x25b6, { 0xfe0f } }, + { 0x23e9, { } }, + { 0x23ed, { 0xfe0f } }, + { 0x23ef, { 0xfe0f } }, + { 0x25c0, { 0xfe0f } }, + { 0x23ea, { } }, + { 0x23ee, { 0xfe0f } }, + { 0x1f53c, { } }, + { 0x23eb, { } }, + { 0x1f53d, { } }, + { 0x23ec, { } }, + { 0x23f8, { 0xfe0f } }, + { 0x23f9, { 0xfe0f } }, + { 0x23fa, { 0xfe0f } }, + { 0x23cf, { 0xfe0f } }, + { 0x1f3a6, { } }, + { 0x1f505, { } }, + { 0x1f506, { } }, + { 0x1f4f6, { } }, + { 0x1f6dc, { } }, + { 0x1f4f3, { } }, + { 0x1f4f4, { } }, + { 0x2640, { 0xfe0f } }, + { 0x2642, { 0xfe0f } }, + { 0x26a7, { 0xfe0f } }, + { 0x2716, { 0xfe0f } }, + { 0x2795, { } }, + { 0x2796, { } }, + { 0x2797, { } }, + { 0x1f7f0, { } }, + { 0x267e, { 0xfe0f } }, + { 0x203c, { 0xfe0f } }, + { 0x2049, { 0xfe0f } }, + { 0x2753, { } }, + { 0x2754, { } }, + { 0x2755, { } }, + { 0x2757, { } }, + { 0x3030, { 0xfe0f } }, + { 0x1f4b1, { } }, + { 0x1f4b2, { } }, + { 0x2695, { 0xfe0f } }, + { 0x267b, { 0xfe0f } }, + { 0x269c, { 0xfe0f } }, + { 0x1f531, { } }, + { 0x1f4db, { } }, + { 0x1f530, { } }, + { 0x2b55, { } }, + { 0x2705, { } }, + { 0x2611, { 0xfe0f } }, + { 0x2714, { 0xfe0f } }, + { 0x274c, { } }, + { 0x274e, { } }, + { 0x27b0, { } }, + { 0x27bf, { } }, + { 0x303d, { 0xfe0f } }, + { 0x2733, { 0xfe0f } }, + { 0x2734, { 0xfe0f } }, + { 0x2747, { 0xfe0f } }, + { 0xa9, { 0xfe0f } }, + { 0xae, { 0xfe0f } }, + { 0x2122, { 0xfe0f } }, + { 0x23, { 0xfe0f, 0x20e3 } }, + { 0x2a, { 0xfe0f, 0x20e3 } }, + { 0x30, { 0xfe0f, 0x20e3 } }, + { 0x31, { 0xfe0f, 0x20e3 } }, + { 0x32, { 0xfe0f, 0x20e3 } }, + { 0x33, { 0xfe0f, 0x20e3 } }, + { 0x34, { 0xfe0f, 0x20e3 } }, + { 0x35, { 0xfe0f, 0x20e3 } }, + { 0x36, { 0xfe0f, 0x20e3 } }, + { 0x37, { 0xfe0f, 0x20e3 } }, + { 0x38, { 0xfe0f, 0x20e3 } }, + { 0x39, { 0xfe0f, 0x20e3 } }, + { 0x1f51f, { } }, + { 0x1f520, { } }, + { 0x1f521, { } }, + { 0x1f522, { } }, + { 0x1f523, { } }, + { 0x1f524, { } }, + { 0x1f170, { 0xfe0f } }, + { 0x1f18e, { } }, + { 0x1f171, { 0xfe0f } }, + { 0x1f191, { } }, + { 0x1f192, { } }, + { 0x1f193, { } }, + { 0x2139, { 0xfe0f } }, + { 0x1f194, { } }, + { 0x24c2, { 0xfe0f } }, + { 0x1f195, { } }, + { 0x1f196, { } }, + { 0x1f17e, { 0xfe0f } }, + { 0x1f197, { } }, + { 0x1f17f, { 0xfe0f } }, + { 0x1f198, { } }, + { 0x1f199, { } }, + { 0x1f19a, { } }, + { 0x1f201, { } }, + { 0x1f202, { 0xfe0f } }, + { 0x1f237, { 0xfe0f } }, + { 0x1f236, { } }, + { 0x1f22f, { } }, + { 0x1f250, { } }, + { 0x1f239, { } }, + { 0x1f21a, { } }, + { 0x1f232, { } }, + { 0x1f251, { } }, + { 0x1f238, { } }, + { 0x1f234, { } }, + { 0x1f233, { } }, + { 0x3297, { 0xfe0f } }, + { 0x3299, { 0xfe0f } }, + { 0x1f23a, { } }, + { 0x1f235, { } }, + { 0x1f534, { } }, + { 0x1f7e0, { } }, + { 0x1f7e1, { } }, + { 0x1f7e2, { } }, + { 0x1f535, { } }, + { 0x1f7e3, { } }, + { 0x1f7e4, { } }, + { 0x26ab, { } }, + { 0x26aa, { } }, + { 0x1f7e5, { } }, + { 0x1f7e7, { } }, + { 0x1f7e8, { } }, + { 0x1f7e9, { } }, + { 0x1f7e6, { } }, + { 0x1f7ea, { } }, + { 0x1f7eb, { } }, + { 0x2b1b, { } }, + { 0x2b1c, { } }, + { 0x25fc, { 0xfe0f } }, + { 0x25fb, { 0xfe0f } }, + { 0x25fe, { } }, + { 0x25fd, { } }, + { 0x25aa, { 0xfe0f } }, + { 0x25ab, { 0xfe0f } }, + { 0x1f536, { } }, + { 0x1f537, { } }, + { 0x1f538, { } }, + { 0x1f539, { } }, + { 0x1f53a, { } }, + { 0x1f53b, { } }, + { 0x1f4a0, { } }, + { 0x1f518, { } }, + { 0x1f533, { } }, + { 0x1f532, { } }, + { 0x1f3c1, { } }, + { 0x1f6a9, { } }, + { 0x1f38c, { } }, + { 0x1f3f4, { } }, + { 0x1f3f3, { 0xfe0f } }, + { 0x1f3f3, { 0xfe0f, 0x200d, 0x1f308 } }, + { 0x1f3f3, { 0xfe0f, 0x200d, 0x26a7, 0xfe0f } }, + { 0x1f3f4, { 0x200d, 0x2620, 0xfe0f } }, + { 0x1f1e6, { 0x1f1e8 } }, + { 0x1f1e6, { 0x1f1e9 } }, + { 0x1f1e6, { 0x1f1ea } }, + { 0x1f1e6, { 0x1f1eb } }, + { 0x1f1e6, { 0x1f1ec } }, + { 0x1f1e6, { 0x1f1ee } }, + { 0x1f1e6, { 0x1f1f1 } }, + { 0x1f1e6, { 0x1f1f2 } }, + { 0x1f1e6, { 0x1f1f4 } }, + { 0x1f1e6, { 0x1f1f6 } }, + { 0x1f1e6, { 0x1f1f7 } }, + { 0x1f1e6, { 0x1f1f8 } }, + { 0x1f1e6, { 0x1f1f9 } }, + { 0x1f1e6, { 0x1f1fa } }, + { 0x1f1e6, { 0x1f1fc } }, + { 0x1f1e6, { 0x1f1fd } }, + { 0x1f1e6, { 0x1f1ff } }, + { 0x1f1e7, { 0x1f1e6 } }, + { 0x1f1e7, { 0x1f1e7 } }, + { 0x1f1e7, { 0x1f1e9 } }, + { 0x1f1e7, { 0x1f1ea } }, + { 0x1f1e7, { 0x1f1eb } }, + { 0x1f1e7, { 0x1f1ec } }, + { 0x1f1e7, { 0x1f1ed } }, + { 0x1f1e7, { 0x1f1ee } }, + { 0x1f1e7, { 0x1f1ef } }, + { 0x1f1e7, { 0x1f1f1 } }, + { 0x1f1e7, { 0x1f1f2 } }, + { 0x1f1e7, { 0x1f1f3 } }, + { 0x1f1e7, { 0x1f1f4 } }, + { 0x1f1e7, { 0x1f1f6 } }, + { 0x1f1e7, { 0x1f1f7 } }, + { 0x1f1e7, { 0x1f1f8 } }, + { 0x1f1e7, { 0x1f1f9 } }, + { 0x1f1e7, { 0x1f1fb } }, + { 0x1f1e7, { 0x1f1fc } }, + { 0x1f1e7, { 0x1f1fe } }, + { 0x1f1e7, { 0x1f1ff } }, + { 0x1f1e8, { 0x1f1e6 } }, + { 0x1f1e8, { 0x1f1e8 } }, + { 0x1f1e8, { 0x1f1e9 } }, + { 0x1f1e8, { 0x1f1eb } }, + { 0x1f1e8, { 0x1f1ec } }, + { 0x1f1e8, { 0x1f1ed } }, + { 0x1f1e8, { 0x1f1ee } }, + { 0x1f1e8, { 0x1f1f0 } }, + { 0x1f1e8, { 0x1f1f1 } }, + { 0x1f1e8, { 0x1f1f2 } }, + { 0x1f1e8, { 0x1f1f3 } }, + { 0x1f1e8, { 0x1f1f4 } }, + { 0x1f1e8, { 0x1f1f5 } }, + { 0x1f1e8, { 0x1f1f7 } }, + { 0x1f1e8, { 0x1f1fa } }, + { 0x1f1e8, { 0x1f1fb } }, + { 0x1f1e8, { 0x1f1fc } }, + { 0x1f1e8, { 0x1f1fd } }, + { 0x1f1e8, { 0x1f1fe } }, + { 0x1f1e8, { 0x1f1ff } }, + { 0x1f1e9, { 0x1f1ea } }, + { 0x1f1e9, { 0x1f1ec } }, + { 0x1f1e9, { 0x1f1ef } }, + { 0x1f1e9, { 0x1f1f0 } }, + { 0x1f1e9, { 0x1f1f2 } }, + { 0x1f1e9, { 0x1f1f4 } }, + { 0x1f1e9, { 0x1f1ff } }, + { 0x1f1ea, { 0x1f1e6 } }, + { 0x1f1ea, { 0x1f1e8 } }, + { 0x1f1ea, { 0x1f1ea } }, + { 0x1f1ea, { 0x1f1ec } }, + { 0x1f1ea, { 0x1f1ed } }, + { 0x1f1ea, { 0x1f1f7 } }, + { 0x1f1ea, { 0x1f1f8 } }, + { 0x1f1ea, { 0x1f1f9 } }, + { 0x1f1ea, { 0x1f1fa } }, + { 0x1f1eb, { 0x1f1ee } }, + { 0x1f1eb, { 0x1f1ef } }, + { 0x1f1eb, { 0x1f1f0 } }, + { 0x1f1eb, { 0x1f1f2 } }, + { 0x1f1eb, { 0x1f1f4 } }, + { 0x1f1eb, { 0x1f1f7 } }, + { 0x1f1ec, { 0x1f1e6 } }, + { 0x1f1ec, { 0x1f1e7 } }, + { 0x1f1ec, { 0x1f1e9 } }, + { 0x1f1ec, { 0x1f1ea } }, + { 0x1f1ec, { 0x1f1eb } }, + { 0x1f1ec, { 0x1f1ec } }, + { 0x1f1ec, { 0x1f1ed } }, + { 0x1f1ec, { 0x1f1ee } }, + { 0x1f1ec, { 0x1f1f1 } }, + { 0x1f1ec, { 0x1f1f2 } }, + { 0x1f1ec, { 0x1f1f3 } }, + { 0x1f1ec, { 0x1f1f5 } }, + { 0x1f1ec, { 0x1f1f6 } }, + { 0x1f1ec, { 0x1f1f7 } }, + { 0x1f1ec, { 0x1f1f8 } }, + { 0x1f1ec, { 0x1f1f9 } }, + { 0x1f1ec, { 0x1f1fa } }, + { 0x1f1ec, { 0x1f1fc } }, + { 0x1f1ec, { 0x1f1fe } }, + { 0x1f1ed, { 0x1f1f0 } }, + { 0x1f1ed, { 0x1f1f2 } }, + { 0x1f1ed, { 0x1f1f3 } }, + { 0x1f1ed, { 0x1f1f7 } }, + { 0x1f1ed, { 0x1f1f9 } }, + { 0x1f1ed, { 0x1f1fa } }, + { 0x1f1ee, { 0x1f1e8 } }, + { 0x1f1ee, { 0x1f1e9 } }, + { 0x1f1ee, { 0x1f1ea } }, + { 0x1f1ee, { 0x1f1f1 } }, + { 0x1f1ee, { 0x1f1f2 } }, + { 0x1f1ee, { 0x1f1f3 } }, + { 0x1f1ee, { 0x1f1f4 } }, + { 0x1f1ee, { 0x1f1f6 } }, + { 0x1f1ee, { 0x1f1f7 } }, + { 0x1f1ee, { 0x1f1f8 } }, + { 0x1f1ee, { 0x1f1f9 } }, + { 0x1f1ef, { 0x1f1ea } }, + { 0x1f1ef, { 0x1f1f2 } }, + { 0x1f1ef, { 0x1f1f4 } }, + { 0x1f1ef, { 0x1f1f5 } }, + { 0x1f1f0, { 0x1f1ea } }, + { 0x1f1f0, { 0x1f1ec } }, + { 0x1f1f0, { 0x1f1ed } }, + { 0x1f1f0, { 0x1f1ee } }, + { 0x1f1f0, { 0x1f1f2 } }, + { 0x1f1f0, { 0x1f1f3 } }, + { 0x1f1f0, { 0x1f1f5 } }, + { 0x1f1f0, { 0x1f1f7 } }, + { 0x1f1f0, { 0x1f1fc } }, + { 0x1f1f0, { 0x1f1fe } }, + { 0x1f1f0, { 0x1f1ff } }, + { 0x1f1f1, { 0x1f1e6 } }, + { 0x1f1f1, { 0x1f1e7 } }, + { 0x1f1f1, { 0x1f1e8 } }, + { 0x1f1f1, { 0x1f1ee } }, + { 0x1f1f1, { 0x1f1f0 } }, + { 0x1f1f1, { 0x1f1f7 } }, + { 0x1f1f1, { 0x1f1f8 } }, + { 0x1f1f1, { 0x1f1f9 } }, + { 0x1f1f1, { 0x1f1fa } }, + { 0x1f1f1, { 0x1f1fb } }, + { 0x1f1f1, { 0x1f1fe } }, + { 0x1f1f2, { 0x1f1e6 } }, + { 0x1f1f2, { 0x1f1e8 } }, + { 0x1f1f2, { 0x1f1e9 } }, + { 0x1f1f2, { 0x1f1ea } }, + { 0x1f1f2, { 0x1f1eb } }, + { 0x1f1f2, { 0x1f1ec } }, + { 0x1f1f2, { 0x1f1ed } }, + { 0x1f1f2, { 0x1f1f0 } }, + { 0x1f1f2, { 0x1f1f1 } }, + { 0x1f1f2, { 0x1f1f2 } }, + { 0x1f1f2, { 0x1f1f3 } }, + { 0x1f1f2, { 0x1f1f4 } }, + { 0x1f1f2, { 0x1f1f5 } }, + { 0x1f1f2, { 0x1f1f6 } }, + { 0x1f1f2, { 0x1f1f7 } }, + { 0x1f1f2, { 0x1f1f8 } }, + { 0x1f1f2, { 0x1f1f9 } }, + { 0x1f1f2, { 0x1f1fa } }, + { 0x1f1f2, { 0x1f1fb } }, + { 0x1f1f2, { 0x1f1fc } }, + { 0x1f1f2, { 0x1f1fd } }, + { 0x1f1f2, { 0x1f1fe } }, + { 0x1f1f2, { 0x1f1ff } }, + { 0x1f1f3, { 0x1f1e6 } }, + { 0x1f1f3, { 0x1f1e8 } }, + { 0x1f1f3, { 0x1f1ea } }, + { 0x1f1f3, { 0x1f1eb } }, + { 0x1f1f3, { 0x1f1ec } }, + { 0x1f1f3, { 0x1f1ee } }, + { 0x1f1f3, { 0x1f1f1 } }, + { 0x1f1f3, { 0x1f1f4 } }, + { 0x1f1f3, { 0x1f1f5 } }, + { 0x1f1f3, { 0x1f1f7 } }, + { 0x1f1f3, { 0x1f1fa } }, + { 0x1f1f3, { 0x1f1ff } }, + { 0x1f1f4, { 0x1f1f2 } }, + { 0x1f1f5, { 0x1f1e6 } }, + { 0x1f1f5, { 0x1f1ea } }, + { 0x1f1f5, { 0x1f1eb } }, + { 0x1f1f5, { 0x1f1ec } }, + { 0x1f1f5, { 0x1f1ed } }, + { 0x1f1f5, { 0x1f1f0 } }, + { 0x1f1f5, { 0x1f1f1 } }, + { 0x1f1f5, { 0x1f1f2 } }, + { 0x1f1f5, { 0x1f1f3 } }, + { 0x1f1f5, { 0x1f1f7 } }, + { 0x1f1f5, { 0x1f1f8 } }, + { 0x1f1f5, { 0x1f1f9 } }, + { 0x1f1f5, { 0x1f1fc } }, + { 0x1f1f5, { 0x1f1fe } }, + { 0x1f1f6, { 0x1f1e6 } }, + { 0x1f1f7, { 0x1f1ea } }, + { 0x1f1f7, { 0x1f1f4 } }, + { 0x1f1f7, { 0x1f1f8 } }, + { 0x1f1f7, { 0x1f1fa } }, + { 0x1f1f7, { 0x1f1fc } }, + { 0x1f1f8, { 0x1f1e6 } }, + { 0x1f1f8, { 0x1f1e7 } }, + { 0x1f1f8, { 0x1f1e8 } }, + { 0x1f1f8, { 0x1f1e9 } }, + { 0x1f1f8, { 0x1f1ea } }, + { 0x1f1f8, { 0x1f1ec } }, + { 0x1f1f8, { 0x1f1ed } }, + { 0x1f1f8, { 0x1f1ee } }, + { 0x1f1f8, { 0x1f1ef } }, + { 0x1f1f8, { 0x1f1f0 } }, + { 0x1f1f8, { 0x1f1f1 } }, + { 0x1f1f8, { 0x1f1f2 } }, + { 0x1f1f8, { 0x1f1f3 } }, + { 0x1f1f8, { 0x1f1f4 } }, + { 0x1f1f8, { 0x1f1f7 } }, + { 0x1f1f8, { 0x1f1f8 } }, + { 0x1f1f8, { 0x1f1f9 } }, + { 0x1f1f8, { 0x1f1fb } }, + { 0x1f1f8, { 0x1f1fd } }, + { 0x1f1f8, { 0x1f1fe } }, + { 0x1f1f8, { 0x1f1ff } }, + { 0x1f1f9, { 0x1f1e6 } }, + { 0x1f1f9, { 0x1f1e8 } }, + { 0x1f1f9, { 0x1f1e9 } }, + { 0x1f1f9, { 0x1f1eb } }, + { 0x1f1f9, { 0x1f1ec } }, + { 0x1f1f9, { 0x1f1ed } }, + { 0x1f1f9, { 0x1f1ef } }, + { 0x1f1f9, { 0x1f1f0 } }, + { 0x1f1f9, { 0x1f1f1 } }, + { 0x1f1f9, { 0x1f1f2 } }, + { 0x1f1f9, { 0x1f1f3 } }, + { 0x1f1f9, { 0x1f1f4 } }, + { 0x1f1f9, { 0x1f1f7 } }, + { 0x1f1f9, { 0x1f1f9 } }, + { 0x1f1f9, { 0x1f1fb } }, + { 0x1f1f9, { 0x1f1fc } }, + { 0x1f1f9, { 0x1f1ff } }, + { 0x1f1fa, { 0x1f1e6 } }, + { 0x1f1fa, { 0x1f1ec } }, + { 0x1f1fa, { 0x1f1f2 } }, + { 0x1f1fa, { 0x1f1f3 } }, + { 0x1f1fa, { 0x1f1f8 } }, + { 0x1f1fa, { 0x1f1fe } }, + { 0x1f1fa, { 0x1f1ff } }, + { 0x1f1fb, { 0x1f1e6 } }, + { 0x1f1fb, { 0x1f1e8 } }, + { 0x1f1fb, { 0x1f1ea } }, + { 0x1f1fb, { 0x1f1ec } }, + { 0x1f1fb, { 0x1f1ee } }, + { 0x1f1fb, { 0x1f1f3 } }, + { 0x1f1fb, { 0x1f1fa } }, + { 0x1f1fc, { 0x1f1eb } }, + { 0x1f1fc, { 0x1f1f8 } }, + { 0x1f1fd, { 0x1f1f0 } }, + { 0x1f1fe, { 0x1f1ea } }, + { 0x1f1fe, { 0x1f1f9 } }, + { 0x1f1ff, { 0x1f1e6 } }, + { 0x1f1ff, { 0x1f1f2 } }, + { 0x1f1ff, { 0x1f1fc } }, + { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0065, 0xe006e, 0xe0067, 0xe007f } }, + { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0073, 0xe0063, 0xe0074, 0xe007f } }, + { 0x1f3f4, { 0xe0067, 0xe0062, 0xe0077, 0xe006c, 0xe0073, 0xe007f } }, }; - bool codepoint_is_emoji(uint32_t codepoint) { - return codepoint >= 0x1F000 && codepoint <= 0x1FB6F; - } + bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length) { + uint32_t codepoint; + size_t clen; + if(!mgl::utf8_decode(str, size, &codepoint, &clen)) + return false; + + const size_t str_start_index = clen; + sequence[0] = codepoint; + + auto range = emoji_sequences.equal_range(codepoint); + if(range.first == range.second) + return false; + + auto longest_match_it = range.first; + size_t longest_match_byte_length = str_start_index; + bool match_found = false; + + for(auto it = range.first, end = range.second; it != end; ++it) { + size_t str_index = str_start_index; + + for(size_t i = 0; i < it->second.size(); ++i) { + const uint32_t codepoint_in_sequence = it->second[i]; + if(codepoint_in_sequence == 0) + break; + + if(str_index >= size) + goto next; + + if(!mgl::utf8_decode(str + str_index, size - str_index, &codepoint, &clen)) + goto next; + + if(codepoint != codepoint_in_sequence) + goto next; + + str_index += clen; + } + + if(str_index >= longest_match_byte_length) { + longest_match_it = it; + longest_match_byte_length = str_index; + } + + match_found = true; + next:; + } + + if(!match_found) + return false; + + size_t sequence_index = 1; + for(size_t i = 0; i < longest_match_it->second.size(); ++i) { + const uint32_t codepoint_in_sequence = longest_match_it->second[i]; + if(codepoint_in_sequence == 0) + break; + + sequence[sequence_index] = codepoint_in_sequence; + ++sequence_index; + } - EmojiRectangle emoji_get_extents(uint32_t codepoint) { - if(codepoint < 0x1F000 || codepoint - 0x1F000 >= 2928) - return { 0, 0, 0, 0 }; - return emoji_extents[codepoint - 0x1F000]; + sequence_len = sequence_index; + byte_length = longest_match_byte_length; + return true; } } diff --git a/generated/Emoji.hpp b/generated/Emoji.hpp index 89ebde3..0ba60b1 100644 --- a/generated/Emoji.hpp +++ b/generated/Emoji.hpp @@ -1,15 +1,10 @@ #pragma once #include <stdint.h> +#include <stddef.h> -// This file was automatically generated with generate-emoji-sprite.py, do not edit manually! +// This file was automatically generated with generate-emoji-sequences.py, do not edit manually! namespace QuickMedia { - struct EmojiRectangle { - int x, y; - int width, height; - }; - - bool codepoint_is_emoji(uint32_t codepoint); - EmojiRectangle emoji_get_extents(uint32_t codepoint); + bool match_emoji_sequence(const unsigned char *str, size_t size, uint32_t sequence[32], size_t &sequence_len, size_t &byte_length); }
\ No newline at end of file diff --git a/images/emoji.png b/images/emoji.png Binary files differdeleted file mode 100644 index ec3d6db..0000000 --- a/images/emoji.png +++ /dev/null diff --git a/include/Text.hpp b/include/Text.hpp index fd1277f..1533380 100644 --- a/include/Text.hpp +++ b/include/Text.hpp @@ -23,9 +23,9 @@ namespace QuickMedia { struct TextElement { - enum class Type - { - TEXT + enum class Type { + TEXT, + IMAGE }; enum class TextType { @@ -36,18 +36,41 @@ namespace QuickMedia }; TextElement() {} - TextElement(std::string_view text, Type type) : text(text), type(type), text_type(TextType::LATIN) {} + + void create_text(std::string_view text) { + this->text = text; + text_type = TextType::LATIN; + type = Type::TEXT; + } + + // If size is {0, 0} then the image is drawn at its original size + void create_image(std::string url, bool local, mgl::vec2i size) { + this->url = std::move(url); + this->local = local; + this->size = size; + type = Type::IMAGE; + } + // TODO: union grouped std::string_view text; + TextType text_type = TextType::LATIN; + + // TODO: Remove these + std::string url; + bool local = false; + mgl::vec2i pos; + mgl::vec2i size; + int vertex_ref_index = 0; // Note: only used temporary within updateGeometry + int text_num_bytes = 0; // Note: only used temporary within updateGeometry + Type type; - //bool ownLine; // Currently only used for emoji, to make emoji bigger when it's the only thing on a line - TextType text_type; }; struct VertexRef { int vertices_index; // index to |vertices| VertexArray int index; // index within vertices[vertices_index] int line; + int text_num_bytes; uint32_t codepoint; }; @@ -61,6 +84,10 @@ namespace QuickMedia void setString(std::string str); const std::string& getString() const; void appendText(const std::string &str); + // size = {0, 0} = keep original image size + void append_image(const std::string &url, bool local, mgl::vec2i size); + static std::string formatted_image(const std::string &url, bool local, mgl::vec2i size); + static std::string formatted_text(const std::string &text, mgl::Color color, bool bold); void insert_text_at_caret_position(const std::string &str); void set_position(float x, float y); @@ -124,7 +151,7 @@ namespace QuickMedia int getPreviousLineClosestPosition(int startIndex) const; int getNextLineClosestPosition(int startIndex) const; - void splitTextByFont(); + void split_text_by_type(std::vector<TextElement> &text_elements, const std::string &str); float font_get_real_height(mgl::Font *font); float get_text_quad_left_side(const VertexRef &vertex_ref) const; @@ -140,8 +167,8 @@ namespace QuickMedia std::string str; // TODO: Remove this for non-editable text??? also replace with std::string? then we get more efficient editing of text bool bold_font; unsigned int characterSize; - std::array<std::vector<mgl::Vertex>, 4> vertices; - std::array<mgl::VertexBuffer, 4> vertex_buffers; + std::array<std::vector<mgl::Vertex>, 5> vertices; + std::array<mgl::VertexBuffer, 5> vertex_buffers; float maxWidth; mgl::vec2f position; mgl::Color color; @@ -5,6 +5,11 @@ cd "$script_dir" [ $(id -u) -ne 0 ] && echo "You need root privileges to run the install script" && exit 1 +curl -sfL 'https://dec05eba.com/files/twemoji.zip' -o /tmp/twemoji.zip +mkdir -p /usr/share/quickmedia/emoji +unzip -uqq /tmp/twemoji.zip -d /usr/share/quickmedia/emoji/ +rm -f /tmp/twemoji.zip + sibs build --release video_player sibs build --release diff --git a/plugins/Youtube.hpp b/plugins/Youtube.hpp index 6ce62e8..de8a0c3 100644 --- a/plugins/Youtube.hpp +++ b/plugins/Youtube.hpp @@ -86,15 +86,19 @@ namespace QuickMedia { class YoutubeCommentRepliesPage : public LazyFetchPage { public: - YoutubeCommentRepliesPage(Program *program, const std::string &video_url, const std::string &continuation_token) : LazyFetchPage(program), video_url(video_url), continuation_token(continuation_token) {} + YoutubeCommentRepliesPage(Program *program, const std::string &video_url, const std::string &continuation_token, const BodyItem *replied_to_body_item) : + LazyFetchPage(program), video_url(video_url), continuation_token(continuation_token), replied_to_body_item(replied_to_body_item) {} const char* get_title() const override { return "Comment replies"; } PluginResult get_page(const std::string &str, int page, BodyItems &result_items) override; PluginResult submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) override; PluginResult lazy_fetch(BodyItems &result_items) override; private: + PluginResult lazy_fetch(BodyItems &result_items, bool first_fetch); + private: int current_page = 0; std::string video_url; std::string continuation_token; + const BodyItem *replied_to_body_item; }; class YoutubeChannelPage : public LazyFetchPage, public TrackablePage { diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index e31b846..bbff6c6 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -387,7 +387,7 @@ namespace QuickMedia { bool no_dialog = false; for(int i = 1; i < argc; ++i) { - if(!plugin_name) { + if(!plugin_name && argv[i][0] != '-') { std::string youtube_url_converted = invidious_url_to_youtube_url(argv[i]); std::string youtube_channel_id; std::string youtube_video_id_dummy; @@ -407,6 +407,12 @@ namespace QuickMedia { break; } } + + if(!plugin_name) { + fprintf(stderr, "\"%s\" is not a valid plugin/youtube url\n", argv[i]); + usage(); + return -1; + } } if(strcmp(argv[i], "--no-video") == 0) { @@ -6986,10 +6992,12 @@ namespace QuickMedia { if(clipboard_success && !clipboard_text.empty() && get_file_type(clipboard_text) == FileType::REGULAR) { const time_t now = time(nullptr); - const struct tm *t = localtime(&now); - char filename[256]; - strftime(filename, sizeof(filename)-1, "Clipboard_%Y-%m-%d_%H-%M-%S", t); - strcat(filename, file_ext.c_str()); + struct tm t; + localtime_r(&now, &t); + char filename[256] = {0}; + const int num_bytes_written = strftime(filename, sizeof(filename)-1, "Clipboard_%Y-%m-%d_%H-%M-%S", &t); + if((int)sizeof(filename) - (num_bytes_written + file_ext.size()) >= 1) + strcat(filename, file_ext.c_str()); upload_file(clipboard_text, filename); } diff --git a/src/ResourceLoader.cpp b/src/ResourceLoader.cpp index e5d16dd..e086ee7 100644 --- a/src/ResourceLoader.cpp +++ b/src/ResourceLoader.cpp @@ -49,7 +49,6 @@ namespace QuickMedia { return true; } - fprintf(stderr, "Warning: failed to find font: %s\n", font_name.c_str()); return false; } } diff --git a/src/Text.cpp b/src/Text.cpp index d29c9b5..be31434 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -2,13 +2,19 @@ #include "../include/ResourceLoader.hpp" #include "../include/Config.hpp" #include "../include/Theme.hpp" +#include "../include/AsyncImageLoader.hpp" +#include "../include/StringUtils.hpp" #include "../generated/Emoji.hpp" +#include <string.h> #include <mglpp/graphics/Rectangle.hpp> #include <mglpp/window/Event.hpp> #include <mglpp/window/Window.hpp> #include <mglpp/graphics/Font.hpp> #include <mglpp/graphics/Texture.hpp> +#include <mglpp/graphics/Sprite.hpp> #include <mglpp/system/Utf8.hpp> +// TODO: Remove +#include <sstream> namespace QuickMedia { @@ -27,7 +33,16 @@ namespace QuickMedia static const size_t FONT_INDEX_CJK = 1; static const size_t FONT_INDEX_SYMBOLS = 2; static const size_t FONT_INDEX_EMOJI = 3; - static const size_t FONT_ARRAY_SIZE = 4; + static const size_t FONT_INDEX_IMAGE = 4; + static const size_t FONT_ARRAY_SIZE = 5; + + static const uint8_t FORMATTED_TEXT_START = '\x02'; + static const uint8_t FORMATTED_TEXT_END = '\x03'; + + enum class FormattedTextType : uint8_t { + TEXT, + IMAGE + }; Text::Text() : bold_font(false), @@ -111,6 +126,38 @@ namespace QuickMedia dirtyText = true; } + void Text::append_image(const std::string &url, bool local, mgl::vec2i size) { + str += Text::formatted_image(url, local, size); + } + + // static + std::string Text::formatted_image(const std::string &url, bool local, mgl::vec2i size) { + std::string result; + result += FORMATTED_TEXT_START; + result += (uint8_t)FormattedTextType::IMAGE; + result.append((const char*)&size.x, sizeof(size.x)); + result.append((const char*)&size.y, sizeof(size.y)); + result.append((const char*)&local, sizeof(local)); + result.append(url); + result += FORMATTED_TEXT_END; + return result; + } + + // static + std::string Text::formatted_text(const std::string &text, mgl::Color color, bool bold) { + std::string result; + result += FORMATTED_TEXT_START; + result += (uint8_t)FormattedTextType::TEXT; + result += color.r; + result += color.g; + result += color.b; + result += color.a; + result += (uint8_t)bold; + result.append(text); + result += FORMATTED_TEXT_END; + return result; + } + void Text::insert_text_at_caret_position(const std::string &str) { this->str.insert(caretIndex, str); dirty = true; @@ -299,7 +346,14 @@ namespace QuickMedia return size; } - static size_t find_end_of_emoji(const char *str, size_t size) { + // TODO: Optimize, dont use ostringstream + static std::string codepoint_to_hex_str(uint32_t codepoint) { + std::ostringstream ss; + ss << std::hex << codepoint; + return ss.str(); + } + + static size_t find_end_of_symbol(const char *str, size_t size) { for(size_t i = 0; i < size;) { const unsigned char *cp = (const unsigned char*)&str[i]; uint32_t codepoint; @@ -309,7 +363,7 @@ namespace QuickMedia clen = 1; } - if(!codepoint_is_emoji(codepoint)) + if(!is_symbol_codepoint(codepoint)) return i; i += clen; @@ -317,7 +371,11 @@ namespace QuickMedia return size; } - static size_t find_end_of_symbol(const char *str, size_t size) { + static size_t find_end_latin(const char *str, size_t size) { + uint32_t emoji_sequence[32]; + size_t emoji_sequence_length = 0; + size_t emoji_byte_length = 0; + for(size_t i = 0; i < size;) { const unsigned char *cp = (const unsigned char*)&str[i]; uint32_t codepoint; @@ -327,36 +385,80 @@ namespace QuickMedia clen = 1; } - if(!is_symbol_codepoint(codepoint)) + if(is_cjk_codepoint(codepoint) || is_symbol_codepoint(codepoint) || codepoint == FORMATTED_TEXT_START || match_emoji_sequence(cp, size - i, emoji_sequence, emoji_sequence_length, emoji_byte_length)) return i; i += clen; } + return size; } - static size_t find_end_latin(const char *str, size_t size) { - for(size_t i = 0; i < size;) { - const unsigned char *cp = (const unsigned char*)&str[i]; - uint32_t codepoint; - size_t clen; - if(!mgl::utf8_decode(cp, size - i, &codepoint, &clen)) { - codepoint = *cp; - clen = 1; +// TODO: +#if 0 + static size_t parse_formatted_image(const char *str, size_t size, std::string &image_url, bool &image_local, mgl::vec2i &image_size) { + image_url.clear(); + image_local = true; + image_size = { 0, 0 }; + + for(size_t i = 0; i < size; ++i) { + const char *cp = &str[i]; + if(*cp == FORMATTED_TEXT_END) { + const size_t image_len = i; + if(image_len < sizeof(image_size.x) + sizeof(image_size.y) + sizeof(image_local)) + return size; + + memcpy(&image_size.x, str, sizeof(image_size.x)); + memcpy(&image_size.y, str + sizeof(image_size.x), sizeof(image_size.y)); + memcpy(&image_local, str + sizeof(image_size.x) + sizeof(image_size.y), sizeof(image_local)); + const size_t image_url_index = sizeof(image_size.x) + sizeof(image_size.y) + sizeof(image_local); + image_url.assign(str + image_url_index, image_len - image_url_index); + return i + 1; } + } + return size; + } - if(is_cjk_codepoint(codepoint) || codepoint_is_emoji(codepoint) || is_symbol_codepoint(codepoint)) - return i; + static size_t parse_formatted_text(const char *str, size_t size, TextElement &text_element) { + if(size == 0) + return 0; - i += clen; + FormattedTextType formatted_text_type = (FormattedTextType)*(uint8_t*)&str[0]; + switch(formatted_text_type) { + case FormattedTextType::TEXT: { + text_element.type = TextElement::Type::TEXT; + // TODO: + //return parse_formatted_text(str + 1, size - 1, text_element) + } + case FormattedTextType::IMAGE: { + text_element.type = TextElement::Type::IMAGE; + return parse_formatted_image(str + 1, size - 1, text_element.url, text_element.local, text_element.size); + } + default: + break; } - return size; + return 0; } +#endif + void Text::split_text_by_type(std::vector<TextElement> &text_elements, const std::string &str) { + text_elements.clear(); - void Text::splitTextByFont() { - textElements.clear(); + mgl::Font *latin_font; + if(bold_font) + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize); + else + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize); + + const float vspace = font_get_real_height(latin_font); size_t index = 0; size_t size = str.size(); + + size_t offset; + uint32_t emoji_sequence[32]; + size_t emoji_sequence_length = 0; + size_t emoji_byte_length = 0; + std::string emoji_codepoint_combined; + while(index < size) { const unsigned char *cp = (const unsigned char*)&str[index]; uint32_t codepoint; @@ -366,23 +468,77 @@ namespace QuickMedia clen = 1; } - size_t offset; - TextElement::TextType text_type = TextElement::TextType::LATIN; + TextElement text_element; + if(is_symbol_codepoint(codepoint)) { - text_type = TextElement::TextType::SYMBOL; offset = find_end_of_symbol(str.data() + index, size - index); + + text_element.create_text(std::string_view(str.data() + index, offset)); + text_element.text_type = TextElement::TextType::SYMBOL; + text_element.text_num_bytes = text_element.text.size(); + text_elements.push_back(std::move(text_element)); } else if(is_cjk_codepoint(codepoint)) { - text_type = TextElement::TextType::CJK; offset = find_end_of_cjk(str.data() + index, size - index); - } else if(codepoint_is_emoji(codepoint)) { - text_type = TextElement::TextType::EMOJI; - offset = find_end_of_emoji(str.data() + index, size - index); + + text_element.create_text(std::string_view(str.data() + index, offset)); + text_element.text_type = TextElement::TextType::CJK; + text_element.text_num_bytes = text_element.text.size(); + text_elements.push_back(std::move(text_element)); + } else if(codepoint == FORMATTED_TEXT_START) { + // TODO: + offset = 1; + #if 0 + text_element.type = TextElement::Type::IMAGE; + + index += 1; + offset = parse_formatted_text(str.data() + index, size - index, text_element); + text_element.text_num_bytes = ... // TODO + text_elements.push_back(std::move(text_element)); + #endif + } else if(match_emoji_sequence((const unsigned char*)str.data() + index, size - index, emoji_sequence, emoji_sequence_length, emoji_byte_length)) { + offset = emoji_byte_length; + + emoji_codepoint_combined.clear(); + for(size_t i = 0; i < emoji_sequence_length; ++i) { + if(!emoji_codepoint_combined.empty()) + emoji_codepoint_combined += '-'; + emoji_codepoint_combined += codepoint_to_hex_str(emoji_sequence[i]); + } + + // Twemoji issue + string_replace_all(emoji_codepoint_combined, "-fe0f-20e3", "-20e3"); + if(emoji_codepoint_combined == "1f441-fe0f-200d-1f5e8-fe0f") + emoji_codepoint_combined = "1f441-200d-1f5e8"; + + std::string image_url; + bool image_local = false; + if(emoji_codepoint_combined != "1f3f3-fe0f-200d-26a7-fe0f") { + image_url = "/usr/share/quickmedia/emoji/" + emoji_codepoint_combined + ".png"; + image_local = true; + } else { + image_url = "/home/dec05eba/Pictures/troonjak.png"; + image_local = true; + } + + text_element.create_text("E"); + text_element.text_type = TextElement::TextType::EMOJI; + text_element.text = "E"; + text_element.url = std::move(image_url); + text_element.local = image_local; + text_element.size = { (int)vspace, (int)vspace }; + text_element.text_num_bytes = emoji_byte_length; + text_elements.push_back(std::move(text_element)); } else { offset = find_end_latin(str.data() + index, size - index); + + text_element.create_text(std::string_view(str.data() + index, offset)); + text_element.text_type = TextElement::TextType::LATIN; + text_element.text_num_bytes = text_element.text.size(); + text_elements.push_back(std::move(text_element)); } - textElements.push_back({ std::string_view(str.data() + index, offset), TextElement::Type::TEXT }); - textElements.back().text_type = text_type; + // We never want an infinite loop even if there is a bug in the above code + offset = std::max(offset, (size_t)1); index += offset; } } @@ -451,7 +607,7 @@ namespace QuickMedia if(dirtyText) { assert(dirty); dirtyText = false; - splitTextByFont(); + split_text_by_type(textElements, str); // TODO: Optimize if(highlight_urls) { url_ranges = extract_urls(str); @@ -480,7 +636,7 @@ namespace QuickMedia const float latin_font_width = latin_font->get_glyph(' ').advance; const float hspace = latin_font_width + characterSpacing; const float vspace = font_get_real_height(latin_font); - const float emoji_scale = vspace / 20.0f; + const float emoji_spacing = 2.0f; const mgl::Color url_color = get_theme().url_text_color; @@ -492,10 +648,48 @@ namespace QuickMedia for(usize textElementIndex = 0; textElementIndex < textElements.size(); ++textElementIndex) { TextElement &textElement = textElements[textElementIndex]; + mgl::Font *ff = latin_font; int vertices_index = FONT_INDEX_LATIN; - prevCodePoint = 0; - if(textElement.text_type == TextElement::TextType::CJK) { + if(textElement.type == TextElement::Type::IMAGE) { + vertices_index = FONT_INDEX_IMAGE; + mgl::Color image_color(255, 255, 255, color.a); + int vertexStart = vertices[vertices_index].size(); + + if(prevCodePoint != 0) + glyphPos.x += emoji_spacing; + + const float font_height_offset = 0.0f;//floor(vspace * 0.6f); + mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - textElement.size.y * 0.5f); + mgl::vec2f vertexTopRight(glyphPos.x + textElement.size.x, glyphPos.y + font_height_offset - textElement.size.y * 0.5f); + mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + textElement.size.y * 0.5f); + mgl::vec2f vertexBottomRight(glyphPos.x + textElement.size.x, glyphPos.y + font_height_offset + textElement.size.y * 0.5f); + + vertexTopLeft = vec2f_floor(vertexTopLeft); + vertexTopRight = vec2f_floor(vertexTopRight); + vertexBottomLeft = vec2f_floor(vertexBottomLeft); + vertexBottomRight = vec2f_floor(vertexBottomRight); + + mgl::vec2f textureTopLeft(0.0f, 0.0f); + mgl::vec2f textureTopRight(0.0f + textElement.size.x, 0.0f); + mgl::vec2f textureBottomLeft(0.0f, 0.0f + textElement.size.y); + mgl::vec2f textureBottomRight(0.0f + textElement.size.x, 0.0f + textElement.size.y); + + vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, image_color); + vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, image_color); + vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, image_color); + vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, image_color); + vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, image_color); + vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, image_color); + + // TODO: Size.x update + glyphPos.x += floor(textElement.size.x) + characterSpacing + emoji_spacing; + textElement.vertex_ref_index = vertices_linear.size(); + vertices_linear.push_back({vertices_index, vertexStart, 0, textElement.text_num_bytes, 'E'}); + + prevCodePoint = 0; + continue; + } else if(textElement.text_type == TextElement::TextType::CJK) { ff = FontLoader::get_font(FontLoader::FontType::CJK, characterSize); vertices_index = FONT_INDEX_CJK; } else if(textElement.text_type == TextElement::TextType::SYMBOL) { @@ -504,47 +698,41 @@ namespace QuickMedia } else if(textElement.text_type == TextElement::TextType::EMOJI) { vertices_index = FONT_INDEX_EMOJI; mgl::Color emoji_color(255, 255, 255, color.a); - for(size_t i = 0; i < textElement.text.size();) - { - const unsigned char *cp = (const unsigned char*)&textElement.text[i]; - uint32_t codepoint; - size_t clen; - if(!mgl::utf8_decode(cp, textElement.text.size() - i, &codepoint, &clen)) { - codepoint = *cp; - clen = 1; - } - - int vertexStart = vertices[vertices_index].size(); - EmojiRectangle emoji_rec = emoji_get_extents(codepoint); - - const float font_height_offset = floor(vspace * 0.6f); - mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - floor(emoji_rec.height * emoji_scale) * 0.5f); - mgl::vec2f vertexTopRight(glyphPos.x + floor(emoji_rec.width * emoji_scale), glyphPos.y + font_height_offset - floor(emoji_rec.height * emoji_scale) * 0.5f); - mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + emoji_rec.height * emoji_scale * 0.5f); - mgl::vec2f vertexBottomRight(glyphPos.x + floor(emoji_rec.width * emoji_scale), glyphPos.y + font_height_offset + floor(emoji_rec.height * emoji_scale) * 0.5f); - - vertexTopLeft = vec2f_floor(vertexTopLeft); - vertexTopRight = vec2f_floor(vertexTopRight); - vertexBottomLeft = vec2f_floor(vertexBottomLeft); - vertexBottomRight = vec2f_floor(vertexBottomRight); - - mgl::vec2f textureTopLeft(emoji_rec.x, emoji_rec.y); - mgl::vec2f textureTopRight(emoji_rec.x + emoji_rec.width, emoji_rec.y); - mgl::vec2f textureBottomLeft(emoji_rec.x, emoji_rec.y + emoji_rec.height); - mgl::vec2f textureBottomRight(emoji_rec.x + emoji_rec.width, emoji_rec.y + emoji_rec.height); - - vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color); - vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, emoji_color); - vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color); - vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color); - vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, emoji_color); - vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color); - - glyphPos.x += floor(emoji_rec.width * emoji_scale) + characterSpacing; - vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint}); - i += clen; - } + int vertexStart = vertices[vertices_index].size(); + const mgl::vec2f emoji_size = { vspace, vspace }; + + if(prevCodePoint != 0) + glyphPos.x += emoji_spacing; + + const float font_height_offset = floor(vspace * 0.5f); + mgl::vec2f vertexTopLeft(glyphPos.x, glyphPos.y + font_height_offset - emoji_size.y * 0.5f); + mgl::vec2f vertexTopRight(glyphPos.x + emoji_size.x, glyphPos.y + font_height_offset - emoji_size.y * 0.5f); + mgl::vec2f vertexBottomLeft(glyphPos.x, glyphPos.y + font_height_offset + emoji_size.y * 0.5f); + mgl::vec2f vertexBottomRight(glyphPos.x + emoji_size.x, glyphPos.y + font_height_offset + emoji_size.y * 0.5f); + + vertexTopLeft = vec2f_floor(vertexTopLeft); + vertexTopRight = vec2f_floor(vertexTopRight); + vertexBottomLeft = vec2f_floor(vertexBottomLeft); + vertexBottomRight = vec2f_floor(vertexBottomRight); + + mgl::vec2f textureTopLeft(0.0f, 0.0f); + mgl::vec2f textureTopRight(0.0f + emoji_size.x, 0.0f); + mgl::vec2f textureBottomLeft(0.0f, 0.0f + emoji_size.y); + mgl::vec2f textureBottomRight(0.0f + emoji_size.x, 0.0f + emoji_size.y); + + vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color); + vertices[vertices_index].emplace_back(vertexTopLeft, textureTopLeft, emoji_color); + vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color); + vertices[vertices_index].emplace_back(vertexBottomLeft, textureBottomLeft, emoji_color); + vertices[vertices_index].emplace_back(vertexBottomRight, textureBottomRight, emoji_color); + vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, emoji_color); + + glyphPos.x += emoji_size.x + characterSpacing + emoji_spacing; + textElement.vertex_ref_index = vertices_linear.size(); + vertices_linear.push_back({vertices_index, vertexStart, 0, textElement.text_num_bytes, 'E'}); + + prevCodePoint = 0; continue; } @@ -600,7 +788,7 @@ namespace QuickMedia vertices[vertices_index].emplace_back(vertexTopRight, mgl::vec2f(), mgl::Color(0, 0, 0, 0)); glyphPos.x += hspace; - vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint}); + vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint}); break; } case '\t': @@ -624,7 +812,7 @@ namespace QuickMedia vertices[vertices_index].emplace_back(vertexTopRight, mgl::vec2f(), mgl::Color(0, 0, 0, 0)); glyphPos.x += char_width; - vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint}); + vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint}); break; } case '\n': @@ -648,7 +836,7 @@ namespace QuickMedia glyphPos.x = 0.0f; glyphPos.y += floor(vspace + lineSpacing); - vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint}); + vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint}); break; } default: { @@ -677,7 +865,7 @@ namespace QuickMedia vertices[vertices_index].emplace_back(vertexTopRight, textureTopRight, text_color); glyphPos.x += glyph.advance + characterSpacing; - vertices_linear.push_back({vertices_index, vertexStart, 0, codepoint}); + vertices_linear.push_back({vertices_index, vertexStart, 0, (int)clen, codepoint}); break; } } @@ -745,6 +933,15 @@ namespace QuickMedia } } + // TODO: Optimize + for(TextElement &textElement : textElements) { + if(textElement.text_type == TextElement::TextType::EMOJI || textElement.type == TextElement::Type::IMAGE) { + const VertexRef &vertex_ref = vertices_linear[textElement.vertex_ref_index]; + const mgl::vec2f top_left_vertex_pos = vertices[vertex_ref.vertices_index][vertex_ref.index + 1].position; + textElement.pos = { (int)top_left_vertex_pos.x, (int)top_left_vertex_pos.y }; + } + } + boundingBox.size.x = 0.0f; for(VertexRef &vertex_ref : vertices_linear) { boundingBox.size.x = std::max(boundingBox.size.x, get_text_quad_right_side(vertex_ref)); @@ -946,40 +1143,15 @@ namespace QuickMedia // TODO: Optimize size_t Text::get_string_index_from_caret_index(size_t caret_index) const { - size_t codepoint_index = 0; - for(size_t i = 0; i < str.size();) { - if(codepoint_index == caret_index) - return i; - - unsigned char *cp = (unsigned char*)&str[i]; - uint32_t codepoint; - size_t clen; - if(!mgl::utf8_decode(cp, str.size() - i, &codepoint, &clen)) { - codepoint = *cp; - clen = 1; - } - - i += clen; - ++codepoint_index; - } - return str.size(); - } - - static size_t utf8_get_length(const std::string &str) { - size_t codepoint_index = 0; - for(size_t i = 0; i < str.size();) { - unsigned char *cp = (unsigned char*)&str[i]; - uint32_t codepoint; - size_t clen; - if(!mgl::utf8_decode(cp, str.size() - i, &codepoint, &clen)) { - codepoint = *cp; - clen = 1; - } + size_t str_index = 0; + for(size_t i = 0; i < vertices_linear.size(); ++i) { + if(i == caret_index) + break; - i += clen; - ++codepoint_index; + auto &vertex = vertices_linear[i]; + str_index += vertex.text_num_bytes; } - return codepoint_index; + return str_index; } // TODO: Optimize text editing by only processing the changed parts in updateGeometry. @@ -1012,8 +1184,8 @@ namespace QuickMedia else if(event.key.code == mgl::Keyboard::Backspace && caretIndex > 0) { const size_t str_index = get_string_index_from_caret_index(caretIndex); - if(str_index > 0) { - const size_t codepoint_start = mgl::utf8_get_start_of_codepoint((const unsigned char*)str.c_str(), str.size(), str_index - 1); + if(str_index > 0 && str_index <= str.size()) { + const size_t codepoint_start = str_index - vertices_linear[caretIndex - 1].text_num_bytes; str.erase(codepoint_start, str_index - codepoint_start); --caretIndex; dirty = true; @@ -1024,12 +1196,12 @@ namespace QuickMedia else if(event.key.code == mgl::Keyboard::Delete && !caretAtEnd) { const size_t str_index = get_string_index_from_caret_index(caretIndex); - uint32_t decoded_codepoint = 0; - size_t decoded_length = 0; - mgl::utf8_decode((const unsigned char*)str.c_str() + str_index, str.size() - str_index, &decoded_codepoint, &decoded_length); - str.erase(str_index, decoded_length); - dirty = true; - dirtyText = true; + const size_t codepoint_end = str_index + vertices_linear[caretIndex].text_num_bytes; + if(str_index < str.size() && codepoint_end <= str.size()) { + str.erase(str_index, codepoint_end - str_index); + dirty = true; + dirtyText = true; + } } else if(event.key.code == mgl::Keyboard::D && event.key.control) { @@ -1079,7 +1251,7 @@ namespace QuickMedia { stringToAdd = window.get_clipboard_string(); } - else if(event.text.codepoint >= 32 || (event.text.codepoint == '\t' && !single_line_edit)) + else if(event.text.codepoint >= 32 || (event.text.codepoint == '\t' && !single_line_edit)) stringToAdd.assign(event.text.str, event.text.size); else return; @@ -1091,7 +1263,14 @@ namespace QuickMedia str.insert(str_index, stringToAdd); } - caretIndex += utf8_get_length(stringToAdd); + std::vector<TextElement> new_text_elements; + split_text_by_type(new_text_elements, stringToAdd); + for(auto &text_element : new_text_elements) { + if(text_element.type == TextElement::Type::IMAGE || text_element.text_type == TextElement::TextType::EMOJI) + caretIndex += 1; + else + caretIndex += text_element.text_num_bytes; + } dirty = true; dirtyText = true; dirtyCaret = true; @@ -1135,11 +1314,56 @@ namespace QuickMedia target.draw(vertex_buffers[i]); } - if(vertex_buffers[FONT_INDEX_EMOJI].size() > 0) { + /*if(vertex_buffers[FONT_INDEX_EMOJI].size() > 0) { vertex_buffers[FONT_INDEX_EMOJI].set_texture(TextureLoader::get_texture("images/emoji.png", true)); vertex_buffers[FONT_INDEX_EMOJI].set_position(pos); target.draw(vertex_buffers[FONT_INDEX_EMOJI]); + }*/ + + // TODO: Use a new vector with only the image data instead of this. + // TODO: Sprite + mgl::Sprite sprite; + for(const TextElement &textElement : textElements) { + if(textElement.text_type == TextElement::TextType::EMOJI) { + auto emoji_data = AsyncImageLoader::get_instance().get_thumbnail(textElement.url, textElement.local, { (int)vspace, (int)vspace }); + if(emoji_data->loading_state == LoadingState::FINISHED_LOADING) { + if(!emoji_data->texture.load_from_image(*emoji_data->image)) + fprintf(stderr, "Warning: failed to load text emoji: %s\n", textElement.url.c_str()); + emoji_data->image.reset(); + emoji_data->loading_state = LoadingState::APPLIED_TO_TEXTURE; + } + + if(emoji_data->loading_state == LoadingState::APPLIED_TO_TEXTURE) { + sprite.set_texture(&emoji_data->texture); + sprite.set_position(pos + textElement.pos.to_vec2f()); + sprite.set_size(textElement.size.to_vec2f()); + target.draw(sprite); + } + } + } + + // TODO: Use a new vector with only the image data instead of this. + // TODO: Sprite + #if 0 + for(const TextElement &textElement : textElements) { + if(textElement.type == TextElement::Type::IMAGE) { + auto thumbnail_data = AsyncImageLoader::get_instance().get_thumbnail(textElement.url, textElement.local, textElement.size); + if(thumbnail_data->loading_state == LoadingState::FINISHED_LOADING && thumbnail_data->image->get_size().x > 0 && thumbnail_data->image->get_size().y > 0) { + if(!thumbnail_data->texture.load_from_image(*thumbnail_data->image)) + fprintf(stderr, "Warning: failed to load text image: %s\n", textElement.url.c_str()); + thumbnail_data->image.reset(); + thumbnail_data->loading_state = LoadingState::APPLIED_TO_TEXTURE; + } + + if(thumbnail_data->loading_state == LoadingState::APPLIED_TO_TEXTURE) { + sprite.set_texture(&thumbnail_data->texture); + sprite.set_position(pos + textElement.pos.to_vec2f()); + sprite.set_size(textElement.size.to_vec2f()); + target.draw(sprite); + } + } } + #endif if(!editable) return true; pos.y -= floor(vspace*1.25f); diff --git a/src/plugins/Youtube.cpp b/src/plugins/Youtube.cpp index 23e95c6..d3d498e 100644 --- a/src/plugins/Youtube.cpp +++ b/src/plugins/Youtube.cpp @@ -1139,7 +1139,9 @@ namespace QuickMedia { PluginResult YoutubeCommentsPage::submit(const SubmitArgs &args, std::vector<Tab> &result_tabs) { if(args.url.empty()) return PluginResult::OK; - result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url), nullptr}); + + const BodyItem *body_item = (BodyItem*)args.userdata; + result_tabs.push_back(Tab{create_body(), std::make_unique<YoutubeCommentRepliesPage>(program, video_url, args.url, body_item), nullptr}); return PluginResult::OK; } @@ -1266,6 +1268,7 @@ namespace QuickMedia { } body_item->set_description(std::move(description)); + body_item->userdata = body_item.get(); return body_item; } @@ -1458,7 +1461,7 @@ namespace QuickMedia { PluginResult YoutubeCommentRepliesPage::get_page(const std::string&, int page, BodyItems &result_items) { while(current_page < page) { - PluginResult plugin_result = lazy_fetch(result_items); + PluginResult plugin_result = lazy_fetch(result_items, false); if(plugin_result != PluginResult::OK) return plugin_result; ++current_page; } @@ -1470,6 +1473,16 @@ namespace QuickMedia { } PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items) { + return lazy_fetch(result_items, true); + } + + PluginResult YoutubeCommentRepliesPage::lazy_fetch(BodyItems &result_items, bool first_fetch) { + if(first_fetch) { + auto body_item = BodyItem::create(""); + *body_item = *replied_to_body_item; + body_item->set_author("(OP) " + body_item->get_author()); + result_items.push_back(std::move(body_item)); + } return fetch_comments(this, video_url, continuation_token, result_items); } diff --git a/tests/main.cpp b/tests/main.cpp index 01f91a3..41ef45d 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -1,6 +1,8 @@ #include <stdio.h> +#include <string.h> #include "../include/NetUtils.hpp" -#include "../plugins/EpisodeNameParser.hpp" +#include "../plugins/utils/EpisodeNameParser.hpp" +#include "../generated/Emoji.hpp" #define assert_fail(str) do { fprintf(stderr, "Assert failed on line %d, reason: %s\n", __LINE__, (str)); exit(1); } while(0) #define assert_equals(a, b) do { if((a) != (b)) { fprintf(stderr, "Assert failed on line %d, %s == %s\n", __LINE__, #a, #b); exit(1); } } while(0) @@ -102,5 +104,13 @@ int main() { assert_equals(name_parts4->season, "Yuukaku-hen"); assert_equals(name_parts4->episode, "11"); + uint32_t emoji_sequence[32]; + size_t emoji_sequence_length = 0; + size_t emoji_sequence_byte_length = 0; + const char *emoji = "\xF0\x9F\x8F\xB4\xE2\x80\x8D\xE2\x98\xA0\xEF\xB8\x8F"; + assert_equals(match_emoji_sequence((const unsigned char*)emoji, strlen(emoji), emoji_sequence, emoji_sequence_length, emoji_sequence_byte_length), true); + assert_equals(emoji_sequence_length, 4); + assert_equals(emoji_sequence_byte_length, 13); + return 0; } |