<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[58188] trunk: Introduce Token Map: An optimized static translation class.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/58188">58188</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/58188","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>dmsnell</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-05-23 19:54:17 +0000 (Thu, 23 May 2024)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Introduce Token Map: An optimized static translation class.
This patch introduces a new class: `WP_Token_Map`, designed for efficient
lookup and translation of static mappings between string keys or tokens, and
string replacements (for example, HTML character references).
The Token Map imposes certain restrictions on the byte length of the lookup
tokens and their replacements, but is a highly-optimized data structure for
mappings with a very high number of tokens.
Developed in https://github.com/WordPress/wordpress-develop/pull/5373
Discussed in https://core.trac.wordpress.org/ticket/60698
Fixes <a href="https://core.trac.wordpress.org/ticket/60698">#60698</a>.
Props: dmsnell, gziolo, jonsurrell, jorbin.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpsettingsphp">trunk/src/wp-settings.php</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesclasswptokenmapphp">trunk/src/wp-includes/class-wp-token-map.php</a></li>
<li><a href="#trunksrcwpincludeshtmlapihtml5namedcharacterreferencesphp">trunk/src/wp-includes/html-api/html5-named-character-references.php</a></li>
<li>trunk/tests/phpunit/data/html5-entities/</li>
<li><a href="#trunktestsphpunitdatahtml5entitiesREADMEmd">trunk/tests/phpunit/data/html5-entities/README.md</a></li>
<li><a href="#trunktestsphpunitdatahtml5entitiesentitiesjson">trunk/tests/phpunit/data/html5-entities/entities.json</a></li>
<li><a href="#trunktestsphpunitdatahtml5entitiesgeneratehtml5namedcharacterreferencesphp">trunk/tests/phpunit/data/html5-entities/generate-html5-named-character-references.php</a></li>
<li>trunk/tests/phpunit/tests/wp-token-map/</li>
<li><a href="#trunktestsphpunittestswptokenmapwpTokenMapphp">trunk/tests/phpunit/tests/wp-token-map/wpTokenMap.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesclasswptokenmapphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-includes/class-wp-token-map.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-wp-token-map.php (rev 0)
+++ trunk/src/wp-includes/class-wp-token-map.php 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,818 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+/**
+ * Class for efficiently looking up and mapping string keys to string values, with limits.
+ *
+ * @package WordPress
+ * @since 6.6.0
+ */
+
+/**
+ * WP_Token_Map class.
+ *
+ * Use this class in specific circumstances with a static set of lookup keys which map to
+ * a static set of transformed values. For example, this class is used to map HTML named
+ * character references to their equivalent UTF-8 values.
+ *
+ * This class works differently than code calling `in_array()` and other methods. It
+ * internalizes lookup logic and provides helper interfaces to optimize lookup and
+ * transformation. It provides a method for precomputing the lookup tables and storing
+ * them as PHP source code.
+ *
+ * All tokens and substitutions must be shorter than 256 bytes.
+ *
+ * Example:
+ *
+ * $smilies = WP_Token_Map::from_array( array(
+ * '8O' => '😯',
+ * ':(' => '🙁',
+ * ':)' => '🙂',
+ * ':?' => '😕',
+ * ) );
+ *
+ * true === $smilies->contains( ':)' );
+ * false === $smilies->contains( 'simile' );
+ *
+ * '😕' === $smilies->read_token( 'Not sure :?.', 9, $length_of_smily_syntax );
+ * 2 === $length_of_smily_syntax;
+ *
+ * ## Precomputing the Token Map.
+ *
+ * Creating the class involves some work sorting and organizing the tokens and their
+ * replacement values. In order to skip this, it's possible for the class to export
+ * its state and be used as actual PHP source code.
+ *
+ * Example:
+ *
+ * // Export with four spaces as the indent, only for the sake of this docblock.
+ * // The default indent is a tab character.
+ * $indent = ' ';
+ * echo $smilies->precomputed_php_source_table( $indent );
+ *
+ * // Output, to be pasted into a PHP source file:
+ * WP_Token_Map::from_precomputed_table(
+ * array(
+ * "storage_version" => "6.6.0",
+ * "key_length" => 2,
+ * "groups" => "",
+ * "long_words" => array(),
+ * "small_words" => "8O\x00:)\x00:(\x00:?\x00",
+ * "small_mappings" => array( "😯", "🙂", "🙁", "😕" )
+ * )
+ * );
+ *
+ * ## Large vs. small words.
+ *
+ * This class uses a short prefix called the "key" to optimize lookup of its tokens.
+ * This means that some tokens may be shorter than or equal in length to that key.
+ * Those words that are longer than the key are called "large" while those shorter
+ * than or equal to the key length are called "small."
+ *
+ * This separation of large and small words is incidental to the way this class
+ * optimizes lookup, and should be considered an internal implementation detail
+ * of the class. It may still be important to be aware of it, however.
+ *
+ * ## Determining Key Length.
+ *
+ * The choice of the size of the key length should be based on the data being stored in
+ * the token map. It should divide the data as evenly as possible, but should not create
+ * so many groups that a large fraction of the groups only contain a single token.
+ *
+ * For the HTML5 named character references, a key length of 2 was found to provide a
+ * sufficient spread and should be a good default for relatively large sets of tokens.
+ *
+ * However, for some data sets this might be too long. For example, a list of smilies
+ * may be too small for a key length of 2. Perhaps 1 would be more appropriate. It's
+ * best to experiment and determine empirically which values are appropriate.
+ *
+ * ## Generate Pre-Computed Source Code.
+ *
+ * Since the `WP_Token_Map` is designed for relatively static lookups, it can be
+ * advantageous to precompute the values and instantiate a table that has already
+ * sorted and grouped the tokens and built the lookup strings.
+ *
+ * This can be done with `WP_Token_Map::precomputed_php_source_table()`.
+ *
+ * Note that if there is a leading character that all tokens need, such as `&` for
+ * HTML named character references, it can be beneficial to exclude this from the
+ * token map. Instead, find occurrences of the leading character and then use the
+ * token map to see if the following characters complete the token.
+ *
+ * Example:
+ *
+ * $map = WP_Token_Map::from_array( array( 'simple_smile:' => '🙂', 'sob:' => '😭', 'soba:' => '🍜' ) );
+ * echo $map->precomputed_php_source_table();
+ * // Output
+ * WP_Token_Map::from_precomputed_table(
+ * array(
+ * "storage_version" => "6.6.0",
+ * "key_length" => 2,
+ * "groups" => "si\x00so\x00",
+ * "long_words" => array(
+ * // simple_smile:[🙂].
+ * "\x0bmple_smile:\x04🙂",
+ * // soba:[🍜] sob:[😭].
+ * "\x03ba:\x04🍜\x02b:\x04😭",
+ * ),
+ * "short_words" => "",
+ * "short_mappings" => array()
+ * }
+ * );
+ *
+ * This precomputed value can be stored directly in source code and will skip the
+ * startup cost of generating the lookup strings. See `$html5_named_character_entities`.
+ *
+ * Note that any updates to the precomputed format should update the storage version
+ * constant. It would also be best to provide an update function to take older known
+ * versions and upgrade them in place when loading into `from_precomputed_table()`.
+ *
+ * ## Future Direction.
+ *
+ * It may be viable to dynamically increase the length limits such that there's no need to impose them.
+ * The limit appears because of the packing structure, which indicates how many bytes each segment of
+ * text in the lookup tables spans. If, however, care were taken to track the longest word length, then
+ * the packing structure could change its representation to allow for that. Each additional byte storing
+ * length, however, increases the memory overhead and lookup runtime.
+ *
+ * An alternative approach could be to borrow the UTF-8 variable-length encoding and store lengths of less
+ * than 127 as a single byte with the high bit unset, storing longer lengths as the combination of
+ * continuation bytes.
+ *
+ * Since it has not been shown during the development of this class that longer strings are required, this
+ * update is deferred until such a need is clear.
+ *
+ * @since 6.6.0
+ */
+class WP_Token_Map {
+ /**
+ * Denotes the version of the code which produces pre-computed source tables.
+ *
+ * This version will be used not only to verify pre-computed data, but also
+ * to upgrade pre-computed data from older versions. Choosing a name that
+ * corresponds to the WordPress release will help people identify where an
+ * old copy of data came from.
+ */
+ const STORAGE_VERSION = '6.6.0-trunk';
+
+ /**
+ * Maximum length for each key and each transformed value in the table (in bytes).
+ *
+ * @since 6.6.0
+ */
+ const MAX_LENGTH = 256;
+
+ /**
+ * How many bytes of each key are used to form a group key for lookup.
+ * This also determines whether a word is considered short or long.
+ *
+ * @since 6.6.0
+ *
+ * @var int
+ */
+ private $key_length = 2;
+
+ /**
+ * Stores an optimized form of the word set, where words are grouped
+ * by a prefix of the `$key_length` and then collapsed into a string.
+ *
+ * In each group, the keys and lookups form a packed data structure.
+ * The keys in the string are stripped of their "group key," which is
+ * the prefix of length `$this->key_length` shared by all of the items
+ * in the group. Each word in the string is prefixed by a single byte
+ * whose raw unsigned integer value represents how many bytes follow.
+ *
+ * ┌────────────────┬───────────────┬─────────────────┬────────┐
+ * │ Length of rest │ Rest of key │ Length of value │ Value │
+ * │ of key (bytes) │ │ (bytes) │ │
+ * ├────────────────┼───────────────┼─────────────────┼────────┤
+ * │ 0x08 │ nterDot; │ 0x02 │ · │
+ * └────────────────┴───────────────┴─────────────────┴────────┘
+ *
+ * In this example, the key `CenterDot;` has a group key `Ce`, leaving
+ * eight bytes for the rest of the key, `nterDot;`, and two bytes for
+ * the transformed value `·` (or U+B7 or "\xC2\xB7").
+ *
+ * Example:
+ *
+ * // Stores array( 'CenterDot;' => '·', 'Cedilla;' => '¸' ).
+ * $groups = "Ce\x00";
+ * $large_words = array( "\x08nterDot;\x02·\x06dilla;\x02¸" )
+ *
+ * The prefixes appear in the `$groups` string, each followed by a null
+ * byte. This makes for quick lookup of where in the group string the key
+ * is found, and then a simple division converts that offset into the index
+ * in the `$large_words` array where the group string is to be found.
+ *
+ * This lookup data structure is designed to optimize cache locality and
+ * minimize indirect memory reads when matching strings in the set.
+ *
+ * @since 6.6.0
+ *
+ * @var array
+ */
+ private $large_words = array();
+
+ /**
+ * Stores the group keys for sequential string lookup.
+ *
+ * The offset into this string where the group key appears corresponds with the index
+ * into the group array where the rest of the group string appears. This is an optimization
+ * to improve cache locality while searching and minimize indirect memory accesses.
+ *
+ * @since 6.6.0
+ *
+ * @var string
+ */
+ private $groups = '';
+
+ /**
+ * Stores an optimized row of small words, where every entry is
+ * `$this->key_size + 1` bytes long and zero-extended.
+ *
+ * This packing allows for direct lookup of a short word followed
+ * by the null byte, if extended to `$this->key_size + 1`.
+ *
+ * Example:
+ *
+ * // Stores array( 'GT', 'LT', 'gt', 'lt' ).
+ * "GT\x00LT\x00gt\x00lt\x00"
+ *
+ * @since 6.6.0
+ *
+ * @var string
+ */
+ private $small_words = '';
+
+ /**
+ * Replacements for the small words, in the same order they appear.
+ *
+ * With the position of a small word it's possible to index the translation
+ * directly, as its position in the `$small_words` string corresponds to
+ * the index of the replacement in the `$small_mapping` array.
+ *
+ * Example:
+ *
+ * array( '>', '<', '>', '<' )
+ *
+ * @since 6.6.0
+ *
+ * @var string[]
+ */
+ private $small_mappings = array();
+
+ /**
+ * Create a token map using an associative array of key/value pairs as the input.
+ *
+ * Example:
+ *
+ * $smilies = WP_Token_Map::from_array( array(
+ * '8O' => '😯',
+ * ':(' => '🙁',
+ * ':)' => '🙂',
+ * ':?' => '😕',
+ * ) );
+ *
+ * @since 6.6.0
+ *
+ * @param array $mappings The keys transform into the values, both are strings.
+ * @param int $key_length Determines the group key length. Leave at the default value
+ * of 2 unless there's an empirical reason to change it.
+ *
+ * @return WP_Token_Map|null Token map, unless unable to create it.
+ */
+ public static function from_array( $mappings, $key_length = 2 ) {
+ $map = new WP_Token_Map();
+ $map->key_length = $key_length;
+
+ // Start by grouping words.
+
+ $groups = array();
+ $shorts = array();
+ foreach ( $mappings as $word => $mapping ) {
+ if (
+ self::MAX_LENGTH <= strlen( $word ) ||
+ self::MAX_LENGTH <= strlen( $mapping )
+ ) {
+ _doing_it_wrong(
+ __METHOD__,
+ sprintf(
+ /* translators: 1: maximum byte length (a count) */
+ __( 'Token Map tokens and substitutions must all be shorter than %1$d bytes.' ),
+ self::MAX_LENGTH
+ ),
+ '6.6.0'
+ );
+ return null;
+ }
+
+ $length = strlen( $word );
+
+ if ( $key_length >= $length ) {
+ $shorts[] = $word;
+ } else {
+ $group = substr( $word, 0, $key_length );
+
+ if ( ! isset( $groups[ $group ] ) ) {
+ $groups[ $group ] = array();
+ }
+
+ $groups[ $group ][] = array( substr( $word, $key_length ), $mapping );
+ }
+ }
+
+ /*
+ * Sort the words to ensure that no smaller substring of a match masks the full match.
+ * For example, `Cap` should not match before `CapitalDifferentialD`.
+ */
+ usort( $shorts, 'WP_Token_Map::longest_first_then_alphabetical' );
+ foreach ( $groups as $group_key => $group ) {
+ usort(
+ $groups[ $group_key ],
+ static function ( $a, $b ) {
+ return self::longest_first_then_alphabetical( $a[0], $b[0] );
+ }
+ );
+ }
+
+ // Finally construct the optimized lookups.
+
+ foreach ( $shorts as $word ) {
+ $map->small_words .= str_pad( $word, $key_length + 1, "\x00", STR_PAD_RIGHT );
+ $map->small_mappings[] = $mappings[ $word ];
+ }
+
+ $group_keys = array_keys( $groups );
+ sort( $group_keys );
+
+ foreach ( $group_keys as $group ) {
+ $map->groups .= "{$group}\x00";
+
+ $group_string = '';
+
+ foreach ( $groups[ $group ] as $group_word ) {
+ list( $word, $mapping ) = $group_word;
+
+ $word_length = pack( 'C', strlen( $word ) );
+ $mapping_length = pack( 'C', strlen( $mapping ) );
+ $group_string .= "{$word_length}{$word}{$mapping_length}{$mapping}";
+ }
+
+ $map->large_words[] = $group_string;
+ }
+
+ return $map;
+ }
+
+ /**
+ * Creates a token map from a pre-computed table.
+ * This skips the initialization cost of generating the table.
+ *
+ * This function should only be used to load data created with
+ * WP_Token_Map::precomputed_php_source_tag().
+ *
+ * @since 6.6.0
+ *
+ * @param array $state {
+ * Stores pre-computed state for directly loading into a Token Map.
+ *
+ * @type string $storage_version Which version of the code produced this state.
+ * @type int $key_length Group key length.
+ * @type string $groups Group lookup index.
+ * @type array $large_words Large word groups and packed strings.
+ * @type string $small_words Small words packed string.
+ * @type array $small_mappings Small word mappings.
+ * }
+ *
+ * @return WP_Token_Map Map with precomputed data loaded.
+ */
+ public static function from_precomputed_table( $state ) {
+ $has_necessary_state = isset(
+ $state['storage_version'],
+ $state['key_length'],
+ $state['groups'],
+ $state['large_words'],
+ $state['small_words'],
+ $state['small_mappings']
+ );
+
+ if ( ! $has_necessary_state ) {
+ _doing_it_wrong(
+ __METHOD__,
+ __( 'Missing required inputs to pre-computed WP_Token_Map.' ),
+ '6.6.0'
+ );
+ return null;
+ }
+
+ if ( self::STORAGE_VERSION !== $state['storage_version'] ) {
+ _doing_it_wrong(
+ __METHOD__,
+ /* translators: 1: version string, 2: version string. */
+ sprintf( __( 'Loaded version \'%1$s\' incompatible with expected version \'%2$s\'.' ), $state['storage_version'], self::STORAGE_VERSION ),
+ '6.6.0'
+ );
+ return null;
+ }
+
+ $map = new WP_Token_Map();
+
+ $map->key_length = $state['key_length'];
+ $map->groups = $state['groups'];
+ $map->large_words = $state['large_words'];
+ $map->small_words = $state['small_words'];
+ $map->small_mappings = $state['small_mappings'];
+
+ return $map;
+ }
+
+ /**
+ * Indicates if a given word is a lookup key in the map.
+ *
+ * Example:
+ *
+ * true === $smilies->contains( ':)' );
+ * false === $smilies->contains( 'simile' );
+ *
+ * @since 6.6.0
+ *
+ * @param string $word Determine if this word is a lookup key in the map.
+ * @param ?string $case_sensitivity 'ascii-case-insensitive' to ignore ASCII case or default of 'case-sensitive'.
+ * @return bool Whether there's an entry for the given word in the map.
+ */
+ public function contains( $word, $case_sensitivity = 'case-sensitive' ) {
+ $ignore_case = 'ascii-case-insensitive' === $case_sensitivity;
+
+ if ( $this->key_length >= strlen( $word ) ) {
+ if ( 0 === strlen( $this->small_words ) ) {
+ return false;
+ }
+
+ $term = str_pad( $word, $this->key_length + 1, "\x00", STR_PAD_RIGHT );
+ $word_at = $ignore_case ? stripos( $this->small_words, $term ) : strpos( $this->small_words, $term );
+ if ( false === $word_at ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ $group_key = substr( $word, 0, $this->key_length );
+ $group_at = $ignore_case ? stripos( $this->groups, $group_key ) : strpos( $this->groups, $group_key );
+ if ( false === $group_at ) {
+ return false;
+ }
+ $group = $this->large_words[ $group_at / ( $this->key_length + 1 ) ];
+ $group_length = strlen( $group );
+ $slug = substr( $word, $this->key_length );
+ $length = strlen( $slug );
+ $at = 0;
+
+ while ( $at < $group_length ) {
+ $token_length = unpack( 'C', $group[ $at++ ] )[1];
+ $token_at = $at;
+ $at += $token_length;
+ $mapping_length = unpack( 'C', $group[ $at++ ] )[1];
+ $mapping_at = $at;
+
+ if ( $token_length === $length && 0 === substr_compare( $group, $slug, $token_at, $token_length, $ignore_case ) ) {
+ return true;
+ }
+
+ $at = $mapping_at + $mapping_length;
+ }
+
+ return false;
+ }
+
+ /**
+ * If the text starting at a given offset is a lookup key in the map,
+ * return the corresponding transformation from the map, else `false`.
+ *
+ * This function returns the translated string, but accepts an optional
+ * parameter `$matched_token_byte_length`, which communicates how many
+ * bytes long the lookup key was, if it found one. This can be used to
+ * advance a cursor in calling code if a lookup key was found.
+ *
+ * Example:
+ *
+ * false === $smilies->read_token( 'Not sure :?.', 0, $token_byte_length );
+ * '😕' === $smilies->read_token( 'Not sure :?.', 9, $token_byte_length );
+ * 2 === $token_byte_length;
+ *
+ * Example:
+ *
+ * while ( $at < strlen( $input ) ) {
+ * $next_at = strpos( $input, ':', $at );
+ * if ( false === $next_at ) {
+ * break;
+ * }
+ *
+ * $smily = $smilies->read_token( $input, $next_at, $token_byte_length );
+ * if ( false === $next_at ) {
+ * ++$at;
+ * continue;
+ * }
+ *
+ * $prefix = substr( $input, $at, $next_at - $at );
+ * $at += $token_byte_length;
+ * $output .= "{$prefix}{$smily}";
+ * }
+ *
+ * @since 6.6.0
+ *
+ * @param string $text String in which to search for a lookup key.
+ * @param ?int $offset How many bytes into the string where the lookup key ought to start.
+ * @param ?int &$matched_token_byte_length Holds byte-length of found token matched, otherwise not set.
+ * @param ?string $case_sensitivity 'ascii-case-insensitive' to ignore ASCII case or default of 'case-sensitive'.
+ * @return string|false Mapped value of lookup key if found, otherwise `false`.
+ */
+ public function read_token( $text, $offset = 0, &$matched_token_byte_length = null, $case_sensitivity = 'case-sensitive' ) {
+ $ignore_case = 'ascii-case-insensitive' === $case_sensitivity;
+ $text_length = strlen( $text );
+
+ // Search for a long word first, if the text is long enough, and if that fails, a short one.
+ if ( $text_length > $this->key_length ) {
+ $group_key = substr( $text, $offset, $this->key_length );
+
+ $group_at = $ignore_case ? stripos( $this->groups, $group_key ) : strpos( $this->groups, $group_key );
+ if ( false === $group_at ) {
+ // Perhaps a short word then.
+ return strlen( $this->small_words ) > 0
+ ? $this->read_small_token( $text, $offset, $matched_token_byte_length, $case_sensitivity )
+ : false;
+ }
+
+ $group = $this->large_words[ $group_at / ( $this->key_length + 1 ) ];
+ $group_length = strlen( $group );
+ $at = 0;
+ while ( $at < $group_length ) {
+ $token_length = unpack( 'C', $group[ $at++ ] )[1];
+ $token = substr( $group, $at, $token_length );
+ $at += $token_length;
+ $mapping_length = unpack( 'C', $group[ $at++ ] )[1];
+ $mapping_at = $at;
+
+ if ( 0 === substr_compare( $text, $token, $offset + $this->key_length, $token_length, $ignore_case ) ) {
+ $matched_token_byte_length = $this->key_length + $token_length;
+ return substr( $group, $mapping_at, $mapping_length );
+ }
+
+ $at = $mapping_at + $mapping_length;
+ }
+ }
+
+ // Perhaps a short word then.
+ return strlen( $this->small_words ) > 0
+ ? $this->read_small_token( $text, $offset, $matched_token_byte_length, $case_sensitivity )
+ : false;
+ }
+
+ /**
+ * Finds a match for a short word at the index.
+ *
+ * @since 6.6.0.
+ *
+ * @param string $text String in which to search for a lookup key.
+ * @param ?int $offset How many bytes into the string where the lookup key ought to start.
+ * @param ?int &$matched_token_byte_length Holds byte-length of found lookup key if matched, otherwise not set.
+ * @param ?string $case_sensitivity 'ascii-case-insensitive' to ignore ASCII case or default of 'case-sensitive'.
+ * @return string|false Mapped value of lookup key if found, otherwise `false`.
+ */
+ private function read_small_token( $text, $offset, &$matched_token_byte_length, $case_sensitivity = 'case-sensitive' ) {
+ $ignore_case = 'ascii-case-insensitive' === $case_sensitivity;
+ $small_length = strlen( $this->small_words );
+ $search_text = substr( $text, $offset, $this->key_length );
+ if ( $ignore_case ) {
+ $search_text = strtoupper( $search_text );
+ }
+ $starting_char = $search_text[0];
+
+ $at = 0;
+ while ( $at < $small_length ) {
+ if (
+ $starting_char !== $this->small_words[ $at ] &&
+ ( ! $ignore_case || strtoupper( $this->small_words[ $at ] ) !== $starting_char )
+ ) {
+ $at += $this->key_length + 1;
+ continue;
+ }
+
+ for ( $adjust = 1; $adjust < $this->key_length; $adjust++ ) {
+ if ( "\x00" === $this->small_words[ $at + $adjust ] ) {
+ $matched_token_byte_length = $adjust;
+ return $this->small_mappings[ $at / ( $this->key_length + 1 ) ];
+ }
+
+ if (
+ $search_text[ $adjust ] !== $this->small_words[ $at + $adjust ] &&
+ ( ! $ignore_case || strtoupper( $this->small_words[ $at + $adjust ] !== $search_text[ $adjust ] ) )
+ ) {
+ $at += $this->key_length + 1;
+ continue 2;
+ }
+ }
+
+ $matched_token_byte_length = $adjust;
+ return $this->small_mappings[ $at / ( $this->key_length + 1 ) ];
+ }
+
+ return false;
+ }
+
+ /**
+ * Exports the token map into an associate array of key/value pairs.
+ *
+ * Example:
+ *
+ * $smilies->to_array() === array(
+ * '8O' => '😯',
+ * ':(' => '🙁',
+ * ':)' => '🙂',
+ * ':?' => '😕',
+ * );
+ *
+ * @return array The lookup key/substitution values as an associate array.
+ */
+ public function to_array() {
+ $tokens = array();
+
+ $at = 0;
+ $small_mapping = 0;
+ $small_length = strlen( $this->small_words );
+ while ( $at < $small_length ) {
+ $key = rtrim( substr( $this->small_words, $at, $this->key_length + 1 ), "\x00" );
+ $value = $this->small_mappings[ $small_mapping++ ];
+ $tokens[ $key ] = $value;
+
+ $at += $this->key_length + 1;
+ }
+
+ foreach ( $this->large_words as $index => $group ) {
+ $prefix = substr( $this->groups, $index * ( $this->key_length + 1 ), 2 );
+ $group_length = strlen( $group );
+ $at = 0;
+ while ( $at < $group_length ) {
+ $length = unpack( 'C', $group[ $at++ ] )[1];
+ $key = $prefix . substr( $group, $at, $length );
+
+ $at += $length;
+ $length = unpack( 'C', $group[ $at++ ] )[1];
+ $value = substr( $group, $at, $length );
+
+ $tokens[ $key ] = $value;
+ $at += $length;
+ }
+ }
+
+ return $tokens;
+ }
+
+ /**
+ * Export the token map for quick loading in PHP source code.
+ *
+ * This function has a specific purpose, to make loading of static token maps fast.
+ * It's used to ensure that the HTML character reference lookups add a minimal cost
+ * to initializing the PHP process.
+ *
+ * Example:
+ *
+ * echo $smilies->precomputed_php_source_table();
+ *
+ * // Output.
+ * WP_Token_Map::from_precomputed_table(
+ * array(
+ * "storage_version" => "6.6.0",
+ * "key_length" => 2,
+ * "groups" => "",
+ * "long_words" => array(),
+ * "small_words" => "8O\x00:)\x00:(\x00:?\x00",
+ * "small_mappings" => array( "😯", "🙂", "🙁", "😕" )
+ * )
+ * );
+ *
+ * @since 6.6.0
+ *
+ * @param ?string $indent Use this string for indentation, or rely on the default horizontal tab character.
+ * @return string Value which can be pasted into a PHP source file for quick loading of table.
+ */
+ public function precomputed_php_source_table( $indent = "\t" ) {
+ $i1 = $indent;
+ $i2 = $i1 . $indent;
+ $i3 = $i2 . $indent;
+
+ $class_version = self::STORAGE_VERSION;
+
+ $output = self::class . "::from_precomputed_table(\n";
+ $output .= "{$i1}array(\n";
+ $output .= "{$i2}\"storage_version\" => \"{$class_version}\",\n";
+ $output .= "{$i2}\"key_length\" => {$this->key_length},\n";
+
+ $group_line = str_replace( "\x00", "\\x00", $this->groups );
+ $output .= "{$i2}\"groups\" => \"{$group_line}\",\n";
+
+ $output .= "{$i2}\"large_words\" => array(\n";
+
+ $prefixes = explode( "\x00", $this->groups );
+ foreach ( $prefixes as $index => $prefix ) {
+ if ( '' === $prefix ) {
+ break;
+ }
+ $group = $this->large_words[ $index ];
+ $group_length = strlen( $group );
+ $comment_line = "{$i3}//";
+ $data_line = "{$i3}\"";
+ $at = 0;
+ while ( $at < $group_length ) {
+ $token_length = unpack( 'C', $group[ $at++ ] )[1];
+ $token = substr( $group, $at, $token_length );
+ $at += $token_length;
+ $mapping_length = unpack( 'C', $group[ $at++ ] )[1];
+ $mapping = substr( $group, $at, $mapping_length );
+ $at += $mapping_length;
+
+ $token_digits = str_pad( dechex( $token_length ), 2, '0', STR_PAD_LEFT );
+ $mapping_digits = str_pad( dechex( $mapping_length ), 2, '0', STR_PAD_LEFT );
+
+ $mapping = preg_replace_callback(
+ "~[\\x00-\\x1f\\x22\\x5c]~",
+ static function ( $match_result ) {
+ switch ( $match_result[0] ) {
+ case '"':
+ return '\\"';
+
+ case '\\':
+ return '\\\\';
+
+ default:
+ $hex = dechex( ord( $match_result[0] ) );
+ return "\\x{$hex}";
+ }
+ },
+ $mapping
+ );
+
+ $comment_line .= " {$prefix}{$token}[{$mapping}]";
+ $data_line .= "\\x{$token_digits}{$token}\\x{$mapping_digits}{$mapping}";
+ }
+ $comment_line .= ".\n";
+ $data_line .= "\",\n";
+
+ $output .= $comment_line;
+ $output .= $data_line;
+ }
+
+ $output .= "{$i2}),\n";
+
+ $small_words = array();
+ $small_length = strlen( $this->small_words );
+ $at = 0;
+ while ( $at < $small_length ) {
+ $small_words[] = substr( $this->small_words, $at, $this->key_length + 1 );
+ $at += $this->key_length + 1;
+ }
+
+ $small_text = str_replace( "\x00", '\x00', implode( '', $small_words ) );
+ $output .= "{$i2}\"small_words\" => \"{$small_text}\",\n";
+
+ $output .= "{$i2}\"small_mappings\" => array(\n";
+ foreach ( $this->small_mappings as $mapping ) {
+ $output .= "{$i3}\"{$mapping}\",\n";
+ }
+ $output .= "{$i2})\n";
+ $output .= "{$i1})\n";
+ $output .= ')';
+
+ return $output;
+ }
+
+ /**
+ * Compares two strings, returning the longest, or whichever
+ * is first alphabetically if they are the same length.
+ *
+ * This is an important sort when building the token map because
+ * it should not form a match on a substring of a longer potential
+ * match. For example, it should not detect `Cap` when matching
+ * against the string `CapitalDifferentialD`.
+ *
+ * @since 6.6.0
+ *
+ * @param string $a First string to compare.
+ * @param string $b Second string to compare.
+ * @return int -1 or lower if `$a` is less than `$b`; 1 or greater if `$a` is greater than `$b`, and 0 if they are equal.
+ */
+ private static function longest_first_then_alphabetical( $a, $b ) {
+ if ( $a === $b ) {
+ return 0;
+ }
+
+ $length_a = strlen( $a );
+ $length_b = strlen( $b );
+
+ // Longer strings are less-than for comparison's sake.
+ if ( $length_a !== $length_b ) {
+ return $length_b - $length_a;
+ }
+
+ return strcmp( $a, $b );
+ }
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/wp-includes/class-wp-token-map.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunksrcwpincludeshtmlapihtml5namedcharacterreferencesphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/src/wp-includes/html-api/html5-named-character-references.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/html-api/html5-named-character-references.php (rev 0)
+++ trunk/src/wp-includes/html-api/html5-named-character-references.php 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,1313 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+/**
+ * Auto-generated class for looking up HTML named character references.
+ *
+ * ⚠️ !!! THIS ENTIRE FILE IS AUTOMATICALLY GENERATED !!! ⚠️
+ * Do not modify this file directly.
+ *
+ * To regenerate, run the generation script directly.
+ *
+ * Example:
+ *
+ * php tests/phpunit/data/html5-entities/generate-html5-named-character-references.php
+ *
+ * @package WordPress
+ * @since 6.6.0
+ */
+
+// phpcs:disable
+
+global $html5_named_character_references;
+
+/**
+ * Set of named character references in the HTML5 specification.
+ *
+ * This list will never change, according to the spec. Each named
+ * character reference is case-sensitive and the presence or absence
+ * of the semicolon is significant. Without the semicolon, the rules
+ * for an ambiguous ampersand govern whether the following text is
+ * to be interpreted as a character reference or not.
+ *
+ * The list of entities is sourced directly from the WHATWG server
+ * and cached in the test directory to avoid needing to download it
+ * every time this file is updated.
+ *
+ * @link https://html.spec.whatwg.org/entities.json.
+ */
+$html5_named_character_references = WP_Token_Map::from_precomputed_table(
+ array(
+ "storage_version" => "6.6.0-trunk",
+ "key_length" => 2,
+ "groups" => "AE\x00AM\x00Aa\x00Ab\x00Ac\x00Af\x00Ag\x00Al\x00Am\x00An\x00Ao\x00Ap\x00Ar\x00As\x00At\x00Au\x00Ba\x00Bc\x00Be\x00Bf\x00Bo\x00Br\x00Bs\x00Bu\x00CH\x00CO\x00Ca\x00Cc\x00Cd\x00Ce\x00Cf\x00Ch\x00Ci\x00Cl\x00Co\x00Cr\x00Cs\x00Cu\x00DD\x00DJ\x00DS\x00DZ\x00Da\x00Dc\x00De\x00Df\x00Di\x00Do\x00Ds\x00EN\x00ET\x00Ea\x00Ec\x00Ed\x00Ef\x00Eg\x00El\x00Em\x00Eo\x00Ep\x00Eq\x00Es\x00Et\x00Eu\x00Ex\x00Fc\x00Ff\x00Fi\x00Fo\x00Fs\x00GJ\x00GT\x00Ga\x00Gb\x00Gc\x00Gd\x00Gf\x00Gg\x00Go\x00Gr\x00Gs\x00Gt\x00HA\x00Ha\x00Hc\x00Hf\x00Hi\x00Ho\x00Hs\x00Hu\x00IE\x00IJ\x00IO\x00Ia\x00Ic\x00Id\x00If\x00Ig\x00Im\x00In\x00Io\x00Is\x00It\x00Iu\x00Jc\x00Jf\x00Jo\x00Js\x00Ju\x00KH\x00KJ\x00Ka\x00Kc\x00Kf\x00Ko\x00Ks\x00LJ\x00LT\x00La\x00Lc\x00Le\x00Lf\x00Ll\x00Lm\x00Lo\x00Ls\x00Lt\x00Ma\x00Mc\x00Me\x00Mf\x00Mi\x00Mo\x00Ms\x00Mu\x00NJ\x00Na\x00Nc\x00Ne\x00Nf\x00No\x00Ns\x00Nt\x00Nu\x00OE\x00Oa\x00Oc\x00Od\x00Of\x00Og\x00Om\x00Oo\x00Op\x00Or\x00Os\x00Ot\x00Ou\x00Ov\x00Pa\x00Pc\x00Pf\x
00Ph\x00Pi\x00Pl\x00Po\x00Pr\x00Ps\x00QU\x00Qf\x00Qo\x00Qs\x00RB\x00RE\x00Ra\x00Rc\x00Re\x00Rf\x00Rh\x00Ri\x00Ro\x00Rr\x00Rs\x00Ru\x00SH\x00SO\x00Sa\x00Sc\x00Sf\x00Sh\x00Si\x00Sm\x00So\x00Sq\x00Ss\x00St\x00Su\x00TH\x00TR\x00TS\x00Ta\x00Tc\x00Tf\x00Th\x00Ti\x00To\x00Tr\x00Ts\x00Ua\x00Ub\x00Uc\x00Ud\x00Uf\x00Ug\x00Um\x00Un\x00Uo\x00Up\x00Ur\x00Us\x00Ut\x00Uu\x00VD\x00Vb\x00Vc\x00Vd\x00Ve\x00Vf\x00Vo\x00Vs\x00Vv\x00Wc\x00We\x00Wf\x00Wo\x00Ws\x00Xf\x00Xi\x00Xo\x00Xs\x00YA\x00YI\x00YU\x00Ya\x00Yc\x00Yf\x00Yo\x00Ys\x00Yu\x00ZH\x00Za\x00Zc\x00Zd\x00Ze\x00Zf\x00Zo\x00Zs\x00aa\x00ab\x00ac\x00ae\x00af\x00ag\x00al\x00am\x00an\x00ao\x00ap\x00ar\x00as\x00at\x00au\x00aw\x00bN\x00ba\x00bb\x00bc\x00bd\x00be\x00bf\x00bi\x00bk\x00bl\x00bn\x00bo\x00bp\x00br\x00bs\x00bu\x00ca\x00cc\x00cd\x00ce\x00cf\x00ch\x00ci\x00cl\x00co\x00cr\x00cs\x00ct\x00cu\x00cw\x00cy\x00dA\x00dH\x00da\x00db\x00dc\x00dd\x00de\x00df\x00dh\x00di\x00dj\x00dl\x00do\x00dr\x00ds\x00dt\x00du\x00dw\x00dz\x00eD\x00ea\x00ec\x00ed\x00ee\x0
0ef\x00eg\x00el\x00em\x00en\x00eo\x00ep\x00eq\x00er\x00es\x00et\x00eu\x00ex\x00fa\x00fc\x00fe\x00ff\x00fi\x00fj\x00fl\x00fn\x00fo\x00fp\x00fr\x00fs\x00gE\x00ga\x00gb\x00gc\x00gd\x00ge\x00gf\x00gg\x00gi\x00gj\x00gl\x00gn\x00go\x00gr\x00gs\x00gt\x00gv\x00hA\x00ha\x00hb\x00hc\x00he\x00hf\x00hk\x00ho\x00hs\x00hy\x00ia\x00ic\x00ie\x00if\x00ig\x00ii\x00ij\x00im\x00in\x00io\x00ip\x00iq\x00is\x00it\x00iu\x00jc\x00jf\x00jm\x00jo\x00js\x00ju\x00ka\x00kc\x00kf\x00kg\x00kh\x00kj\x00ko\x00ks\x00lA\x00lB\x00lE\x00lH\x00la\x00lb\x00lc\x00ld\x00le\x00lf\x00lg\x00lh\x00lj\x00ll\x00lm\x00ln\x00lo\x00lp\x00lr\x00ls\x00lt\x00lu\x00lv\x00mD\x00ma\x00mc\x00md\x00me\x00mf\x00mh\x00mi\x00ml\x00mn\x00mo\x00mp\x00ms\x00mu\x00nG\x00nL\x00nR\x00nV\x00na\x00nb\x00nc\x00nd\x00ne\x00nf\x00ng\x00nh\x00ni\x00nj\x00nl\x00nm\x00no\x00np\x00nr\x00ns\x00nt\x00nu\x00nv\x00nw\x00oS\x00oa\x00oc\x00od\x00oe\x00of\x00og\x00oh\x00oi\x00ol\x00om\x00oo\x00op\x00or\x00os\x00ot\x00ou\x00ov\x00pa\x00pc\x00pe\x00pf\x00ph\x00pi\x00
pl\x00pm\x00po\x00pr\x00ps\x00pu\x00qf\x00qi\x00qo\x00qp\x00qs\x00qu\x00rA\x00rB\x00rH\x00ra\x00rb\x00rc\x00rd\x00re\x00rf\x00rh\x00ri\x00rl\x00rm\x00rn\x00ro\x00rp\x00rr\x00rs\x00rt\x00ru\x00rx\x00sa\x00sb\x00sc\x00sd\x00se\x00sf\x00sh\x00si\x00sl\x00sm\x00so\x00sp\x00sq\x00sr\x00ss\x00st\x00su\x00sw\x00sz\x00ta\x00tb\x00tc\x00td\x00te\x00tf\x00th\x00ti\x00to\x00tp\x00tr\x00ts\x00tw\x00uA\x00uH\x00ua\x00ub\x00uc\x00ud\x00uf\x00ug\x00uh\x00ul\x00um\x00uo\x00up\x00ur\x00us\x00ut\x00uu\x00uw\x00vA\x00vB\x00vD\x00va\x00vc\x00vd\x00ve\x00vf\x00vl\x00vn\x00vo\x00vp\x00vr\x00vs\x00vz\x00wc\x00we\x00wf\x00wo\x00wp\x00wr\x00ws\x00xc\x00xd\x00xf\x00xh\x00xi\x00xl\x00xm\x00xn\x00xo\x00xr\x00xs\x00xu\x00xv\x00xw\x00ya\x00yc\x00ye\x00yf\x00yi\x00yo\x00ys\x00yu\x00za\x00zc\x00zd\x00ze\x00zf\x00zh\x00zi\x00zo\x00zs\x00zw\x00",
+ "large_words" => array(
+ // AElig;[Æ] AElig[Æ].
+ "\x04lig;\x02Æ\x03lig\x02Æ",
+ // AMP;[&] AMP[&].
+ "\x02P;\x01&\x01P\x01&",
+ // Aacute;[Á] Aacute[Á].
+ "\x05cute;\x02Á\x04cute\x02Á",
+ // Abreve;[Ă].
+ "\x05reve;\x02Ă",
+ // Acirc;[Â] Acirc[Â] Acy;[А].
+ "\x04irc;\x02Â\x03irc\x02Â\x02y;\x02А",
+ // Afr;[𝔄].
+ "\x02r;\x04𝔄",
+ // Agrave;[À] Agrave[À].
+ "\x05rave;\x02À\x04rave\x02À",
+ // Alpha;[Α].
+ "\x04pha;\x02Α",
+ // Amacr;[Ā].
+ "\x04acr;\x02Ā",
+ // And;[⩓].
+ "\x02d;\x03⩓",
+ // Aogon;[Ą] Aopf;[𝔸].
+ "\x04gon;\x02Ą\x03pf;\x04𝔸",
+ // ApplyFunction;[].
+ "\x0cplyFunction;\x03",
+ // Aring;[Å] Aring[Å].
+ "\x04ing;\x02Å\x03ing\x02Å",
+ // Assign;[≔] Ascr;[𝒜].
+ "\x05sign;\x03≔\x03cr;\x04𝒜",
+ // Atilde;[Ã] Atilde[Ã].
+ "\x05ilde;\x02Ã\x04ilde\x02Ã",
+ // Auml;[Ä] Auml[Ä].
+ "\x03ml;\x02Ä\x02ml\x02Ä",
+ // Backslash;[∖] Barwed;[⌆] Barv;[⫧].
+ "\x08ckslash;\x03∖\x05rwed;\x03⌆\x03rv;\x03⫧",
+ // Bcy;[Б].
+ "\x02y;\x02Б",
+ // Bernoullis;[ℬ] Because;[∵] Beta;[Β].
+ "\x09rnoullis;\x03ℬ\x06cause;\x03∵\x03ta;\x02Β",
+ // Bfr;[𝔅].
+ "\x02r;\x04𝔅",
+ // Bopf;[𝔹].
+ "\x03pf;\x04𝔹",
+ // Breve;[˘].
+ "\x04eve;\x02˘",
+ // Bscr;[ℬ].
+ "\x03cr;\x03ℬ",
+ // Bumpeq;[≎].
+ "\x05mpeq;\x03≎",
+ // CHcy;[Ч].
+ "\x03cy;\x02Ч",
+ // COPY;[©] COPY[©].
+ "\x03PY;\x02©\x02PY\x02©",
+ // CapitalDifferentialD;[ⅅ] Cayleys;[ℭ] Cacute;[Ć] Cap;[⋒].
+ "\x13pitalDifferentialD;\x03ⅅ\x06yleys;\x03ℭ\x05cute;\x02Ć\x02p;\x03⋒",
+ // Cconint;[∰] Ccaron;[Č] Ccedil;[Ç] Ccedil[Ç] Ccirc;[Ĉ].
+ "\x06onint;\x03∰\x05aron;\x02Č\x05edil;\x02Ç\x04edil\x02Ç\x04irc;\x02Ĉ",
+ // Cdot;[Ċ].
+ "\x03ot;\x02Ċ",
+ // CenterDot;[·] Cedilla;[¸].
+ "\x08nterDot;\x02·\x06dilla;\x02¸",
+ // Cfr;[ℭ].
+ "\x02r;\x03ℭ",
+ // Chi;[Χ].
+ "\x02i;\x02Χ",
+ // CircleMinus;[⊖] CircleTimes;[⊗] CirclePlus;[⊕] CircleDot;[⊙].
+ "\x0arcleMinus;\x03⊖\x0arcleTimes;\x03⊗\x09rclePlus;\x03⊕\x08rcleDot;\x03⊙",
+ // ClockwiseContourIntegral;[∲] CloseCurlyDoubleQuote;[”] CloseCurlyQuote;[’].
+ "\x17ockwiseContourIntegral;\x03∲\x14oseCurlyDoubleQuote;\x03”\x0eoseCurlyQuote;\x03’",
+ // CounterClockwiseContourIntegral;[∳] ContourIntegral;[∮] Congruent;[≡] Coproduct;[∐] Colone;[⩴] Conint;[∯] Colon;[∷] Copf;[ℂ].
+ "\x1eunterClockwiseContourIntegral;\x03∳\x0entourIntegral;\x03∮\x08ngruent;\x03≡\x08product;\x03∐\x05lone;\x03⩴\x05nint;\x03∯\x04lon;\x03∷\x03pf;\x03ℂ",
+ // Cross;[⨯].
+ "\x04oss;\x03⨯",
+ // Cscr;[𝒞].
+ "\x03cr;\x04𝒞",
+ // CupCap;[≍] Cup;[⋓].
+ "\x05pCap;\x03≍\x02p;\x03⋓",
+ // DDotrahd;[⤑] DD;[ⅅ].
+ "\x07otrahd;\x03⤑\x01;\x03ⅅ",
+ // DJcy;[Ђ].
+ "\x03cy;\x02Ђ",
+ // DScy;[Ѕ].
+ "\x03cy;\x02Ѕ",
+ // DZcy;[Џ].
+ "\x03cy;\x02Џ",
+ // Dagger;[‡] Dashv;[⫤] Darr;[↡].
+ "\x05gger;\x03‡\x04shv;\x03⫤\x03rr;\x03↡",
+ // Dcaron;[Ď] Dcy;[Д].
+ "\x05aron;\x02Ď\x02y;\x02Д",
+ // Delta;[Δ] Del;[∇].
+ "\x04lta;\x02Δ\x02l;\x03∇",
+ // Dfr;[𝔇].
+ "\x02r;\x04𝔇",
+ // DiacriticalDoubleAcute;[˝] DiacriticalAcute;[´] DiacriticalGrave;[`] DiacriticalTilde;[˜] DiacriticalDot;[˙] DifferentialD;[ⅆ] Diamond;[⋄].
+ "\x15acriticalDoubleAcute;\x02˝\x0facriticalAcute;\x02´\x0facriticalGrave;\x01`\x0facriticalTilde;\x02˜\x0dacriticalDot;\x02˙\x0cfferentialD;\x03ⅆ\x06amond;\x03⋄",
+ // DoubleLongLeftRightArrow;[⟺] DoubleContourIntegral;[∯] DoubleLeftRightArrow;[⇔] DoubleLongRightArrow;[⟹] DoubleLongLeftArrow;[⟸] DownLeftRightVector;[⥐] DownRightTeeVector;[⥟] DownRightVectorBar;[⥗] DoubleUpDownArrow;[⇕] DoubleVerticalBar;[∥] DownLeftTeeVector;[⥞] DownLeftVectorBar;[⥖] DoubleRightArrow;[⇒] DownArrowUpArrow;[⇵] DoubleDownArrow;[⇓] DoubleLeftArrow;[⇐] DownRightVector;[⇁] DoubleRightTee;[⊨] DownLeftVector;[↽] DoubleLeftTee;[⫤] DoubleUpArrow;[⇑] DownArrowBar;[⤓] DownTeeArrow;[↧] DoubleDot;[¨] DownArrow;[↓] DownBreve;[̑] Downarrow;[⇓] DotEqual;[≐] DownTee;[⊤] DotDot;[⃜] Dopf;[𝔻] Dot;[¨].
+ "\x17ubleLongLeftRightArrow;\x03⟺\x14ubleContourIntegral;\x03∯\x13ubleLeftRightArrow;\x03⇔\x13ubleLongRightArrow;\x03⟹\x12ubleLongLeftArrow;\x03⟸\x12wnLeftRightVector;\x03⥐\x11wnRightTeeVector;\x03⥟\x11wnRightVectorBar;\x03⥗\x10ubleUpDownArrow;\x03⇕\x10ubleVerticalBar;\x03∥\x10wnLeftTeeVector;\x03⥞\x10wnLeftVectorBar;\x03⥖\x0fubleRightArrow;\x03⇒\x0fwnArrowUpArrow;\x03⇵\x0eubleDownArrow;\x03⇓\x0eubleLeftArrow;\x03⇐\x0ewnRightVector;\x03⇁\x0dubleRightTee;\x03⊨\x0dwnLeftVector;\x03↽\x0cubleLeftTee;\x03⫤\x0cubleUpArrow;\x03⇑\x0bwnArrowBar;\x03⤓\x0bwnTeeArrow;\x03↧\x08ubleDot;\x02¨\x08wnArrow;\x03↓\x08wnBreve;\x02̑\x08wnarrow;\x03⇓\x07tEqual;\x03≐\x06wnTee;\x03⊤\x05tDot;\x03⃜\x03pf;\x04𝔻\x02t;\x02¨",
+ // Dstrok;[Đ] Dscr;[𝒟].
+ "\x05trok;\x02Đ\x03cr;\x04𝒟",
+ // ENG;[Ŋ].
+ "\x02G;\x02Ŋ",
+ // ETH;[Ð] ETH[Ð].
+ "\x02H;\x02Ð\x01H\x02Ð",
+ // Eacute;[É] Eacute[É].
+ "\x05cute;\x02É\x04cute\x02É",
+ // Ecaron;[Ě] Ecirc;[Ê] Ecirc[Ê] Ecy;[Э].
+ "\x05aron;\x02Ě\x04irc;\x02Ê\x03irc\x02Ê\x02y;\x02Э",
+ // Edot;[Ė].
+ "\x03ot;\x02Ė",
+ // Efr;[𝔈].
+ "\x02r;\x04𝔈",
+ // Egrave;[È] Egrave[È].
+ "\x05rave;\x02È\x04rave\x02È",
+ // Element;[∈].
+ "\x06ement;\x03∈",
+ // EmptyVerySmallSquare;[▫] EmptySmallSquare;[◻] Emacr;[Ē].
+ "\x13ptyVerySmallSquare;\x03▫\x0fptySmallSquare;\x03◻\x04acr;\x02Ē",
+ // Eogon;[Ę] Eopf;[𝔼].
+ "\x04gon;\x02Ę\x03pf;\x04𝔼",
+ // Epsilon;[Ε].
+ "\x06silon;\x02Ε",
+ // Equilibrium;[⇌] EqualTilde;[≂] Equal;[⩵].
+ "\x0auilibrium;\x03⇌\x09ualTilde;\x03≂\x04ual;\x03⩵",
+ // Escr;[ℰ] Esim;[⩳].
+ "\x03cr;\x03ℰ\x03im;\x03⩳",
+ // Eta;[Η].
+ "\x02a;\x02Η",
+ // Euml;[Ë] Euml[Ë].
+ "\x03ml;\x02Ë\x02ml\x02Ë",
+ // ExponentialE;[ⅇ] Exists;[∃].
+ "\x0bponentialE;\x03ⅇ\x05ists;\x03∃",
+ // Fcy;[Ф].
+ "\x02y;\x02Ф",
+ // Ffr;[𝔉].
+ "\x02r;\x04𝔉",
+ // FilledVerySmallSquare;[▪] FilledSmallSquare;[◼].
+ "\x14lledVerySmallSquare;\x03▪\x10lledSmallSquare;\x03◼",
+ // Fouriertrf;[ℱ] ForAll;[∀] Fopf;[𝔽].
+ "\x09uriertrf;\x03ℱ\x05rAll;\x03∀\x03pf;\x04𝔽",
+ // Fscr;[ℱ].
+ "\x03cr;\x03ℱ",
+ // GJcy;[Ѓ].
+ "\x03cy;\x02Ѓ",
+ // GT;[>].
+ "\x01;\x01>",
+ // Gammad;[Ϝ] Gamma;[Γ].
+ "\x05mmad;\x02Ϝ\x04mma;\x02Γ",
+ // Gbreve;[Ğ].
+ "\x05reve;\x02Ğ",
+ // Gcedil;[Ģ] Gcirc;[Ĝ] Gcy;[Г].
+ "\x05edil;\x02Ģ\x04irc;\x02Ĝ\x02y;\x02Г",
+ // Gdot;[Ġ].
+ "\x03ot;\x02Ġ",
+ // Gfr;[𝔊].
+ "\x02r;\x04𝔊",
+ // Gg;[⋙].
+ "\x01;\x03⋙",
+ // Gopf;[𝔾].
+ "\x03pf;\x04𝔾",
+ // GreaterSlantEqual;[⩾] GreaterEqualLess;[⋛] GreaterFullEqual;[≧] GreaterGreater;[⪢] GreaterEqual;[≥] GreaterTilde;[≳] GreaterLess;[≷].
+ "\x10eaterSlantEqual;\x03⩾\x0featerEqualLess;\x03⋛\x0featerFullEqual;\x03≧\x0deaterGreater;\x03⪢\x0beaterEqual;\x03≥\x0beaterTilde;\x03≳\x0aeaterLess;\x03≷",
+ // Gscr;[𝒢].
+ "\x03cr;\x04𝒢",
+ // Gt;[≫].
+ "\x01;\x03≫",
+ // HARDcy;[Ъ].
+ "\x05RDcy;\x02Ъ",
+ // Hacek;[ˇ] Hat;[^].
+ "\x04cek;\x02ˇ\x02t;\x01^",
+ // Hcirc;[Ĥ].
+ "\x04irc;\x02Ĥ",
+ // Hfr;[ℌ].
+ "\x02r;\x03ℌ",
+ // HilbertSpace;[ℋ].
+ "\x0blbertSpace;\x03ℋ",
+ // HorizontalLine;[─] Hopf;[ℍ].
+ "\x0drizontalLine;\x03─\x03pf;\x03ℍ",
+ // Hstrok;[Ħ] Hscr;[ℋ].
+ "\x05trok;\x02Ħ\x03cr;\x03ℋ",
+ // HumpDownHump;[≎] HumpEqual;[≏].
+ "\x0bmpDownHump;\x03≎\x08mpEqual;\x03≏",
+ // IEcy;[Е].
+ "\x03cy;\x02Е",
+ // IJlig;[IJ].
+ "\x04lig;\x02IJ",
+ // IOcy;[Ё].
+ "\x03cy;\x02Ё",
+ // Iacute;[Í] Iacute[Í].
+ "\x05cute;\x02Í\x04cute\x02Í",
+ // Icirc;[Î] Icirc[Î] Icy;[И].
+ "\x04irc;\x02Î\x03irc\x02Î\x02y;\x02И",
+ // Idot;[İ].
+ "\x03ot;\x02İ",
+ // Ifr;[ℑ].
+ "\x02r;\x03ℑ",
+ // Igrave;[Ì] Igrave[Ì].
+ "\x05rave;\x02Ì\x04rave\x02Ì",
+ // ImaginaryI;[ⅈ] Implies;[⇒] Imacr;[Ī] Im;[ℑ].
+ "\x09aginaryI;\x03ⅈ\x06plies;\x03⇒\x04acr;\x02Ī\x01;\x03ℑ",
+ // InvisibleComma;[] InvisibleTimes;[] Intersection;[⋂] Integral;[∫] Int;[∬].
+ "\x0dvisibleComma;\x03\x0dvisibleTimes;\x03\x0btersection;\x03⋂\x07tegral;\x03∫\x02t;\x03∬",
+ // Iogon;[Į] Iopf;[𝕀] Iota;[Ι].
+ "\x04gon;\x02Į\x03pf;\x04𝕀\x03ta;\x02Ι",
+ // Iscr;[ℐ].
+ "\x03cr;\x03ℐ",
+ // Itilde;[Ĩ].
+ "\x05ilde;\x02Ĩ",
+ // Iukcy;[І] Iuml;[Ï] Iuml[Ï].
+ "\x04kcy;\x02І\x03ml;\x02Ï\x02ml\x02Ï",
+ // Jcirc;[Ĵ] Jcy;[Й].
+ "\x04irc;\x02Ĵ\x02y;\x02Й",
+ // Jfr;[𝔍].
+ "\x02r;\x04𝔍",
+ // Jopf;[𝕁].
+ "\x03pf;\x04𝕁",
+ // Jsercy;[Ј] Jscr;[𝒥].
+ "\x05ercy;\x02Ј\x03cr;\x04𝒥",
+ // Jukcy;[Є].
+ "\x04kcy;\x02Є",
+ // KHcy;[Х].
+ "\x03cy;\x02Х",
+ // KJcy;[Ќ].
+ "\x03cy;\x02Ќ",
+ // Kappa;[Κ].
+ "\x04ppa;\x02Κ",
+ // Kcedil;[Ķ] Kcy;[К].
+ "\x05edil;\x02Ķ\x02y;\x02К",
+ // Kfr;[𝔎].
+ "\x02r;\x04𝔎",
+ // Kopf;[𝕂].
+ "\x03pf;\x04𝕂",
+ // Kscr;[𝒦].
+ "\x03cr;\x04𝒦",
+ // LJcy;[Љ].
+ "\x03cy;\x02Љ",
+ // LT;[<].
+ "\x01;\x01<",
+ // Laplacetrf;[ℒ] Lacute;[Ĺ] Lambda;[Λ] Lang;[⟪] Larr;[↞].
+ "\x09placetrf;\x03ℒ\x05cute;\x02Ĺ\x05mbda;\x02Λ\x03ng;\x03⟪\x03rr;\x03↞",
+ // Lcaron;[Ľ] Lcedil;[Ļ] Lcy;[Л].
+ "\x05aron;\x02Ľ\x05edil;\x02Ļ\x02y;\x02Л",
+ // LeftArrowRightArrow;[⇆] LeftDoubleBracket;[⟦] LeftDownTeeVector;[⥡] LeftDownVectorBar;[⥙] LeftTriangleEqual;[⊴] LeftAngleBracket;[⟨] LeftUpDownVector;[⥑] LessEqualGreater;[⋚] LeftRightVector;[⥎] LeftTriangleBar;[⧏] LeftUpTeeVector;[⥠] LeftUpVectorBar;[⥘] LeftDownVector;[⇃] LeftRightArrow;[↔] Leftrightarrow;[⇔] LessSlantEqual;[⩽] LeftTeeVector;[⥚] LeftVectorBar;[⥒] LessFullEqual;[≦] LeftArrowBar;[⇤] LeftTeeArrow;[↤] LeftTriangle;[⊲] LeftUpVector;[↿] LeftCeiling;[⌈] LessGreater;[≶] LeftVector;[↼] LeftArrow;[←] LeftFloor;[⌊] Leftarrow;[⇐] LessTilde;[≲] LessLess;[⪡] LeftTee;[⊣].
+ "\x12ftArrowRightArrow;\x03⇆\x10ftDoubleBracket;\x03⟦\x10ftDownTeeVector;\x03⥡\x10ftDownVectorBar;\x03⥙\x10ftTriangleEqual;\x03⊴\x0fftAngleBracket;\x03⟨\x0fftUpDownVector;\x03⥑\x0fssEqualGreater;\x03⋚\x0eftRightVector;\x03⥎\x0eftTriangleBar;\x03⧏\x0eftUpTeeVector;\x03⥠\x0eftUpVectorBar;\x03⥘\x0dftDownVector;\x03⇃\x0dftRightArrow;\x03↔\x0dftrightarrow;\x03⇔\x0dssSlantEqual;\x03⩽\x0cftTeeVector;\x03⥚\x0cftVectorBar;\x03⥒\x0cssFullEqual;\x03≦\x0bftArrowBar;\x03⇤\x0bftTeeArrow;\x03↤\x0bftTriangle;\x03⊲\x0bftUpVector;\x03↿\x0aftCeiling;\x03⌈\x0assGreater;\x03≶\x09ftVector;\x03↼\x08ftArrow;\x03←\x08ftFloor;\x03⌊\x08ftarrow;\x03⇐\x08ssTilde;\x03≲\x07ssLess;\x03⪡\x06ftTee;\x03⊣",
+ // Lfr;[𝔏].
+ "\x02r;\x04𝔏",
+ // Lleftarrow;[⇚] Ll;[⋘].
+ "\x09eftarrow;\x03⇚\x01;\x03⋘",
+ // Lmidot;[Ŀ].
+ "\x05idot;\x02Ŀ",
+ // LongLeftRightArrow;[⟷] Longleftrightarrow;[⟺] LowerRightArrow;[↘] LongRightArrow;[⟶] Longrightarrow;[⟹] LowerLeftArrow;[↙] LongLeftArrow;[⟵] Longleftarrow;[⟸] Lopf;[𝕃].
+ "\x11ngLeftRightArrow;\x03⟷\x11ngleftrightarrow;\x03⟺\x0ewerRightArrow;\x03↘\x0dngRightArrow;\x03⟶\x0dngrightarrow;\x03⟹\x0dwerLeftArrow;\x03↙\x0cngLeftArrow;\x03⟵\x0cngleftarrow;\x03⟸\x03pf;\x04𝕃",
+ // Lstrok;[Ł] Lscr;[ℒ] Lsh;[↰].
+ "\x05trok;\x02Ł\x03cr;\x03ℒ\x02h;\x03↰",
+ // Lt;[≪].
+ "\x01;\x03≪",
+ // Map;[⤅].
+ "\x02p;\x03⤅",
+ // Mcy;[М].
+ "\x02y;\x02М",
+ // MediumSpace;[ ] Mellintrf;[ℳ].
+ "\x0adiumSpace;\x03 \x08llintrf;\x03ℳ",
+ // Mfr;[𝔐].
+ "\x02r;\x04𝔐",
+ // MinusPlus;[∓].
+ "\x08nusPlus;\x03∓",
+ // Mopf;[𝕄].
+ "\x03pf;\x04𝕄",
+ // Mscr;[ℳ].
+ "\x03cr;\x03ℳ",
+ // Mu;[Μ].
+ "\x01;\x02Μ",
+ // NJcy;[Њ].
+ "\x03cy;\x02Њ",
+ // Nacute;[Ń].
+ "\x05cute;\x02Ń",
+ // Ncaron;[Ň] Ncedil;[Ņ] Ncy;[Н].
+ "\x05aron;\x02Ň\x05edil;\x02Ņ\x02y;\x02Н",
+ // NegativeVeryThinSpace;[] NestedGreaterGreater;[≫] NegativeMediumSpace;[] NegativeThickSpace;[] NegativeThinSpace;[] NestedLessLess;[≪] NewLine;[\xa].
+ "\x14gativeVeryThinSpace;\x03\x13stedGreaterGreater;\x03≫\x12gativeMediumSpace;\x03\x11gativeThickSpace;\x03\x10gativeThinSpace;\x03\x0dstedLessLess;\x03≪\x06wLine;\x01\xa",
+ // Nfr;[𝔑].
+ "\x02r;\x04𝔑",
+ // NotNestedGreaterGreater;[⪢̸] NotSquareSupersetEqual;[⋣] NotPrecedesSlantEqual;[⋠] NotRightTriangleEqual;[⋭] NotSucceedsSlantEqual;[⋡] NotDoubleVerticalBar;[∦] NotGreaterSlantEqual;[⩾̸] NotLeftTriangleEqual;[⋬] NotSquareSubsetEqual;[⋢] NotGreaterFullEqual;[≧̸] NotRightTriangleBar;[⧐̸] NotLeftTriangleBar;[⧏̸] NotGreaterGreater;[≫̸] NotLessSlantEqual;[⩽̸] NotNestedLessLess;[⪡̸] NotReverseElement;[∌] NotSquareSuperset;[⊐̸] NotTildeFullEqual;[≇] NonBreakingSpace;[ ] NotPrecedesEqual;[⪯̸] NotRightTriangle;[⋫] NotSucceedsEqual;[⪰̸] NotSucceedsTilde;[≿̸] NotSupersetEqual;[⊉] NotGreaterEqual;[≱] NotGreaterTilde;[≵] NotHumpDownHump;[≎̸] NotLeftTriangle;[⋪] NotSquareSubset;[⊏̸] NotGreaterLess;[≹] NotLessGreater;[≸] NotSubsetEqual;[⊈] NotVerticalBar;[∤] NotEqualTilde;[≂̸] NotTildeEqual;[≄] NotTildeTilde;[≉] NotCongruent;[≢] NotHumpEqual;[≏̸] NotLessEqual;[≰] NotLessTilde;[≴] NotLessLess;[≪̸]
NotPrecedes;[⊀] NotSucceeds;[⊁] NotSuperset;[⊃⃒] NotElement;[∉] NotGreater;[≯] NotCupCap;[≭] NotExists;[∄] NotSubset;[⊂⃒] NotEqual;[≠] NotTilde;[≁] NoBreak;[] NotLess;[≮] Nopf;[ℕ] Not;[⫬].
+ "\x16tNestedGreaterGreater;\x05⪢̸\x15tSquareSupersetEqual;\x03⋣\x14tPrecedesSlantEqual;\x03⋠\x14tRightTriangleEqual;\x03⋭\x14tSucceedsSlantEqual;\x03⋡\x13tDoubleVerticalBar;\x03∦\x13tGreaterSlantEqual;\x05⩾̸\x13tLeftTriangleEqual;\x03⋬\x13tSquareSubsetEqual;\x03⋢\x12tGreaterFullEqual;\x05≧̸\x12tRightTriangleBar;\x05⧐̸\x11tLeftTriangleBar;\x05⧏̸\x10tGreaterGreater;\x05≫̸\x10tLessSlantEqual;\x05⩽̸\x10tNestedLessLess;\x05⪡̸\x10tReverseElement;\x03∌\x10tSquareSuperset;\x05⊐̸\x10tTildeFullEqual;\x03≇\x0fnBreakingSpace;\x02 \x0ftPrecedesEqual;\x05⪯̸\x0ftRightTriangle;\x03⋫\x0ftSucceedsEqual;\x05⪰̸\x0ftSucceedsTilde;\x05≿̸\x0ftSupersetEqual;\x03⊉\x0etGreaterEqual;\x03≱\x0etGreaterTilde;\x03≵\x0etHumpDownHump;\x05≎̸\x0etLeftTriangle;\x03⋪\x0etSquareSubset;\x05⊏̸\x0dtGreaterLess;\x03≹\x0dtLessGreater;\x03≸\x0dtSubsetEqual;\x03⊈\x0dtVerticalBar;\x03∤\x0ctEqualTilde;\x05≂̸\x0ctTildeEqual;\x03≄\x0ctTilde
Tilde;\x03≉\x0btCongruent;\x03≢\x0btHumpEqual;\x05≏̸\x0btLessEqual;\x03≰\x0btLessTilde;\x03≴\x0atLessLess;\x05≪̸\x0atPrecedes;\x03⊀\x0atSucceeds;\x03⊁\x0atSuperset;\x06⊃⃒\x09tElement;\x03∉\x09tGreater;\x03≯\x08tCupCap;\x03≭\x08tExists;\x03∄\x08tSubset;\x06⊂⃒\x07tEqual;\x03≠\x07tTilde;\x03≁\x06Break;\x03\x06tLess;\x03≮\x03pf;\x03ℕ\x02t;\x03⫬",
+ // Nscr;[𝒩].
+ "\x03cr;\x04𝒩",
+ // Ntilde;[Ñ] Ntilde[Ñ].
+ "\x05ilde;\x02Ñ\x04ilde\x02Ñ",
+ // Nu;[Ν].
+ "\x01;\x02Ν",
+ // OElig;[Œ].
+ "\x04lig;\x02Œ",
+ // Oacute;[Ó] Oacute[Ó].
+ "\x05cute;\x02Ó\x04cute\x02Ó",
+ // Ocirc;[Ô] Ocirc[Ô] Ocy;[О].
+ "\x04irc;\x02Ô\x03irc\x02Ô\x02y;\x02О",
+ // Odblac;[Ő].
+ "\x05blac;\x02Ő",
+ // Ofr;[𝔒].
+ "\x02r;\x04𝔒",
+ // Ograve;[Ò] Ograve[Ò].
+ "\x05rave;\x02Ò\x04rave\x02Ò",
+ // Omicron;[Ο] Omacr;[Ō] Omega;[Ω].
+ "\x06icron;\x02Ο\x04acr;\x02Ō\x04ega;\x02Ω",
+ // Oopf;[𝕆].
+ "\x03pf;\x04𝕆",
+ // OpenCurlyDoubleQuote;[“] OpenCurlyQuote;[‘].
+ "\x13enCurlyDoubleQuote;\x03“\x0denCurlyQuote;\x03‘",
+ // Or;[⩔].
+ "\x01;\x03⩔",
+ // Oslash;[Ø] Oslash[Ø] Oscr;[𝒪].
+ "\x05lash;\x02Ø\x04lash\x02Ø\x03cr;\x04𝒪",
+ // Otilde;[Õ] Otimes;[⨷] Otilde[Õ].
+ "\x05ilde;\x02Õ\x05imes;\x03⨷\x04ilde\x02Õ",
+ // Ouml;[Ö] Ouml[Ö].
+ "\x03ml;\x02Ö\x02ml\x02Ö",
+ // OverParenthesis;[⏜] OverBracket;[⎴] OverBrace;[⏞] OverBar;[‾].
+ "\x0eerParenthesis;\x03⏜\x0aerBracket;\x03⎴\x08erBrace;\x03⏞\x06erBar;\x03‾",
+ // PartialD;[∂].
+ "\x07rtialD;\x03∂",
+ // Pcy;[П].
+ "\x02y;\x02П",
+ // Pfr;[𝔓].
+ "\x02r;\x04𝔓",
+ // Phi;[Φ].
+ "\x02i;\x02Φ",
+ // Pi;[Π].
+ "\x01;\x02Π",
+ // PlusMinus;[±].
+ "\x08usMinus;\x02±",
+ // Poincareplane;[ℌ] Popf;[ℙ].
+ "\x0cincareplane;\x03ℌ\x03pf;\x03ℙ",
+ // PrecedesSlantEqual;[≼] PrecedesEqual;[⪯] PrecedesTilde;[≾] Proportional;[∝] Proportion;[∷] Precedes;[≺] Product;[∏] Prime;[″] Pr;[⪻].
+ "\x11ecedesSlantEqual;\x03≼\x0cecedesEqual;\x03⪯\x0cecedesTilde;\x03≾\x0boportional;\x03∝\x09oportion;\x03∷\x07ecedes;\x03≺\x06oduct;\x03∏\x04ime;\x03″\x01;\x03⪻",
+ // Pscr;[𝒫] Psi;[Ψ].
+ "\x03cr;\x04𝒫\x02i;\x02Ψ",
+ // QUOT;[\"] QUOT[\"].
+ "\x03OT;\x01\"\x02OT\x01\"",
+ // Qfr;[𝔔].
+ "\x02r;\x04𝔔",
+ // Qopf;[ℚ].
+ "\x03pf;\x03ℚ",
+ // Qscr;[𝒬].
+ "\x03cr;\x04𝒬",
+ // RBarr;[⤐].
+ "\x04arr;\x03⤐",
+ // REG;[®] REG[®].
+ "\x02G;\x02®\x01G\x02®",
+ // Racute;[Ŕ] Rarrtl;[⤖] Rang;[⟫] Rarr;[↠].
+ "\x05cute;\x02Ŕ\x05rrtl;\x03⤖\x03ng;\x03⟫\x03rr;\x03↠",
+ // Rcaron;[Ř] Rcedil;[Ŗ] Rcy;[Р].
+ "\x05aron;\x02Ř\x05edil;\x02Ŗ\x02y;\x02Р",
+ // ReverseUpEquilibrium;[⥯] ReverseEquilibrium;[⇋] ReverseElement;[∋] Re;[ℜ].
+ "\x13verseUpEquilibrium;\x03⥯\x11verseEquilibrium;\x03⇋\x0dverseElement;\x03∋\x01;\x03ℜ",
+ // Rfr;[ℜ].
+ "\x02r;\x03ℜ",
+ // Rho;[Ρ].
+ "\x02o;\x02Ρ",
+ // RightArrowLeftArrow;[⇄] RightDoubleBracket;[⟧] RightDownTeeVector;[⥝] RightDownVectorBar;[⥕] RightTriangleEqual;[⊵] RightAngleBracket;[⟩] RightUpDownVector;[⥏] RightTriangleBar;[⧐] RightUpTeeVector;[⥜] RightUpVectorBar;[⥔] RightDownVector;[⇂] RightTeeVector;[⥛] RightVectorBar;[⥓] RightArrowBar;[⇥] RightTeeArrow;[↦] RightTriangle;[⊳] RightUpVector;[↾] RightCeiling;[⌉] RightVector;[⇀] RightArrow;[→] RightFloor;[⌋] Rightarrow;[⇒] RightTee;[⊢].
+ "\x12ghtArrowLeftArrow;\x03⇄\x11ghtDoubleBracket;\x03⟧\x11ghtDownTeeVector;\x03⥝\x11ghtDownVectorBar;\x03⥕\x11ghtTriangleEqual;\x03⊵\x10ghtAngleBracket;\x03⟩\x10ghtUpDownVector;\x03⥏\x0fghtTriangleBar;\x03⧐\x0fghtUpTeeVector;\x03⥜\x0fghtUpVectorBar;\x03⥔\x0eghtDownVector;\x03⇂\x0dghtTeeVector;\x03⥛\x0dghtVectorBar;\x03⥓\x0cghtArrowBar;\x03⇥\x0cghtTeeArrow;\x03↦\x0cghtTriangle;\x03⊳\x0cghtUpVector;\x03↾\x0bghtCeiling;\x03⌉\x0aghtVector;\x03⇀\x09ghtArrow;\x03→\x09ghtFloor;\x03⌋\x09ghtarrow;\x03⇒\x07ghtTee;\x03⊢",
+ // RoundImplies;[⥰] Ropf;[ℝ].
+ "\x0bundImplies;\x03⥰\x03pf;\x03ℝ",
+ // Rrightarrow;[⇛].
+ "\x0aightarrow;\x03⇛",
+ // Rscr;[ℛ] Rsh;[↱].
+ "\x03cr;\x03ℛ\x02h;\x03↱",
+ // RuleDelayed;[⧴].
+ "\x0aleDelayed;\x03⧴",
+ // SHCHcy;[Щ] SHcy;[Ш].
+ "\x05CHcy;\x02Щ\x03cy;\x02Ш",
+ // SOFTcy;[Ь].
+ "\x05FTcy;\x02Ь",
+ // Sacute;[Ś].
+ "\x05cute;\x02Ś",
+ // Scaron;[Š] Scedil;[Ş] Scirc;[Ŝ] Scy;[С] Sc;[⪼].
+ "\x05aron;\x02Š\x05edil;\x02Ş\x04irc;\x02Ŝ\x02y;\x02С\x01;\x03⪼",
+ // Sfr;[𝔖].
+ "\x02r;\x04𝔖",
+ // ShortRightArrow;[→] ShortDownArrow;[↓] ShortLeftArrow;[←] ShortUpArrow;[↑].
+ "\x0eortRightArrow;\x03→\x0dortDownArrow;\x03↓\x0dortLeftArrow;\x03←\x0bortUpArrow;\x03↑",
+ // Sigma;[Σ].
+ "\x04gma;\x02Σ",
+ // SmallCircle;[∘].
+ "\x0aallCircle;\x03∘",
+ // Sopf;[𝕊].
+ "\x03pf;\x04𝕊",
+ // SquareSupersetEqual;[⊒] SquareIntersection;[⊓] SquareSubsetEqual;[⊑] SquareSuperset;[⊐] SquareSubset;[⊏] SquareUnion;[⊔] Square;[□] Sqrt;[√].
+ "\x12uareSupersetEqual;\x03⊒\x11uareIntersection;\x03⊓\x10uareSubsetEqual;\x03⊑\x0duareSuperset;\x03⊐\x0buareSubset;\x03⊏\x0auareUnion;\x03⊔\x05uare;\x03□\x03rt;\x03√",
+ // Sscr;[𝒮].
+ "\x03cr;\x04𝒮",
+ // Star;[⋆].
+ "\x03ar;\x03⋆",
+ // SucceedsSlantEqual;[≽] SucceedsEqual;[⪰] SucceedsTilde;[≿] SupersetEqual;[⊇] SubsetEqual;[⊆] Succeeds;[≻] SuchThat;[∋] Superset;[⊃] Subset;[⋐] Supset;[⋑] Sub;[⋐] Sum;[∑] Sup;[⋑].
+ "\x11cceedsSlantEqual;\x03≽\x0ccceedsEqual;\x03⪰\x0ccceedsTilde;\x03≿\x0cpersetEqual;\x03⊇\x0absetEqual;\x03⊆\x07cceeds;\x03≻\x07chThat;\x03∋\x07perset;\x03⊃\x05bset;\x03⋐\x05pset;\x03⋑\x02b;\x03⋐\x02m;\x03∑\x02p;\x03⋑",
+ // THORN;[Þ] THORN[Þ].
+ "\x04ORN;\x02Þ\x03ORN\x02Þ",
+ // TRADE;[™].
+ "\x04ADE;\x03™",
+ // TSHcy;[Ћ] TScy;[Ц].
+ "\x04Hcy;\x02Ћ\x03cy;\x02Ц",
+ // Tab;[\x9] Tau;[Τ].
+ "\x02b;\x01\x9\x02u;\x02Τ",
+ // Tcaron;[Ť] Tcedil;[Ţ] Tcy;[Т].
+ "\x05aron;\x02Ť\x05edil;\x02Ţ\x02y;\x02Т",
+ // Tfr;[𝔗].
+ "\x02r;\x04𝔗",
+ // ThickSpace;[ ] Therefore;[∴] ThinSpace;[ ] Theta;[Θ].
+ "\x09ickSpace;\x06 \x08erefore;\x03∴\x08inSpace;\x03 \x04eta;\x02Θ",
+ // TildeFullEqual;[≅] TildeEqual;[≃] TildeTilde;[≈] Tilde;[∼].
+ "\x0dldeFullEqual;\x03≅\x09ldeEqual;\x03≃\x09ldeTilde;\x03≈\x04lde;\x03∼",
+ // Topf;[𝕋].
+ "\x03pf;\x04𝕋",
+ // TripleDot;[⃛].
+ "\x08ipleDot;\x03⃛",
+ // Tstrok;[Ŧ] Tscr;[𝒯].
+ "\x05trok;\x02Ŧ\x03cr;\x04𝒯",
+ // Uarrocir;[⥉] Uacute;[Ú] Uacute[Ú] Uarr;[↟].
+ "\x07rrocir;\x03⥉\x05cute;\x02Ú\x04cute\x02Ú\x03rr;\x03↟",
+ // Ubreve;[Ŭ] Ubrcy;[Ў].
+ "\x05reve;\x02Ŭ\x04rcy;\x02Ў",
+ // Ucirc;[Û] Ucirc[Û] Ucy;[У].
+ "\x04irc;\x02Û\x03irc\x02Û\x02y;\x02У",
+ // Udblac;[Ű].
+ "\x05blac;\x02Ű",
+ // Ufr;[𝔘].
+ "\x02r;\x04𝔘",
+ // Ugrave;[Ù] Ugrave[Ù].
+ "\x05rave;\x02Ù\x04rave\x02Ù",
+ // Umacr;[Ū].
+ "\x04acr;\x02Ū",
+ // UnderParenthesis;[⏝] UnderBracket;[⎵] UnderBrace;[⏟] UnionPlus;[⊎] UnderBar;[_] Union;[⋃].
+ "\x0fderParenthesis;\x03⏝\x0bderBracket;\x03⎵\x09derBrace;\x03⏟\x08ionPlus;\x03⊎\x07derBar;\x01_\x04ion;\x03⋃",
+ // Uogon;[Ų] Uopf;[𝕌].
+ "\x04gon;\x02Ų\x03pf;\x04𝕌",
+ // UpArrowDownArrow;[⇅] UpperRightArrow;[↗] UpperLeftArrow;[↖] UpEquilibrium;[⥮] UpDownArrow;[↕] Updownarrow;[⇕] UpArrowBar;[⤒] UpTeeArrow;[↥] UpArrow;[↑] Uparrow;[⇑] Upsilon;[Υ] UpTee;[⊥] Upsi;[ϒ].
+ "\x0fArrowDownArrow;\x03⇅\x0eperRightArrow;\x03↗\x0dperLeftArrow;\x03↖\x0cEquilibrium;\x03⥮\x0aDownArrow;\x03↕\x0adownarrow;\x03⇕\x09ArrowBar;\x03⤒\x09TeeArrow;\x03↥\x06Arrow;\x03↑\x06arrow;\x03⇑\x06silon;\x02Υ\x04Tee;\x03⊥\x03si;\x02ϒ",
+ // Uring;[Ů].
+ "\x04ing;\x02Ů",
+ // Uscr;[𝒰].
+ "\x03cr;\x04𝒰",
+ // Utilde;[Ũ].
+ "\x05ilde;\x02Ũ",
+ // Uuml;[Ü] Uuml[Ü].
+ "\x03ml;\x02Ü\x02ml\x02Ü",
+ // VDash;[⊫].
+ "\x04ash;\x03⊫",
+ // Vbar;[⫫].
+ "\x03ar;\x03⫫",
+ // Vcy;[В].
+ "\x02y;\x02В",
+ // Vdashl;[⫦] Vdash;[⊩].
+ "\x05ashl;\x03⫦\x04ash;\x03⊩",
+ // VerticalSeparator;[❘] VerticalTilde;[≀] VeryThinSpace;[ ] VerticalLine;[|] VerticalBar;[∣] Verbar;[‖] Vert;[‖] Vee;[⋁].
+ "\x10rticalSeparator;\x03❘\x0crticalTilde;\x03≀\x0cryThinSpace;\x03 \x0brticalLine;\x01|\x0articalBar;\x03∣\x05rbar;\x03‖\x03rt;\x03‖\x02e;\x03⋁",
+ // Vfr;[𝔙].
+ "\x02r;\x04𝔙",
+ // Vopf;[𝕍].
+ "\x03pf;\x04𝕍",
+ // Vscr;[𝒱].
+ "\x03cr;\x04𝒱",
+ // Vvdash;[⊪].
+ "\x05dash;\x03⊪",
+ // Wcirc;[Ŵ].
+ "\x04irc;\x02Ŵ",
+ // Wedge;[⋀].
+ "\x04dge;\x03⋀",
+ // Wfr;[𝔚].
+ "\x02r;\x04𝔚",
+ // Wopf;[𝕎].
+ "\x03pf;\x04𝕎",
+ // Wscr;[𝒲].
+ "\x03cr;\x04𝒲",
+ // Xfr;[𝔛].
+ "\x02r;\x04𝔛",
+ // Xi;[Ξ].
+ "\x01;\x02Ξ",
+ // Xopf;[𝕏].
+ "\x03pf;\x04𝕏",
+ // Xscr;[𝒳].
+ "\x03cr;\x04𝒳",
+ // YAcy;[Я].
+ "\x03cy;\x02Я",
+ // YIcy;[Ї].
+ "\x03cy;\x02Ї",
+ // YUcy;[Ю].
+ "\x03cy;\x02Ю",
+ // Yacute;[Ý] Yacute[Ý].
+ "\x05cute;\x02Ý\x04cute\x02Ý",
+ // Ycirc;[Ŷ] Ycy;[Ы].
+ "\x04irc;\x02Ŷ\x02y;\x02Ы",
+ // Yfr;[𝔜].
+ "\x02r;\x04𝔜",
+ // Yopf;[𝕐].
+ "\x03pf;\x04𝕐",
+ // Yscr;[𝒴].
+ "\x03cr;\x04𝒴",
+ // Yuml;[Ÿ].
+ "\x03ml;\x02Ÿ",
+ // ZHcy;[Ж].
+ "\x03cy;\x02Ж",
+ // Zacute;[Ź].
+ "\x05cute;\x02Ź",
+ // Zcaron;[Ž] Zcy;[З].
+ "\x05aron;\x02Ž\x02y;\x02З",
+ // Zdot;[Ż].
+ "\x03ot;\x02Ż",
+ // ZeroWidthSpace;[] Zeta;[Ζ].
+ "\x0droWidthSpace;\x03\x03ta;\x02Ζ",
+ // Zfr;[ℨ].
+ "\x02r;\x03ℨ",
+ // Zopf;[ℤ].
+ "\x03pf;\x03ℤ",
+ // Zscr;[𝒵].
+ "\x03cr;\x04𝒵",
+ // aacute;[á] aacute[á].
+ "\x05cute;\x02á\x04cute\x02á",
+ // abreve;[ă].
+ "\x05reve;\x02ă",
+ // acirc;[â] acute;[´] acirc[â] acute[´] acE;[∾̳] acd;[∿] acy;[а] ac;[∾].
+ "\x04irc;\x02â\x04ute;\x02´\x03irc\x02â\x03ute\x02´\x02E;\x05∾̳\x02d;\x03∿\x02y;\x02а\x01;\x03∾",
+ // aelig;[æ] aelig[æ].
+ "\x04lig;\x02æ\x03lig\x02æ",
+ // afr;[𝔞] af;[].
+ "\x02r;\x04𝔞\x01;\x03",
+ // agrave;[à] agrave[à].
+ "\x05rave;\x02à\x04rave\x02à",
+ // alefsym;[ℵ] aleph;[ℵ] alpha;[α].
+ "\x06efsym;\x03ℵ\x04eph;\x03ℵ\x04pha;\x02α",
+ // amacr;[ā] amalg;[⨿] amp;[&] amp[&].
+ "\x04acr;\x02ā\x04alg;\x03⨿\x02p;\x01&\x01p\x01&",
+ // andslope;[⩘] angmsdaa;[⦨] angmsdab;[⦩] angmsdac;[⦪] angmsdad;[⦫] angmsdae;[⦬] angmsdaf;[⦭] angmsdag;[⦮] angmsdah;[⦯] angrtvbd;[⦝] angrtvb;[⊾] angzarr;[⍼] andand;[⩕] angmsd;[∡] angsph;[∢] angle;[∠] angrt;[∟] angst;[Å] andd;[⩜] andv;[⩚] ange;[⦤] and;[∧] ang;[∠].
+ "\x07dslope;\x03⩘\x07gmsdaa;\x03⦨\x07gmsdab;\x03⦩\x07gmsdac;\x03⦪\x07gmsdad;\x03⦫\x07gmsdae;\x03⦬\x07gmsdaf;\x03⦭\x07gmsdag;\x03⦮\x07gmsdah;\x03⦯\x07grtvbd;\x03⦝\x06grtvb;\x03⊾\x06gzarr;\x03⍼\x05dand;\x03⩕\x05gmsd;\x03∡\x05gsph;\x03∢\x04gle;\x03∠\x04grt;\x03∟\x04gst;\x02Å\x03dd;\x03⩜\x03dv;\x03⩚\x03ge;\x03⦤\x02d;\x03∧\x02g;\x03∠",
+ // aogon;[ą] aopf;[𝕒].
+ "\x04gon;\x02ą\x03pf;\x04𝕒",
+ // approxeq;[≊] apacir;[⩯] approx;[≈] apid;[≋] apos;['] apE;[⩰] ape;[≊] ap;[≈].
+ "\x07proxeq;\x03≊\x05acir;\x03⩯\x05prox;\x03≈\x03id;\x03≋\x03os;\x01'\x02E;\x03⩰\x02e;\x03≊\x01;\x03≈",
+ // aring;[å] aring[å].
+ "\x04ing;\x02å\x03ing\x02å",
+ // asympeq;[≍] asymp;[≈] ascr;[𝒶] ast;[*].
+ "\x06ympeq;\x03≍\x04ymp;\x03≈\x03cr;\x04𝒶\x02t;\x01*",
+ // atilde;[ã] atilde[ã].
+ "\x05ilde;\x02ã\x04ilde\x02ã",
+ // auml;[ä] auml[ä].
+ "\x03ml;\x02ä\x02ml\x02ä",
+ // awconint;[∳] awint;[⨑].
+ "\x07conint;\x03∳\x04int;\x03⨑",
+ // bNot;[⫭].
+ "\x03ot;\x03⫭",
+ // backepsilon;[϶] backprime;[‵] backsimeq;[⋍] backcong;[≌] barwedge;[⌅] backsim;[∽] barvee;[⊽] barwed;[⌅].
+ "\x0ackepsilon;\x02϶\x08ckprime;\x03‵\x08cksimeq;\x03⋍\x07ckcong;\x03≌\x07rwedge;\x03⌅\x06cksim;\x03∽\x05rvee;\x03⊽\x05rwed;\x03⌅",
+ // bbrktbrk;[⎶] bbrk;[⎵].
+ "\x07rktbrk;\x03⎶\x03rk;\x03⎵",
+ // bcong;[≌] bcy;[б].
+ "\x04ong;\x03≌\x02y;\x02б",
+ // bdquo;[„].
+ "\x04quo;\x03„",
+ // because;[∵] bemptyv;[⦰] between;[≬] becaus;[∵] bernou;[ℬ] bepsi;[϶] beta;[β] beth;[ℶ].
+ "\x06cause;\x03∵\x06mptyv;\x03⦰\x06tween;\x03≬\x05caus;\x03∵\x05rnou;\x03ℬ\x04psi;\x02϶\x03ta;\x02β\x03th;\x03ℶ",
+ // bfr;[𝔟].
+ "\x02r;\x04𝔟",
+ // bigtriangledown;[▽] bigtriangleup;[△] bigotimes;[⨂] bigoplus;[⨁] bigsqcup;[⨆] biguplus;[⨄] bigwedge;[⋀] bigcirc;[◯] bigodot;[⨀] bigstar;[★] bigcap;[⋂] bigcup;[⋃] bigvee;[⋁].
+ "\x0egtriangledown;\x03▽\x0cgtriangleup;\x03△\x08gotimes;\x03⨂\x07goplus;\x03⨁\x07gsqcup;\x03⨆\x07guplus;\x03⨄\x07gwedge;\x03⋀\x06gcirc;\x03◯\x06godot;\x03⨀\x06gstar;\x03★\x05gcap;\x03⋂\x05gcup;\x03⋃\x05gvee;\x03⋁",
+ // bkarow;[⤍].
+ "\x05arow;\x03⤍",
+ // blacktriangleright;[▸] blacktriangledown;[▾] blacktriangleleft;[◂] blacktriangle;[▴] blacklozenge;[⧫] blacksquare;[▪] blank;[␣] blk12;[▒] blk14;[░] blk34;[▓] block;[█].
+ "\x11acktriangleright;\x03▸\x10acktriangledown;\x03▾\x10acktriangleleft;\x03◂\x0cacktriangle;\x03▴\x0backlozenge;\x03⧫\x0aacksquare;\x03▪\x04ank;\x03␣\x04k12;\x03▒\x04k14;\x03░\x04k34;\x03▓\x04ock;\x03█",
+ // bnequiv;[≡⃥] bnot;[⌐] bne;[=⃥].
+ "\x06equiv;\x06≡⃥\x03ot;\x03⌐\x02e;\x04=⃥",
+ // boxminus;[⊟] boxtimes;[⊠] boxplus;[⊞] bottom;[⊥] bowtie;[⋈] boxbox;[⧉] boxDL;[╗] boxDR;[╔] boxDl;[╖] boxDr;[╓] boxHD;[╦] boxHU;[╩] boxHd;[╤] boxHu;[╧] boxUL;[╝] boxUR;[╚] boxUl;[╜] boxUr;[╙] boxVH;[╬] boxVL;[╣] boxVR;[╠] boxVh;[╫] boxVl;[╢] boxVr;[╟] boxdL;[╕] boxdR;[╒] boxdl;[┐] boxdr;[┌] boxhD;[╥] boxhU;[╨] boxhd;[┬] boxhu;[┴] boxuL;[╛] boxuR;[╘] boxul;[┘] boxur;[└] boxvH;[╪] boxvL;[╡] boxvR;[╞] boxvh;[┼] boxvl;[┤] boxvr;[├] bopf;[𝕓] boxH;[═] boxV;[║] boxh;[─] boxv;[│] bot;[⊥].
+ "\x07xminus;\x03⊟\x07xtimes;\x03⊠\x06xplus;\x03⊞\x05ttom;\x03⊥\x05wtie;\x03⋈\x05xbox;\x03⧉\x04xDL;\x03╗\x04xDR;\x03╔\x04xDl;\x03╖\x04xDr;\x03╓\x04xHD;\x03╦\x04xHU;\x03╩\x04xHd;\x03╤\x04xHu;\x03╧\x04xUL;\x03╝\x04xUR;\x03╚\x04xUl;\x03╜\x04xUr;\x03╙\x04xVH;\x03╬\x04xVL;\x03╣\x04xVR;\x03╠\x04xVh;\x03╫\x04xVl;\x03╢\x04xVr;\x03╟\x04xdL;\x03╕\x04xdR;\x03╒\x04xdl;\x03┐\x04xdr;\x03┌\x04xhD;\x03╥\x04xhU;\x03╨\x04xhd;\x03┬\x04xhu;\x03┴\x04xuL;\x03╛\x04xuR;\x03╘\x04xul;\x03┘\x04xur;\x03└\x04xvH;\x03╪\x04xvL;\x03╡\x04xvR;\x03╞\x04xvh;\x03┼\x04xvl;\x03┤\x04xvr;\x03├\x03pf;\x04𝕓\x03xH;\x03═\x03xV;\x03║\x03xh;\x03─\x03xv;\x03│\x02t;\x03⊥",
+ // bprime;[‵].
+ "\x05rime;\x03‵",
+ // brvbar;[¦] breve;[˘] brvbar[¦].
+ "\x05vbar;\x02¦\x04eve;\x02˘\x04vbar\x02¦",
+ // bsolhsub;[⟈] bsemi;[⁏] bsime;[⋍] bsolb;[⧅] bscr;[𝒷] bsim;[∽] bsol;[\\].
+ "\x07olhsub;\x03⟈\x04emi;\x03⁏\x04ime;\x03⋍\x04olb;\x03⧅\x03cr;\x04𝒷\x03im;\x03∽\x03ol;\x01\\",
+ // bullet;[•] bumpeq;[≏] bumpE;[⪮] bumpe;[≏] bull;[•] bump;[≎].
+ "\x05llet;\x03•\x05mpeq;\x03≏\x04mpE;\x03⪮\x04mpe;\x03≏\x03ll;\x03•\x03mp;\x03≎",
+ // capbrcup;[⩉] cacute;[ć] capand;[⩄] capcap;[⩋] capcup;[⩇] capdot;[⩀] caret;[⁁] caron;[ˇ] caps;[∩︀] cap;[∩].
+ "\x07pbrcup;\x03⩉\x05cute;\x02ć\x05pand;\x03⩄\x05pcap;\x03⩋\x05pcup;\x03⩇\x05pdot;\x03⩀\x04ret;\x03⁁\x04ron;\x02ˇ\x03ps;\x06∩︀\x02p;\x03∩",
+ // ccupssm;[⩐] ccaron;[č] ccedil;[ç] ccaps;[⩍] ccedil[ç] ccirc;[ĉ] ccups;[⩌].
+ "\x06upssm;\x03⩐\x05aron;\x02č\x05edil;\x02ç\x04aps;\x03⩍\x04edil\x02ç\x04irc;\x02ĉ\x04ups;\x03⩌",
+ // cdot;[ċ].
+ "\x03ot;\x02ċ",
+ // centerdot;[·] cemptyv;[⦲] cedil;[¸] cedil[¸] cent;[¢] cent[¢].
+ "\x08nterdot;\x02·\x06mptyv;\x03⦲\x04dil;\x02¸\x03dil\x02¸\x03nt;\x02¢\x02nt\x02¢",
+ // cfr;[𝔠].
+ "\x02r;\x04𝔠",
+ // checkmark;[✓] check;[✓] chcy;[ч] chi;[χ].
+ "\x08eckmark;\x03✓\x04eck;\x03✓\x03cy;\x02ч\x02i;\x02χ",
+ // circlearrowright;[↻] circlearrowleft;[↺] circledcirc;[⊚] circleddash;[⊝] circledast;[⊛] circledR;[®] circledS;[Ⓢ] cirfnint;[⨐] cirscir;[⧂] circeq;[≗] cirmid;[⫯] cirE;[⧃] circ;[ˆ] cire;[≗] cir;[○].
+ "\x0frclearrowright;\x03↻\x0erclearrowleft;\x03↺\x0arcledcirc;\x03⊚\x0arcleddash;\x03⊝\x09rcledast;\x03⊛\x07rcledR;\x02®\x07rcledS;\x03Ⓢ\x07rfnint;\x03⨐\x06rscir;\x03⧂\x05rceq;\x03≗\x05rmid;\x03⫯\x03rE;\x03⧃\x03rc;\x02ˆ\x03re;\x03≗\x02r;\x03○",
+ // clubsuit;[♣] clubs;[♣].
+ "\x07ubsuit;\x03♣\x04ubs;\x03♣",
+ // complement;[∁] complexes;[ℂ] coloneq;[≔] congdot;[⩭] colone;[≔] commat;[@] compfn;[∘] conint;[∮] coprod;[∐] copysr;[℗] colon;[:] comma;[,] comp;[∁] cong;[≅] copf;[𝕔] copy;[©] copy[©].
+ "\x09mplement;\x03∁\x08mplexes;\x03ℂ\x06loneq;\x03≔\x06ngdot;\x03⩭\x05lone;\x03≔\x05mmat;\x01@\x05mpfn;\x03∘\x05nint;\x03∮\x05prod;\x03∐\x05pysr;\x03℗\x04lon;\x01:\x04mma;\x01,\x03mp;\x03∁\x03ng;\x03≅\x03pf;\x04𝕔\x03py;\x02©\x02py\x02©",
+ // crarr;[↵] cross;[✗].
+ "\x04arr;\x03↵\x04oss;\x03✗",
+ // csube;[⫑] csupe;[⫒] cscr;[𝒸] csub;[⫏] csup;[⫐].
+ "\x04ube;\x03⫑\x04upe;\x03⫒\x03cr;\x04𝒸\x03ub;\x03⫏\x03up;\x03⫐",
+ // ctdot;[⋯].
+ "\x04dot;\x03⋯",
+ // curvearrowright;[↷] curvearrowleft;[↶] curlyeqprec;[⋞] curlyeqsucc;[⋟] curlywedge;[⋏] cupbrcap;[⩈] curlyvee;[⋎] cudarrl;[⤸] cudarrr;[⤵] cularrp;[⤽] curarrm;[⤼] cularr;[↶] cupcap;[⩆] cupcup;[⩊] cupdot;[⊍] curarr;[↷] curren;[¤] cuepr;[⋞] cuesc;[⋟] cupor;[⩅] curren[¤] cuvee;[⋎] cuwed;[⋏] cups;[∪︀] cup;[∪].
+ "\x0ervearrowright;\x03↷\x0drvearrowleft;\x03↶\x0arlyeqprec;\x03⋞\x0arlyeqsucc;\x03⋟\x09rlywedge;\x03⋏\x07pbrcap;\x03⩈\x07rlyvee;\x03⋎\x06darrl;\x03⤸\x06darrr;\x03⤵\x06larrp;\x03⤽\x06rarrm;\x03⤼\x05larr;\x03↶\x05pcap;\x03⩆\x05pcup;\x03⩊\x05pdot;\x03⊍\x05rarr;\x03↷\x05rren;\x02¤\x04epr;\x03⋞\x04esc;\x03⋟\x04por;\x03⩅\x04rren\x02¤\x04vee;\x03⋎\x04wed;\x03⋏\x03ps;\x06∪︀\x02p;\x03∪",
+ // cwconint;[∲] cwint;[∱].
+ "\x07conint;\x03∲\x04int;\x03∱",
+ // cylcty;[⌭].
+ "\x05lcty;\x03⌭",
+ // dArr;[⇓].
+ "\x03rr;\x03⇓",
+ // dHar;[⥥].
+ "\x03ar;\x03⥥",
+ // dagger;[†] daleth;[ℸ] dashv;[⊣] darr;[↓] dash;[‐].
+ "\x05gger;\x03†\x05leth;\x03ℸ\x04shv;\x03⊣\x03rr;\x03↓\x03sh;\x03‐",
+ // dbkarow;[⤏] dblac;[˝].
+ "\x06karow;\x03⤏\x04lac;\x02˝",
+ // dcaron;[ď] dcy;[д].
+ "\x05aron;\x02ď\x02y;\x02д",
+ // ddagger;[‡] ddotseq;[⩷] ddarr;[⇊] dd;[ⅆ].
+ "\x06agger;\x03‡\x06otseq;\x03⩷\x04arr;\x03⇊\x01;\x03ⅆ",
+ // demptyv;[⦱] delta;[δ] deg;[°] deg[°].
+ "\x06mptyv;\x03⦱\x04lta;\x02δ\x02g;\x02°\x01g\x02°",
+ // dfisht;[⥿] dfr;[𝔡].
+ "\x05isht;\x03⥿\x02r;\x04𝔡",
+ // dharl;[⇃] dharr;[⇂].
+ "\x04arl;\x03⇃\x04arr;\x03⇂",
+ // divideontimes;[⋇] diamondsuit;[♦] diamond;[⋄] digamma;[ϝ] divide;[÷] divonx;[⋇] diams;[♦] disin;[⋲] divide[÷] diam;[⋄] die;[¨] div;[÷].
+ "\x0cvideontimes;\x03⋇\x0aamondsuit;\x03♦\x06amond;\x03⋄\x06gamma;\x02ϝ\x05vide;\x02÷\x05vonx;\x03⋇\x04ams;\x03♦\x04sin;\x03⋲\x04vide\x02÷\x03am;\x03⋄\x02e;\x02¨\x02v;\x02÷",
+ // djcy;[ђ].
+ "\x03cy;\x02ђ",
+ // dlcorn;[⌞] dlcrop;[⌍].
+ "\x05corn;\x03⌞\x05crop;\x03⌍",
+ // downharpoonright;[⇂] downharpoonleft;[⇃] doublebarwedge;[⌆] downdownarrows;[⇊] dotsquare;[⊡] downarrow;[↓] doteqdot;[≑] dotminus;[∸] dotplus;[∔] dollar;[$] doteq;[≐] dopf;[𝕕] dot;[˙].
+ "\x0fwnharpoonright;\x03⇂\x0ewnharpoonleft;\x03⇃\x0dublebarwedge;\x03⌆\x0dwndownarrows;\x03⇊\x08tsquare;\x03⊡\x08wnarrow;\x03↓\x07teqdot;\x03≑\x07tminus;\x03∸\x06tplus;\x03∔\x05llar;\x01$\x04teq;\x03≐\x03pf;\x04𝕕\x02t;\x02˙",
+ // drbkarow;[⤐] drcorn;[⌟] drcrop;[⌌].
+ "\x07bkarow;\x03⤐\x05corn;\x03⌟\x05crop;\x03⌌",
+ // dstrok;[đ] dscr;[𝒹] dscy;[ѕ] dsol;[⧶].
+ "\x05trok;\x02đ\x03cr;\x04𝒹\x03cy;\x02ѕ\x03ol;\x03⧶",
+ // dtdot;[⋱] dtrif;[▾] dtri;[▿].
+ "\x04dot;\x03⋱\x04rif;\x03▾\x03ri;\x03▿",
+ // duarr;[⇵] duhar;[⥯].
+ "\x04arr;\x03⇵\x04har;\x03⥯",
+ // dwangle;[⦦].
+ "\x06angle;\x03⦦",
+ // dzigrarr;[⟿] dzcy;[џ].
+ "\x07igrarr;\x03⟿\x03cy;\x02џ",
+ // eDDot;[⩷] eDot;[≑].
+ "\x04Dot;\x03⩷\x03ot;\x03≑",
+ // eacute;[é] easter;[⩮] eacute[é].
+ "\x05cute;\x02é\x05ster;\x03⩮\x04cute\x02é",
+ // ecaron;[ě] ecolon;[≕] ecirc;[ê] ecir;[≖] ecirc[ê] ecy;[э].
+ "\x05aron;\x02ě\x05olon;\x03≕\x04irc;\x02ê\x03ir;\x03≖\x03irc\x02ê\x02y;\x02э",
+ // edot;[ė].
+ "\x03ot;\x02ė",
+ // ee;[ⅇ].
+ "\x01;\x03ⅇ",
+ // efDot;[≒] efr;[𝔢].
+ "\x04Dot;\x03≒\x02r;\x04𝔢",
+ // egrave;[è] egsdot;[⪘] egrave[è] egs;[⪖] eg;[⪚].
+ "\x05rave;\x02è\x05sdot;\x03⪘\x04rave\x02è\x02s;\x03⪖\x01;\x03⪚",
+ // elinters;[⏧] elsdot;[⪗] ell;[ℓ] els;[⪕] el;[⪙].
+ "\x07inters;\x03⏧\x05sdot;\x03⪗\x02l;\x03ℓ\x02s;\x03⪕\x01;\x03⪙",
+ // emptyset;[∅] emptyv;[∅] emsp13;[ ] emsp14;[ ] emacr;[ē] empty;[∅] emsp;[ ].
+ "\x07ptyset;\x03∅\x05ptyv;\x03∅\x05sp13;\x03 \x05sp14;\x03 \x04acr;\x02ē\x04pty;\x03∅\x03sp;\x03 ",
+ // ensp;[ ] eng;[ŋ].
+ "\x03sp;\x03 \x02g;\x02ŋ",
+ // eogon;[ę] eopf;[𝕖].
+ "\x04gon;\x02ę\x03pf;\x04𝕖",
+ // epsilon;[ε] eparsl;[⧣] eplus;[⩱] epsiv;[ϵ] epar;[⋕] epsi;[ε].
+ "\x06silon;\x02ε\x05arsl;\x03⧣\x04lus;\x03⩱\x04siv;\x02ϵ\x03ar;\x03⋕\x03si;\x02ε",
+ // eqslantless;[⪕] eqslantgtr;[⪖] eqvparsl;[⧥] eqcolon;[≕] equivDD;[⩸] eqcirc;[≖] equals;[=] equest;[≟] eqsim;[≂] equiv;[≡].
+ "\x0aslantless;\x03⪕\x09slantgtr;\x03⪖\x07vparsl;\x03⧥\x06colon;\x03≕\x06uivDD;\x03⩸\x05circ;\x03≖\x05uals;\x01=\x05uest;\x03≟\x04sim;\x03≂\x04uiv;\x03≡",
+ // erDot;[≓] erarr;[⥱].
+ "\x04Dot;\x03≓\x04arr;\x03⥱",
+ // esdot;[≐] escr;[ℯ] esim;[≂].
+ "\x04dot;\x03≐\x03cr;\x03ℯ\x03im;\x03≂",
+ // eta;[η] eth;[ð] eth[ð].
+ "\x02a;\x02η\x02h;\x02ð\x01h\x02ð",
+ // euml;[ë] euro;[€] euml[ë].
+ "\x03ml;\x02ë\x03ro;\x03€\x02ml\x02ë",
+ // exponentiale;[ⅇ] expectation;[ℰ] exist;[∃] excl;[!].
+ "\x0bponentiale;\x03ⅇ\x0apectation;\x03ℰ\x04ist;\x03∃\x03cl;\x01!",
+ // fallingdotseq;[≒].
+ "\x0cllingdotseq;\x03≒",
+ // fcy;[ф].
+ "\x02y;\x02ф",
+ // female;[♀].
+ "\x05male;\x03♀",
+ // ffilig;[ffi] ffllig;[ffl] fflig;[ff] ffr;[𝔣].
+ "\x05ilig;\x03ffi\x05llig;\x03ffl\x04lig;\x03ff\x02r;\x04𝔣",
+ // filig;[fi].
+ "\x04lig;\x03fi",
+ // fjlig;[fj].
+ "\x04lig;\x02fj",
+ // fllig;[fl] fltns;[▱] flat;[♭].
+ "\x04lig;\x03fl\x04tns;\x03▱\x03at;\x03♭",
+ // fnof;[ƒ].
+ "\x03of;\x02ƒ",
+ // forall;[∀] forkv;[⫙] fopf;[𝕗] fork;[⋔].
+ "\x05rall;\x03∀\x04rkv;\x03⫙\x03pf;\x04𝕗\x03rk;\x03⋔",
+ // fpartint;[⨍].
+ "\x07artint;\x03⨍",
+ // frac12;[½] frac13;[⅓] frac14;[¼] frac15;[⅕] frac16;[⅙] frac18;[⅛] frac23;[⅔] frac25;[⅖] frac34;[¾] frac35;[⅗] frac38;[⅜] frac45;[⅘] frac56;[⅚] frac58;[⅝] frac78;[⅞] frac12[½] frac14[¼] frac34[¾] frasl;[⁄] frown;[⌢].
+ "\x05ac12;\x02½\x05ac13;\x03⅓\x05ac14;\x02¼\x05ac15;\x03⅕\x05ac16;\x03⅙\x05ac18;\x03⅛\x05ac23;\x03⅔\x05ac25;\x03⅖\x05ac34;\x02¾\x05ac35;\x03⅗\x05ac38;\x03⅜\x05ac45;\x03⅘\x05ac56;\x03⅚\x05ac58;\x03⅝\x05ac78;\x03⅞\x04ac12\x02½\x04ac14\x02¼\x04ac34\x02¾\x04asl;\x03⁄\x04own;\x03⌢",
+ // fscr;[𝒻].
+ "\x03cr;\x04𝒻",
+ // gEl;[⪌] gE;[≧].
+ "\x02l;\x03⪌\x01;\x03≧",
+ // gacute;[ǵ] gammad;[ϝ] gamma;[γ] gap;[⪆].
+ "\x05cute;\x02ǵ\x05mmad;\x02ϝ\x04mma;\x02γ\x02p;\x03⪆",
+ // gbreve;[ğ].
+ "\x05reve;\x02ğ",
+ // gcirc;[ĝ] gcy;[г].
+ "\x04irc;\x02ĝ\x02y;\x02г",
+ // gdot;[ġ].
+ "\x03ot;\x02ġ",
+ // geqslant;[⩾] gesdotol;[⪄] gesdoto;[⪂] gesdot;[⪀] gesles;[⪔] gescc;[⪩] geqq;[≧] gesl;[⋛︀] gel;[⋛] geq;[≥] ges;[⩾] ge;[≥].
+ "\x07qslant;\x03⩾\x07sdotol;\x03⪄\x06sdoto;\x03⪂\x05sdot;\x03⪀\x05sles;\x03⪔\x04scc;\x03⪩\x03qq;\x03≧\x03sl;\x06⋛︀\x02l;\x03⋛\x02q;\x03≥\x02s;\x03⩾\x01;\x03≥",
+ // gfr;[𝔤].
+ "\x02r;\x04𝔤",
+ // ggg;[⋙] gg;[≫].
+ "\x02g;\x03⋙\x01;\x03≫",
+ // gimel;[ℷ].
+ "\x04mel;\x03ℷ",
+ // gjcy;[ѓ].
+ "\x03cy;\x02ѓ",
+ // glE;[⪒] gla;[⪥] glj;[⪤] gl;[≷].
+ "\x02E;\x03⪒\x02a;\x03⪥\x02j;\x03⪤\x01;\x03≷",
+ // gnapprox;[⪊] gneqq;[≩] gnsim;[⋧] gnap;[⪊] gneq;[⪈] gnE;[≩] gne;[⪈].
+ "\x07approx;\x03⪊\x04eqq;\x03≩\x04sim;\x03⋧\x03ap;\x03⪊\x03eq;\x03⪈\x02E;\x03≩\x02e;\x03⪈",
+ // gopf;[𝕘].
+ "\x03pf;\x04𝕘",
+ // grave;[`].
+ "\x04ave;\x01`",
+ // gsime;[⪎] gsiml;[⪐] gscr;[ℊ] gsim;[≳].
+ "\x04ime;\x03⪎\x04iml;\x03⪐\x03cr;\x03ℊ\x03im;\x03≳",
+ // gtreqqless;[⪌] gtrapprox;[⪆] gtreqless;[⋛] gtquest;[⩼] gtrless;[≷] gtlPar;[⦕] gtrarr;[⥸] gtrdot;[⋗] gtrsim;[≳] gtcir;[⩺] gtdot;[⋗] gtcc;[⪧] gt;[>].
+ "\x09reqqless;\x03⪌\x08rapprox;\x03⪆\x08reqless;\x03⋛\x06quest;\x03⩼\x06rless;\x03≷\x05lPar;\x03⦕\x05rarr;\x03⥸\x05rdot;\x03⋗\x05rsim;\x03≳\x04cir;\x03⩺\x04dot;\x03⋗\x03cc;\x03⪧\x01;\x01>",
+ // gvertneqq;[≩︀] gvnE;[≩︀].
+ "\x08ertneqq;\x06≩︀\x03nE;\x06≩︀",
+ // hArr;[⇔].
+ "\x03rr;\x03⇔",
+ // harrcir;[⥈] hairsp;[ ] hamilt;[ℋ] hardcy;[ъ] harrw;[↭] half;[½] harr;[↔].
+ "\x06rrcir;\x03⥈\x05irsp;\x03 \x05milt;\x03ℋ\x05rdcy;\x02ъ\x04rrw;\x03↭\x03lf;\x02½\x03rr;\x03↔",
+ // hbar;[ℏ].
+ "\x03ar;\x03ℏ",
+ // hcirc;[ĥ].
+ "\x04irc;\x02ĥ",
+ // heartsuit;[♥] hearts;[♥] hellip;[…] hercon;[⊹].
+ "\x08artsuit;\x03♥\x05arts;\x03♥\x05llip;\x03…\x05rcon;\x03⊹",
+ // hfr;[𝔥].
+ "\x02r;\x04𝔥",
+ // hksearow;[⤥] hkswarow;[⤦].
+ "\x07searow;\x03⤥\x07swarow;\x03⤦",
+ // hookrightarrow;[↪] hookleftarrow;[↩] homtht;[∻] horbar;[―] hoarr;[⇿] hopf;[𝕙].
+ "\x0dokrightarrow;\x03↪\x0cokleftarrow;\x03↩\x05mtht;\x03∻\x05rbar;\x03―\x04arr;\x03⇿\x03pf;\x04𝕙",
+ // hslash;[ℏ] hstrok;[ħ] hscr;[𝒽].
+ "\x05lash;\x03ℏ\x05trok;\x02ħ\x03cr;\x04𝒽",
+ // hybull;[⁃] hyphen;[‐].
+ "\x05bull;\x03⁃\x05phen;\x03‐",
+ // iacute;[í] iacute[í].
+ "\x05cute;\x02í\x04cute\x02í",
+ // icirc;[î] icirc[î] icy;[и] ic;[].
+ "\x04irc;\x02î\x03irc\x02î\x02y;\x02и\x01;\x03",
+ // iexcl;[¡] iecy;[е] iexcl[¡].
+ "\x04xcl;\x02¡\x03cy;\x02е\x03xcl\x02¡",
+ // iff;[⇔] ifr;[𝔦].
+ "\x02f;\x03⇔\x02r;\x04𝔦",
+ // igrave;[ì] igrave[ì].
+ "\x05rave;\x02ì\x04rave\x02ì",
+ // iiiint;[⨌] iinfin;[⧜] iiint;[∭] iiota;[℩] ii;[ⅈ].
+ "\x05iint;\x03⨌\x05nfin;\x03⧜\x04int;\x03∭\x04ota;\x03℩\x01;\x03ⅈ",
+ // ijlig;[ij].
+ "\x04lig;\x02ij",
+ // imagline;[ℐ] imagpart;[ℑ] imacr;[ī] image;[ℑ] imath;[ı] imped;[Ƶ] imof;[⊷].
+ "\x07agline;\x03ℐ\x07agpart;\x03ℑ\x04acr;\x02ī\x04age;\x03ℑ\x04ath;\x02ı\x04ped;\x02Ƶ\x03of;\x03⊷",
+ // infintie;[⧝] integers;[ℤ] intercal;[⊺] intlarhk;[⨗] intprod;[⨼] incare;[℅] inodot;[ı] intcal;[⊺] infin;[∞] int;[∫] in;[∈].
+ "\x07fintie;\x03⧝\x07tegers;\x03ℤ\x07tercal;\x03⊺\x07tlarhk;\x03⨗\x06tprod;\x03⨼\x05care;\x03℅\x05odot;\x02ı\x05tcal;\x03⊺\x04fin;\x03∞\x02t;\x03∫\x01;\x03∈",
+ // iogon;[į] iocy;[ё] iopf;[𝕚] iota;[ι].
+ "\x04gon;\x02į\x03cy;\x02ё\x03pf;\x04𝕚\x03ta;\x02ι",
+ // iprod;[⨼].
+ "\x04rod;\x03⨼",
+ // iquest;[¿] iquest[¿].
+ "\x05uest;\x02¿\x04uest\x02¿",
+ // isindot;[⋵] isinsv;[⋳] isinE;[⋹] isins;[⋴] isinv;[∈] iscr;[𝒾] isin;[∈].
+ "\x06indot;\x03⋵\x05insv;\x03⋳\x04inE;\x03⋹\x04ins;\x03⋴\x04inv;\x03∈\x03cr;\x04𝒾\x03in;\x03∈",
+ // itilde;[ĩ] it;[].
+ "\x05ilde;\x02ĩ\x01;\x03",
+ // iukcy;[і] iuml;[ï] iuml[ï].
+ "\x04kcy;\x02і\x03ml;\x02ï\x02ml\x02ï",
+ // jcirc;[ĵ] jcy;[й].
+ "\x04irc;\x02ĵ\x02y;\x02й",
+ // jfr;[𝔧].
+ "\x02r;\x04𝔧",
+ // jmath;[ȷ].
+ "\x04ath;\x02ȷ",
+ // jopf;[𝕛].
+ "\x03pf;\x04𝕛",
+ // jsercy;[ј] jscr;[𝒿].
+ "\x05ercy;\x02ј\x03cr;\x04𝒿",
+ // jukcy;[є].
+ "\x04kcy;\x02є",
+ // kappav;[ϰ] kappa;[κ].
+ "\x05ppav;\x02ϰ\x04ppa;\x02κ",
+ // kcedil;[ķ] kcy;[к].
+ "\x05edil;\x02ķ\x02y;\x02к",
+ // kfr;[𝔨].
+ "\x02r;\x04𝔨",
+ // kgreen;[ĸ].
+ "\x05reen;\x02ĸ",
+ // khcy;[х].
+ "\x03cy;\x02х",
+ // kjcy;[ќ].
+ "\x03cy;\x02ќ",
+ // kopf;[𝕜].
+ "\x03pf;\x04𝕜",
+ // kscr;[𝓀].
+ "\x03cr;\x04𝓀",
+ // lAtail;[⤛] lAarr;[⇚] lArr;[⇐].
+ "\x05tail;\x03⤛\x04arr;\x03⇚\x03rr;\x03⇐",
+ // lBarr;[⤎].
+ "\x04arr;\x03⤎",
+ // lEg;[⪋] lE;[≦].
+ "\x02g;\x03⪋\x01;\x03≦",
+ // lHar;[⥢].
+ "\x03ar;\x03⥢",
+ // laemptyv;[⦴] larrbfs;[⤟] larrsim;[⥳] lacute;[ĺ] lagran;[ℒ] lambda;[λ] langle;[⟨] larrfs;[⤝] larrhk;[↩] larrlp;[↫] larrpl;[⤹] larrtl;[↢] latail;[⤙] langd;[⦑] laquo;[«] larrb;[⇤] lates;[⪭︀] lang;[⟨] laquo[«] larr;[←] late;[⪭] lap;[⪅] lat;[⪫].
+ "\x07emptyv;\x03⦴\x06rrbfs;\x03⤟\x06rrsim;\x03⥳\x05cute;\x02ĺ\x05gran;\x03ℒ\x05mbda;\x02λ\x05ngle;\x03⟨\x05rrfs;\x03⤝\x05rrhk;\x03↩\x05rrlp;\x03↫\x05rrpl;\x03⤹\x05rrtl;\x03↢\x05tail;\x03⤙\x04ngd;\x03⦑\x04quo;\x02«\x04rrb;\x03⇤\x04tes;\x06⪭︀\x03ng;\x03⟨\x03quo\x02«\x03rr;\x03←\x03te;\x03⪭\x02p;\x03⪅\x02t;\x03⪫",
+ // lbrksld;[⦏] lbrkslu;[⦍] lbrace;[{] lbrack;[[] lbarr;[⤌] lbbrk;[❲] lbrke;[⦋].
+ "\x06rksld;\x03⦏\x06rkslu;\x03⦍\x05race;\x01{\x05rack;\x01[\x04arr;\x03⤌\x04brk;\x03❲\x04rke;\x03⦋",
+ // lcaron;[ľ] lcedil;[ļ] lceil;[⌈] lcub;[{] lcy;[л].
+ "\x05aron;\x02ľ\x05edil;\x02ļ\x04eil;\x03⌈\x03ub;\x01{\x02y;\x02л",
+ // ldrushar;[⥋] ldrdhar;[⥧] ldquor;[„] ldquo;[“] ldca;[⤶] ldsh;[↲].
+ "\x07rushar;\x03⥋\x06rdhar;\x03⥧\x05quor;\x03„\x04quo;\x03“\x03ca;\x03⤶\x03sh;\x03↲",
+ // leftrightsquigarrow;[↭] leftrightharpoons;[⇋] leftharpoondown;[↽] leftrightarrows;[⇆] leftleftarrows;[⇇] leftrightarrow;[↔] leftthreetimes;[⋋] leftarrowtail;[↢] leftharpoonup;[↼] lessapprox;[⪅] lesseqqgtr;[⪋] leftarrow;[←] lesseqgtr;[⋚] leqslant;[⩽] lesdotor;[⪃] lesdoto;[⪁] lessdot;[⋖] lessgtr;[≶] lesssim;[≲] lesdot;[⩿] lesges;[⪓] lescc;[⪨] leqq;[≦] lesg;[⋚︀] leg;[⋚] leq;[≤] les;[⩽] le;[≤].
+ "\x12ftrightsquigarrow;\x03↭\x10ftrightharpoons;\x03⇋\x0eftharpoondown;\x03↽\x0eftrightarrows;\x03⇆\x0dftleftarrows;\x03⇇\x0dftrightarrow;\x03↔\x0dftthreetimes;\x03⋋\x0cftarrowtail;\x03↢\x0cftharpoonup;\x03↼\x09ssapprox;\x03⪅\x09sseqqgtr;\x03⪋\x08ftarrow;\x03←\x08sseqgtr;\x03⋚\x07qslant;\x03⩽\x07sdotor;\x03⪃\x06sdoto;\x03⪁\x06ssdot;\x03⋖\x06ssgtr;\x03≶\x06sssim;\x03≲\x05sdot;\x03⩿\x05sges;\x03⪓\x04scc;\x03⪨\x03qq;\x03≦\x03sg;\x06⋚︀\x02g;\x03⋚\x02q;\x03≤\x02s;\x03⩽\x01;\x03≤",
+ // lfisht;[⥼] lfloor;[⌊] lfr;[𝔩].
+ "\x05isht;\x03⥼\x05loor;\x03⌊\x02r;\x04𝔩",
+ // lgE;[⪑] lg;[≶].
+ "\x02E;\x03⪑\x01;\x03≶",
+ // lharul;[⥪] lhard;[↽] lharu;[↼] lhblk;[▄].
+ "\x05arul;\x03⥪\x04ard;\x03↽\x04aru;\x03↼\x04blk;\x03▄",
+ // ljcy;[љ].
+ "\x03cy;\x02љ",
+ // llcorner;[⌞] llhard;[⥫] llarr;[⇇] lltri;[◺] ll;[≪].
+ "\x07corner;\x03⌞\x05hard;\x03⥫\x04arr;\x03⇇\x04tri;\x03◺\x01;\x03≪",
+ // lmoustache;[⎰] lmidot;[ŀ] lmoust;[⎰].
+ "\x09oustache;\x03⎰\x05idot;\x02ŀ\x05oust;\x03⎰",
+ // lnapprox;[⪉] lneqq;[≨] lnsim;[⋦] lnap;[⪉] lneq;[⪇] lnE;[≨] lne;[⪇].
+ "\x07approx;\x03⪉\x04eqq;\x03≨\x04sim;\x03⋦\x03ap;\x03⪉\x03eq;\x03⪇\x02E;\x03≨\x02e;\x03⪇",
+ // longleftrightarrow;[⟷] longrightarrow;[⟶] looparrowright;[↬] longleftarrow;[⟵] looparrowleft;[↫] longmapsto;[⟼] lotimes;[⨴] lozenge;[◊] loplus;[⨭] lowast;[∗] lowbar;[_] loang;[⟬] loarr;[⇽] lobrk;[⟦] lopar;[⦅] lopf;[𝕝] lozf;[⧫] loz;[◊].
+ "\x11ngleftrightarrow;\x03⟷\x0dngrightarrow;\x03⟶\x0doparrowright;\x03↬\x0cngleftarrow;\x03⟵\x0coparrowleft;\x03↫\x09ngmapsto;\x03⟼\x06times;\x03⨴\x06zenge;\x03◊\x05plus;\x03⨭\x05wast;\x03∗\x05wbar;\x01_\x04ang;\x03⟬\x04arr;\x03⇽\x04brk;\x03⟦\x04par;\x03⦅\x03pf;\x04𝕝\x03zf;\x03⧫\x02z;\x03◊",
+ // lparlt;[⦓] lpar;[(].
+ "\x05arlt;\x03⦓\x03ar;\x01(",
+ // lrcorner;[⌟] lrhard;[⥭] lrarr;[⇆] lrhar;[⇋] lrtri;[⊿] lrm;[].
+ "\x07corner;\x03⌟\x05hard;\x03⥭\x04arr;\x03⇆\x04har;\x03⇋\x04tri;\x03⊿\x02m;\x03",
+ // lsaquo;[‹] lsquor;[‚] lstrok;[ł] lsime;[⪍] lsimg;[⪏] lsquo;[‘] lscr;[𝓁] lsim;[≲] lsqb;[[] lsh;[↰].
+ "\x05aquo;\x03‹\x05quor;\x03‚\x05trok;\x02ł\x04ime;\x03⪍\x04img;\x03⪏\x04quo;\x03‘\x03cr;\x04𝓁\x03im;\x03≲\x03qb;\x01[\x02h;\x03↰",
+ // ltquest;[⩻] lthree;[⋋] ltimes;[⋉] ltlarr;[⥶] ltrPar;[⦖] ltcir;[⩹] ltdot;[⋖] ltrie;[⊴] ltrif;[◂] ltcc;[⪦] ltri;[◃] lt;[<].
+ "\x06quest;\x03⩻\x05hree;\x03⋋\x05imes;\x03⋉\x05larr;\x03⥶\x05rPar;\x03⦖\x04cir;\x03⩹\x04dot;\x03⋖\x04rie;\x03⊴\x04rif;\x03◂\x03cc;\x03⪦\x03ri;\x03◃\x01;\x01<",
+ // lurdshar;[⥊] luruhar;[⥦].
+ "\x07rdshar;\x03⥊\x06ruhar;\x03⥦",
+ // lvertneqq;[≨︀] lvnE;[≨︀].
+ "\x08ertneqq;\x06≨︀\x03nE;\x06≨︀",
+ // mDDot;[∺].
+ "\x04Dot;\x03∺",
+ // mapstodown;[↧] mapstoleft;[↤] mapstoup;[↥] maltese;[✠] mapsto;[↦] marker;[▮] macr;[¯] male;[♂] malt;[✠] macr[¯] map;[↦].
+ "\x09pstodown;\x03↧\x09pstoleft;\x03↤\x07pstoup;\x03↥\x06ltese;\x03✠\x05psto;\x03↦\x05rker;\x03▮\x03cr;\x02¯\x03le;\x03♂\x03lt;\x03✠\x02cr\x02¯\x02p;\x03↦",
+ // mcomma;[⨩] mcy;[м].
+ "\x05omma;\x03⨩\x02y;\x02м",
+ // mdash;[—].
+ "\x04ash;\x03—",
+ // measuredangle;[∡].
+ "\x0casuredangle;\x03∡",
+ // mfr;[𝔪].
+ "\x02r;\x04𝔪",
+ // mho;[℧].
+ "\x02o;\x03℧",
+ // minusdu;[⨪] midast;[*] midcir;[⫰] middot;[·] minusb;[⊟] minusd;[∸] micro;[µ] middot[·] minus;[−] micro[µ] mid;[∣].
+ "\x06nusdu;\x03⨪\x05dast;\x01*\x05dcir;\x03⫰\x05ddot;\x02·\x05nusb;\x03⊟\x05nusd;\x03∸\x04cro;\x02µ\x04ddot\x02·\x04nus;\x03−\x03cro\x02µ\x02d;\x03∣",
+ // mlcp;[⫛] mldr;[…].
+ "\x03cp;\x03⫛\x03dr;\x03…",
+ // mnplus;[∓].
+ "\x05plus;\x03∓",
+ // models;[⊧] mopf;[𝕞].
+ "\x05dels;\x03⊧\x03pf;\x04𝕞",
+ // mp;[∓].
+ "\x01;\x03∓",
+ // mstpos;[∾] mscr;[𝓂].
+ "\x05tpos;\x03∾\x03cr;\x04𝓂",
+ // multimap;[⊸] mumap;[⊸] mu;[μ].
+ "\x07ltimap;\x03⊸\x04map;\x03⊸\x01;\x02μ",
+ // nGtv;[≫̸] nGg;[⋙̸] nGt;[≫⃒].
+ "\x03tv;\x05≫̸\x02g;\x05⋙̸\x02t;\x06≫⃒",
+ // nLeftrightarrow;[⇎] nLeftarrow;[⇍] nLtv;[≪̸] nLl;[⋘̸] nLt;[≪⃒].
+ "\x0eeftrightarrow;\x03⇎\x09eftarrow;\x03⇍\x03tv;\x05≪̸\x02l;\x05⋘̸\x02t;\x06≪⃒",
+ // nRightarrow;[⇏].
+ "\x0aightarrow;\x03⇏",
+ // nVDash;[⊯] nVdash;[⊮].
+ "\x05Dash;\x03⊯\x05dash;\x03⊮",
+ // naturals;[ℕ] napprox;[≉] natural;[♮] nacute;[ń] nabla;[∇] napid;[≋̸] napos;[ʼn] natur;[♮] nang;[∠⃒] napE;[⩰̸] nap;[≉].
+ "\x07turals;\x03ℕ\x06pprox;\x03≉\x06tural;\x03♮\x05cute;\x02ń\x04bla;\x03∇\x04pid;\x05≋̸\x04pos;\x02ʼn\x04tur;\x03♮\x03ng;\x06∠⃒\x03pE;\x05⩰̸\x02p;\x03≉",
+ // nbumpe;[≏̸] nbump;[≎̸] nbsp;[ ] nbsp[ ].
+ "\x05umpe;\x05≏̸\x04ump;\x05≎̸\x03sp;\x02 \x02sp\x02 ",
+ // ncongdot;[⩭̸] ncaron;[ň] ncedil;[ņ] ncong;[≇] ncap;[⩃] ncup;[⩂] ncy;[н].
+ "\x07ongdot;\x05⩭̸\x05aron;\x02ň\x05edil;\x02ņ\x04ong;\x03≇\x03ap;\x03⩃\x03up;\x03⩂\x02y;\x02н",
+ // ndash;[–].
+ "\x04ash;\x03–",
+ // nearrow;[↗] nexists;[∄] nearhk;[⤤] nequiv;[≢] nesear;[⤨] nexist;[∄] neArr;[⇗] nearr;[↗] nedot;[≐̸] nesim;[≂̸] ne;[≠].
+ "\x06arrow;\x03↗\x06xists;\x03∄\x05arhk;\x03⤤\x05quiv;\x03≢\x05sear;\x03⤨\x05xist;\x03∄\x04Arr;\x03⇗\x04arr;\x03↗\x04dot;\x05≐̸\x04sim;\x05≂̸\x01;\x03≠",
+ // nfr;[𝔫].
+ "\x02r;\x04𝔫",
+ // ngeqslant;[⩾̸] ngeqq;[≧̸] ngsim;[≵] ngeq;[≱] nges;[⩾̸] ngtr;[≯] ngE;[≧̸] nge;[≱] ngt;[≯].
+ "\x08eqslant;\x05⩾̸\x04eqq;\x05≧̸\x04sim;\x03≵\x03eq;\x03≱\x03es;\x05⩾̸\x03tr;\x03≯\x02E;\x05≧̸\x02e;\x03≱\x02t;\x03≯",
+ // nhArr;[⇎] nharr;[↮] nhpar;[⫲].
+ "\x04Arr;\x03⇎\x04arr;\x03↮\x04par;\x03⫲",
+ // nisd;[⋺] nis;[⋼] niv;[∋] ni;[∋].
+ "\x03sd;\x03⋺\x02s;\x03⋼\x02v;\x03∋\x01;\x03∋",
+ // njcy;[њ].
+ "\x03cy;\x02њ",
+ // nleftrightarrow;[↮] nleftarrow;[↚] nleqslant;[⩽̸] nltrie;[⋬] nlArr;[⇍] nlarr;[↚] nleqq;[≦̸] nless;[≮] nlsim;[≴] nltri;[⋪] nldr;[‥] nleq;[≰] nles;[⩽̸] nlE;[≦̸] nle;[≰] nlt;[≮].
+ "\x0eeftrightarrow;\x03↮\x09eftarrow;\x03↚\x08eqslant;\x05⩽̸\x05trie;\x03⋬\x04Arr;\x03⇍\x04arr;\x03↚\x04eqq;\x05≦̸\x04ess;\x03≮\x04sim;\x03≴\x04tri;\x03⋪\x03dr;\x03‥\x03eq;\x03≰\x03es;\x05⩽̸\x02E;\x05≦̸\x02e;\x03≰\x02t;\x03≮",
+ // nmid;[∤].
+ "\x03id;\x03∤",
+ // notindot;[⋵̸] notinva;[∉] notinvb;[⋷] notinvc;[⋶] notniva;[∌] notnivb;[⋾] notnivc;[⋽] notinE;[⋹̸] notin;[∉] notni;[∌] nopf;[𝕟] not;[¬] not[¬].
+ "\x07tindot;\x05⋵̸\x06tinva;\x03∉\x06tinvb;\x03⋷\x06tinvc;\x03⋶\x06tniva;\x03∌\x06tnivb;\x03⋾\x06tnivc;\x03⋽\x05tinE;\x05⋹̸\x04tin;\x03∉\x04tni;\x03∌\x03pf;\x04𝕟\x02t;\x02¬\x01t\x02¬",
+ // nparallel;[∦] npolint;[⨔] npreceq;[⪯̸] nparsl;[⫽⃥] nprcue;[⋠] npart;[∂̸] nprec;[⊀] npar;[∦] npre;[⪯̸] npr;[⊀].
+ "\x08arallel;\x03∦\x06olint;\x03⨔\x06receq;\x05⪯̸\x05arsl;\x06⫽⃥\x05rcue;\x03⋠\x04art;\x05∂̸\x04rec;\x03⊀\x03ar;\x03∦\x03re;\x05⪯̸\x02r;\x03⊀",
+ // nrightarrow;[↛] nrarrc;[⤳̸] nrarrw;[↝̸] nrtrie;[⋭] nrArr;[⇏] nrarr;[↛] nrtri;[⋫].
+ "\x0aightarrow;\x03↛\x05arrc;\x05⤳̸\x05arrw;\x05↝̸\x05trie;\x03⋭\x04Arr;\x03⇏\x04arr;\x03↛\x04tri;\x03⋫",
+ // nshortparallel;[∦] nsubseteqq;[⫅̸] nsupseteqq;[⫆̸] nshortmid;[∤] nsubseteq;[⊈] nsupseteq;[⊉] nsqsube;[⋢] nsqsupe;[⋣] nsubset;[⊂⃒] nsucceq;[⪰̸] nsupset;[⊃⃒] nsccue;[⋡] nsimeq;[≄] nsime;[≄] nsmid;[∤] nspar;[∦] nsubE;[⫅̸] nsube;[⊈] nsucc;[⊁] nsupE;[⫆̸] nsupe;[⊉] nsce;[⪰̸] nscr;[𝓃] nsim;[≁] nsub;[⊄] nsup;[⊅] nsc;[⊁].
+ "\x0dhortparallel;\x03∦\x09ubseteqq;\x05⫅̸\x09upseteqq;\x05⫆̸\x08hortmid;\x03∤\x08ubseteq;\x03⊈\x08upseteq;\x03⊉\x06qsube;\x03⋢\x06qsupe;\x03⋣\x06ubset;\x06⊂⃒\x06ucceq;\x05⪰̸\x06upset;\x06⊃⃒\x05ccue;\x03⋡\x05imeq;\x03≄\x04ime;\x03≄\x04mid;\x03∤\x04par;\x03∦\x04ubE;\x05⫅̸\x04ube;\x03⊈\x04ucc;\x03⊁\x04upE;\x05⫆̸\x04upe;\x03⊉\x03ce;\x05⪰̸\x03cr;\x04𝓃\x03im;\x03≁\x03ub;\x03⊄\x03up;\x03⊅\x02c;\x03⊁",
+ // ntrianglerighteq;[⋭] ntrianglelefteq;[⋬] ntriangleright;[⋫] ntriangleleft;[⋪] ntilde;[ñ] ntilde[ñ] ntgl;[≹] ntlg;[≸].
+ "\x0frianglerighteq;\x03⋭\x0erianglelefteq;\x03⋬\x0driangleright;\x03⋫\x0criangleleft;\x03⋪\x05ilde;\x02ñ\x04ilde\x02ñ\x03gl;\x03≹\x03lg;\x03≸",
+ // numero;[№] numsp;[ ] num;[#] nu;[ν].
+ "\x05mero;\x03№\x04msp;\x03 \x02m;\x01#\x01;\x02ν",
+ // nvinfin;[⧞] nvltrie;[⊴⃒] nvrtrie;[⊵⃒] nvDash;[⊭] nvHarr;[⤄] nvdash;[⊬] nvlArr;[⤂] nvrArr;[⤃] nvsim;[∼⃒] nvap;[≍⃒] nvge;[≥⃒] nvgt;[>⃒] nvle;[≤⃒] nvlt;[<⃒].
+ "\x06infin;\x03⧞\x06ltrie;\x06⊴⃒\x06rtrie;\x06⊵⃒\x05Dash;\x03⊭\x05Harr;\x03⤄\x05dash;\x03⊬\x05lArr;\x03⤂\x05rArr;\x03⤃\x04sim;\x06∼⃒\x03ap;\x06≍⃒\x03ge;\x06≥⃒\x03gt;\x04>⃒\x03le;\x06≤⃒\x03lt;\x04<⃒",
+ // nwarrow;[↖] nwarhk;[⤣] nwnear;[⤧] nwArr;[⇖] nwarr;[↖].
+ "\x06arrow;\x03↖\x05arhk;\x03⤣\x05near;\x03⤧\x04Arr;\x03⇖\x04arr;\x03↖",
+ // oS;[Ⓢ].
+ "\x01;\x03Ⓢ",
+ // oacute;[ó] oacute[ó] oast;[⊛].
+ "\x05cute;\x02ó\x04cute\x02ó\x03st;\x03⊛",
+ // ocirc;[ô] ocir;[⊚] ocirc[ô] ocy;[о].
+ "\x04irc;\x02ô\x03ir;\x03⊚\x03irc\x02ô\x02y;\x02о",
+ // odblac;[ő] odsold;[⦼] odash;[⊝] odiv;[⨸] odot;[⊙].
+ "\x05blac;\x02ő\x05sold;\x03⦼\x04ash;\x03⊝\x03iv;\x03⨸\x03ot;\x03⊙",
+ // oelig;[œ].
+ "\x04lig;\x02œ",
+ // ofcir;[⦿] ofr;[𝔬].
+ "\x04cir;\x03⦿\x02r;\x04𝔬",
+ // ograve;[ò] ograve[ò] ogon;[˛] ogt;[⧁].
+ "\x05rave;\x02ò\x04rave\x02ò\x03on;\x02˛\x02t;\x03⧁",
+ // ohbar;[⦵] ohm;[Ω].
+ "\x04bar;\x03⦵\x02m;\x02Ω",
+ // oint;[∮].
+ "\x03nt;\x03∮",
+ // olcross;[⦻] olarr;[↺] olcir;[⦾] oline;[‾] olt;[⧀].
+ "\x06cross;\x03⦻\x04arr;\x03↺\x04cir;\x03⦾\x04ine;\x03‾\x02t;\x03⧀",
+ // omicron;[ο] ominus;[⊖] omacr;[ō] omega;[ω] omid;[⦶].
+ "\x06icron;\x02ο\x05inus;\x03⊖\x04acr;\x02ō\x04ega;\x02ω\x03id;\x03⦶",
+ // oopf;[𝕠].
+ "\x03pf;\x04𝕠",
+ // operp;[⦹] oplus;[⊕] opar;[⦷].
+ "\x04erp;\x03⦹\x04lus;\x03⊕\x03ar;\x03⦷",
+ // orderof;[ℴ] orslope;[⩗] origof;[⊶] orarr;[↻] order;[ℴ] ordf;[ª] ordm;[º] oror;[⩖] ord;[⩝] ordf[ª] ordm[º] orv;[⩛] or;[∨].
+ "\x06derof;\x03ℴ\x06slope;\x03⩗\x05igof;\x03⊶\x04arr;\x03↻\x04der;\x03ℴ\x03df;\x02ª\x03dm;\x02º\x03or;\x03⩖\x02d;\x03⩝\x02df\x02ª\x02dm\x02º\x02v;\x03⩛\x01;\x03∨",
+ // oslash;[ø] oslash[ø] oscr;[ℴ] osol;[⊘].
+ "\x05lash;\x02ø\x04lash\x02ø\x03cr;\x03ℴ\x03ol;\x03⊘",
+ // otimesas;[⨶] otilde;[õ] otimes;[⊗] otilde[õ].
+ "\x07imesas;\x03⨶\x05ilde;\x02õ\x05imes;\x03⊗\x04ilde\x02õ",
+ // ouml;[ö] ouml[ö].
+ "\x03ml;\x02ö\x02ml\x02ö",
+ // ovbar;[⌽].
+ "\x04bar;\x03⌽",
+ // parallel;[∥] parsim;[⫳] parsl;[⫽] para;[¶] part;[∂] par;[∥] para[¶].
+ "\x07rallel;\x03∥\x05rsim;\x03⫳\x04rsl;\x03⫽\x03ra;\x02¶\x03rt;\x03∂\x02r;\x03∥\x02ra\x02¶",
+ // pcy;[п].
+ "\x02y;\x02п",
+ // pertenk;[‱] percnt;[%] period;[.] permil;[‰] perp;[⊥].
+ "\x06rtenk;\x03‱\x05rcnt;\x01%\x05riod;\x01.\x05rmil;\x03‰\x03rp;\x03⊥",
+ // pfr;[𝔭].
+ "\x02r;\x04𝔭",
+ // phmmat;[ℳ] phone;[☎] phiv;[ϕ] phi;[φ].
+ "\x05mmat;\x03ℳ\x04one;\x03☎\x03iv;\x02ϕ\x02i;\x02φ",
+ // pitchfork;[⋔] piv;[ϖ] pi;[π].
+ "\x08tchfork;\x03⋔\x02v;\x02ϖ\x01;\x02π",
+ // plusacir;[⨣] planckh;[ℎ] pluscir;[⨢] plussim;[⨦] plustwo;[⨧] planck;[ℏ] plankv;[ℏ] plusdo;[∔] plusdu;[⨥] plusmn;[±] plusb;[⊞] pluse;[⩲] plusmn[±] plus;[+].
+ "\x07usacir;\x03⨣\x06anckh;\x03ℎ\x06uscir;\x03⨢\x06ussim;\x03⨦\x06ustwo;\x03⨧\x05anck;\x03ℏ\x05ankv;\x03ℏ\x05usdo;\x03∔\x05usdu;\x03⨥\x05usmn;\x02±\x04usb;\x03⊞\x04use;\x03⩲\x04usmn\x02±\x03us;\x01+",
+ // pm;[±].
+ "\x01;\x02±",
+ // pointint;[⨕] pound;[£] popf;[𝕡] pound[£].
+ "\x07intint;\x03⨕\x04und;\x02£\x03pf;\x04𝕡\x03und\x02£",
+ // preccurlyeq;[≼] precnapprox;[⪹] precapprox;[⪷] precneqq;[⪵] precnsim;[⋨] profalar;[⌮] profline;[⌒] profsurf;[⌓] precsim;[≾] preceq;[⪯] primes;[ℙ] prnsim;[⋨] propto;[∝] prurel;[⊰] prcue;[≼] prime;[′] prnap;[⪹] prsim;[≾] prap;[⪷] prec;[≺] prnE;[⪵] prod;[∏] prop;[∝] prE;[⪳] pre;[⪯] pr;[≺].
+ "\x0aeccurlyeq;\x03≼\x0aecnapprox;\x03⪹\x09ecapprox;\x03⪷\x07ecneqq;\x03⪵\x07ecnsim;\x03⋨\x07ofalar;\x03⌮\x07ofline;\x03⌒\x07ofsurf;\x03⌓\x06ecsim;\x03≾\x05eceq;\x03⪯\x05imes;\x03ℙ\x05nsim;\x03⋨\x05opto;\x03∝\x05urel;\x03⊰\x04cue;\x03≼\x04ime;\x03′\x04nap;\x03⪹\x04sim;\x03≾\x03ap;\x03⪷\x03ec;\x03≺\x03nE;\x03⪵\x03od;\x03∏\x03op;\x03∝\x02E;\x03⪳\x02e;\x03⪯\x01;\x03≺",
+ // pscr;[𝓅] psi;[ψ].
+ "\x03cr;\x04𝓅\x02i;\x02ψ",
+ // puncsp;[ ].
+ "\x05ncsp;\x03 ",
+ // qfr;[𝔮].
+ "\x02r;\x04𝔮",
+ // qint;[⨌].
+ "\x03nt;\x03⨌",
+ // qopf;[𝕢].
+ "\x03pf;\x04𝕢",
+ // qprime;[⁗].
+ "\x05rime;\x03⁗",
+ // qscr;[𝓆].
+ "\x03cr;\x04𝓆",
+ // quaternions;[ℍ] quatint;[⨖] questeq;[≟] quest;[?] quot;[\"] quot[\"].
+ "\x0aaternions;\x03ℍ\x06atint;\x03⨖\x06esteq;\x03≟\x04est;\x01?\x03ot;\x01\"\x02ot\x01\"",
+ // rAtail;[⤜] rAarr;[⇛] rArr;[⇒].
+ "\x05tail;\x03⤜\x04arr;\x03⇛\x03rr;\x03⇒",
+ // rBarr;[⤏].
+ "\x04arr;\x03⤏",
+ // rHar;[⥤].
+ "\x03ar;\x03⥤",
+ // rationals;[ℚ] raemptyv;[⦳] rarrbfs;[⤠] rarrsim;[⥴] racute;[ŕ] rangle;[⟩] rarrap;[⥵] rarrfs;[⤞] rarrhk;[↪] rarrlp;[↬] rarrpl;[⥅] rarrtl;[↣] ratail;[⤚] radic;[√] rangd;[⦒] range;[⦥] raquo;[»] rarrb;[⇥] rarrc;[⤳] rarrw;[↝] ratio;[∶] race;[∽̱] rang;[⟩] raquo[»] rarr;[→].
+ "\x08tionals;\x03ℚ\x07emptyv;\x03⦳\x06rrbfs;\x03⤠\x06rrsim;\x03⥴\x05cute;\x02ŕ\x05ngle;\x03⟩\x05rrap;\x03⥵\x05rrfs;\x03⤞\x05rrhk;\x03↪\x05rrlp;\x03↬\x05rrpl;\x03⥅\x05rrtl;\x03↣\x05tail;\x03⤚\x04dic;\x03√\x04ngd;\x03⦒\x04nge;\x03⦥\x04quo;\x02»\x04rrb;\x03⇥\x04rrc;\x03⤳\x04rrw;\x03↝\x04tio;\x03∶\x03ce;\x05∽̱\x03ng;\x03⟩\x03quo\x02»\x03rr;\x03→",
+ // rbrksld;[⦎] rbrkslu;[⦐] rbrace;[}] rbrack;[]] rbarr;[⤍] rbbrk;[❳] rbrke;[⦌].
+ "\x06rksld;\x03⦎\x06rkslu;\x03⦐\x05race;\x01}\x05rack;\x01]\x04arr;\x03⤍\x04brk;\x03❳\x04rke;\x03⦌",
+ // rcaron;[ř] rcedil;[ŗ] rceil;[⌉] rcub;[}] rcy;[р].
+ "\x05aron;\x02ř\x05edil;\x02ŗ\x04eil;\x03⌉\x03ub;\x01}\x02y;\x02р",
+ // rdldhar;[⥩] rdquor;[”] rdquo;[”] rdca;[⤷] rdsh;[↳].
+ "\x06ldhar;\x03⥩\x05quor;\x03”\x04quo;\x03”\x03ca;\x03⤷\x03sh;\x03↳",
+ // realpart;[ℜ] realine;[ℛ] reals;[ℝ] real;[ℜ] rect;[▭] reg;[®] reg[®].
+ "\x07alpart;\x03ℜ\x06aline;\x03ℛ\x04als;\x03ℝ\x03al;\x03ℜ\x03ct;\x03▭\x02g;\x02®\x01g\x02®",
+ // rfisht;[⥽] rfloor;[⌋] rfr;[𝔯].
+ "\x05isht;\x03⥽\x05loor;\x03⌋\x02r;\x04𝔯",
+ // rharul;[⥬] rhard;[⇁] rharu;[⇀] rhov;[ϱ] rho;[ρ].
+ "\x05arul;\x03⥬\x04ard;\x03⇁\x04aru;\x03⇀\x03ov;\x02ϱ\x02o;\x02ρ",
+ // rightleftharpoons;[⇌] rightharpoondown;[⇁] rightrightarrows;[⇉] rightleftarrows;[⇄] rightsquigarrow;[↝] rightthreetimes;[⋌] rightarrowtail;[↣] rightharpoonup;[⇀] risingdotseq;[≓] rightarrow;[→] ring;[˚].
+ "\x10ghtleftharpoons;\x03⇌\x0fghtharpoondown;\x03⇁\x0fghtrightarrows;\x03⇉\x0eghtleftarrows;\x03⇄\x0eghtsquigarrow;\x03↝\x0eghtthreetimes;\x03⋌\x0dghtarrowtail;\x03↣\x0dghtharpoonup;\x03⇀\x0bsingdotseq;\x03≓\x09ghtarrow;\x03→\x03ng;\x02˚",
+ // rlarr;[⇄] rlhar;[⇌] rlm;[].
+ "\x04arr;\x03⇄\x04har;\x03⇌\x02m;\x03",
+ // rmoustache;[⎱] rmoust;[⎱].
+ "\x09oustache;\x03⎱\x05oust;\x03⎱",
+ // rnmid;[⫮].
+ "\x04mid;\x03⫮",
+ // rotimes;[⨵] roplus;[⨮] roang;[⟭] roarr;[⇾] robrk;[⟧] ropar;[⦆] ropf;[𝕣].
+ "\x06times;\x03⨵\x05plus;\x03⨮\x04ang;\x03⟭\x04arr;\x03⇾\x04brk;\x03⟧\x04par;\x03⦆\x03pf;\x04𝕣",
+ // rppolint;[⨒] rpargt;[⦔] rpar;[)].
+ "\x07polint;\x03⨒\x05argt;\x03⦔\x03ar;\x01)",
+ // rrarr;[⇉].
+ "\x04arr;\x03⇉",
+ // rsaquo;[›] rsquor;[’] rsquo;[’] rscr;[𝓇] rsqb;[]] rsh;[↱].
+ "\x05aquo;\x03›\x05quor;\x03’\x04quo;\x03’\x03cr;\x04𝓇\x03qb;\x01]\x02h;\x03↱",
+ // rtriltri;[⧎] rthree;[⋌] rtimes;[⋊] rtrie;[⊵] rtrif;[▸] rtri;[▹].
+ "\x07riltri;\x03⧎\x05hree;\x03⋌\x05imes;\x03⋊\x04rie;\x03⊵\x04rif;\x03▸\x03ri;\x03▹",
+ // ruluhar;[⥨].
+ "\x06luhar;\x03⥨",
+ // rx;[℞].
+ "\x01;\x03℞",
+ // sacute;[ś].
+ "\x05cute;\x02ś",
+ // sbquo;[‚].
+ "\x04quo;\x03‚",
+ // scpolint;[⨓] scaron;[š] scedil;[ş] scnsim;[⋩] sccue;[≽] scirc;[ŝ] scnap;[⪺] scsim;[≿] scap;[⪸] scnE;[⪶] scE;[⪴] sce;[⪰] scy;[с] sc;[≻].
+ "\x07polint;\x03⨓\x05aron;\x02š\x05edil;\x02ş\x05nsim;\x03⋩\x04cue;\x03≽\x04irc;\x02ŝ\x04nap;\x03⪺\x04sim;\x03≿\x03ap;\x03⪸\x03nE;\x03⪶\x02E;\x03⪴\x02e;\x03⪰\x02y;\x02с\x01;\x03≻",
+ // sdotb;[⊡] sdote;[⩦] sdot;[⋅].
+ "\x04otb;\x03⊡\x04ote;\x03⩦\x03ot;\x03⋅",
+ // setminus;[∖] searrow;[↘] searhk;[⤥] seswar;[⤩] seArr;[⇘] searr;[↘] setmn;[∖] sect;[§] semi;[;] sext;[✶] sect[§].
+ "\x07tminus;\x03∖\x06arrow;\x03↘\x05arhk;\x03⤥\x05swar;\x03⤩\x04Arr;\x03⇘\x04arr;\x03↘\x04tmn;\x03∖\x03ct;\x02§\x03mi;\x01;\x03xt;\x03✶\x02ct\x02§",
+ // sfrown;[⌢] sfr;[𝔰].
+ "\x05rown;\x03⌢\x02r;\x04𝔰",
+ // shortparallel;[∥] shortmid;[∣] shchcy;[щ] sharp;[♯] shcy;[ш] shy;[] shy[].
+ "\x0cortparallel;\x03∥\x07ortmid;\x03∣\x05chcy;\x02щ\x04arp;\x03♯\x03cy;\x02ш\x02y;\x02\x01y\x02",
+ // simplus;[⨤] simrarr;[⥲] sigmaf;[ς] sigmav;[ς] simdot;[⩪] sigma;[σ] simeq;[≃] simgE;[⪠] simlE;[⪟] simne;[≆] sime;[≃] simg;[⪞] siml;[⪝] sim;[∼].
+ "\x06mplus;\x03⨤\x06mrarr;\x03⥲\x05gmaf;\x02ς\x05gmav;\x02ς\x05mdot;\x03⩪\x04gma;\x02σ\x04meq;\x03≃\x04mgE;\x03⪠\x04mlE;\x03⪟\x04mne;\x03≆\x03me;\x03≃\x03mg;\x03⪞\x03ml;\x03⪝\x02m;\x03∼",
+ // slarr;[←].
+ "\x04arr;\x03←",
+ // smallsetminus;[∖] smeparsl;[⧤] smashp;[⨳] smile;[⌣] smtes;[⪬︀] smid;[∣] smte;[⪬] smt;[⪪].
+ "\x0callsetminus;\x03∖\x07eparsl;\x03⧤\x05ashp;\x03⨳\x04ile;\x03⌣\x04tes;\x06⪬︀\x03id;\x03∣\x03te;\x03⪬\x02t;\x03⪪",
+ // softcy;[ь] solbar;[⌿] solb;[⧄] sopf;[𝕤] sol;[/].
+ "\x05ftcy;\x02ь\x05lbar;\x03⌿\x03lb;\x03⧄\x03pf;\x04𝕤\x02l;\x01/",
+ // spadesuit;[♠] spades;[♠] spar;[∥].
+ "\x08adesuit;\x03♠\x05ades;\x03♠\x03ar;\x03∥",
+ // sqsubseteq;[⊑] sqsupseteq;[⊒] sqsubset;[⊏] sqsupset;[⊐] sqcaps;[⊓︀] sqcups;[⊔︀] sqsube;[⊑] sqsupe;[⊒] square;[□] squarf;[▪] sqcap;[⊓] sqcup;[⊔] sqsub;[⊏] sqsup;[⊐] squf;[▪] squ;[□].
+ "\x09subseteq;\x03⊑\x09supseteq;\x03⊒\x07subset;\x03⊏\x07supset;\x03⊐\x05caps;\x06⊓︀\x05cups;\x06⊔︀\x05sube;\x03⊑\x05supe;\x03⊒\x05uare;\x03□\x05uarf;\x03▪\x04cap;\x03⊓\x04cup;\x03⊔\x04sub;\x03⊏\x04sup;\x03⊐\x03uf;\x03▪\x02u;\x03□",
+ // srarr;[→].
+ "\x04arr;\x03→",
+ // ssetmn;[∖] ssmile;[⌣] sstarf;[⋆] sscr;[𝓈].
+ "\x05etmn;\x03∖\x05mile;\x03⌣\x05tarf;\x03⋆\x03cr;\x04𝓈",
+ // straightepsilon;[ϵ] straightphi;[ϕ] starf;[★] strns;[¯] star;[☆].
+ "\x0eraightepsilon;\x02ϵ\x0araightphi;\x02ϕ\x04arf;\x03★\x04rns;\x02¯\x03ar;\x03☆",
+ // succcurlyeq;[≽] succnapprox;[⪺] subsetneqq;[⫋] succapprox;[⪸] supsetneqq;[⫌] subseteqq;[⫅] subsetneq;[⊊] supseteqq;[⫆] supsetneq;[⊋] subseteq;[⊆] succneqq;[⪶] succnsim;[⋩] supseteq;[⊇] subedot;[⫃] submult;[⫁] subplus;[⪿] subrarr;[⥹] succsim;[≿] supdsub;[⫘] supedot;[⫄] suphsol;[⟉] suphsub;[⫗] suplarr;[⥻] supmult;[⫂] supplus;[⫀] subdot;[⪽] subset;[⊂] subsim;[⫇] subsub;[⫕] subsup;[⫓] succeq;[⪰] supdot;[⪾] supset;[⊃] supsim;[⫈] supsub;[⫔] supsup;[⫖] subnE;[⫋] subne;[⊊] supnE;[⫌] supne;[⊋] subE;[⫅] sube;[⊆] succ;[≻] sung;[♪] sup1;[¹] sup2;[²] sup3;[³] supE;[⫆] supe;[⊇] sub;[⊂] sum;[∑] sup1[¹] sup2[²] sup3[³] sup;[⊃].
+ "\x0acccurlyeq;\x03≽\x0accnapprox;\x03⪺\x09bsetneqq;\x03⫋\x09ccapprox;\x03⪸\x09psetneqq;\x03⫌\x08bseteqq;\x03⫅\x08bsetneq;\x03⊊\x08pseteqq;\x03⫆\x08psetneq;\x03⊋\x07bseteq;\x03⊆\x07ccneqq;\x03⪶\x07ccnsim;\x03⋩\x07pseteq;\x03⊇\x06bedot;\x03⫃\x06bmult;\x03⫁\x06bplus;\x03⪿\x06brarr;\x03⥹\x06ccsim;\x03≿\x06pdsub;\x03⫘\x06pedot;\x03⫄\x06phsol;\x03⟉\x06phsub;\x03⫗\x06plarr;\x03⥻\x06pmult;\x03⫂\x06pplus;\x03⫀\x05bdot;\x03⪽\x05bset;\x03⊂\x05bsim;\x03⫇\x05bsub;\x03⫕\x05bsup;\x03⫓\x05cceq;\x03⪰\x05pdot;\x03⪾\x05pset;\x03⊃\x05psim;\x03⫈\x05psub;\x03⫔\x05psup;\x03⫖\x04bnE;\x03⫋\x04bne;\x03⊊\x04pnE;\x03⫌\x04pne;\x03⊋\x03bE;\x03⫅\x03be;\x03⊆\x03cc;\x03≻\x03ng;\x03♪\x03p1;\x02¹\x03p2;\x02²\x03p3;\x02³\x03pE;\x03⫆\x03pe;\x03⊇\x02b;\x03⊂\x02m;\x03∑\x02p1\x02¹\x02p2\x02²\x02p3\x02³\x02p;\x03⊃",
+ // swarrow;[↙] swarhk;[⤦] swnwar;[⤪] swArr;[⇙] swarr;[↙].
+ "\x06arrow;\x03↙\x05arhk;\x03⤦\x05nwar;\x03⤪\x04Arr;\x03⇙\x04arr;\x03↙",
+ // szlig;[ß] szlig[ß].
+ "\x04lig;\x02ß\x03lig\x02ß",
+ // target;[⌖] tau;[τ].
+ "\x05rget;\x03⌖\x02u;\x02τ",
+ // tbrk;[⎴].
+ "\x03rk;\x03⎴",
+ // tcaron;[ť] tcedil;[ţ] tcy;[т].
+ "\x05aron;\x02ť\x05edil;\x02ţ\x02y;\x02т",
+ // tdot;[⃛].
+ "\x03ot;\x03⃛",
+ // telrec;[⌕].
+ "\x05lrec;\x03⌕",
+ // tfr;[𝔱].
+ "\x02r;\x04𝔱",
+ // thickapprox;[≈] therefore;[∴] thetasym;[ϑ] thicksim;[∼] there4;[∴] thetav;[ϑ] thinsp;[ ] thksim;[∼] theta;[θ] thkap;[≈] thorn;[þ] thorn[þ].
+ "\x0aickapprox;\x03≈\x08erefore;\x03∴\x07etasym;\x02ϑ\x07icksim;\x03∼\x05ere4;\x03∴\x05etav;\x02ϑ\x05insp;\x03 \x05ksim;\x03∼\x04eta;\x02θ\x04kap;\x03≈\x04orn;\x02þ\x03orn\x02þ",
+ // timesbar;[⨱] timesb;[⊠] timesd;[⨰] tilde;[˜] times;[×] times[×] tint;[∭].
+ "\x07mesbar;\x03⨱\x05mesb;\x03⊠\x05mesd;\x03⨰\x04lde;\x02˜\x04mes;\x02×\x03mes\x02×\x03nt;\x03∭",
+ // topfork;[⫚] topbot;[⌶] topcir;[⫱] toea;[⤨] topf;[𝕥] tosa;[⤩] top;[⊤].
+ "\x06pfork;\x03⫚\x05pbot;\x03⌶\x05pcir;\x03⫱\x03ea;\x03⤨\x03pf;\x04𝕥\x03sa;\x03⤩\x02p;\x03⊤",
+ // tprime;[‴].
+ "\x05rime;\x03‴",
+ // trianglerighteq;[⊵] trianglelefteq;[⊴] triangleright;[▹] triangledown;[▿] triangleleft;[◃] triangleq;[≜] triangle;[▵] triminus;[⨺] trpezium;[⏢] triplus;[⨹] tritime;[⨻] tridot;[◬] trade;[™] trisb;[⧍] trie;[≜].
+ "\x0eianglerighteq;\x03⊵\x0dianglelefteq;\x03⊴\x0ciangleright;\x03▹\x0biangledown;\x03▿\x0biangleleft;\x03◃\x08iangleq;\x03≜\x07iangle;\x03▵\x07iminus;\x03⨺\x07pezium;\x03⏢\x06iplus;\x03⨹\x06itime;\x03⨻\x05idot;\x03◬\x04ade;\x03™\x04isb;\x03⧍\x03ie;\x03≜",
+ // tstrok;[ŧ] tshcy;[ћ] tscr;[𝓉] tscy;[ц].
+ "\x05trok;\x02ŧ\x04hcy;\x02ћ\x03cr;\x04𝓉\x03cy;\x02ц",
+ // twoheadrightarrow;[↠] twoheadleftarrow;[↞] twixt;[≬].
+ "\x10oheadrightarrow;\x03↠\x0foheadleftarrow;\x03↞\x04ixt;\x03≬",
+ // uArr;[⇑].
+ "\x03rr;\x03⇑",
+ // uHar;[⥣].
+ "\x03ar;\x03⥣",
+ // uacute;[ú] uacute[ú] uarr;[↑].
+ "\x05cute;\x02ú\x04cute\x02ú\x03rr;\x03↑",
+ // ubreve;[ŭ] ubrcy;[ў].
+ "\x05reve;\x02ŭ\x04rcy;\x02ў",
+ // ucirc;[û] ucirc[û] ucy;[у].
+ "\x04irc;\x02û\x03irc\x02û\x02y;\x02у",
+ // udblac;[ű] udarr;[⇅] udhar;[⥮].
+ "\x05blac;\x02ű\x04arr;\x03⇅\x04har;\x03⥮",
+ // ufisht;[⥾] ufr;[𝔲].
+ "\x05isht;\x03⥾\x02r;\x04𝔲",
+ // ugrave;[ù] ugrave[ù].
+ "\x05rave;\x02ù\x04rave\x02ù",
+ // uharl;[↿] uharr;[↾] uhblk;[▀].
+ "\x04arl;\x03↿\x04arr;\x03↾\x04blk;\x03▀",
+ // ulcorner;[⌜] ulcorn;[⌜] ulcrop;[⌏] ultri;[◸].
+ "\x07corner;\x03⌜\x05corn;\x03⌜\x05crop;\x03⌏\x04tri;\x03◸",
+ // umacr;[ū] uml;[¨] uml[¨].
+ "\x04acr;\x02ū\x02l;\x02¨\x01l\x02¨",
+ // uogon;[ų] uopf;[𝕦].
+ "\x04gon;\x02ų\x03pf;\x04𝕦",
+ // upharpoonright;[↾] upharpoonleft;[↿] updownarrow;[↕] upuparrows;[⇈] uparrow;[↑] upsilon;[υ] uplus;[⊎] upsih;[ϒ] upsi;[υ].
+ "\x0dharpoonright;\x03↾\x0charpoonleft;\x03↿\x0adownarrow;\x03↕\x09uparrows;\x03⇈\x06arrow;\x03↑\x06silon;\x02υ\x04lus;\x03⊎\x04sih;\x02ϒ\x03si;\x02υ",
+ // urcorner;[⌝] urcorn;[⌝] urcrop;[⌎] uring;[ů] urtri;[◹].
+ "\x07corner;\x03⌝\x05corn;\x03⌝\x05crop;\x03⌎\x04ing;\x02ů\x04tri;\x03◹",
+ // uscr;[𝓊].
+ "\x03cr;\x04𝓊",
+ // utilde;[ũ] utdot;[⋰] utrif;[▴] utri;[▵].
+ "\x05ilde;\x02ũ\x04dot;\x03⋰\x04rif;\x03▴\x03ri;\x03▵",
+ // uuarr;[⇈] uuml;[ü] uuml[ü].
+ "\x04arr;\x03⇈\x03ml;\x02ü\x02ml\x02ü",
+ // uwangle;[⦧].
+ "\x06angle;\x03⦧",
+ // vArr;[⇕].
+ "\x03rr;\x03⇕",
+ // vBarv;[⫩] vBar;[⫨].
+ "\x04arv;\x03⫩\x03ar;\x03⫨",
+ // vDash;[⊨].
+ "\x04ash;\x03⊨",
+ // vartriangleright;[⊳] vartriangleleft;[⊲] varsubsetneqq;[⫋︀] varsupsetneqq;[⫌︀] varsubsetneq;[⊊︀] varsupsetneq;[⊋︀] varepsilon;[ϵ] varnothing;[∅] varpropto;[∝] varkappa;[ϰ] varsigma;[ς] vartheta;[ϑ] vangrt;[⦜] varphi;[ϕ] varrho;[ϱ] varpi;[ϖ] varr;[↕].
+ "\x0frtriangleright;\x03⊳\x0ertriangleleft;\x03⊲\x0crsubsetneqq;\x06⫋︀\x0crsupsetneqq;\x06⫌︀\x0brsubsetneq;\x06⊊︀\x0brsupsetneq;\x06⊋︀\x09repsilon;\x02ϵ\x09rnothing;\x03∅\x08rpropto;\x03∝\x07rkappa;\x02ϰ\x07rsigma;\x02ς\x07rtheta;\x02ϑ\x05ngrt;\x03⦜\x05rphi;\x02ϕ\x05rrho;\x02ϱ\x04rpi;\x02ϖ\x03rr;\x03↕",
+ // vcy;[в].
+ "\x02y;\x02в",
+ // vdash;[⊢].
+ "\x04ash;\x03⊢",
+ // veebar;[⊻] vellip;[⋮] verbar;[|] veeeq;[≚] vert;[|] vee;[∨].
+ "\x05ebar;\x03⊻\x05llip;\x03⋮\x05rbar;\x01|\x04eeq;\x03≚\x03rt;\x01|\x02e;\x03∨",
+ // vfr;[𝔳].
+ "\x02r;\x04𝔳",
+ // vltri;[⊲].
+ "\x04tri;\x03⊲",
+ // vnsub;[⊂⃒] vnsup;[⊃⃒].
+ "\x04sub;\x06⊂⃒\x04sup;\x06⊃⃒",
+ // vopf;[𝕧].
+ "\x03pf;\x04𝕧",
+ // vprop;[∝].
+ "\x04rop;\x03∝",
+ // vrtri;[⊳].
+ "\x04tri;\x03⊳",
+ // vsubnE;[⫋︀] vsubne;[⊊︀] vsupnE;[⫌︀] vsupne;[⊋︀] vscr;[𝓋].
+ "\x05ubnE;\x06⫋︀\x05ubne;\x06⊊︀\x05upnE;\x06⫌︀\x05upne;\x06⊋︀\x03cr;\x04𝓋",
+ // vzigzag;[⦚].
+ "\x06igzag;\x03⦚",
+ // wcirc;[ŵ].
+ "\x04irc;\x02ŵ",
+ // wedbar;[⩟] wedgeq;[≙] weierp;[℘] wedge;[∧].
+ "\x05dbar;\x03⩟\x05dgeq;\x03≙\x05ierp;\x03℘\x04dge;\x03∧",
+ // wfr;[𝔴].
+ "\x02r;\x04𝔴",
+ // wopf;[𝕨].
+ "\x03pf;\x04𝕨",
+ // wp;[℘].
+ "\x01;\x03℘",
+ // wreath;[≀] wr;[≀].
+ "\x05eath;\x03≀\x01;\x03≀",
+ // wscr;[𝓌].
+ "\x03cr;\x04𝓌",
+ // xcirc;[◯] xcap;[⋂] xcup;[⋃].
+ "\x04irc;\x03◯\x03ap;\x03⋂\x03up;\x03⋃",
+ // xdtri;[▽].
+ "\x04tri;\x03▽",
+ // xfr;[𝔵].
+ "\x02r;\x04𝔵",
+ // xhArr;[⟺] xharr;[⟷].
+ "\x04Arr;\x03⟺\x04arr;\x03⟷",
+ // xi;[ξ].
+ "\x01;\x02ξ",
+ // xlArr;[⟸] xlarr;[⟵].
+ "\x04Arr;\x03⟸\x04arr;\x03⟵",
+ // xmap;[⟼].
+ "\x03ap;\x03⟼",
+ // xnis;[⋻].
+ "\x03is;\x03⋻",
+ // xoplus;[⨁] xotime;[⨂] xodot;[⨀] xopf;[𝕩].
+ "\x05plus;\x03⨁\x05time;\x03⨂\x04dot;\x03⨀\x03pf;\x04𝕩",
+ // xrArr;[⟹] xrarr;[⟶].
+ "\x04Arr;\x03⟹\x04arr;\x03⟶",
+ // xsqcup;[⨆] xscr;[𝓍].
+ "\x05qcup;\x03⨆\x03cr;\x04𝓍",
+ // xuplus;[⨄] xutri;[△].
+ "\x05plus;\x03⨄\x04tri;\x03△",
+ // xvee;[⋁].
+ "\x03ee;\x03⋁",
+ // xwedge;[⋀].
+ "\x05edge;\x03⋀",
+ // yacute;[ý] yacute[ý] yacy;[я].
+ "\x05cute;\x02ý\x04cute\x02ý\x03cy;\x02я",
+ // ycirc;[ŷ] ycy;[ы].
+ "\x04irc;\x02ŷ\x02y;\x02ы",
+ // yen;[¥] yen[¥].
+ "\x02n;\x02¥\x01n\x02¥",
+ // yfr;[𝔶].
+ "\x02r;\x04𝔶",
+ // yicy;[ї].
+ "\x03cy;\x02ї",
+ // yopf;[𝕪].
+ "\x03pf;\x04𝕪",
+ // yscr;[𝓎].
+ "\x03cr;\x04𝓎",
+ // yucy;[ю] yuml;[ÿ] yuml[ÿ].
+ "\x03cy;\x02ю\x03ml;\x02ÿ\x02ml\x02ÿ",
+ // zacute;[ź].
+ "\x05cute;\x02ź",
+ // zcaron;[ž] zcy;[з].
+ "\x05aron;\x02ž\x02y;\x02з",
+ // zdot;[ż].
+ "\x03ot;\x02ż",
+ // zeetrf;[ℨ] zeta;[ζ].
+ "\x05etrf;\x03ℨ\x03ta;\x02ζ",
+ // zfr;[𝔷].
+ "\x02r;\x04𝔷",
+ // zhcy;[ж].
+ "\x03cy;\x02ж",
+ // zigrarr;[⇝].
+ "\x06grarr;\x03⇝",
+ // zopf;[𝕫].
+ "\x03pf;\x04𝕫",
+ // zscr;[𝓏].
+ "\x03cr;\x04𝓏",
+ // zwnj;[] zwj;[].
+ "\x03nj;\x03\x02j;\x03",
+ ),
+ "small_words" => "GT\x00LT\x00gt\x00lt\x00",
+ "small_mappings" => array(
+ ">",
+ "<",
+ ">",
+ "<",
+ )
+ )
+);
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/src/wp-includes/html-api/html5-named-character-references.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunksrcwpsettingsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-settings.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-settings.php 2024-05-23 19:37:08 UTC (rev 58187)
+++ trunk/src/wp-settings.php 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -107,6 +107,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Load early WordPress files.
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/class-wp-list-util.php';
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+require ABSPATH . WPINC . '/class-wp-token-map.php';
</ins><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/formatting.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/meta.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/functions.php';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -248,6 +249,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/class-wp-oembed-controller.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/media.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/http.php';
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+require ABSPATH . WPINC . '/html-api/html5-named-character-references.php';
</ins><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/html-api/class-wp-html-attribute-token.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/html-api/class-wp-html-span.php';
</span><span class="cx" style="display: block; padding: 0 10px"> require ABSPATH . WPINC . '/html-api/class-wp-html-text-replacement.php';
</span></span></pre></div>
<a id="trunktestsphpunitdatahtml5entitiesREADMEmd"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/tests/phpunit/data/html5-entities/README.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/data/html5-entities/README.md (rev 0)
+++ trunk/tests/phpunit/data/html5-entities/README.md 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+# HTML5 Entities
+
+This directory contains the listing of HTML5 named character references and a script that can be used
+to create or update the optimized form for use in the HTML API.
+
+The HTML5 specification asserts:
+
+> This list is static and will not be expanded or changed in the future.
+> - https://html.spec.whatwg.org/#named-character-references
+
+The authoritative [`entities.json`](https://html.spec.whatwg.org/entities.json) file comes from the WHATWG server, and
+is cached here in the test directory so that it doesn't need to be constantly re-downloaded.
+
+## Updating the optimized lookup class.
+
+The [`html5-named-character-references.php`][1] file contains an optimized lookup map for the entities in `entities.json`.
+Run the [`generate-html5-named-character-references.php`][2] file to update the auto-generated Core module.
+
+```bash
+~$ php tests/phpunit/data/html5-entities/generate-html5-named-character-references.php
+OK: Successfully generated optimized lookup class.
+```
+
+[1]: ../../../../src/wp-includes/html-api/html5-named-character-references.php
+[2]: ./generate-html5-named-character-references.php
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/tests/phpunit/data/html5-entities/README.md
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunktestsphpunitdatahtml5entitiesentitiesjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/tests/phpunit/data/html5-entities/entities.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/data/html5-entities/entities.json (rev 0)
+++ trunk/tests/phpunit/data/html5-entities/entities.json 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,2233 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+ "Æ": { "codepoints": [198], "characters": "\u00C6" },
+ "Æ": { "codepoints": [198], "characters": "\u00C6" },
+ "&": { "codepoints": [38], "characters": "\u0026" },
+ "&": { "codepoints": [38], "characters": "\u0026" },
+ "Á": { "codepoints": [193], "characters": "\u00C1" },
+ "Á": { "codepoints": [193], "characters": "\u00C1" },
+ "Ă": { "codepoints": [258], "characters": "\u0102" },
+ "Â": { "codepoints": [194], "characters": "\u00C2" },
+ "Â": { "codepoints": [194], "characters": "\u00C2" },
+ "А": { "codepoints": [1040], "characters": "\u0410" },
+ "𝔄": { "codepoints": [120068], "characters": "\uD835\uDD04" },
+ "À": { "codepoints": [192], "characters": "\u00C0" },
+ "À": { "codepoints": [192], "characters": "\u00C0" },
+ "Α": { "codepoints": [913], "characters": "\u0391" },
+ "Ā": { "codepoints": [256], "characters": "\u0100" },
+ "⩓": { "codepoints": [10835], "characters": "\u2A53" },
+ "Ą": { "codepoints": [260], "characters": "\u0104" },
+ "𝔸": { "codepoints": [120120], "characters": "\uD835\uDD38" },
+ "⁡": { "codepoints": [8289], "characters": "\u2061" },
+ "Å": { "codepoints": [197], "characters": "\u00C5" },
+ "Å": { "codepoints": [197], "characters": "\u00C5" },
+ "𝒜": { "codepoints": [119964], "characters": "\uD835\uDC9C" },
+ "≔": { "codepoints": [8788], "characters": "\u2254" },
+ "Ã": { "codepoints": [195], "characters": "\u00C3" },
+ "Ã": { "codepoints": [195], "characters": "\u00C3" },
+ "Ä": { "codepoints": [196], "characters": "\u00C4" },
+ "Ä": { "codepoints": [196], "characters": "\u00C4" },
+ "∖": { "codepoints": [8726], "characters": "\u2216" },
+ "⫧": { "codepoints": [10983], "characters": "\u2AE7" },
+ "⌆": { "codepoints": [8966], "characters": "\u2306" },
+ "Б": { "codepoints": [1041], "characters": "\u0411" },
+ "∵": { "codepoints": [8757], "characters": "\u2235" },
+ "ℬ": { "codepoints": [8492], "characters": "\u212C" },
+ "Β": { "codepoints": [914], "characters": "\u0392" },
+ "𝔅": { "codepoints": [120069], "characters": "\uD835\uDD05" },
+ "𝔹": { "codepoints": [120121], "characters": "\uD835\uDD39" },
+ "˘": { "codepoints": [728], "characters": "\u02D8" },
+ "ℬ": { "codepoints": [8492], "characters": "\u212C" },
+ "≎": { "codepoints": [8782], "characters": "\u224E" },
+ "Ч": { "codepoints": [1063], "characters": "\u0427" },
+ "©": { "codepoints": [169], "characters": "\u00A9" },
+ "©": { "codepoints": [169], "characters": "\u00A9" },
+ "Ć": { "codepoints": [262], "characters": "\u0106" },
+ "⋒": { "codepoints": [8914], "characters": "\u22D2" },
+ "ⅅ": { "codepoints": [8517], "characters": "\u2145" },
+ "ℭ": { "codepoints": [8493], "characters": "\u212D" },
+ "Č": { "codepoints": [268], "characters": "\u010C" },
+ "Ç": { "codepoints": [199], "characters": "\u00C7" },
+ "Ç": { "codepoints": [199], "characters": "\u00C7" },
+ "Ĉ": { "codepoints": [264], "characters": "\u0108" },
+ "∰": { "codepoints": [8752], "characters": "\u2230" },
+ "Ċ": { "codepoints": [266], "characters": "\u010A" },
+ "¸": { "codepoints": [184], "characters": "\u00B8" },
+ "·": { "codepoints": [183], "characters": "\u00B7" },
+ "ℭ": { "codepoints": [8493], "characters": "\u212D" },
+ "Χ": { "codepoints": [935], "characters": "\u03A7" },
+ "⊙": { "codepoints": [8857], "characters": "\u2299" },
+ "⊖": { "codepoints": [8854], "characters": "\u2296" },
+ "⊕": { "codepoints": [8853], "characters": "\u2295" },
+ "⊗": { "codepoints": [8855], "characters": "\u2297" },
+ "∲": { "codepoints": [8754], "characters": "\u2232" },
+ "”": { "codepoints": [8221], "characters": "\u201D" },
+ "’": { "codepoints": [8217], "characters": "\u2019" },
+ "∷": { "codepoints": [8759], "characters": "\u2237" },
+ "⩴": { "codepoints": [10868], "characters": "\u2A74" },
+ "≡": { "codepoints": [8801], "characters": "\u2261" },
+ "∯": { "codepoints": [8751], "characters": "\u222F" },
+ "∮": { "codepoints": [8750], "characters": "\u222E" },
+ "ℂ": { "codepoints": [8450], "characters": "\u2102" },
+ "∐": { "codepoints": [8720], "characters": "\u2210" },
+ "∳": { "codepoints": [8755], "characters": "\u2233" },
+ "⨯": { "codepoints": [10799], "characters": "\u2A2F" },
+ "𝒞": { "codepoints": [119966], "characters": "\uD835\uDC9E" },
+ "⋓": { "codepoints": [8915], "characters": "\u22D3" },
+ "≍": { "codepoints": [8781], "characters": "\u224D" },
+ "ⅅ": { "codepoints": [8517], "characters": "\u2145" },
+ "⤑": { "codepoints": [10513], "characters": "\u2911" },
+ "Ђ": { "codepoints": [1026], "characters": "\u0402" },
+ "Ѕ": { "codepoints": [1029], "characters": "\u0405" },
+ "Џ": { "codepoints": [1039], "characters": "\u040F" },
+ "‡": { "codepoints": [8225], "characters": "\u2021" },
+ "↡": { "codepoints": [8609], "characters": "\u21A1" },
+ "⫤": { "codepoints": [10980], "characters": "\u2AE4" },
+ "Ď": { "codepoints": [270], "characters": "\u010E" },
+ "Д": { "codepoints": [1044], "characters": "\u0414" },
+ "∇": { "codepoints": [8711], "characters": "\u2207" },
+ "Δ": { "codepoints": [916], "characters": "\u0394" },
+ "𝔇": { "codepoints": [120071], "characters": "\uD835\uDD07" },
+ "´": { "codepoints": [180], "characters": "\u00B4" },
+ "˙": { "codepoints": [729], "characters": "\u02D9" },
+ "˝": { "codepoints": [733], "characters": "\u02DD" },
+ "`": { "codepoints": [96], "characters": "\u0060" },
+ "˜": { "codepoints": [732], "characters": "\u02DC" },
+ "⋄": { "codepoints": [8900], "characters": "\u22C4" },
+ "ⅆ": { "codepoints": [8518], "characters": "\u2146" },
+ "𝔻": { "codepoints": [120123], "characters": "\uD835\uDD3B" },
+ "¨": { "codepoints": [168], "characters": "\u00A8" },
+ "⃜": { "codepoints": [8412], "characters": "\u20DC" },
+ "≐": { "codepoints": [8784], "characters": "\u2250" },
+ "∯": { "codepoints": [8751], "characters": "\u222F" },
+ "¨": { "codepoints": [168], "characters": "\u00A8" },
+ "⇓": { "codepoints": [8659], "characters": "\u21D3" },
+ "⇐": { "codepoints": [8656], "characters": "\u21D0" },
+ "⇔": { "codepoints": [8660], "characters": "\u21D4" },
+ "⫤": { "codepoints": [10980], "characters": "\u2AE4" },
+ "⟸": { "codepoints": [10232], "characters": "\u27F8" },
+ "⟺": { "codepoints": [10234], "characters": "\u27FA" },
+ "⟹": { "codepoints": [10233], "characters": "\u27F9" },
+ "⇒": { "codepoints": [8658], "characters": "\u21D2" },
+ "⊨": { "codepoints": [8872], "characters": "\u22A8" },
+ "⇑": { "codepoints": [8657], "characters": "\u21D1" },
+ "⇕": { "codepoints": [8661], "characters": "\u21D5" },
+ "∥": { "codepoints": [8741], "characters": "\u2225" },
+ "↓": { "codepoints": [8595], "characters": "\u2193" },
+ "⤓": { "codepoints": [10515], "characters": "\u2913" },
+ "⇵": { "codepoints": [8693], "characters": "\u21F5" },
+ "̑": { "codepoints": [785], "characters": "\u0311" },
+ "⥐": { "codepoints": [10576], "characters": "\u2950" },
+ "⥞": { "codepoints": [10590], "characters": "\u295E" },
+ "↽": { "codepoints": [8637], "characters": "\u21BD" },
+ "⥖": { "codepoints": [10582], "characters": "\u2956" },
+ "⥟": { "codepoints": [10591], "characters": "\u295F" },
+ "⇁": { "codepoints": [8641], "characters": "\u21C1" },
+ "⥗": { "codepoints": [10583], "characters": "\u2957" },
+ "⊤": { "codepoints": [8868], "characters": "\u22A4" },
+ "↧": { "codepoints": [8615], "characters": "\u21A7" },
+ "⇓": { "codepoints": [8659], "characters": "\u21D3" },
+ "𝒟": { "codepoints": [119967], "characters": "\uD835\uDC9F" },
+ "Đ": { "codepoints": [272], "characters": "\u0110" },
+ "Ŋ": { "codepoints": [330], "characters": "\u014A" },
+ "Ð": { "codepoints": [208], "characters": "\u00D0" },
+ "Ð": { "codepoints": [208], "characters": "\u00D0" },
+ "É": { "codepoints": [201], "characters": "\u00C9" },
+ "É": { "codepoints": [201], "characters": "\u00C9" },
+ "Ě": { "codepoints": [282], "characters": "\u011A" },
+ "Ê": { "codepoints": [202], "characters": "\u00CA" },
+ "Ê": { "codepoints": [202], "characters": "\u00CA" },
+ "Э": { "codepoints": [1069], "characters": "\u042D" },
+ "Ė": { "codepoints": [278], "characters": "\u0116" },
+ "𝔈": { "codepoints": [120072], "characters": "\uD835\uDD08" },
+ "È": { "codepoints": [200], "characters": "\u00C8" },
+ "È": { "codepoints": [200], "characters": "\u00C8" },
+ "∈": { "codepoints": [8712], "characters": "\u2208" },
+ "Ē": { "codepoints": [274], "characters": "\u0112" },
+ "◻": { "codepoints": [9723], "characters": "\u25FB" },
+ "▫": { "codepoints": [9643], "characters": "\u25AB" },
+ "Ę": { "codepoints": [280], "characters": "\u0118" },
+ "𝔼": { "codepoints": [120124], "characters": "\uD835\uDD3C" },
+ "Ε": { "codepoints": [917], "characters": "\u0395" },
+ "⩵": { "codepoints": [10869], "characters": "\u2A75" },
+ "≂": { "codepoints": [8770], "characters": "\u2242" },
+ "⇌": { "codepoints": [8652], "characters": "\u21CC" },
+ "ℰ": { "codepoints": [8496], "characters": "\u2130" },
+ "⩳": { "codepoints": [10867], "characters": "\u2A73" },
+ "Η": { "codepoints": [919], "characters": "\u0397" },
+ "Ë": { "codepoints": [203], "characters": "\u00CB" },
+ "Ë": { "codepoints": [203], "characters": "\u00CB" },
+ "∃": { "codepoints": [8707], "characters": "\u2203" },
+ "ⅇ": { "codepoints": [8519], "characters": "\u2147" },
+ "Ф": { "codepoints": [1060], "characters": "\u0424" },
+ "𝔉": { "codepoints": [120073], "characters": "\uD835\uDD09" },
+ "◼": { "codepoints": [9724], "characters": "\u25FC" },
+ "▪": { "codepoints": [9642], "characters": "\u25AA" },
+ "𝔽": { "codepoints": [120125], "characters": "\uD835\uDD3D" },
+ "∀": { "codepoints": [8704], "characters": "\u2200" },
+ "ℱ": { "codepoints": [8497], "characters": "\u2131" },
+ "ℱ": { "codepoints": [8497], "characters": "\u2131" },
+ "Ѓ": { "codepoints": [1027], "characters": "\u0403" },
+ ">": { "codepoints": [62], "characters": "\u003E" },
+ ">": { "codepoints": [62], "characters": "\u003E" },
+ "Γ": { "codepoints": [915], "characters": "\u0393" },
+ "Ϝ": { "codepoints": [988], "characters": "\u03DC" },
+ "Ğ": { "codepoints": [286], "characters": "\u011E" },
+ "Ģ": { "codepoints": [290], "characters": "\u0122" },
+ "Ĝ": { "codepoints": [284], "characters": "\u011C" },
+ "Г": { "codepoints": [1043], "characters": "\u0413" },
+ "Ġ": { "codepoints": [288], "characters": "\u0120" },
+ "𝔊": { "codepoints": [120074], "characters": "\uD835\uDD0A" },
+ "⋙": { "codepoints": [8921], "characters": "\u22D9" },
+ "𝔾": { "codepoints": [120126], "characters": "\uD835\uDD3E" },
+ "≥": { "codepoints": [8805], "characters": "\u2265" },
+ "⋛": { "codepoints": [8923], "characters": "\u22DB" },
+ "≧": { "codepoints": [8807], "characters": "\u2267" },
+ "⪢": { "codepoints": [10914], "characters": "\u2AA2" },
+ "≷": { "codepoints": [8823], "characters": "\u2277" },
+ "⩾": { "codepoints": [10878], "characters": "\u2A7E" },
+ "≳": { "codepoints": [8819], "characters": "\u2273" },
+ "𝒢": { "codepoints": [119970], "characters": "\uD835\uDCA2" },
+ "≫": { "codepoints": [8811], "characters": "\u226B" },
+ "Ъ": { "codepoints": [1066], "characters": "\u042A" },
+ "ˇ": { "codepoints": [711], "characters": "\u02C7" },
+ "^": { "codepoints": [94], "characters": "\u005E" },
+ "Ĥ": { "codepoints": [292], "characters": "\u0124" },
+ "ℌ": { "codepoints": [8460], "characters": "\u210C" },
+ "ℋ": { "codepoints": [8459], "characters": "\u210B" },
+ "ℍ": { "codepoints": [8461], "characters": "\u210D" },
+ "─": { "codepoints": [9472], "characters": "\u2500" },
+ "ℋ": { "codepoints": [8459], "characters": "\u210B" },
+ "Ħ": { "codepoints": [294], "characters": "\u0126" },
+ "≎": { "codepoints": [8782], "characters": "\u224E" },
+ "≏": { "codepoints": [8783], "characters": "\u224F" },
+ "Е": { "codepoints": [1045], "characters": "\u0415" },
+ "IJ": { "codepoints": [306], "characters": "\u0132" },
+ "Ё": { "codepoints": [1025], "characters": "\u0401" },
+ "Í": { "codepoints": [205], "characters": "\u00CD" },
+ "Í": { "codepoints": [205], "characters": "\u00CD" },
+ "Î": { "codepoints": [206], "characters": "\u00CE" },
+ "Î": { "codepoints": [206], "characters": "\u00CE" },
+ "И": { "codepoints": [1048], "characters": "\u0418" },
+ "İ": { "codepoints": [304], "characters": "\u0130" },
+ "ℑ": { "codepoints": [8465], "characters": "\u2111" },
+ "Ì": { "codepoints": [204], "characters": "\u00CC" },
+ "Ì": { "codepoints": [204], "characters": "\u00CC" },
+ "ℑ": { "codepoints": [8465], "characters": "\u2111" },
+ "Ī": { "codepoints": [298], "characters": "\u012A" },
+ "ⅈ": { "codepoints": [8520], "characters": "\u2148" },
+ "⇒": { "codepoints": [8658], "characters": "\u21D2" },
+ "∬": { "codepoints": [8748], "characters": "\u222C" },
+ "∫": { "codepoints": [8747], "characters": "\u222B" },
+ "⋂": { "codepoints": [8898], "characters": "\u22C2" },
+ "⁣": { "codepoints": [8291], "characters": "\u2063" },
+ "⁢": { "codepoints": [8290], "characters": "\u2062" },
+ "Į": { "codepoints": [302], "characters": "\u012E" },
+ "𝕀": { "codepoints": [120128], "characters": "\uD835\uDD40" },
+ "Ι": { "codepoints": [921], "characters": "\u0399" },
+ "ℐ": { "codepoints": [8464], "characters": "\u2110" },
+ "Ĩ": { "codepoints": [296], "characters": "\u0128" },
+ "І": { "codepoints": [1030], "characters": "\u0406" },
+ "Ï": { "codepoints": [207], "characters": "\u00CF" },
+ "Ï": { "codepoints": [207], "characters": "\u00CF" },
+ "Ĵ": { "codepoints": [308], "characters": "\u0134" },
+ "Й": { "codepoints": [1049], "characters": "\u0419" },
+ "𝔍": { "codepoints": [120077], "characters": "\uD835\uDD0D" },
+ "𝕁": { "codepoints": [120129], "characters": "\uD835\uDD41" },
+ "𝒥": { "codepoints": [119973], "characters": "\uD835\uDCA5" },
+ "Ј": { "codepoints": [1032], "characters": "\u0408" },
+ "Є": { "codepoints": [1028], "characters": "\u0404" },
+ "Х": { "codepoints": [1061], "characters": "\u0425" },
+ "Ќ": { "codepoints": [1036], "characters": "\u040C" },
+ "Κ": { "codepoints": [922], "characters": "\u039A" },
+ "Ķ": { "codepoints": [310], "characters": "\u0136" },
+ "К": { "codepoints": [1050], "characters": "\u041A" },
+ "𝔎": { "codepoints": [120078], "characters": "\uD835\uDD0E" },
+ "𝕂": { "codepoints": [120130], "characters": "\uD835\uDD42" },
+ "𝒦": { "codepoints": [119974], "characters": "\uD835\uDCA6" },
+ "Љ": { "codepoints": [1033], "characters": "\u0409" },
+ "<": { "codepoints": [60], "characters": "\u003C" },
+ "<": { "codepoints": [60], "characters": "\u003C" },
+ "Ĺ": { "codepoints": [313], "characters": "\u0139" },
+ "Λ": { "codepoints": [923], "characters": "\u039B" },
+ "⟪": { "codepoints": [10218], "characters": "\u27EA" },
+ "ℒ": { "codepoints": [8466], "characters": "\u2112" },
+ "↞": { "codepoints": [8606], "characters": "\u219E" },
+ "Ľ": { "codepoints": [317], "characters": "\u013D" },
+ "Ļ": { "codepoints": [315], "characters": "\u013B" },
+ "Л": { "codepoints": [1051], "characters": "\u041B" },
+ "⟨": { "codepoints": [10216], "characters": "\u27E8" },
+ "←": { "codepoints": [8592], "characters": "\u2190" },
+ "⇤": { "codepoints": [8676], "characters": "\u21E4" },
+ "⇆": { "codepoints": [8646], "characters": "\u21C6" },
+ "⌈": { "codepoints": [8968], "characters": "\u2308" },
+ "⟦": { "codepoints": [10214], "characters": "\u27E6" },
+ "⥡": { "codepoints": [10593], "characters": "\u2961" },
+ "⇃": { "codepoints": [8643], "characters": "\u21C3" },
+ "⥙": { "codepoints": [10585], "characters": "\u2959" },
+ "⌊": { "codepoints": [8970], "characters": "\u230A" },
+ "↔": { "codepoints": [8596], "characters": "\u2194" },
+ "⥎": { "codepoints": [10574], "characters": "\u294E" },
+ "⊣": { "codepoints": [8867], "characters": "\u22A3" },
+ "↤": { "codepoints": [8612], "characters": "\u21A4" },
+ "⥚": { "codepoints": [10586], "characters": "\u295A" },
+ "⊲": { "codepoints": [8882], "characters": "\u22B2" },
+ "⧏": { "codepoints": [10703], "characters": "\u29CF" },
+ "⊴": { "codepoints": [8884], "characters": "\u22B4" },
+ "⥑": { "codepoints": [10577], "characters": "\u2951" },
+ "⥠": { "codepoints": [10592], "characters": "\u2960" },
+ "↿": { "codepoints": [8639], "characters": "\u21BF" },
+ "⥘": { "codepoints": [10584], "characters": "\u2958" },
+ "↼": { "codepoints": [8636], "characters": "\u21BC" },
+ "⥒": { "codepoints": [10578], "characters": "\u2952" },
+ "⇐": { "codepoints": [8656], "characters": "\u21D0" },
+ "⇔": { "codepoints": [8660], "characters": "\u21D4" },
+ "⋚": { "codepoints": [8922], "characters": "\u22DA" },
+ "≦": { "codepoints": [8806], "characters": "\u2266" },
+ "≶": { "codepoints": [8822], "characters": "\u2276" },
+ "⪡": { "codepoints": [10913], "characters": "\u2AA1" },
+ "⩽": { "codepoints": [10877], "characters": "\u2A7D" },
+ "≲": { "codepoints": [8818], "characters": "\u2272" },
+ "𝔏": { "codepoints": [120079], "characters": "\uD835\uDD0F" },
+ "⋘": { "codepoints": [8920], "characters": "\u22D8" },
+ "⇚": { "codepoints": [8666], "characters": "\u21DA" },
+ "Ŀ": { "codepoints": [319], "characters": "\u013F" },
+ "⟵": { "codepoints": [10229], "characters": "\u27F5" },
+ "⟷": { "codepoints": [10231], "characters": "\u27F7" },
+ "⟶": { "codepoints": [10230], "characters": "\u27F6" },
+ "⟸": { "codepoints": [10232], "characters": "\u27F8" },
+ "⟺": { "codepoints": [10234], "characters": "\u27FA" },
+ "⟹": { "codepoints": [10233], "characters": "\u27F9" },
+ "𝕃": { "codepoints": [120131], "characters": "\uD835\uDD43" },
+ "↙": { "codepoints": [8601], "characters": "\u2199" },
+ "↘": { "codepoints": [8600], "characters": "\u2198" },
+ "ℒ": { "codepoints": [8466], "characters": "\u2112" },
+ "↰": { "codepoints": [8624], "characters": "\u21B0" },
+ "Ł": { "codepoints": [321], "characters": "\u0141" },
+ "≪": { "codepoints": [8810], "characters": "\u226A" },
+ "⤅": { "codepoints": [10501], "characters": "\u2905" },
+ "М": { "codepoints": [1052], "characters": "\u041C" },
+ " ": { "codepoints": [8287], "characters": "\u205F" },
+ "ℳ": { "codepoints": [8499], "characters": "\u2133" },
+ "𝔐": { "codepoints": [120080], "characters": "\uD835\uDD10" },
+ "∓": { "codepoints": [8723], "characters": "\u2213" },
+ "𝕄": { "codepoints": [120132], "characters": "\uD835\uDD44" },
+ "ℳ": { "codepoints": [8499], "characters": "\u2133" },
+ "Μ": { "codepoints": [924], "characters": "\u039C" },
+ "Њ": { "codepoints": [1034], "characters": "\u040A" },
+ "Ń": { "codepoints": [323], "characters": "\u0143" },
+ "Ň": { "codepoints": [327], "characters": "\u0147" },
+ "Ņ": { "codepoints": [325], "characters": "\u0145" },
+ "Н": { "codepoints": [1053], "characters": "\u041D" },
+ "​": { "codepoints": [8203], "characters": "\u200B" },
+ "​": { "codepoints": [8203], "characters": "\u200B" },
+ "​": { "codepoints": [8203], "characters": "\u200B" },
+ "​": { "codepoints": [8203], "characters": "\u200B" },
+ "≫": { "codepoints": [8811], "characters": "\u226B" },
+ "≪": { "codepoints": [8810], "characters": "\u226A" },
+ "
": { "codepoints": [10], "characters": "\u000A" },
+ "𝔑": { "codepoints": [120081], "characters": "\uD835\uDD11" },
+ "⁠": { "codepoints": [8288], "characters": "\u2060" },
+ " ": { "codepoints": [160], "characters": "\u00A0" },
+ "ℕ": { "codepoints": [8469], "characters": "\u2115" },
+ "⫬": { "codepoints": [10988], "characters": "\u2AEC" },
+ "≢": { "codepoints": [8802], "characters": "\u2262" },
+ "≭": { "codepoints": [8813], "characters": "\u226D" },
+ "∦": { "codepoints": [8742], "characters": "\u2226" },
+ "∉": { "codepoints": [8713], "characters": "\u2209" },
+ "≠": { "codepoints": [8800], "characters": "\u2260" },
+ "≂̸": { "codepoints": [8770, 824], "characters": "\u2242\u0338" },
+ "∄": { "codepoints": [8708], "characters": "\u2204" },
+ "≯": { "codepoints": [8815], "characters": "\u226F" },
+ "≱": { "codepoints": [8817], "characters": "\u2271" },
+ "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" },
+ "≫̸": { "codepoints": [8811, 824], "characters": "\u226B\u0338" },
+ "≹": { "codepoints": [8825], "characters": "\u2279" },
+ "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" },
+ "≵": { "codepoints": [8821], "characters": "\u2275" },
+ "≎̸": { "codepoints": [8782, 824], "characters": "\u224E\u0338" },
+ "≏̸": { "codepoints": [8783, 824], "characters": "\u224F\u0338" },
+ "⋪": { "codepoints": [8938], "characters": "\u22EA" },
+ "⧏̸": { "codepoints": [10703, 824], "characters": "\u29CF\u0338" },
+ "⋬": { "codepoints": [8940], "characters": "\u22EC" },
+ "≮": { "codepoints": [8814], "characters": "\u226E" },
+ "≰": { "codepoints": [8816], "characters": "\u2270" },
+ "≸": { "codepoints": [8824], "characters": "\u2278" },
+ "≪̸": { "codepoints": [8810, 824], "characters": "\u226A\u0338" },
+ "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" },
+ "≴": { "codepoints": [8820], "characters": "\u2274" },
+ "⪢̸": { "codepoints": [10914, 824], "characters": "\u2AA2\u0338" },
+ "⪡̸": { "codepoints": [10913, 824], "characters": "\u2AA1\u0338" },
+ "⊀": { "codepoints": [8832], "characters": "\u2280" },
+ "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" },
+ "⋠": { "codepoints": [8928], "characters": "\u22E0" },
+ "∌": { "codepoints": [8716], "characters": "\u220C" },
+ "⋫": { "codepoints": [8939], "characters": "\u22EB" },
+ "⧐̸": { "codepoints": [10704, 824], "characters": "\u29D0\u0338" },
+ "⋭": { "codepoints": [8941], "characters": "\u22ED" },
+ "⊏̸": { "codepoints": [8847, 824], "characters": "\u228F\u0338" },
+ "⋢": { "codepoints": [8930], "characters": "\u22E2" },
+ "⊐̸": { "codepoints": [8848, 824], "characters": "\u2290\u0338" },
+ "⋣": { "codepoints": [8931], "characters": "\u22E3" },
+ "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" },
+ "⊈": { "codepoints": [8840], "characters": "\u2288" },
+ "⊁": { "codepoints": [8833], "characters": "\u2281" },
+ "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" },
+ "⋡": { "codepoints": [8929], "characters": "\u22E1" },
+ "≿̸": { "codepoints": [8831, 824], "characters": "\u227F\u0338" },
+ "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" },
+ "⊉": { "codepoints": [8841], "characters": "\u2289" },
+ "≁": { "codepoints": [8769], "characters": "\u2241" },
+ "≄": { "codepoints": [8772], "characters": "\u2244" },
+ "≇": { "codepoints": [8775], "characters": "\u2247" },
+ "≉": { "codepoints": [8777], "characters": "\u2249" },
+ "∤": { "codepoints": [8740], "characters": "\u2224" },
+ "𝒩": { "codepoints": [119977], "characters": "\uD835\uDCA9" },
+ "Ñ": { "codepoints": [209], "characters": "\u00D1" },
+ "Ñ": { "codepoints": [209], "characters": "\u00D1" },
+ "Ν": { "codepoints": [925], "characters": "\u039D" },
+ "Œ": { "codepoints": [338], "characters": "\u0152" },
+ "Ó": { "codepoints": [211], "characters": "\u00D3" },
+ "Ó": { "codepoints": [211], "characters": "\u00D3" },
+ "Ô": { "codepoints": [212], "characters": "\u00D4" },
+ "Ô": { "codepoints": [212], "characters": "\u00D4" },
+ "О": { "codepoints": [1054], "characters": "\u041E" },
+ "Ő": { "codepoints": [336], "characters": "\u0150" },
+ "𝔒": { "codepoints": [120082], "characters": "\uD835\uDD12" },
+ "Ò": { "codepoints": [210], "characters": "\u00D2" },
+ "Ò": { "codepoints": [210], "characters": "\u00D2" },
+ "Ō": { "codepoints": [332], "characters": "\u014C" },
+ "Ω": { "codepoints": [937], "characters": "\u03A9" },
+ "Ο": { "codepoints": [927], "characters": "\u039F" },
+ "𝕆": { "codepoints": [120134], "characters": "\uD835\uDD46" },
+ "“": { "codepoints": [8220], "characters": "\u201C" },
+ "‘": { "codepoints": [8216], "characters": "\u2018" },
+ "⩔": { "codepoints": [10836], "characters": "\u2A54" },
+ "𝒪": { "codepoints": [119978], "characters": "\uD835\uDCAA" },
+ "Ø": { "codepoints": [216], "characters": "\u00D8" },
+ "Ø": { "codepoints": [216], "characters": "\u00D8" },
+ "Õ": { "codepoints": [213], "characters": "\u00D5" },
+ "Õ": { "codepoints": [213], "characters": "\u00D5" },
+ "⨷": { "codepoints": [10807], "characters": "\u2A37" },
+ "Ö": { "codepoints": [214], "characters": "\u00D6" },
+ "Ö": { "codepoints": [214], "characters": "\u00D6" },
+ "‾": { "codepoints": [8254], "characters": "\u203E" },
+ "⏞": { "codepoints": [9182], "characters": "\u23DE" },
+ "⎴": { "codepoints": [9140], "characters": "\u23B4" },
+ "⏜": { "codepoints": [9180], "characters": "\u23DC" },
+ "∂": { "codepoints": [8706], "characters": "\u2202" },
+ "П": { "codepoints": [1055], "characters": "\u041F" },
+ "𝔓": { "codepoints": [120083], "characters": "\uD835\uDD13" },
+ "Φ": { "codepoints": [934], "characters": "\u03A6" },
+ "Π": { "codepoints": [928], "characters": "\u03A0" },
+ "±": { "codepoints": [177], "characters": "\u00B1" },
+ "ℌ": { "codepoints": [8460], "characters": "\u210C" },
+ "ℙ": { "codepoints": [8473], "characters": "\u2119" },
+ "⪻": { "codepoints": [10939], "characters": "\u2ABB" },
+ "≺": { "codepoints": [8826], "characters": "\u227A" },
+ "⪯": { "codepoints": [10927], "characters": "\u2AAF" },
+ "≼": { "codepoints": [8828], "characters": "\u227C" },
+ "≾": { "codepoints": [8830], "characters": "\u227E" },
+ "″": { "codepoints": [8243], "characters": "\u2033" },
+ "∏": { "codepoints": [8719], "characters": "\u220F" },
+ "∷": { "codepoints": [8759], "characters": "\u2237" },
+ "∝": { "codepoints": [8733], "characters": "\u221D" },
+ "𝒫": { "codepoints": [119979], "characters": "\uD835\uDCAB" },
+ "Ψ": { "codepoints": [936], "characters": "\u03A8" },
+ """: { "codepoints": [34], "characters": "\u0022" },
+ """: { "codepoints": [34], "characters": "\u0022" },
+ "𝔔": { "codepoints": [120084], "characters": "\uD835\uDD14" },
+ "ℚ": { "codepoints": [8474], "characters": "\u211A" },
+ "𝒬": { "codepoints": [119980], "characters": "\uD835\uDCAC" },
+ "⤐": { "codepoints": [10512], "characters": "\u2910" },
+ "®": { "codepoints": [174], "characters": "\u00AE" },
+ "®": { "codepoints": [174], "characters": "\u00AE" },
+ "Ŕ": { "codepoints": [340], "characters": "\u0154" },
+ "⟫": { "codepoints": [10219], "characters": "\u27EB" },
+ "↠": { "codepoints": [8608], "characters": "\u21A0" },
+ "⤖": { "codepoints": [10518], "characters": "\u2916" },
+ "Ř": { "codepoints": [344], "characters": "\u0158" },
+ "Ŗ": { "codepoints": [342], "characters": "\u0156" },
+ "Р": { "codepoints": [1056], "characters": "\u0420" },
+ "ℜ": { "codepoints": [8476], "characters": "\u211C" },
+ "∋": { "codepoints": [8715], "characters": "\u220B" },
+ "⇋": { "codepoints": [8651], "characters": "\u21CB" },
+ "⥯": { "codepoints": [10607], "characters": "\u296F" },
+ "ℜ": { "codepoints": [8476], "characters": "\u211C" },
+ "Ρ": { "codepoints": [929], "characters": "\u03A1" },
+ "⟩": { "codepoints": [10217], "characters": "\u27E9" },
+ "→": { "codepoints": [8594], "characters": "\u2192" },
+ "⇥": { "codepoints": [8677], "characters": "\u21E5" },
+ "⇄": { "codepoints": [8644], "characters": "\u21C4" },
+ "⌉": { "codepoints": [8969], "characters": "\u2309" },
+ "⟧": { "codepoints": [10215], "characters": "\u27E7" },
+ "⥝": { "codepoints": [10589], "characters": "\u295D" },
+ "⇂": { "codepoints": [8642], "characters": "\u21C2" },
+ "⥕": { "codepoints": [10581], "characters": "\u2955" },
+ "⌋": { "codepoints": [8971], "characters": "\u230B" },
+ "⊢": { "codepoints": [8866], "characters": "\u22A2" },
+ "↦": { "codepoints": [8614], "characters": "\u21A6" },
+ "⥛": { "codepoints": [10587], "characters": "\u295B" },
+ "⊳": { "codepoints": [8883], "characters": "\u22B3" },
+ "⧐": { "codepoints": [10704], "characters": "\u29D0" },
+ "⊵": { "codepoints": [8885], "characters": "\u22B5" },
+ "⥏": { "codepoints": [10575], "characters": "\u294F" },
+ "⥜": { "codepoints": [10588], "characters": "\u295C" },
+ "↾": { "codepoints": [8638], "characters": "\u21BE" },
+ "⥔": { "codepoints": [10580], "characters": "\u2954" },
+ "⇀": { "codepoints": [8640], "characters": "\u21C0" },
+ "⥓": { "codepoints": [10579], "characters": "\u2953" },
+ "⇒": { "codepoints": [8658], "characters": "\u21D2" },
+ "ℝ": { "codepoints": [8477], "characters": "\u211D" },
+ "⥰": { "codepoints": [10608], "characters": "\u2970" },
+ "⇛": { "codepoints": [8667], "characters": "\u21DB" },
+ "ℛ": { "codepoints": [8475], "characters": "\u211B" },
+ "↱": { "codepoints": [8625], "characters": "\u21B1" },
+ "⧴": { "codepoints": [10740], "characters": "\u29F4" },
+ "Щ": { "codepoints": [1065], "characters": "\u0429" },
+ "Ш": { "codepoints": [1064], "characters": "\u0428" },
+ "Ь": { "codepoints": [1068], "characters": "\u042C" },
+ "Ś": { "codepoints": [346], "characters": "\u015A" },
+ "⪼": { "codepoints": [10940], "characters": "\u2ABC" },
+ "Š": { "codepoints": [352], "characters": "\u0160" },
+ "Ş": { "codepoints": [350], "characters": "\u015E" },
+ "Ŝ": { "codepoints": [348], "characters": "\u015C" },
+ "С": { "codepoints": [1057], "characters": "\u0421" },
+ "𝔖": { "codepoints": [120086], "characters": "\uD835\uDD16" },
+ "↓": { "codepoints": [8595], "characters": "\u2193" },
+ "←": { "codepoints": [8592], "characters": "\u2190" },
+ "→": { "codepoints": [8594], "characters": "\u2192" },
+ "↑": { "codepoints": [8593], "characters": "\u2191" },
+ "Σ": { "codepoints": [931], "characters": "\u03A3" },
+ "∘": { "codepoints": [8728], "characters": "\u2218" },
+ "𝕊": { "codepoints": [120138], "characters": "\uD835\uDD4A" },
+ "√": { "codepoints": [8730], "characters": "\u221A" },
+ "□": { "codepoints": [9633], "characters": "\u25A1" },
+ "⊓": { "codepoints": [8851], "characters": "\u2293" },
+ "⊏": { "codepoints": [8847], "characters": "\u228F" },
+ "⊑": { "codepoints": [8849], "characters": "\u2291" },
+ "⊐": { "codepoints": [8848], "characters": "\u2290" },
+ "⊒": { "codepoints": [8850], "characters": "\u2292" },
+ "⊔": { "codepoints": [8852], "characters": "\u2294" },
+ "𝒮": { "codepoints": [119982], "characters": "\uD835\uDCAE" },
+ "⋆": { "codepoints": [8902], "characters": "\u22C6" },
+ "⋐": { "codepoints": [8912], "characters": "\u22D0" },
+ "⋐": { "codepoints": [8912], "characters": "\u22D0" },
+ "⊆": { "codepoints": [8838], "characters": "\u2286" },
+ "≻": { "codepoints": [8827], "characters": "\u227B" },
+ "⪰": { "codepoints": [10928], "characters": "\u2AB0" },
+ "≽": { "codepoints": [8829], "characters": "\u227D" },
+ "≿": { "codepoints": [8831], "characters": "\u227F" },
+ "∋": { "codepoints": [8715], "characters": "\u220B" },
+ "∑": { "codepoints": [8721], "characters": "\u2211" },
+ "⋑": { "codepoints": [8913], "characters": "\u22D1" },
+ "⊃": { "codepoints": [8835], "characters": "\u2283" },
+ "⊇": { "codepoints": [8839], "characters": "\u2287" },
+ "⋑": { "codepoints": [8913], "characters": "\u22D1" },
+ "Þ": { "codepoints": [222], "characters": "\u00DE" },
+ "Þ": { "codepoints": [222], "characters": "\u00DE" },
+ "™": { "codepoints": [8482], "characters": "\u2122" },
+ "Ћ": { "codepoints": [1035], "characters": "\u040B" },
+ "Ц": { "codepoints": [1062], "characters": "\u0426" },
+ "	": { "codepoints": [9], "characters": "\u0009" },
+ "Τ": { "codepoints": [932], "characters": "\u03A4" },
+ "Ť": { "codepoints": [356], "characters": "\u0164" },
+ "Ţ": { "codepoints": [354], "characters": "\u0162" },
+ "Т": { "codepoints": [1058], "characters": "\u0422" },
+ "𝔗": { "codepoints": [120087], "characters": "\uD835\uDD17" },
+ "∴": { "codepoints": [8756], "characters": "\u2234" },
+ "Θ": { "codepoints": [920], "characters": "\u0398" },
+ "  ": { "codepoints": [8287, 8202], "characters": "\u205F\u200A" },
+ " ": { "codepoints": [8201], "characters": "\u2009" },
+ "∼": { "codepoints": [8764], "characters": "\u223C" },
+ "≃": { "codepoints": [8771], "characters": "\u2243" },
+ "≅": { "codepoints": [8773], "characters": "\u2245" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "𝕋": { "codepoints": [120139], "characters": "\uD835\uDD4B" },
+ "⃛": { "codepoints": [8411], "characters": "\u20DB" },
+ "𝒯": { "codepoints": [119983], "characters": "\uD835\uDCAF" },
+ "Ŧ": { "codepoints": [358], "characters": "\u0166" },
+ "Ú": { "codepoints": [218], "characters": "\u00DA" },
+ "Ú": { "codepoints": [218], "characters": "\u00DA" },
+ "↟": { "codepoints": [8607], "characters": "\u219F" },
+ "⥉": { "codepoints": [10569], "characters": "\u2949" },
+ "Ў": { "codepoints": [1038], "characters": "\u040E" },
+ "Ŭ": { "codepoints": [364], "characters": "\u016C" },
+ "Û": { "codepoints": [219], "characters": "\u00DB" },
+ "Û": { "codepoints": [219], "characters": "\u00DB" },
+ "У": { "codepoints": [1059], "characters": "\u0423" },
+ "Ű": { "codepoints": [368], "characters": "\u0170" },
+ "𝔘": { "codepoints": [120088], "characters": "\uD835\uDD18" },
+ "Ù": { "codepoints": [217], "characters": "\u00D9" },
+ "Ù": { "codepoints": [217], "characters": "\u00D9" },
+ "Ū": { "codepoints": [362], "characters": "\u016A" },
+ "_": { "codepoints": [95], "characters": "\u005F" },
+ "⏟": { "codepoints": [9183], "characters": "\u23DF" },
+ "⎵": { "codepoints": [9141], "characters": "\u23B5" },
+ "⏝": { "codepoints": [9181], "characters": "\u23DD" },
+ "⋃": { "codepoints": [8899], "characters": "\u22C3" },
+ "⊎": { "codepoints": [8846], "characters": "\u228E" },
+ "Ų": { "codepoints": [370], "characters": "\u0172" },
+ "𝕌": { "codepoints": [120140], "characters": "\uD835\uDD4C" },
+ "↑": { "codepoints": [8593], "characters": "\u2191" },
+ "⤒": { "codepoints": [10514], "characters": "\u2912" },
+ "⇅": { "codepoints": [8645], "characters": "\u21C5" },
+ "↕": { "codepoints": [8597], "characters": "\u2195" },
+ "⥮": { "codepoints": [10606], "characters": "\u296E" },
+ "⊥": { "codepoints": [8869], "characters": "\u22A5" },
+ "↥": { "codepoints": [8613], "characters": "\u21A5" },
+ "⇑": { "codepoints": [8657], "characters": "\u21D1" },
+ "⇕": { "codepoints": [8661], "characters": "\u21D5" },
+ "↖": { "codepoints": [8598], "characters": "\u2196" },
+ "↗": { "codepoints": [8599], "characters": "\u2197" },
+ "ϒ": { "codepoints": [978], "characters": "\u03D2" },
+ "Υ": { "codepoints": [933], "characters": "\u03A5" },
+ "Ů": { "codepoints": [366], "characters": "\u016E" },
+ "𝒰": { "codepoints": [119984], "characters": "\uD835\uDCB0" },
+ "Ũ": { "codepoints": [360], "characters": "\u0168" },
+ "Ü": { "codepoints": [220], "characters": "\u00DC" },
+ "Ü": { "codepoints": [220], "characters": "\u00DC" },
+ "⊫": { "codepoints": [8875], "characters": "\u22AB" },
+ "⫫": { "codepoints": [10987], "characters": "\u2AEB" },
+ "В": { "codepoints": [1042], "characters": "\u0412" },
+ "⊩": { "codepoints": [8873], "characters": "\u22A9" },
+ "⫦": { "codepoints": [10982], "characters": "\u2AE6" },
+ "⋁": { "codepoints": [8897], "characters": "\u22C1" },
+ "‖": { "codepoints": [8214], "characters": "\u2016" },
+ "‖": { "codepoints": [8214], "characters": "\u2016" },
+ "∣": { "codepoints": [8739], "characters": "\u2223" },
+ "|": { "codepoints": [124], "characters": "\u007C" },
+ "❘": { "codepoints": [10072], "characters": "\u2758" },
+ "≀": { "codepoints": [8768], "characters": "\u2240" },
+ " ": { "codepoints": [8202], "characters": "\u200A" },
+ "𝔙": { "codepoints": [120089], "characters": "\uD835\uDD19" },
+ "𝕍": { "codepoints": [120141], "characters": "\uD835\uDD4D" },
+ "𝒱": { "codepoints": [119985], "characters": "\uD835\uDCB1" },
+ "⊪": { "codepoints": [8874], "characters": "\u22AA" },
+ "Ŵ": { "codepoints": [372], "characters": "\u0174" },
+ "⋀": { "codepoints": [8896], "characters": "\u22C0" },
+ "𝔚": { "codepoints": [120090], "characters": "\uD835\uDD1A" },
+ "𝕎": { "codepoints": [120142], "characters": "\uD835\uDD4E" },
+ "𝒲": { "codepoints": [119986], "characters": "\uD835\uDCB2" },
+ "𝔛": { "codepoints": [120091], "characters": "\uD835\uDD1B" },
+ "Ξ": { "codepoints": [926], "characters": "\u039E" },
+ "𝕏": { "codepoints": [120143], "characters": "\uD835\uDD4F" },
+ "𝒳": { "codepoints": [119987], "characters": "\uD835\uDCB3" },
+ "Я": { "codepoints": [1071], "characters": "\u042F" },
+ "Ї": { "codepoints": [1031], "characters": "\u0407" },
+ "Ю": { "codepoints": [1070], "characters": "\u042E" },
+ "Ý": { "codepoints": [221], "characters": "\u00DD" },
+ "Ý": { "codepoints": [221], "characters": "\u00DD" },
+ "Ŷ": { "codepoints": [374], "characters": "\u0176" },
+ "Ы": { "codepoints": [1067], "characters": "\u042B" },
+ "𝔜": { "codepoints": [120092], "characters": "\uD835\uDD1C" },
+ "𝕐": { "codepoints": [120144], "characters": "\uD835\uDD50" },
+ "𝒴": { "codepoints": [119988], "characters": "\uD835\uDCB4" },
+ "Ÿ": { "codepoints": [376], "characters": "\u0178" },
+ "Ж": { "codepoints": [1046], "characters": "\u0416" },
+ "Ź": { "codepoints": [377], "characters": "\u0179" },
+ "Ž": { "codepoints": [381], "characters": "\u017D" },
+ "З": { "codepoints": [1047], "characters": "\u0417" },
+ "Ż": { "codepoints": [379], "characters": "\u017B" },
+ "​": { "codepoints": [8203], "characters": "\u200B" },
+ "Ζ": { "codepoints": [918], "characters": "\u0396" },
+ "ℨ": { "codepoints": [8488], "characters": "\u2128" },
+ "ℤ": { "codepoints": [8484], "characters": "\u2124" },
+ "𝒵": { "codepoints": [119989], "characters": "\uD835\uDCB5" },
+ "á": { "codepoints": [225], "characters": "\u00E1" },
+ "á": { "codepoints": [225], "characters": "\u00E1" },
+ "ă": { "codepoints": [259], "characters": "\u0103" },
+ "∾": { "codepoints": [8766], "characters": "\u223E" },
+ "∾̳": { "codepoints": [8766, 819], "characters": "\u223E\u0333" },
+ "∿": { "codepoints": [8767], "characters": "\u223F" },
+ "â": { "codepoints": [226], "characters": "\u00E2" },
+ "â": { "codepoints": [226], "characters": "\u00E2" },
+ "´": { "codepoints": [180], "characters": "\u00B4" },
+ "´": { "codepoints": [180], "characters": "\u00B4" },
+ "а": { "codepoints": [1072], "characters": "\u0430" },
+ "æ": { "codepoints": [230], "characters": "\u00E6" },
+ "æ": { "codepoints": [230], "characters": "\u00E6" },
+ "⁡": { "codepoints": [8289], "characters": "\u2061" },
+ "𝔞": { "codepoints": [120094], "characters": "\uD835\uDD1E" },
+ "à": { "codepoints": [224], "characters": "\u00E0" },
+ "à": { "codepoints": [224], "characters": "\u00E0" },
+ "ℵ": { "codepoints": [8501], "characters": "\u2135" },
+ "ℵ": { "codepoints": [8501], "characters": "\u2135" },
+ "α": { "codepoints": [945], "characters": "\u03B1" },
+ "ā": { "codepoints": [257], "characters": "\u0101" },
+ "⨿": { "codepoints": [10815], "characters": "\u2A3F" },
+ "&": { "codepoints": [38], "characters": "\u0026" },
+ "&": { "codepoints": [38], "characters": "\u0026" },
+ "∧": { "codepoints": [8743], "characters": "\u2227" },
+ "⩕": { "codepoints": [10837], "characters": "\u2A55" },
+ "⩜": { "codepoints": [10844], "characters": "\u2A5C" },
+ "⩘": { "codepoints": [10840], "characters": "\u2A58" },
+ "⩚": { "codepoints": [10842], "characters": "\u2A5A" },
+ "∠": { "codepoints": [8736], "characters": "\u2220" },
+ "⦤": { "codepoints": [10660], "characters": "\u29A4" },
+ "∠": { "codepoints": [8736], "characters": "\u2220" },
+ "∡": { "codepoints": [8737], "characters": "\u2221" },
+ "⦨": { "codepoints": [10664], "characters": "\u29A8" },
+ "⦩": { "codepoints": [10665], "characters": "\u29A9" },
+ "⦪": { "codepoints": [10666], "characters": "\u29AA" },
+ "⦫": { "codepoints": [10667], "characters": "\u29AB" },
+ "⦬": { "codepoints": [10668], "characters": "\u29AC" },
+ "⦭": { "codepoints": [10669], "characters": "\u29AD" },
+ "⦮": { "codepoints": [10670], "characters": "\u29AE" },
+ "⦯": { "codepoints": [10671], "characters": "\u29AF" },
+ "∟": { "codepoints": [8735], "characters": "\u221F" },
+ "⊾": { "codepoints": [8894], "characters": "\u22BE" },
+ "⦝": { "codepoints": [10653], "characters": "\u299D" },
+ "∢": { "codepoints": [8738], "characters": "\u2222" },
+ "Å": { "codepoints": [197], "characters": "\u00C5" },
+ "⍼": { "codepoints": [9084], "characters": "\u237C" },
+ "ą": { "codepoints": [261], "characters": "\u0105" },
+ "𝕒": { "codepoints": [120146], "characters": "\uD835\uDD52" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "⩰": { "codepoints": [10864], "characters": "\u2A70" },
+ "⩯": { "codepoints": [10863], "characters": "\u2A6F" },
+ "≊": { "codepoints": [8778], "characters": "\u224A" },
+ "≋": { "codepoints": [8779], "characters": "\u224B" },
+ "'": { "codepoints": [39], "characters": "\u0027" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "≊": { "codepoints": [8778], "characters": "\u224A" },
+ "å": { "codepoints": [229], "characters": "\u00E5" },
+ "å": { "codepoints": [229], "characters": "\u00E5" },
+ "𝒶": { "codepoints": [119990], "characters": "\uD835\uDCB6" },
+ "*": { "codepoints": [42], "characters": "\u002A" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "≍": { "codepoints": [8781], "characters": "\u224D" },
+ "ã": { "codepoints": [227], "characters": "\u00E3" },
+ "ã": { "codepoints": [227], "characters": "\u00E3" },
+ "ä": { "codepoints": [228], "characters": "\u00E4" },
+ "ä": { "codepoints": [228], "characters": "\u00E4" },
+ "∳": { "codepoints": [8755], "characters": "\u2233" },
+ "⨑": { "codepoints": [10769], "characters": "\u2A11" },
+ "⫭": { "codepoints": [10989], "characters": "\u2AED" },
+ "≌": { "codepoints": [8780], "characters": "\u224C" },
+ "϶": { "codepoints": [1014], "characters": "\u03F6" },
+ "‵": { "codepoints": [8245], "characters": "\u2035" },
+ "∽": { "codepoints": [8765], "characters": "\u223D" },
+ "⋍": { "codepoints": [8909], "characters": "\u22CD" },
+ "⊽": { "codepoints": [8893], "characters": "\u22BD" },
+ "⌅": { "codepoints": [8965], "characters": "\u2305" },
+ "⌅": { "codepoints": [8965], "characters": "\u2305" },
+ "⎵": { "codepoints": [9141], "characters": "\u23B5" },
+ "⎶": { "codepoints": [9142], "characters": "\u23B6" },
+ "≌": { "codepoints": [8780], "characters": "\u224C" },
+ "б": { "codepoints": [1073], "characters": "\u0431" },
+ "„": { "codepoints": [8222], "characters": "\u201E" },
+ "∵": { "codepoints": [8757], "characters": "\u2235" },
+ "∵": { "codepoints": [8757], "characters": "\u2235" },
+ "⦰": { "codepoints": [10672], "characters": "\u29B0" },
+ "϶": { "codepoints": [1014], "characters": "\u03F6" },
+ "ℬ": { "codepoints": [8492], "characters": "\u212C" },
+ "β": { "codepoints": [946], "characters": "\u03B2" },
+ "ℶ": { "codepoints": [8502], "characters": "\u2136" },
+ "≬": { "codepoints": [8812], "characters": "\u226C" },
+ "𝔟": { "codepoints": [120095], "characters": "\uD835\uDD1F" },
+ "⋂": { "codepoints": [8898], "characters": "\u22C2" },
+ "◯": { "codepoints": [9711], "characters": "\u25EF" },
+ "⋃": { "codepoints": [8899], "characters": "\u22C3" },
+ "⨀": { "codepoints": [10752], "characters": "\u2A00" },
+ "⨁": { "codepoints": [10753], "characters": "\u2A01" },
+ "⨂": { "codepoints": [10754], "characters": "\u2A02" },
+ "⨆": { "codepoints": [10758], "characters": "\u2A06" },
+ "★": { "codepoints": [9733], "characters": "\u2605" },
+ "▽": { "codepoints": [9661], "characters": "\u25BD" },
+ "△": { "codepoints": [9651], "characters": "\u25B3" },
+ "⨄": { "codepoints": [10756], "characters": "\u2A04" },
+ "⋁": { "codepoints": [8897], "characters": "\u22C1" },
+ "⋀": { "codepoints": [8896], "characters": "\u22C0" },
+ "⤍": { "codepoints": [10509], "characters": "\u290D" },
+ "⧫": { "codepoints": [10731], "characters": "\u29EB" },
+ "▪": { "codepoints": [9642], "characters": "\u25AA" },
+ "▴": { "codepoints": [9652], "characters": "\u25B4" },
+ "▾": { "codepoints": [9662], "characters": "\u25BE" },
+ "◂": { "codepoints": [9666], "characters": "\u25C2" },
+ "▸": { "codepoints": [9656], "characters": "\u25B8" },
+ "␣": { "codepoints": [9251], "characters": "\u2423" },
+ "▒": { "codepoints": [9618], "characters": "\u2592" },
+ "░": { "codepoints": [9617], "characters": "\u2591" },
+ "▓": { "codepoints": [9619], "characters": "\u2593" },
+ "█": { "codepoints": [9608], "characters": "\u2588" },
+ "=⃥": { "codepoints": [61, 8421], "characters": "\u003D\u20E5" },
+ "≡⃥": { "codepoints": [8801, 8421], "characters": "\u2261\u20E5" },
+ "⌐": { "codepoints": [8976], "characters": "\u2310" },
+ "𝕓": { "codepoints": [120147], "characters": "\uD835\uDD53" },
+ "⊥": { "codepoints": [8869], "characters": "\u22A5" },
+ "⊥": { "codepoints": [8869], "characters": "\u22A5" },
+ "⋈": { "codepoints": [8904], "characters": "\u22C8" },
+ "╗": { "codepoints": [9559], "characters": "\u2557" },
+ "╔": { "codepoints": [9556], "characters": "\u2554" },
+ "╖": { "codepoints": [9558], "characters": "\u2556" },
+ "╓": { "codepoints": [9555], "characters": "\u2553" },
+ "═": { "codepoints": [9552], "characters": "\u2550" },
+ "╦": { "codepoints": [9574], "characters": "\u2566" },
+ "╩": { "codepoints": [9577], "characters": "\u2569" },
+ "╤": { "codepoints": [9572], "characters": "\u2564" },
+ "╧": { "codepoints": [9575], "characters": "\u2567" },
+ "╝": { "codepoints": [9565], "characters": "\u255D" },
+ "╚": { "codepoints": [9562], "characters": "\u255A" },
+ "╜": { "codepoints": [9564], "characters": "\u255C" },
+ "╙": { "codepoints": [9561], "characters": "\u2559" },
+ "║": { "codepoints": [9553], "characters": "\u2551" },
+ "╬": { "codepoints": [9580], "characters": "\u256C" },
+ "╣": { "codepoints": [9571], "characters": "\u2563" },
+ "╠": { "codepoints": [9568], "characters": "\u2560" },
+ "╫": { "codepoints": [9579], "characters": "\u256B" },
+ "╢": { "codepoints": [9570], "characters": "\u2562" },
+ "╟": { "codepoints": [9567], "characters": "\u255F" },
+ "⧉": { "codepoints": [10697], "characters": "\u29C9" },
+ "╕": { "codepoints": [9557], "characters": "\u2555" },
+ "╒": { "codepoints": [9554], "characters": "\u2552" },
+ "┐": { "codepoints": [9488], "characters": "\u2510" },
+ "┌": { "codepoints": [9484], "characters": "\u250C" },
+ "─": { "codepoints": [9472], "characters": "\u2500" },
+ "╥": { "codepoints": [9573], "characters": "\u2565" },
+ "╨": { "codepoints": [9576], "characters": "\u2568" },
+ "┬": { "codepoints": [9516], "characters": "\u252C" },
+ "┴": { "codepoints": [9524], "characters": "\u2534" },
+ "⊟": { "codepoints": [8863], "characters": "\u229F" },
+ "⊞": { "codepoints": [8862], "characters": "\u229E" },
+ "⊠": { "codepoints": [8864], "characters": "\u22A0" },
+ "╛": { "codepoints": [9563], "characters": "\u255B" },
+ "╘": { "codepoints": [9560], "characters": "\u2558" },
+ "┘": { "codepoints": [9496], "characters": "\u2518" },
+ "└": { "codepoints": [9492], "characters": "\u2514" },
+ "│": { "codepoints": [9474], "characters": "\u2502" },
+ "╪": { "codepoints": [9578], "characters": "\u256A" },
+ "╡": { "codepoints": [9569], "characters": "\u2561" },
+ "╞": { "codepoints": [9566], "characters": "\u255E" },
+ "┼": { "codepoints": [9532], "characters": "\u253C" },
+ "┤": { "codepoints": [9508], "characters": "\u2524" },
+ "├": { "codepoints": [9500], "characters": "\u251C" },
+ "‵": { "codepoints": [8245], "characters": "\u2035" },
+ "˘": { "codepoints": [728], "characters": "\u02D8" },
+ "¦": { "codepoints": [166], "characters": "\u00A6" },
+ "¦": { "codepoints": [166], "characters": "\u00A6" },
+ "𝒷": { "codepoints": [119991], "characters": "\uD835\uDCB7" },
+ "⁏": { "codepoints": [8271], "characters": "\u204F" },
+ "∽": { "codepoints": [8765], "characters": "\u223D" },
+ "⋍": { "codepoints": [8909], "characters": "\u22CD" },
+ "\": { "codepoints": [92], "characters": "\u005C" },
+ "⧅": { "codepoints": [10693], "characters": "\u29C5" },
+ "⟈": { "codepoints": [10184], "characters": "\u27C8" },
+ "•": { "codepoints": [8226], "characters": "\u2022" },
+ "•": { "codepoints": [8226], "characters": "\u2022" },
+ "≎": { "codepoints": [8782], "characters": "\u224E" },
+ "⪮": { "codepoints": [10926], "characters": "\u2AAE" },
+ "≏": { "codepoints": [8783], "characters": "\u224F" },
+ "≏": { "codepoints": [8783], "characters": "\u224F" },
+ "ć": { "codepoints": [263], "characters": "\u0107" },
+ "∩": { "codepoints": [8745], "characters": "\u2229" },
+ "⩄": { "codepoints": [10820], "characters": "\u2A44" },
+ "⩉": { "codepoints": [10825], "characters": "\u2A49" },
+ "⩋": { "codepoints": [10827], "characters": "\u2A4B" },
+ "⩇": { "codepoints": [10823], "characters": "\u2A47" },
+ "⩀": { "codepoints": [10816], "characters": "\u2A40" },
+ "∩︀": { "codepoints": [8745, 65024], "characters": "\u2229\uFE00" },
+ "⁁": { "codepoints": [8257], "characters": "\u2041" },
+ "ˇ": { "codepoints": [711], "characters": "\u02C7" },
+ "⩍": { "codepoints": [10829], "characters": "\u2A4D" },
+ "č": { "codepoints": [269], "characters": "\u010D" },
+ "ç": { "codepoints": [231], "characters": "\u00E7" },
+ "ç": { "codepoints": [231], "characters": "\u00E7" },
+ "ĉ": { "codepoints": [265], "characters": "\u0109" },
+ "⩌": { "codepoints": [10828], "characters": "\u2A4C" },
+ "⩐": { "codepoints": [10832], "characters": "\u2A50" },
+ "ċ": { "codepoints": [267], "characters": "\u010B" },
+ "¸": { "codepoints": [184], "characters": "\u00B8" },
+ "¸": { "codepoints": [184], "characters": "\u00B8" },
+ "⦲": { "codepoints": [10674], "characters": "\u29B2" },
+ "¢": { "codepoints": [162], "characters": "\u00A2" },
+ "¢": { "codepoints": [162], "characters": "\u00A2" },
+ "·": { "codepoints": [183], "characters": "\u00B7" },
+ "𝔠": { "codepoints": [120096], "characters": "\uD835\uDD20" },
+ "ч": { "codepoints": [1095], "characters": "\u0447" },
+ "✓": { "codepoints": [10003], "characters": "\u2713" },
+ "✓": { "codepoints": [10003], "characters": "\u2713" },
+ "χ": { "codepoints": [967], "characters": "\u03C7" },
+ "○": { "codepoints": [9675], "characters": "\u25CB" },
+ "⧃": { "codepoints": [10691], "characters": "\u29C3" },
+ "ˆ": { "codepoints": [710], "characters": "\u02C6" },
+ "≗": { "codepoints": [8791], "characters": "\u2257" },
+ "↺": { "codepoints": [8634], "characters": "\u21BA" },
+ "↻": { "codepoints": [8635], "characters": "\u21BB" },
+ "®": { "codepoints": [174], "characters": "\u00AE" },
+ "Ⓢ": { "codepoints": [9416], "characters": "\u24C8" },
+ "⊛": { "codepoints": [8859], "characters": "\u229B" },
+ "⊚": { "codepoints": [8858], "characters": "\u229A" },
+ "⊝": { "codepoints": [8861], "characters": "\u229D" },
+ "≗": { "codepoints": [8791], "characters": "\u2257" },
+ "⨐": { "codepoints": [10768], "characters": "\u2A10" },
+ "⫯": { "codepoints": [10991], "characters": "\u2AEF" },
+ "⧂": { "codepoints": [10690], "characters": "\u29C2" },
+ "♣": { "codepoints": [9827], "characters": "\u2663" },
+ "♣": { "codepoints": [9827], "characters": "\u2663" },
+ ":": { "codepoints": [58], "characters": "\u003A" },
+ "≔": { "codepoints": [8788], "characters": "\u2254" },
+ "≔": { "codepoints": [8788], "characters": "\u2254" },
+ ",": { "codepoints": [44], "characters": "\u002C" },
+ "@": { "codepoints": [64], "characters": "\u0040" },
+ "∁": { "codepoints": [8705], "characters": "\u2201" },
+ "∘": { "codepoints": [8728], "characters": "\u2218" },
+ "∁": { "codepoints": [8705], "characters": "\u2201" },
+ "ℂ": { "codepoints": [8450], "characters": "\u2102" },
+ "≅": { "codepoints": [8773], "characters": "\u2245" },
+ "⩭": { "codepoints": [10861], "characters": "\u2A6D" },
+ "∮": { "codepoints": [8750], "characters": "\u222E" },
+ "𝕔": { "codepoints": [120148], "characters": "\uD835\uDD54" },
+ "∐": { "codepoints": [8720], "characters": "\u2210" },
+ "©": { "codepoints": [169], "characters": "\u00A9" },
+ "©": { "codepoints": [169], "characters": "\u00A9" },
+ "℗": { "codepoints": [8471], "characters": "\u2117" },
+ "↵": { "codepoints": [8629], "characters": "\u21B5" },
+ "✗": { "codepoints": [10007], "characters": "\u2717" },
+ "𝒸": { "codepoints": [119992], "characters": "\uD835\uDCB8" },
+ "⫏": { "codepoints": [10959], "characters": "\u2ACF" },
+ "⫑": { "codepoints": [10961], "characters": "\u2AD1" },
+ "⫐": { "codepoints": [10960], "characters": "\u2AD0" },
+ "⫒": { "codepoints": [10962], "characters": "\u2AD2" },
+ "⋯": { "codepoints": [8943], "characters": "\u22EF" },
+ "⤸": { "codepoints": [10552], "characters": "\u2938" },
+ "⤵": { "codepoints": [10549], "characters": "\u2935" },
+ "⋞": { "codepoints": [8926], "characters": "\u22DE" },
+ "⋟": { "codepoints": [8927], "characters": "\u22DF" },
+ "↶": { "codepoints": [8630], "characters": "\u21B6" },
+ "⤽": { "codepoints": [10557], "characters": "\u293D" },
+ "∪": { "codepoints": [8746], "characters": "\u222A" },
+ "⩈": { "codepoints": [10824], "characters": "\u2A48" },
+ "⩆": { "codepoints": [10822], "characters": "\u2A46" },
+ "⩊": { "codepoints": [10826], "characters": "\u2A4A" },
+ "⊍": { "codepoints": [8845], "characters": "\u228D" },
+ "⩅": { "codepoints": [10821], "characters": "\u2A45" },
+ "∪︀": { "codepoints": [8746, 65024], "characters": "\u222A\uFE00" },
+ "↷": { "codepoints": [8631], "characters": "\u21B7" },
+ "⤼": { "codepoints": [10556], "characters": "\u293C" },
+ "⋞": { "codepoints": [8926], "characters": "\u22DE" },
+ "⋟": { "codepoints": [8927], "characters": "\u22DF" },
+ "⋎": { "codepoints": [8910], "characters": "\u22CE" },
+ "⋏": { "codepoints": [8911], "characters": "\u22CF" },
+ "¤": { "codepoints": [164], "characters": "\u00A4" },
+ "¤": { "codepoints": [164], "characters": "\u00A4" },
+ "↶": { "codepoints": [8630], "characters": "\u21B6" },
+ "↷": { "codepoints": [8631], "characters": "\u21B7" },
+ "⋎": { "codepoints": [8910], "characters": "\u22CE" },
+ "⋏": { "codepoints": [8911], "characters": "\u22CF" },
+ "∲": { "codepoints": [8754], "characters": "\u2232" },
+ "∱": { "codepoints": [8753], "characters": "\u2231" },
+ "⌭": { "codepoints": [9005], "characters": "\u232D" },
+ "⇓": { "codepoints": [8659], "characters": "\u21D3" },
+ "⥥": { "codepoints": [10597], "characters": "\u2965" },
+ "†": { "codepoints": [8224], "characters": "\u2020" },
+ "ℸ": { "codepoints": [8504], "characters": "\u2138" },
+ "↓": { "codepoints": [8595], "characters": "\u2193" },
+ "‐": { "codepoints": [8208], "characters": "\u2010" },
+ "⊣": { "codepoints": [8867], "characters": "\u22A3" },
+ "⤏": { "codepoints": [10511], "characters": "\u290F" },
+ "˝": { "codepoints": [733], "characters": "\u02DD" },
+ "ď": { "codepoints": [271], "characters": "\u010F" },
+ "д": { "codepoints": [1076], "characters": "\u0434" },
+ "ⅆ": { "codepoints": [8518], "characters": "\u2146" },
+ "‡": { "codepoints": [8225], "characters": "\u2021" },
+ "⇊": { "codepoints": [8650], "characters": "\u21CA" },
+ "⩷": { "codepoints": [10871], "characters": "\u2A77" },
+ "°": { "codepoints": [176], "characters": "\u00B0" },
+ "°": { "codepoints": [176], "characters": "\u00B0" },
+ "δ": { "codepoints": [948], "characters": "\u03B4" },
+ "⦱": { "codepoints": [10673], "characters": "\u29B1" },
+ "⥿": { "codepoints": [10623], "characters": "\u297F" },
+ "𝔡": { "codepoints": [120097], "characters": "\uD835\uDD21" },
+ "⇃": { "codepoints": [8643], "characters": "\u21C3" },
+ "⇂": { "codepoints": [8642], "characters": "\u21C2" },
+ "⋄": { "codepoints": [8900], "characters": "\u22C4" },
+ "⋄": { "codepoints": [8900], "characters": "\u22C4" },
+ "♦": { "codepoints": [9830], "characters": "\u2666" },
+ "♦": { "codepoints": [9830], "characters": "\u2666" },
+ "¨": { "codepoints": [168], "characters": "\u00A8" },
+ "ϝ": { "codepoints": [989], "characters": "\u03DD" },
+ "⋲": { "codepoints": [8946], "characters": "\u22F2" },
+ "÷": { "codepoints": [247], "characters": "\u00F7" },
+ "÷": { "codepoints": [247], "characters": "\u00F7" },
+ "÷": { "codepoints": [247], "characters": "\u00F7" },
+ "⋇": { "codepoints": [8903], "characters": "\u22C7" },
+ "⋇": { "codepoints": [8903], "characters": "\u22C7" },
+ "ђ": { "codepoints": [1106], "characters": "\u0452" },
+ "⌞": { "codepoints": [8990], "characters": "\u231E" },
+ "⌍": { "codepoints": [8973], "characters": "\u230D" },
+ "$": { "codepoints": [36], "characters": "\u0024" },
+ "𝕕": { "codepoints": [120149], "characters": "\uD835\uDD55" },
+ "˙": { "codepoints": [729], "characters": "\u02D9" },
+ "≐": { "codepoints": [8784], "characters": "\u2250" },
+ "≑": { "codepoints": [8785], "characters": "\u2251" },
+ "∸": { "codepoints": [8760], "characters": "\u2238" },
+ "∔": { "codepoints": [8724], "characters": "\u2214" },
+ "⊡": { "codepoints": [8865], "characters": "\u22A1" },
+ "⌆": { "codepoints": [8966], "characters": "\u2306" },
+ "↓": { "codepoints": [8595], "characters": "\u2193" },
+ "⇊": { "codepoints": [8650], "characters": "\u21CA" },
+ "⇃": { "codepoints": [8643], "characters": "\u21C3" },
+ "⇂": { "codepoints": [8642], "characters": "\u21C2" },
+ "⤐": { "codepoints": [10512], "characters": "\u2910" },
+ "⌟": { "codepoints": [8991], "characters": "\u231F" },
+ "⌌": { "codepoints": [8972], "characters": "\u230C" },
+ "𝒹": { "codepoints": [119993], "characters": "\uD835\uDCB9" },
+ "ѕ": { "codepoints": [1109], "characters": "\u0455" },
+ "⧶": { "codepoints": [10742], "characters": "\u29F6" },
+ "đ": { "codepoints": [273], "characters": "\u0111" },
+ "⋱": { "codepoints": [8945], "characters": "\u22F1" },
+ "▿": { "codepoints": [9663], "characters": "\u25BF" },
+ "▾": { "codepoints": [9662], "characters": "\u25BE" },
+ "⇵": { "codepoints": [8693], "characters": "\u21F5" },
+ "⥯": { "codepoints": [10607], "characters": "\u296F" },
+ "⦦": { "codepoints": [10662], "characters": "\u29A6" },
+ "џ": { "codepoints": [1119], "characters": "\u045F" },
+ "⟿": { "codepoints": [10239], "characters": "\u27FF" },
+ "⩷": { "codepoints": [10871], "characters": "\u2A77" },
+ "≑": { "codepoints": [8785], "characters": "\u2251" },
+ "é": { "codepoints": [233], "characters": "\u00E9" },
+ "é": { "codepoints": [233], "characters": "\u00E9" },
+ "⩮": { "codepoints": [10862], "characters": "\u2A6E" },
+ "ě": { "codepoints": [283], "characters": "\u011B" },
+ "≖": { "codepoints": [8790], "characters": "\u2256" },
+ "ê": { "codepoints": [234], "characters": "\u00EA" },
+ "ê": { "codepoints": [234], "characters": "\u00EA" },
+ "≕": { "codepoints": [8789], "characters": "\u2255" },
+ "э": { "codepoints": [1101], "characters": "\u044D" },
+ "ė": { "codepoints": [279], "characters": "\u0117" },
+ "ⅇ": { "codepoints": [8519], "characters": "\u2147" },
+ "≒": { "codepoints": [8786], "characters": "\u2252" },
+ "𝔢": { "codepoints": [120098], "characters": "\uD835\uDD22" },
+ "⪚": { "codepoints": [10906], "characters": "\u2A9A" },
+ "è": { "codepoints": [232], "characters": "\u00E8" },
+ "è": { "codepoints": [232], "characters": "\u00E8" },
+ "⪖": { "codepoints": [10902], "characters": "\u2A96" },
+ "⪘": { "codepoints": [10904], "characters": "\u2A98" },
+ "⪙": { "codepoints": [10905], "characters": "\u2A99" },
+ "⏧": { "codepoints": [9191], "characters": "\u23E7" },
+ "ℓ": { "codepoints": [8467], "characters": "\u2113" },
+ "⪕": { "codepoints": [10901], "characters": "\u2A95" },
+ "⪗": { "codepoints": [10903], "characters": "\u2A97" },
+ "ē": { "codepoints": [275], "characters": "\u0113" },
+ "∅": { "codepoints": [8709], "characters": "\u2205" },
+ "∅": { "codepoints": [8709], "characters": "\u2205" },
+ "∅": { "codepoints": [8709], "characters": "\u2205" },
+ " ": { "codepoints": [8196], "characters": "\u2004" },
+ " ": { "codepoints": [8197], "characters": "\u2005" },
+ " ": { "codepoints": [8195], "characters": "\u2003" },
+ "ŋ": { "codepoints": [331], "characters": "\u014B" },
+ " ": { "codepoints": [8194], "characters": "\u2002" },
+ "ę": { "codepoints": [281], "characters": "\u0119" },
+ "𝕖": { "codepoints": [120150], "characters": "\uD835\uDD56" },
+ "⋕": { "codepoints": [8917], "characters": "\u22D5" },
+ "⧣": { "codepoints": [10723], "characters": "\u29E3" },
+ "⩱": { "codepoints": [10865], "characters": "\u2A71" },
+ "ε": { "codepoints": [949], "characters": "\u03B5" },
+ "ε": { "codepoints": [949], "characters": "\u03B5" },
+ "ϵ": { "codepoints": [1013], "characters": "\u03F5" },
+ "≖": { "codepoints": [8790], "characters": "\u2256" },
+ "≕": { "codepoints": [8789], "characters": "\u2255" },
+ "≂": { "codepoints": [8770], "characters": "\u2242" },
+ "⪖": { "codepoints": [10902], "characters": "\u2A96" },
+ "⪕": { "codepoints": [10901], "characters": "\u2A95" },
+ "=": { "codepoints": [61], "characters": "\u003D" },
+ "≟": { "codepoints": [8799], "characters": "\u225F" },
+ "≡": { "codepoints": [8801], "characters": "\u2261" },
+ "⩸": { "codepoints": [10872], "characters": "\u2A78" },
+ "⧥": { "codepoints": [10725], "characters": "\u29E5" },
+ "≓": { "codepoints": [8787], "characters": "\u2253" },
+ "⥱": { "codepoints": [10609], "characters": "\u2971" },
+ "ℯ": { "codepoints": [8495], "characters": "\u212F" },
+ "≐": { "codepoints": [8784], "characters": "\u2250" },
+ "≂": { "codepoints": [8770], "characters": "\u2242" },
+ "η": { "codepoints": [951], "characters": "\u03B7" },
+ "ð": { "codepoints": [240], "characters": "\u00F0" },
+ "ð": { "codepoints": [240], "characters": "\u00F0" },
+ "ë": { "codepoints": [235], "characters": "\u00EB" },
+ "ë": { "codepoints": [235], "characters": "\u00EB" },
+ "€": { "codepoints": [8364], "characters": "\u20AC" },
+ "!": { "codepoints": [33], "characters": "\u0021" },
+ "∃": { "codepoints": [8707], "characters": "\u2203" },
+ "ℰ": { "codepoints": [8496], "characters": "\u2130" },
+ "ⅇ": { "codepoints": [8519], "characters": "\u2147" },
+ "≒": { "codepoints": [8786], "characters": "\u2252" },
+ "ф": { "codepoints": [1092], "characters": "\u0444" },
+ "♀": { "codepoints": [9792], "characters": "\u2640" },
+ "ffi": { "codepoints": [64259], "characters": "\uFB03" },
+ "ff": { "codepoints": [64256], "characters": "\uFB00" },
+ "ffl": { "codepoints": [64260], "characters": "\uFB04" },
+ "𝔣": { "codepoints": [120099], "characters": "\uD835\uDD23" },
+ "fi": { "codepoints": [64257], "characters": "\uFB01" },
+ "fj": { "codepoints": [102, 106], "characters": "\u0066\u006A" },
+ "♭": { "codepoints": [9837], "characters": "\u266D" },
+ "fl": { "codepoints": [64258], "characters": "\uFB02" },
+ "▱": { "codepoints": [9649], "characters": "\u25B1" },
+ "ƒ": { "codepoints": [402], "characters": "\u0192" },
+ "𝕗": { "codepoints": [120151], "characters": "\uD835\uDD57" },
+ "∀": { "codepoints": [8704], "characters": "\u2200" },
+ "⋔": { "codepoints": [8916], "characters": "\u22D4" },
+ "⫙": { "codepoints": [10969], "characters": "\u2AD9" },
+ "⨍": { "codepoints": [10765], "characters": "\u2A0D" },
+ "½": { "codepoints": [189], "characters": "\u00BD" },
+ "½": { "codepoints": [189], "characters": "\u00BD" },
+ "⅓": { "codepoints": [8531], "characters": "\u2153" },
+ "¼": { "codepoints": [188], "characters": "\u00BC" },
+ "¼": { "codepoints": [188], "characters": "\u00BC" },
+ "⅕": { "codepoints": [8533], "characters": "\u2155" },
+ "⅙": { "codepoints": [8537], "characters": "\u2159" },
+ "⅛": { "codepoints": [8539], "characters": "\u215B" },
+ "⅔": { "codepoints": [8532], "characters": "\u2154" },
+ "⅖": { "codepoints": [8534], "characters": "\u2156" },
+ "¾": { "codepoints": [190], "characters": "\u00BE" },
+ "¾": { "codepoints": [190], "characters": "\u00BE" },
+ "⅗": { "codepoints": [8535], "characters": "\u2157" },
+ "⅜": { "codepoints": [8540], "characters": "\u215C" },
+ "⅘": { "codepoints": [8536], "characters": "\u2158" },
+ "⅚": { "codepoints": [8538], "characters": "\u215A" },
+ "⅝": { "codepoints": [8541], "characters": "\u215D" },
+ "⅞": { "codepoints": [8542], "characters": "\u215E" },
+ "⁄": { "codepoints": [8260], "characters": "\u2044" },
+ "⌢": { "codepoints": [8994], "characters": "\u2322" },
+ "𝒻": { "codepoints": [119995], "characters": "\uD835\uDCBB" },
+ "≧": { "codepoints": [8807], "characters": "\u2267" },
+ "⪌": { "codepoints": [10892], "characters": "\u2A8C" },
+ "ǵ": { "codepoints": [501], "characters": "\u01F5" },
+ "γ": { "codepoints": [947], "characters": "\u03B3" },
+ "ϝ": { "codepoints": [989], "characters": "\u03DD" },
+ "⪆": { "codepoints": [10886], "characters": "\u2A86" },
+ "ğ": { "codepoints": [287], "characters": "\u011F" },
+ "ĝ": { "codepoints": [285], "characters": "\u011D" },
+ "г": { "codepoints": [1075], "characters": "\u0433" },
+ "ġ": { "codepoints": [289], "characters": "\u0121" },
+ "≥": { "codepoints": [8805], "characters": "\u2265" },
+ "⋛": { "codepoints": [8923], "characters": "\u22DB" },
+ "≥": { "codepoints": [8805], "characters": "\u2265" },
+ "≧": { "codepoints": [8807], "characters": "\u2267" },
+ "⩾": { "codepoints": [10878], "characters": "\u2A7E" },
+ "⩾": { "codepoints": [10878], "characters": "\u2A7E" },
+ "⪩": { "codepoints": [10921], "characters": "\u2AA9" },
+ "⪀": { "codepoints": [10880], "characters": "\u2A80" },
+ "⪂": { "codepoints": [10882], "characters": "\u2A82" },
+ "⪄": { "codepoints": [10884], "characters": "\u2A84" },
+ "⋛︀": { "codepoints": [8923, 65024], "characters": "\u22DB\uFE00" },
+ "⪔": { "codepoints": [10900], "characters": "\u2A94" },
+ "𝔤": { "codepoints": [120100], "characters": "\uD835\uDD24" },
+ "≫": { "codepoints": [8811], "characters": "\u226B" },
+ "⋙": { "codepoints": [8921], "characters": "\u22D9" },
+ "ℷ": { "codepoints": [8503], "characters": "\u2137" },
+ "ѓ": { "codepoints": [1107], "characters": "\u0453" },
+ "≷": { "codepoints": [8823], "characters": "\u2277" },
+ "⪒": { "codepoints": [10898], "characters": "\u2A92" },
+ "⪥": { "codepoints": [10917], "characters": "\u2AA5" },
+ "⪤": { "codepoints": [10916], "characters": "\u2AA4" },
+ "≩": { "codepoints": [8809], "characters": "\u2269" },
+ "⪊": { "codepoints": [10890], "characters": "\u2A8A" },
+ "⪊": { "codepoints": [10890], "characters": "\u2A8A" },
+ "⪈": { "codepoints": [10888], "characters": "\u2A88" },
+ "⪈": { "codepoints": [10888], "characters": "\u2A88" },
+ "≩": { "codepoints": [8809], "characters": "\u2269" },
+ "⋧": { "codepoints": [8935], "characters": "\u22E7" },
+ "𝕘": { "codepoints": [120152], "characters": "\uD835\uDD58" },
+ "`": { "codepoints": [96], "characters": "\u0060" },
+ "ℊ": { "codepoints": [8458], "characters": "\u210A" },
+ "≳": { "codepoints": [8819], "characters": "\u2273" },
+ "⪎": { "codepoints": [10894], "characters": "\u2A8E" },
+ "⪐": { "codepoints": [10896], "characters": "\u2A90" },
+ ">": { "codepoints": [62], "characters": "\u003E" },
+ ">": { "codepoints": [62], "characters": "\u003E" },
+ "⪧": { "codepoints": [10919], "characters": "\u2AA7" },
+ "⩺": { "codepoints": [10874], "characters": "\u2A7A" },
+ "⋗": { "codepoints": [8919], "characters": "\u22D7" },
+ "⦕": { "codepoints": [10645], "characters": "\u2995" },
+ "⩼": { "codepoints": [10876], "characters": "\u2A7C" },
+ "⪆": { "codepoints": [10886], "characters": "\u2A86" },
+ "⥸": { "codepoints": [10616], "characters": "\u2978" },
+ "⋗": { "codepoints": [8919], "characters": "\u22D7" },
+ "⋛": { "codepoints": [8923], "characters": "\u22DB" },
+ "⪌": { "codepoints": [10892], "characters": "\u2A8C" },
+ "≷": { "codepoints": [8823], "characters": "\u2277" },
+ "≳": { "codepoints": [8819], "characters": "\u2273" },
+ "≩︀": { "codepoints": [8809, 65024], "characters": "\u2269\uFE00" },
+ "≩︀": { "codepoints": [8809, 65024], "characters": "\u2269\uFE00" },
+ "⇔": { "codepoints": [8660], "characters": "\u21D4" },
+ " ": { "codepoints": [8202], "characters": "\u200A" },
+ "½": { "codepoints": [189], "characters": "\u00BD" },
+ "ℋ": { "codepoints": [8459], "characters": "\u210B" },
+ "ъ": { "codepoints": [1098], "characters": "\u044A" },
+ "↔": { "codepoints": [8596], "characters": "\u2194" },
+ "⥈": { "codepoints": [10568], "characters": "\u2948" },
+ "↭": { "codepoints": [8621], "characters": "\u21AD" },
+ "ℏ": { "codepoints": [8463], "characters": "\u210F" },
+ "ĥ": { "codepoints": [293], "characters": "\u0125" },
+ "♥": { "codepoints": [9829], "characters": "\u2665" },
+ "♥": { "codepoints": [9829], "characters": "\u2665" },
+ "…": { "codepoints": [8230], "characters": "\u2026" },
+ "⊹": { "codepoints": [8889], "characters": "\u22B9" },
+ "𝔥": { "codepoints": [120101], "characters": "\uD835\uDD25" },
+ "⤥": { "codepoints": [10533], "characters": "\u2925" },
+ "⤦": { "codepoints": [10534], "characters": "\u2926" },
+ "⇿": { "codepoints": [8703], "characters": "\u21FF" },
+ "∻": { "codepoints": [8763], "characters": "\u223B" },
+ "↩": { "codepoints": [8617], "characters": "\u21A9" },
+ "↪": { "codepoints": [8618], "characters": "\u21AA" },
+ "𝕙": { "codepoints": [120153], "characters": "\uD835\uDD59" },
+ "―": { "codepoints": [8213], "characters": "\u2015" },
+ "𝒽": { "codepoints": [119997], "characters": "\uD835\uDCBD" },
+ "ℏ": { "codepoints": [8463], "characters": "\u210F" },
+ "ħ": { "codepoints": [295], "characters": "\u0127" },
+ "⁃": { "codepoints": [8259], "characters": "\u2043" },
+ "‐": { "codepoints": [8208], "characters": "\u2010" },
+ "í": { "codepoints": [237], "characters": "\u00ED" },
+ "í": { "codepoints": [237], "characters": "\u00ED" },
+ "⁣": { "codepoints": [8291], "characters": "\u2063" },
+ "î": { "codepoints": [238], "characters": "\u00EE" },
+ "î": { "codepoints": [238], "characters": "\u00EE" },
+ "и": { "codepoints": [1080], "characters": "\u0438" },
+ "е": { "codepoints": [1077], "characters": "\u0435" },
+ "¡": { "codepoints": [161], "characters": "\u00A1" },
+ "¡": { "codepoints": [161], "characters": "\u00A1" },
+ "⇔": { "codepoints": [8660], "characters": "\u21D4" },
+ "𝔦": { "codepoints": [120102], "characters": "\uD835\uDD26" },
+ "ì": { "codepoints": [236], "characters": "\u00EC" },
+ "ì": { "codepoints": [236], "characters": "\u00EC" },
+ "ⅈ": { "codepoints": [8520], "characters": "\u2148" },
+ "⨌": { "codepoints": [10764], "characters": "\u2A0C" },
+ "∭": { "codepoints": [8749], "characters": "\u222D" },
+ "⧜": { "codepoints": [10716], "characters": "\u29DC" },
+ "℩": { "codepoints": [8489], "characters": "\u2129" },
+ "ij": { "codepoints": [307], "characters": "\u0133" },
+ "ī": { "codepoints": [299], "characters": "\u012B" },
+ "ℑ": { "codepoints": [8465], "characters": "\u2111" },
+ "ℐ": { "codepoints": [8464], "characters": "\u2110" },
+ "ℑ": { "codepoints": [8465], "characters": "\u2111" },
+ "ı": { "codepoints": [305], "characters": "\u0131" },
+ "⊷": { "codepoints": [8887], "characters": "\u22B7" },
+ "Ƶ": { "codepoints": [437], "characters": "\u01B5" },
+ "∈": { "codepoints": [8712], "characters": "\u2208" },
+ "℅": { "codepoints": [8453], "characters": "\u2105" },
+ "∞": { "codepoints": [8734], "characters": "\u221E" },
+ "⧝": { "codepoints": [10717], "characters": "\u29DD" },
+ "ı": { "codepoints": [305], "characters": "\u0131" },
+ "∫": { "codepoints": [8747], "characters": "\u222B" },
+ "⊺": { "codepoints": [8890], "characters": "\u22BA" },
+ "ℤ": { "codepoints": [8484], "characters": "\u2124" },
+ "⊺": { "codepoints": [8890], "characters": "\u22BA" },
+ "⨗": { "codepoints": [10775], "characters": "\u2A17" },
+ "⨼": { "codepoints": [10812], "characters": "\u2A3C" },
+ "ё": { "codepoints": [1105], "characters": "\u0451" },
+ "į": { "codepoints": [303], "characters": "\u012F" },
+ "𝕚": { "codepoints": [120154], "characters": "\uD835\uDD5A" },
+ "ι": { "codepoints": [953], "characters": "\u03B9" },
+ "⨼": { "codepoints": [10812], "characters": "\u2A3C" },
+ "¿": { "codepoints": [191], "characters": "\u00BF" },
+ "¿": { "codepoints": [191], "characters": "\u00BF" },
+ "𝒾": { "codepoints": [119998], "characters": "\uD835\uDCBE" },
+ "∈": { "codepoints": [8712], "characters": "\u2208" },
+ "⋹": { "codepoints": [8953], "characters": "\u22F9" },
+ "⋵": { "codepoints": [8949], "characters": "\u22F5" },
+ "⋴": { "codepoints": [8948], "characters": "\u22F4" },
+ "⋳": { "codepoints": [8947], "characters": "\u22F3" },
+ "∈": { "codepoints": [8712], "characters": "\u2208" },
+ "⁢": { "codepoints": [8290], "characters": "\u2062" },
+ "ĩ": { "codepoints": [297], "characters": "\u0129" },
+ "і": { "codepoints": [1110], "characters": "\u0456" },
+ "ï": { "codepoints": [239], "characters": "\u00EF" },
+ "ï": { "codepoints": [239], "characters": "\u00EF" },
+ "ĵ": { "codepoints": [309], "characters": "\u0135" },
+ "й": { "codepoints": [1081], "characters": "\u0439" },
+ "𝔧": { "codepoints": [120103], "characters": "\uD835\uDD27" },
+ "ȷ": { "codepoints": [567], "characters": "\u0237" },
+ "𝕛": { "codepoints": [120155], "characters": "\uD835\uDD5B" },
+ "𝒿": { "codepoints": [119999], "characters": "\uD835\uDCBF" },
+ "ј": { "codepoints": [1112], "characters": "\u0458" },
+ "є": { "codepoints": [1108], "characters": "\u0454" },
+ "κ": { "codepoints": [954], "characters": "\u03BA" },
+ "ϰ": { "codepoints": [1008], "characters": "\u03F0" },
+ "ķ": { "codepoints": [311], "characters": "\u0137" },
+ "к": { "codepoints": [1082], "characters": "\u043A" },
+ "𝔨": { "codepoints": [120104], "characters": "\uD835\uDD28" },
+ "ĸ": { "codepoints": [312], "characters": "\u0138" },
+ "х": { "codepoints": [1093], "characters": "\u0445" },
+ "ќ": { "codepoints": [1116], "characters": "\u045C" },
+ "𝕜": { "codepoints": [120156], "characters": "\uD835\uDD5C" },
+ "𝓀": { "codepoints": [120000], "characters": "\uD835\uDCC0" },
+ "⇚": { "codepoints": [8666], "characters": "\u21DA" },
+ "⇐": { "codepoints": [8656], "characters": "\u21D0" },
+ "⤛": { "codepoints": [10523], "characters": "\u291B" },
+ "⤎": { "codepoints": [10510], "characters": "\u290E" },
+ "≦": { "codepoints": [8806], "characters": "\u2266" },
+ "⪋": { "codepoints": [10891], "characters": "\u2A8B" },
+ "⥢": { "codepoints": [10594], "characters": "\u2962" },
+ "ĺ": { "codepoints": [314], "characters": "\u013A" },
+ "⦴": { "codepoints": [10676], "characters": "\u29B4" },
+ "ℒ": { "codepoints": [8466], "characters": "\u2112" },
+ "λ": { "codepoints": [955], "characters": "\u03BB" },
+ "⟨": { "codepoints": [10216], "characters": "\u27E8" },
+ "⦑": { "codepoints": [10641], "characters": "\u2991" },
+ "⟨": { "codepoints": [10216], "characters": "\u27E8" },
+ "⪅": { "codepoints": [10885], "characters": "\u2A85" },
+ "«": { "codepoints": [171], "characters": "\u00AB" },
+ "«": { "codepoints": [171], "characters": "\u00AB" },
+ "←": { "codepoints": [8592], "characters": "\u2190" },
+ "⇤": { "codepoints": [8676], "characters": "\u21E4" },
+ "⤟": { "codepoints": [10527], "characters": "\u291F" },
+ "⤝": { "codepoints": [10525], "characters": "\u291D" },
+ "↩": { "codepoints": [8617], "characters": "\u21A9" },
+ "↫": { "codepoints": [8619], "characters": "\u21AB" },
+ "⤹": { "codepoints": [10553], "characters": "\u2939" },
+ "⥳": { "codepoints": [10611], "characters": "\u2973" },
+ "↢": { "codepoints": [8610], "characters": "\u21A2" },
+ "⪫": { "codepoints": [10923], "characters": "\u2AAB" },
+ "⤙": { "codepoints": [10521], "characters": "\u2919" },
+ "⪭": { "codepoints": [10925], "characters": "\u2AAD" },
+ "⪭︀": { "codepoints": [10925, 65024], "characters": "\u2AAD\uFE00" },
+ "⤌": { "codepoints": [10508], "characters": "\u290C" },
+ "❲": { "codepoints": [10098], "characters": "\u2772" },
+ "{": { "codepoints": [123], "characters": "\u007B" },
+ "[": { "codepoints": [91], "characters": "\u005B" },
+ "⦋": { "codepoints": [10635], "characters": "\u298B" },
+ "⦏": { "codepoints": [10639], "characters": "\u298F" },
+ "⦍": { "codepoints": [10637], "characters": "\u298D" },
+ "ľ": { "codepoints": [318], "characters": "\u013E" },
+ "ļ": { "codepoints": [316], "characters": "\u013C" },
+ "⌈": { "codepoints": [8968], "characters": "\u2308" },
+ "{": { "codepoints": [123], "characters": "\u007B" },
+ "л": { "codepoints": [1083], "characters": "\u043B" },
+ "⤶": { "codepoints": [10550], "characters": "\u2936" },
+ "“": { "codepoints": [8220], "characters": "\u201C" },
+ "„": { "codepoints": [8222], "characters": "\u201E" },
+ "⥧": { "codepoints": [10599], "characters": "\u2967" },
+ "⥋": { "codepoints": [10571], "characters": "\u294B" },
+ "↲": { "codepoints": [8626], "characters": "\u21B2" },
+ "≤": { "codepoints": [8804], "characters": "\u2264" },
+ "←": { "codepoints": [8592], "characters": "\u2190" },
+ "↢": { "codepoints": [8610], "characters": "\u21A2" },
+ "↽": { "codepoints": [8637], "characters": "\u21BD" },
+ "↼": { "codepoints": [8636], "characters": "\u21BC" },
+ "⇇": { "codepoints": [8647], "characters": "\u21C7" },
+ "↔": { "codepoints": [8596], "characters": "\u2194" },
+ "⇆": { "codepoints": [8646], "characters": "\u21C6" },
+ "⇋": { "codepoints": [8651], "characters": "\u21CB" },
+ "↭": { "codepoints": [8621], "characters": "\u21AD" },
+ "⋋": { "codepoints": [8907], "characters": "\u22CB" },
+ "⋚": { "codepoints": [8922], "characters": "\u22DA" },
+ "≤": { "codepoints": [8804], "characters": "\u2264" },
+ "≦": { "codepoints": [8806], "characters": "\u2266" },
+ "⩽": { "codepoints": [10877], "characters": "\u2A7D" },
+ "⩽": { "codepoints": [10877], "characters": "\u2A7D" },
+ "⪨": { "codepoints": [10920], "characters": "\u2AA8" },
+ "⩿": { "codepoints": [10879], "characters": "\u2A7F" },
+ "⪁": { "codepoints": [10881], "characters": "\u2A81" },
+ "⪃": { "codepoints": [10883], "characters": "\u2A83" },
+ "⋚︀": { "codepoints": [8922, 65024], "characters": "\u22DA\uFE00" },
+ "⪓": { "codepoints": [10899], "characters": "\u2A93" },
+ "⪅": { "codepoints": [10885], "characters": "\u2A85" },
+ "⋖": { "codepoints": [8918], "characters": "\u22D6" },
+ "⋚": { "codepoints": [8922], "characters": "\u22DA" },
+ "⪋": { "codepoints": [10891], "characters": "\u2A8B" },
+ "≶": { "codepoints": [8822], "characters": "\u2276" },
+ "≲": { "codepoints": [8818], "characters": "\u2272" },
+ "⥼": { "codepoints": [10620], "characters": "\u297C" },
+ "⌊": { "codepoints": [8970], "characters": "\u230A" },
+ "𝔩": { "codepoints": [120105], "characters": "\uD835\uDD29" },
+ "≶": { "codepoints": [8822], "characters": "\u2276" },
+ "⪑": { "codepoints": [10897], "characters": "\u2A91" },
+ "↽": { "codepoints": [8637], "characters": "\u21BD" },
+ "↼": { "codepoints": [8636], "characters": "\u21BC" },
+ "⥪": { "codepoints": [10602], "characters": "\u296A" },
+ "▄": { "codepoints": [9604], "characters": "\u2584" },
+ "љ": { "codepoints": [1113], "characters": "\u0459" },
+ "≪": { "codepoints": [8810], "characters": "\u226A" },
+ "⇇": { "codepoints": [8647], "characters": "\u21C7" },
+ "⌞": { "codepoints": [8990], "characters": "\u231E" },
+ "⥫": { "codepoints": [10603], "characters": "\u296B" },
+ "◺": { "codepoints": [9722], "characters": "\u25FA" },
+ "ŀ": { "codepoints": [320], "characters": "\u0140" },
+ "⎰": { "codepoints": [9136], "characters": "\u23B0" },
+ "⎰": { "codepoints": [9136], "characters": "\u23B0" },
+ "≨": { "codepoints": [8808], "characters": "\u2268" },
+ "⪉": { "codepoints": [10889], "characters": "\u2A89" },
+ "⪉": { "codepoints": [10889], "characters": "\u2A89" },
+ "⪇": { "codepoints": [10887], "characters": "\u2A87" },
+ "⪇": { "codepoints": [10887], "characters": "\u2A87" },
+ "≨": { "codepoints": [8808], "characters": "\u2268" },
+ "⋦": { "codepoints": [8934], "characters": "\u22E6" },
+ "⟬": { "codepoints": [10220], "characters": "\u27EC" },
+ "⇽": { "codepoints": [8701], "characters": "\u21FD" },
+ "⟦": { "codepoints": [10214], "characters": "\u27E6" },
+ "⟵": { "codepoints": [10229], "characters": "\u27F5" },
+ "⟷": { "codepoints": [10231], "characters": "\u27F7" },
+ "⟼": { "codepoints": [10236], "characters": "\u27FC" },
+ "⟶": { "codepoints": [10230], "characters": "\u27F6" },
+ "↫": { "codepoints": [8619], "characters": "\u21AB" },
+ "↬": { "codepoints": [8620], "characters": "\u21AC" },
+ "⦅": { "codepoints": [10629], "characters": "\u2985" },
+ "𝕝": { "codepoints": [120157], "characters": "\uD835\uDD5D" },
+ "⨭": { "codepoints": [10797], "characters": "\u2A2D" },
+ "⨴": { "codepoints": [10804], "characters": "\u2A34" },
+ "∗": { "codepoints": [8727], "characters": "\u2217" },
+ "_": { "codepoints": [95], "characters": "\u005F" },
+ "◊": { "codepoints": [9674], "characters": "\u25CA" },
+ "◊": { "codepoints": [9674], "characters": "\u25CA" },
+ "⧫": { "codepoints": [10731], "characters": "\u29EB" },
+ "(": { "codepoints": [40], "characters": "\u0028" },
+ "⦓": { "codepoints": [10643], "characters": "\u2993" },
+ "⇆": { "codepoints": [8646], "characters": "\u21C6" },
+ "⌟": { "codepoints": [8991], "characters": "\u231F" },
+ "⇋": { "codepoints": [8651], "characters": "\u21CB" },
+ "⥭": { "codepoints": [10605], "characters": "\u296D" },
+ "‎": { "codepoints": [8206], "characters": "\u200E" },
+ "⊿": { "codepoints": [8895], "characters": "\u22BF" },
+ "‹": { "codepoints": [8249], "characters": "\u2039" },
+ "𝓁": { "codepoints": [120001], "characters": "\uD835\uDCC1" },
+ "↰": { "codepoints": [8624], "characters": "\u21B0" },
+ "≲": { "codepoints": [8818], "characters": "\u2272" },
+ "⪍": { "codepoints": [10893], "characters": "\u2A8D" },
+ "⪏": { "codepoints": [10895], "characters": "\u2A8F" },
+ "[": { "codepoints": [91], "characters": "\u005B" },
+ "‘": { "codepoints": [8216], "characters": "\u2018" },
+ "‚": { "codepoints": [8218], "characters": "\u201A" },
+ "ł": { "codepoints": [322], "characters": "\u0142" },
+ "<": { "codepoints": [60], "characters": "\u003C" },
+ "<": { "codepoints": [60], "characters": "\u003C" },
+ "⪦": { "codepoints": [10918], "characters": "\u2AA6" },
+ "⩹": { "codepoints": [10873], "characters": "\u2A79" },
+ "⋖": { "codepoints": [8918], "characters": "\u22D6" },
+ "⋋": { "codepoints": [8907], "characters": "\u22CB" },
+ "⋉": { "codepoints": [8905], "characters": "\u22C9" },
+ "⥶": { "codepoints": [10614], "characters": "\u2976" },
+ "⩻": { "codepoints": [10875], "characters": "\u2A7B" },
+ "⦖": { "codepoints": [10646], "characters": "\u2996" },
+ "◃": { "codepoints": [9667], "characters": "\u25C3" },
+ "⊴": { "codepoints": [8884], "characters": "\u22B4" },
+ "◂": { "codepoints": [9666], "characters": "\u25C2" },
+ "⥊": { "codepoints": [10570], "characters": "\u294A" },
+ "⥦": { "codepoints": [10598], "characters": "\u2966" },
+ "≨︀": { "codepoints": [8808, 65024], "characters": "\u2268\uFE00" },
+ "≨︀": { "codepoints": [8808, 65024], "characters": "\u2268\uFE00" },
+ "∺": { "codepoints": [8762], "characters": "\u223A" },
+ "¯": { "codepoints": [175], "characters": "\u00AF" },
+ "¯": { "codepoints": [175], "characters": "\u00AF" },
+ "♂": { "codepoints": [9794], "characters": "\u2642" },
+ "✠": { "codepoints": [10016], "characters": "\u2720" },
+ "✠": { "codepoints": [10016], "characters": "\u2720" },
+ "↦": { "codepoints": [8614], "characters": "\u21A6" },
+ "↦": { "codepoints": [8614], "characters": "\u21A6" },
+ "↧": { "codepoints": [8615], "characters": "\u21A7" },
+ "↤": { "codepoints": [8612], "characters": "\u21A4" },
+ "↥": { "codepoints": [8613], "characters": "\u21A5" },
+ "▮": { "codepoints": [9646], "characters": "\u25AE" },
+ "⨩": { "codepoints": [10793], "characters": "\u2A29" },
+ "м": { "codepoints": [1084], "characters": "\u043C" },
+ "—": { "codepoints": [8212], "characters": "\u2014" },
+ "∡": { "codepoints": [8737], "characters": "\u2221" },
+ "𝔪": { "codepoints": [120106], "characters": "\uD835\uDD2A" },
+ "℧": { "codepoints": [8487], "characters": "\u2127" },
+ "µ": { "codepoints": [181], "characters": "\u00B5" },
+ "µ": { "codepoints": [181], "characters": "\u00B5" },
+ "∣": { "codepoints": [8739], "characters": "\u2223" },
+ "*": { "codepoints": [42], "characters": "\u002A" },
+ "⫰": { "codepoints": [10992], "characters": "\u2AF0" },
+ "·": { "codepoints": [183], "characters": "\u00B7" },
+ "·": { "codepoints": [183], "characters": "\u00B7" },
+ "−": { "codepoints": [8722], "characters": "\u2212" },
+ "⊟": { "codepoints": [8863], "characters": "\u229F" },
+ "∸": { "codepoints": [8760], "characters": "\u2238" },
+ "⨪": { "codepoints": [10794], "characters": "\u2A2A" },
+ "⫛": { "codepoints": [10971], "characters": "\u2ADB" },
+ "…": { "codepoints": [8230], "characters": "\u2026" },
+ "∓": { "codepoints": [8723], "characters": "\u2213" },
+ "⊧": { "codepoints": [8871], "characters": "\u22A7" },
+ "𝕞": { "codepoints": [120158], "characters": "\uD835\uDD5E" },
+ "∓": { "codepoints": [8723], "characters": "\u2213" },
+ "𝓂": { "codepoints": [120002], "characters": "\uD835\uDCC2" },
+ "∾": { "codepoints": [8766], "characters": "\u223E" },
+ "μ": { "codepoints": [956], "characters": "\u03BC" },
+ "⊸": { "codepoints": [8888], "characters": "\u22B8" },
+ "⊸": { "codepoints": [8888], "characters": "\u22B8" },
+ "⋙̸": { "codepoints": [8921, 824], "characters": "\u22D9\u0338" },
+ "≫⃒": { "codepoints": [8811, 8402], "characters": "\u226B\u20D2" },
+ "≫̸": { "codepoints": [8811, 824], "characters": "\u226B\u0338" },
+ "⇍": { "codepoints": [8653], "characters": "\u21CD" },
+ "⇎": { "codepoints": [8654], "characters": "\u21CE" },
+ "⋘̸": { "codepoints": [8920, 824], "characters": "\u22D8\u0338" },
+ "≪⃒": { "codepoints": [8810, 8402], "characters": "\u226A\u20D2" },
+ "≪̸": { "codepoints": [8810, 824], "characters": "\u226A\u0338" },
+ "⇏": { "codepoints": [8655], "characters": "\u21CF" },
+ "⊯": { "codepoints": [8879], "characters": "\u22AF" },
+ "⊮": { "codepoints": [8878], "characters": "\u22AE" },
+ "∇": { "codepoints": [8711], "characters": "\u2207" },
+ "ń": { "codepoints": [324], "characters": "\u0144" },
+ "∠⃒": { "codepoints": [8736, 8402], "characters": "\u2220\u20D2" },
+ "≉": { "codepoints": [8777], "characters": "\u2249" },
+ "⩰̸": { "codepoints": [10864, 824], "characters": "\u2A70\u0338" },
+ "≋̸": { "codepoints": [8779, 824], "characters": "\u224B\u0338" },
+ "ʼn": { "codepoints": [329], "characters": "\u0149" },
+ "≉": { "codepoints": [8777], "characters": "\u2249" },
+ "♮": { "codepoints": [9838], "characters": "\u266E" },
+ "♮": { "codepoints": [9838], "characters": "\u266E" },
+ "ℕ": { "codepoints": [8469], "characters": "\u2115" },
+ " ": { "codepoints": [160], "characters": "\u00A0" },
+ " ": { "codepoints": [160], "characters": "\u00A0" },
+ "≎̸": { "codepoints": [8782, 824], "characters": "\u224E\u0338" },
+ "≏̸": { "codepoints": [8783, 824], "characters": "\u224F\u0338" },
+ "⩃": { "codepoints": [10819], "characters": "\u2A43" },
+ "ň": { "codepoints": [328], "characters": "\u0148" },
+ "ņ": { "codepoints": [326], "characters": "\u0146" },
+ "≇": { "codepoints": [8775], "characters": "\u2247" },
+ "⩭̸": { "codepoints": [10861, 824], "characters": "\u2A6D\u0338" },
+ "⩂": { "codepoints": [10818], "characters": "\u2A42" },
+ "н": { "codepoints": [1085], "characters": "\u043D" },
+ "–": { "codepoints": [8211], "characters": "\u2013" },
+ "≠": { "codepoints": [8800], "characters": "\u2260" },
+ "⇗": { "codepoints": [8663], "characters": "\u21D7" },
+ "⤤": { "codepoints": [10532], "characters": "\u2924" },
+ "↗": { "codepoints": [8599], "characters": "\u2197" },
+ "↗": { "codepoints": [8599], "characters": "\u2197" },
+ "≐̸": { "codepoints": [8784, 824], "characters": "\u2250\u0338" },
+ "≢": { "codepoints": [8802], "characters": "\u2262" },
+ "⤨": { "codepoints": [10536], "characters": "\u2928" },
+ "≂̸": { "codepoints": [8770, 824], "characters": "\u2242\u0338" },
+ "∄": { "codepoints": [8708], "characters": "\u2204" },
+ "∄": { "codepoints": [8708], "characters": "\u2204" },
+ "𝔫": { "codepoints": [120107], "characters": "\uD835\uDD2B" },
+ "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" },
+ "≱": { "codepoints": [8817], "characters": "\u2271" },
+ "≱": { "codepoints": [8817], "characters": "\u2271" },
+ "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" },
+ "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" },
+ "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" },
+ "≵": { "codepoints": [8821], "characters": "\u2275" },
+ "≯": { "codepoints": [8815], "characters": "\u226F" },
+ "≯": { "codepoints": [8815], "characters": "\u226F" },
+ "⇎": { "codepoints": [8654], "characters": "\u21CE" },
+ "↮": { "codepoints": [8622], "characters": "\u21AE" },
+ "⫲": { "codepoints": [10994], "characters": "\u2AF2" },
+ "∋": { "codepoints": [8715], "characters": "\u220B" },
+ "⋼": { "codepoints": [8956], "characters": "\u22FC" },
+ "⋺": { "codepoints": [8954], "characters": "\u22FA" },
+ "∋": { "codepoints": [8715], "characters": "\u220B" },
+ "њ": { "codepoints": [1114], "characters": "\u045A" },
+ "⇍": { "codepoints": [8653], "characters": "\u21CD" },
+ "≦̸": { "codepoints": [8806, 824], "characters": "\u2266\u0338" },
+ "↚": { "codepoints": [8602], "characters": "\u219A" },
+ "‥": { "codepoints": [8229], "characters": "\u2025" },
+ "≰": { "codepoints": [8816], "characters": "\u2270" },
+ "↚": { "codepoints": [8602], "characters": "\u219A" },
+ "↮": { "codepoints": [8622], "characters": "\u21AE" },
+ "≰": { "codepoints": [8816], "characters": "\u2270" },
+ "≦̸": { "codepoints": [8806, 824], "characters": "\u2266\u0338" },
+ "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" },
+ "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" },
+ "≮": { "codepoints": [8814], "characters": "\u226E" },
+ "≴": { "codepoints": [8820], "characters": "\u2274" },
+ "≮": { "codepoints": [8814], "characters": "\u226E" },
+ "⋪": { "codepoints": [8938], "characters": "\u22EA" },
+ "⋬": { "codepoints": [8940], "characters": "\u22EC" },
+ "∤": { "codepoints": [8740], "characters": "\u2224" },
+ "𝕟": { "codepoints": [120159], "characters": "\uD835\uDD5F" },
+ "¬": { "codepoints": [172], "characters": "\u00AC" },
+ "¬": { "codepoints": [172], "characters": "\u00AC" },
+ "∉": { "codepoints": [8713], "characters": "\u2209" },
+ "⋹̸": { "codepoints": [8953, 824], "characters": "\u22F9\u0338" },
+ "⋵̸": { "codepoints": [8949, 824], "characters": "\u22F5\u0338" },
+ "∉": { "codepoints": [8713], "characters": "\u2209" },
+ "⋷": { "codepoints": [8951], "characters": "\u22F7" },
+ "⋶": { "codepoints": [8950], "characters": "\u22F6" },
+ "∌": { "codepoints": [8716], "characters": "\u220C" },
+ "∌": { "codepoints": [8716], "characters": "\u220C" },
+ "⋾": { "codepoints": [8958], "characters": "\u22FE" },
+ "⋽": { "codepoints": [8957], "characters": "\u22FD" },
+ "∦": { "codepoints": [8742], "characters": "\u2226" },
+ "∦": { "codepoints": [8742], "characters": "\u2226" },
+ "⫽⃥": { "codepoints": [11005, 8421], "characters": "\u2AFD\u20E5" },
+ "∂̸": { "codepoints": [8706, 824], "characters": "\u2202\u0338" },
+ "⨔": { "codepoints": [10772], "characters": "\u2A14" },
+ "⊀": { "codepoints": [8832], "characters": "\u2280" },
+ "⋠": { "codepoints": [8928], "characters": "\u22E0" },
+ "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" },
+ "⊀": { "codepoints": [8832], "characters": "\u2280" },
+ "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" },
+ "⇏": { "codepoints": [8655], "characters": "\u21CF" },
+ "↛": { "codepoints": [8603], "characters": "\u219B" },
+ "⤳̸": { "codepoints": [10547, 824], "characters": "\u2933\u0338" },
+ "↝̸": { "codepoints": [8605, 824], "characters": "\u219D\u0338" },
+ "↛": { "codepoints": [8603], "characters": "\u219B" },
+ "⋫": { "codepoints": [8939], "characters": "\u22EB" },
+ "⋭": { "codepoints": [8941], "characters": "\u22ED" },
+ "⊁": { "codepoints": [8833], "characters": "\u2281" },
+ "⋡": { "codepoints": [8929], "characters": "\u22E1" },
+ "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" },
+ "𝓃": { "codepoints": [120003], "characters": "\uD835\uDCC3" },
+ "∤": { "codepoints": [8740], "characters": "\u2224" },
+ "∦": { "codepoints": [8742], "characters": "\u2226" },
+ "≁": { "codepoints": [8769], "characters": "\u2241" },
+ "≄": { "codepoints": [8772], "characters": "\u2244" },
+ "≄": { "codepoints": [8772], "characters": "\u2244" },
+ "∤": { "codepoints": [8740], "characters": "\u2224" },
+ "∦": { "codepoints": [8742], "characters": "\u2226" },
+ "⋢": { "codepoints": [8930], "characters": "\u22E2" },
+ "⋣": { "codepoints": [8931], "characters": "\u22E3" },
+ "⊄": { "codepoints": [8836], "characters": "\u2284" },
+ "⫅̸": { "codepoints": [10949, 824], "characters": "\u2AC5\u0338" },
+ "⊈": { "codepoints": [8840], "characters": "\u2288" },
+ "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" },
+ "⊈": { "codepoints": [8840], "characters": "\u2288" },
+ "⫅̸": { "codepoints": [10949, 824], "characters": "\u2AC5\u0338" },
+ "⊁": { "codepoints": [8833], "characters": "\u2281" },
+ "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" },
+ "⊅": { "codepoints": [8837], "characters": "\u2285" },
+ "⫆̸": { "codepoints": [10950, 824], "characters": "\u2AC6\u0338" },
+ "⊉": { "codepoints": [8841], "characters": "\u2289" },
+ "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" },
+ "⊉": { "codepoints": [8841], "characters": "\u2289" },
+ "⫆̸": { "codepoints": [10950, 824], "characters": "\u2AC6\u0338" },
+ "≹": { "codepoints": [8825], "characters": "\u2279" },
+ "ñ": { "codepoints": [241], "characters": "\u00F1" },
+ "ñ": { "codepoints": [241], "characters": "\u00F1" },
+ "≸": { "codepoints": [8824], "characters": "\u2278" },
+ "⋪": { "codepoints": [8938], "characters": "\u22EA" },
+ "⋬": { "codepoints": [8940], "characters": "\u22EC" },
+ "⋫": { "codepoints": [8939], "characters": "\u22EB" },
+ "⋭": { "codepoints": [8941], "characters": "\u22ED" },
+ "ν": { "codepoints": [957], "characters": "\u03BD" },
+ "#": { "codepoints": [35], "characters": "\u0023" },
+ "№": { "codepoints": [8470], "characters": "\u2116" },
+ " ": { "codepoints": [8199], "characters": "\u2007" },
+ "⊭": { "codepoints": [8877], "characters": "\u22AD" },
+ "⤄": { "codepoints": [10500], "characters": "\u2904" },
+ "≍⃒": { "codepoints": [8781, 8402], "characters": "\u224D\u20D2" },
+ "⊬": { "codepoints": [8876], "characters": "\u22AC" },
+ "≥⃒": { "codepoints": [8805, 8402], "characters": "\u2265\u20D2" },
+ ">⃒": { "codepoints": [62, 8402], "characters": "\u003E\u20D2" },
+ "⧞": { "codepoints": [10718], "characters": "\u29DE" },
+ "⤂": { "codepoints": [10498], "characters": "\u2902" },
+ "≤⃒": { "codepoints": [8804, 8402], "characters": "\u2264\u20D2" },
+ "<⃒": { "codepoints": [60, 8402], "characters": "\u003C\u20D2" },
+ "⊴⃒": { "codepoints": [8884, 8402], "characters": "\u22B4\u20D2" },
+ "⤃": { "codepoints": [10499], "characters": "\u2903" },
+ "⊵⃒": { "codepoints": [8885, 8402], "characters": "\u22B5\u20D2" },
+ "∼⃒": { "codepoints": [8764, 8402], "characters": "\u223C\u20D2" },
+ "⇖": { "codepoints": [8662], "characters": "\u21D6" },
+ "⤣": { "codepoints": [10531], "characters": "\u2923" },
+ "↖": { "codepoints": [8598], "characters": "\u2196" },
+ "↖": { "codepoints": [8598], "characters": "\u2196" },
+ "⤧": { "codepoints": [10535], "characters": "\u2927" },
+ "Ⓢ": { "codepoints": [9416], "characters": "\u24C8" },
+ "ó": { "codepoints": [243], "characters": "\u00F3" },
+ "ó": { "codepoints": [243], "characters": "\u00F3" },
+ "⊛": { "codepoints": [8859], "characters": "\u229B" },
+ "⊚": { "codepoints": [8858], "characters": "\u229A" },
+ "ô": { "codepoints": [244], "characters": "\u00F4" },
+ "ô": { "codepoints": [244], "characters": "\u00F4" },
+ "о": { "codepoints": [1086], "characters": "\u043E" },
+ "⊝": { "codepoints": [8861], "characters": "\u229D" },
+ "ő": { "codepoints": [337], "characters": "\u0151" },
+ "⨸": { "codepoints": [10808], "characters": "\u2A38" },
+ "⊙": { "codepoints": [8857], "characters": "\u2299" },
+ "⦼": { "codepoints": [10684], "characters": "\u29BC" },
+ "œ": { "codepoints": [339], "characters": "\u0153" },
+ "⦿": { "codepoints": [10687], "characters": "\u29BF" },
+ "𝔬": { "codepoints": [120108], "characters": "\uD835\uDD2C" },
+ "˛": { "codepoints": [731], "characters": "\u02DB" },
+ "ò": { "codepoints": [242], "characters": "\u00F2" },
+ "ò": { "codepoints": [242], "characters": "\u00F2" },
+ "⧁": { "codepoints": [10689], "characters": "\u29C1" },
+ "⦵": { "codepoints": [10677], "characters": "\u29B5" },
+ "Ω": { "codepoints": [937], "characters": "\u03A9" },
+ "∮": { "codepoints": [8750], "characters": "\u222E" },
+ "↺": { "codepoints": [8634], "characters": "\u21BA" },
+ "⦾": { "codepoints": [10686], "characters": "\u29BE" },
+ "⦻": { "codepoints": [10683], "characters": "\u29BB" },
+ "‾": { "codepoints": [8254], "characters": "\u203E" },
+ "⧀": { "codepoints": [10688], "characters": "\u29C0" },
+ "ō": { "codepoints": [333], "characters": "\u014D" },
+ "ω": { "codepoints": [969], "characters": "\u03C9" },
+ "ο": { "codepoints": [959], "characters": "\u03BF" },
+ "⦶": { "codepoints": [10678], "characters": "\u29B6" },
+ "⊖": { "codepoints": [8854], "characters": "\u2296" },
+ "𝕠": { "codepoints": [120160], "characters": "\uD835\uDD60" },
+ "⦷": { "codepoints": [10679], "characters": "\u29B7" },
+ "⦹": { "codepoints": [10681], "characters": "\u29B9" },
+ "⊕": { "codepoints": [8853], "characters": "\u2295" },
+ "∨": { "codepoints": [8744], "characters": "\u2228" },
+ "↻": { "codepoints": [8635], "characters": "\u21BB" },
+ "⩝": { "codepoints": [10845], "characters": "\u2A5D" },
+ "ℴ": { "codepoints": [8500], "characters": "\u2134" },
+ "ℴ": { "codepoints": [8500], "characters": "\u2134" },
+ "ª": { "codepoints": [170], "characters": "\u00AA" },
+ "ª": { "codepoints": [170], "characters": "\u00AA" },
+ "º": { "codepoints": [186], "characters": "\u00BA" },
+ "º": { "codepoints": [186], "characters": "\u00BA" },
+ "⊶": { "codepoints": [8886], "characters": "\u22B6" },
+ "⩖": { "codepoints": [10838], "characters": "\u2A56" },
+ "⩗": { "codepoints": [10839], "characters": "\u2A57" },
+ "⩛": { "codepoints": [10843], "characters": "\u2A5B" },
+ "ℴ": { "codepoints": [8500], "characters": "\u2134" },
+ "ø": { "codepoints": [248], "characters": "\u00F8" },
+ "ø": { "codepoints": [248], "characters": "\u00F8" },
+ "⊘": { "codepoints": [8856], "characters": "\u2298" },
+ "õ": { "codepoints": [245], "characters": "\u00F5" },
+ "õ": { "codepoints": [245], "characters": "\u00F5" },
+ "⊗": { "codepoints": [8855], "characters": "\u2297" },
+ "⨶": { "codepoints": [10806], "characters": "\u2A36" },
+ "ö": { "codepoints": [246], "characters": "\u00F6" },
+ "ö": { "codepoints": [246], "characters": "\u00F6" },
+ "⌽": { "codepoints": [9021], "characters": "\u233D" },
+ "∥": { "codepoints": [8741], "characters": "\u2225" },
+ "¶": { "codepoints": [182], "characters": "\u00B6" },
+ "¶": { "codepoints": [182], "characters": "\u00B6" },
+ "∥": { "codepoints": [8741], "characters": "\u2225" },
+ "⫳": { "codepoints": [10995], "characters": "\u2AF3" },
+ "⫽": { "codepoints": [11005], "characters": "\u2AFD" },
+ "∂": { "codepoints": [8706], "characters": "\u2202" },
+ "п": { "codepoints": [1087], "characters": "\u043F" },
+ "%": { "codepoints": [37], "characters": "\u0025" },
+ ".": { "codepoints": [46], "characters": "\u002E" },
+ "‰": { "codepoints": [8240], "characters": "\u2030" },
+ "⊥": { "codepoints": [8869], "characters": "\u22A5" },
+ "‱": { "codepoints": [8241], "characters": "\u2031" },
+ "𝔭": { "codepoints": [120109], "characters": "\uD835\uDD2D" },
+ "φ": { "codepoints": [966], "characters": "\u03C6" },
+ "ϕ": { "codepoints": [981], "characters": "\u03D5" },
+ "ℳ": { "codepoints": [8499], "characters": "\u2133" },
+ "☎": { "codepoints": [9742], "characters": "\u260E" },
+ "π": { "codepoints": [960], "characters": "\u03C0" },
+ "⋔": { "codepoints": [8916], "characters": "\u22D4" },
+ "ϖ": { "codepoints": [982], "characters": "\u03D6" },
+ "ℏ": { "codepoints": [8463], "characters": "\u210F" },
+ "ℎ": { "codepoints": [8462], "characters": "\u210E" },
+ "ℏ": { "codepoints": [8463], "characters": "\u210F" },
+ "+": { "codepoints": [43], "characters": "\u002B" },
+ "⨣": { "codepoints": [10787], "characters": "\u2A23" },
+ "⊞": { "codepoints": [8862], "characters": "\u229E" },
+ "⨢": { "codepoints": [10786], "characters": "\u2A22" },
+ "∔": { "codepoints": [8724], "characters": "\u2214" },
+ "⨥": { "codepoints": [10789], "characters": "\u2A25" },
+ "⩲": { "codepoints": [10866], "characters": "\u2A72" },
+ "±": { "codepoints": [177], "characters": "\u00B1" },
+ "±": { "codepoints": [177], "characters": "\u00B1" },
+ "⨦": { "codepoints": [10790], "characters": "\u2A26" },
+ "⨧": { "codepoints": [10791], "characters": "\u2A27" },
+ "±": { "codepoints": [177], "characters": "\u00B1" },
+ "⨕": { "codepoints": [10773], "characters": "\u2A15" },
+ "𝕡": { "codepoints": [120161], "characters": "\uD835\uDD61" },
+ "£": { "codepoints": [163], "characters": "\u00A3" },
+ "£": { "codepoints": [163], "characters": "\u00A3" },
+ "≺": { "codepoints": [8826], "characters": "\u227A" },
+ "⪳": { "codepoints": [10931], "characters": "\u2AB3" },
+ "⪷": { "codepoints": [10935], "characters": "\u2AB7" },
+ "≼": { "codepoints": [8828], "characters": "\u227C" },
+ "⪯": { "codepoints": [10927], "characters": "\u2AAF" },
+ "≺": { "codepoints": [8826], "characters": "\u227A" },
+ "⪷": { "codepoints": [10935], "characters": "\u2AB7" },
+ "≼": { "codepoints": [8828], "characters": "\u227C" },
+ "⪯": { "codepoints": [10927], "characters": "\u2AAF" },
+ "⪹": { "codepoints": [10937], "characters": "\u2AB9" },
+ "⪵": { "codepoints": [10933], "characters": "\u2AB5" },
+ "⋨": { "codepoints": [8936], "characters": "\u22E8" },
+ "≾": { "codepoints": [8830], "characters": "\u227E" },
+ "′": { "codepoints": [8242], "characters": "\u2032" },
+ "ℙ": { "codepoints": [8473], "characters": "\u2119" },
+ "⪵": { "codepoints": [10933], "characters": "\u2AB5" },
+ "⪹": { "codepoints": [10937], "characters": "\u2AB9" },
+ "⋨": { "codepoints": [8936], "characters": "\u22E8" },
+ "∏": { "codepoints": [8719], "characters": "\u220F" },
+ "⌮": { "codepoints": [9006], "characters": "\u232E" },
+ "⌒": { "codepoints": [8978], "characters": "\u2312" },
+ "⌓": { "codepoints": [8979], "characters": "\u2313" },
+ "∝": { "codepoints": [8733], "characters": "\u221D" },
+ "∝": { "codepoints": [8733], "characters": "\u221D" },
+ "≾": { "codepoints": [8830], "characters": "\u227E" },
+ "⊰": { "codepoints": [8880], "characters": "\u22B0" },
+ "𝓅": { "codepoints": [120005], "characters": "\uD835\uDCC5" },
+ "ψ": { "codepoints": [968], "characters": "\u03C8" },
+ " ": { "codepoints": [8200], "characters": "\u2008" },
+ "𝔮": { "codepoints": [120110], "characters": "\uD835\uDD2E" },
+ "⨌": { "codepoints": [10764], "characters": "\u2A0C" },
+ "𝕢": { "codepoints": [120162], "characters": "\uD835\uDD62" },
+ "⁗": { "codepoints": [8279], "characters": "\u2057" },
+ "𝓆": { "codepoints": [120006], "characters": "\uD835\uDCC6" },
+ "ℍ": { "codepoints": [8461], "characters": "\u210D" },
+ "⨖": { "codepoints": [10774], "characters": "\u2A16" },
+ "?": { "codepoints": [63], "characters": "\u003F" },
+ "≟": { "codepoints": [8799], "characters": "\u225F" },
+ """: { "codepoints": [34], "characters": "\u0022" },
+ """: { "codepoints": [34], "characters": "\u0022" },
+ "⇛": { "codepoints": [8667], "characters": "\u21DB" },
+ "⇒": { "codepoints": [8658], "characters": "\u21D2" },
+ "⤜": { "codepoints": [10524], "characters": "\u291C" },
+ "⤏": { "codepoints": [10511], "characters": "\u290F" },
+ "⥤": { "codepoints": [10596], "characters": "\u2964" },
+ "∽̱": { "codepoints": [8765, 817], "characters": "\u223D\u0331" },
+ "ŕ": { "codepoints": [341], "characters": "\u0155" },
+ "√": { "codepoints": [8730], "characters": "\u221A" },
+ "⦳": { "codepoints": [10675], "characters": "\u29B3" },
+ "⟩": { "codepoints": [10217], "characters": "\u27E9" },
+ "⦒": { "codepoints": [10642], "characters": "\u2992" },
+ "⦥": { "codepoints": [10661], "characters": "\u29A5" },
+ "⟩": { "codepoints": [10217], "characters": "\u27E9" },
+ "»": { "codepoints": [187], "characters": "\u00BB" },
+ "»": { "codepoints": [187], "characters": "\u00BB" },
+ "→": { "codepoints": [8594], "characters": "\u2192" },
+ "⥵": { "codepoints": [10613], "characters": "\u2975" },
+ "⇥": { "codepoints": [8677], "characters": "\u21E5" },
+ "⤠": { "codepoints": [10528], "characters": "\u2920" },
+ "⤳": { "codepoints": [10547], "characters": "\u2933" },
+ "⤞": { "codepoints": [10526], "characters": "\u291E" },
+ "↪": { "codepoints": [8618], "characters": "\u21AA" },
+ "↬": { "codepoints": [8620], "characters": "\u21AC" },
+ "⥅": { "codepoints": [10565], "characters": "\u2945" },
+ "⥴": { "codepoints": [10612], "characters": "\u2974" },
+ "↣": { "codepoints": [8611], "characters": "\u21A3" },
+ "↝": { "codepoints": [8605], "characters": "\u219D" },
+ "⤚": { "codepoints": [10522], "characters": "\u291A" },
+ "∶": { "codepoints": [8758], "characters": "\u2236" },
+ "ℚ": { "codepoints": [8474], "characters": "\u211A" },
+ "⤍": { "codepoints": [10509], "characters": "\u290D" },
+ "❳": { "codepoints": [10099], "characters": "\u2773" },
+ "}": { "codepoints": [125], "characters": "\u007D" },
+ "]": { "codepoints": [93], "characters": "\u005D" },
+ "⦌": { "codepoints": [10636], "characters": "\u298C" },
+ "⦎": { "codepoints": [10638], "characters": "\u298E" },
+ "⦐": { "codepoints": [10640], "characters": "\u2990" },
+ "ř": { "codepoints": [345], "characters": "\u0159" },
+ "ŗ": { "codepoints": [343], "characters": "\u0157" },
+ "⌉": { "codepoints": [8969], "characters": "\u2309" },
+ "}": { "codepoints": [125], "characters": "\u007D" },
+ "р": { "codepoints": [1088], "characters": "\u0440" },
+ "⤷": { "codepoints": [10551], "characters": "\u2937" },
+ "⥩": { "codepoints": [10601], "characters": "\u2969" },
+ "”": { "codepoints": [8221], "characters": "\u201D" },
+ "”": { "codepoints": [8221], "characters": "\u201D" },
+ "↳": { "codepoints": [8627], "characters": "\u21B3" },
+ "ℜ": { "codepoints": [8476], "characters": "\u211C" },
+ "ℛ": { "codepoints": [8475], "characters": "\u211B" },
+ "ℜ": { "codepoints": [8476], "characters": "\u211C" },
+ "ℝ": { "codepoints": [8477], "characters": "\u211D" },
+ "▭": { "codepoints": [9645], "characters": "\u25AD" },
+ "®": { "codepoints": [174], "characters": "\u00AE" },
+ "®": { "codepoints": [174], "characters": "\u00AE" },
+ "⥽": { "codepoints": [10621], "characters": "\u297D" },
+ "⌋": { "codepoints": [8971], "characters": "\u230B" },
+ "𝔯": { "codepoints": [120111], "characters": "\uD835\uDD2F" },
+ "⇁": { "codepoints": [8641], "characters": "\u21C1" },
+ "⇀": { "codepoints": [8640], "characters": "\u21C0" },
+ "⥬": { "codepoints": [10604], "characters": "\u296C" },
+ "ρ": { "codepoints": [961], "characters": "\u03C1" },
+ "ϱ": { "codepoints": [1009], "characters": "\u03F1" },
+ "→": { "codepoints": [8594], "characters": "\u2192" },
+ "↣": { "codepoints": [8611], "characters": "\u21A3" },
+ "⇁": { "codepoints": [8641], "characters": "\u21C1" },
+ "⇀": { "codepoints": [8640], "characters": "\u21C0" },
+ "⇄": { "codepoints": [8644], "characters": "\u21C4" },
+ "⇌": { "codepoints": [8652], "characters": "\u21CC" },
+ "⇉": { "codepoints": [8649], "characters": "\u21C9" },
+ "↝": { "codepoints": [8605], "characters": "\u219D" },
+ "⋌": { "codepoints": [8908], "characters": "\u22CC" },
+ "˚": { "codepoints": [730], "characters": "\u02DA" },
+ "≓": { "codepoints": [8787], "characters": "\u2253" },
+ "⇄": { "codepoints": [8644], "characters": "\u21C4" },
+ "⇌": { "codepoints": [8652], "characters": "\u21CC" },
+ "‏": { "codepoints": [8207], "characters": "\u200F" },
+ "⎱": { "codepoints": [9137], "characters": "\u23B1" },
+ "⎱": { "codepoints": [9137], "characters": "\u23B1" },
+ "⫮": { "codepoints": [10990], "characters": "\u2AEE" },
+ "⟭": { "codepoints": [10221], "characters": "\u27ED" },
+ "⇾": { "codepoints": [8702], "characters": "\u21FE" },
+ "⟧": { "codepoints": [10215], "characters": "\u27E7" },
+ "⦆": { "codepoints": [10630], "characters": "\u2986" },
+ "𝕣": { "codepoints": [120163], "characters": "\uD835\uDD63" },
+ "⨮": { "codepoints": [10798], "characters": "\u2A2E" },
+ "⨵": { "codepoints": [10805], "characters": "\u2A35" },
+ ")": { "codepoints": [41], "characters": "\u0029" },
+ "⦔": { "codepoints": [10644], "characters": "\u2994" },
+ "⨒": { "codepoints": [10770], "characters": "\u2A12" },
+ "⇉": { "codepoints": [8649], "characters": "\u21C9" },
+ "›": { "codepoints": [8250], "characters": "\u203A" },
+ "𝓇": { "codepoints": [120007], "characters": "\uD835\uDCC7" },
+ "↱": { "codepoints": [8625], "characters": "\u21B1" },
+ "]": { "codepoints": [93], "characters": "\u005D" },
+ "’": { "codepoints": [8217], "characters": "\u2019" },
+ "’": { "codepoints": [8217], "characters": "\u2019" },
+ "⋌": { "codepoints": [8908], "characters": "\u22CC" },
+ "⋊": { "codepoints": [8906], "characters": "\u22CA" },
+ "▹": { "codepoints": [9657], "characters": "\u25B9" },
+ "⊵": { "codepoints": [8885], "characters": "\u22B5" },
+ "▸": { "codepoints": [9656], "characters": "\u25B8" },
+ "⧎": { "codepoints": [10702], "characters": "\u29CE" },
+ "⥨": { "codepoints": [10600], "characters": "\u2968" },
+ "℞": { "codepoints": [8478], "characters": "\u211E" },
+ "ś": { "codepoints": [347], "characters": "\u015B" },
+ "‚": { "codepoints": [8218], "characters": "\u201A" },
+ "≻": { "codepoints": [8827], "characters": "\u227B" },
+ "⪴": { "codepoints": [10932], "characters": "\u2AB4" },
+ "⪸": { "codepoints": [10936], "characters": "\u2AB8" },
+ "š": { "codepoints": [353], "characters": "\u0161" },
+ "≽": { "codepoints": [8829], "characters": "\u227D" },
+ "⪰": { "codepoints": [10928], "characters": "\u2AB0" },
+ "ş": { "codepoints": [351], "characters": "\u015F" },
+ "ŝ": { "codepoints": [349], "characters": "\u015D" },
+ "⪶": { "codepoints": [10934], "characters": "\u2AB6" },
+ "⪺": { "codepoints": [10938], "characters": "\u2ABA" },
+ "⋩": { "codepoints": [8937], "characters": "\u22E9" },
+ "⨓": { "codepoints": [10771], "characters": "\u2A13" },
+ "≿": { "codepoints": [8831], "characters": "\u227F" },
+ "с": { "codepoints": [1089], "characters": "\u0441" },
+ "⋅": { "codepoints": [8901], "characters": "\u22C5" },
+ "⊡": { "codepoints": [8865], "characters": "\u22A1" },
+ "⩦": { "codepoints": [10854], "characters": "\u2A66" },
+ "⇘": { "codepoints": [8664], "characters": "\u21D8" },
+ "⤥": { "codepoints": [10533], "characters": "\u2925" },
+ "↘": { "codepoints": [8600], "characters": "\u2198" },
+ "↘": { "codepoints": [8600], "characters": "\u2198" },
+ "§": { "codepoints": [167], "characters": "\u00A7" },
+ "§": { "codepoints": [167], "characters": "\u00A7" },
+ ";": { "codepoints": [59], "characters": "\u003B" },
+ "⤩": { "codepoints": [10537], "characters": "\u2929" },
+ "∖": { "codepoints": [8726], "characters": "\u2216" },
+ "∖": { "codepoints": [8726], "characters": "\u2216" },
+ "✶": { "codepoints": [10038], "characters": "\u2736" },
+ "𝔰": { "codepoints": [120112], "characters": "\uD835\uDD30" },
+ "⌢": { "codepoints": [8994], "characters": "\u2322" },
+ "♯": { "codepoints": [9839], "characters": "\u266F" },
+ "щ": { "codepoints": [1097], "characters": "\u0449" },
+ "ш": { "codepoints": [1096], "characters": "\u0448" },
+ "∣": { "codepoints": [8739], "characters": "\u2223" },
+ "∥": { "codepoints": [8741], "characters": "\u2225" },
+ "­": { "codepoints": [173], "characters": "\u00AD" },
+ "­": { "codepoints": [173], "characters": "\u00AD" },
+ "σ": { "codepoints": [963], "characters": "\u03C3" },
+ "ς": { "codepoints": [962], "characters": "\u03C2" },
+ "ς": { "codepoints": [962], "characters": "\u03C2" },
+ "∼": { "codepoints": [8764], "characters": "\u223C" },
+ "⩪": { "codepoints": [10858], "characters": "\u2A6A" },
+ "≃": { "codepoints": [8771], "characters": "\u2243" },
+ "≃": { "codepoints": [8771], "characters": "\u2243" },
+ "⪞": { "codepoints": [10910], "characters": "\u2A9E" },
+ "⪠": { "codepoints": [10912], "characters": "\u2AA0" },
+ "⪝": { "codepoints": [10909], "characters": "\u2A9D" },
+ "⪟": { "codepoints": [10911], "characters": "\u2A9F" },
+ "≆": { "codepoints": [8774], "characters": "\u2246" },
+ "⨤": { "codepoints": [10788], "characters": "\u2A24" },
+ "⥲": { "codepoints": [10610], "characters": "\u2972" },
+ "←": { "codepoints": [8592], "characters": "\u2190" },
+ "∖": { "codepoints": [8726], "characters": "\u2216" },
+ "⨳": { "codepoints": [10803], "characters": "\u2A33" },
+ "⧤": { "codepoints": [10724], "characters": "\u29E4" },
+ "∣": { "codepoints": [8739], "characters": "\u2223" },
+ "⌣": { "codepoints": [8995], "characters": "\u2323" },
+ "⪪": { "codepoints": [10922], "characters": "\u2AAA" },
+ "⪬": { "codepoints": [10924], "characters": "\u2AAC" },
+ "⪬︀": { "codepoints": [10924, 65024], "characters": "\u2AAC\uFE00" },
+ "ь": { "codepoints": [1100], "characters": "\u044C" },
+ "/": { "codepoints": [47], "characters": "\u002F" },
+ "⧄": { "codepoints": [10692], "characters": "\u29C4" },
+ "⌿": { "codepoints": [9023], "characters": "\u233F" },
+ "𝕤": { "codepoints": [120164], "characters": "\uD835\uDD64" },
+ "♠": { "codepoints": [9824], "characters": "\u2660" },
+ "♠": { "codepoints": [9824], "characters": "\u2660" },
+ "∥": { "codepoints": [8741], "characters": "\u2225" },
+ "⊓": { "codepoints": [8851], "characters": "\u2293" },
+ "⊓︀": { "codepoints": [8851, 65024], "characters": "\u2293\uFE00" },
+ "⊔": { "codepoints": [8852], "characters": "\u2294" },
+ "⊔︀": { "codepoints": [8852, 65024], "characters": "\u2294\uFE00" },
+ "⊏": { "codepoints": [8847], "characters": "\u228F" },
+ "⊑": { "codepoints": [8849], "characters": "\u2291" },
+ "⊏": { "codepoints": [8847], "characters": "\u228F" },
+ "⊑": { "codepoints": [8849], "characters": "\u2291" },
+ "⊐": { "codepoints": [8848], "characters": "\u2290" },
+ "⊒": { "codepoints": [8850], "characters": "\u2292" },
+ "⊐": { "codepoints": [8848], "characters": "\u2290" },
+ "⊒": { "codepoints": [8850], "characters": "\u2292" },
+ "□": { "codepoints": [9633], "characters": "\u25A1" },
+ "□": { "codepoints": [9633], "characters": "\u25A1" },
+ "▪": { "codepoints": [9642], "characters": "\u25AA" },
+ "▪": { "codepoints": [9642], "characters": "\u25AA" },
+ "→": { "codepoints": [8594], "characters": "\u2192" },
+ "𝓈": { "codepoints": [120008], "characters": "\uD835\uDCC8" },
+ "∖": { "codepoints": [8726], "characters": "\u2216" },
+ "⌣": { "codepoints": [8995], "characters": "\u2323" },
+ "⋆": { "codepoints": [8902], "characters": "\u22C6" },
+ "☆": { "codepoints": [9734], "characters": "\u2606" },
+ "★": { "codepoints": [9733], "characters": "\u2605" },
+ "ϵ": { "codepoints": [1013], "characters": "\u03F5" },
+ "ϕ": { "codepoints": [981], "characters": "\u03D5" },
+ "¯": { "codepoints": [175], "characters": "\u00AF" },
+ "⊂": { "codepoints": [8834], "characters": "\u2282" },
+ "⫅": { "codepoints": [10949], "characters": "\u2AC5" },
+ "⪽": { "codepoints": [10941], "characters": "\u2ABD" },
+ "⊆": { "codepoints": [8838], "characters": "\u2286" },
+ "⫃": { "codepoints": [10947], "characters": "\u2AC3" },
+ "⫁": { "codepoints": [10945], "characters": "\u2AC1" },
+ "⫋": { "codepoints": [10955], "characters": "\u2ACB" },
+ "⊊": { "codepoints": [8842], "characters": "\u228A" },
+ "⪿": { "codepoints": [10943], "characters": "\u2ABF" },
+ "⥹": { "codepoints": [10617], "characters": "\u2979" },
+ "⊂": { "codepoints": [8834], "characters": "\u2282" },
+ "⊆": { "codepoints": [8838], "characters": "\u2286" },
+ "⫅": { "codepoints": [10949], "characters": "\u2AC5" },
+ "⊊": { "codepoints": [8842], "characters": "\u228A" },
+ "⫋": { "codepoints": [10955], "characters": "\u2ACB" },
+ "⫇": { "codepoints": [10951], "characters": "\u2AC7" },
+ "⫕": { "codepoints": [10965], "characters": "\u2AD5" },
+ "⫓": { "codepoints": [10963], "characters": "\u2AD3" },
+ "≻": { "codepoints": [8827], "characters": "\u227B" },
+ "⪸": { "codepoints": [10936], "characters": "\u2AB8" },
+ "≽": { "codepoints": [8829], "characters": "\u227D" },
+ "⪰": { "codepoints": [10928], "characters": "\u2AB0" },
+ "⪺": { "codepoints": [10938], "characters": "\u2ABA" },
+ "⪶": { "codepoints": [10934], "characters": "\u2AB6" },
+ "⋩": { "codepoints": [8937], "characters": "\u22E9" },
+ "≿": { "codepoints": [8831], "characters": "\u227F" },
+ "∑": { "codepoints": [8721], "characters": "\u2211" },
+ "♪": { "codepoints": [9834], "characters": "\u266A" },
+ "¹": { "codepoints": [185], "characters": "\u00B9" },
+ "¹": { "codepoints": [185], "characters": "\u00B9" },
+ "²": { "codepoints": [178], "characters": "\u00B2" },
+ "²": { "codepoints": [178], "characters": "\u00B2" },
+ "³": { "codepoints": [179], "characters": "\u00B3" },
+ "³": { "codepoints": [179], "characters": "\u00B3" },
+ "⊃": { "codepoints": [8835], "characters": "\u2283" },
+ "⫆": { "codepoints": [10950], "characters": "\u2AC6" },
+ "⪾": { "codepoints": [10942], "characters": "\u2ABE" },
+ "⫘": { "codepoints": [10968], "characters": "\u2AD8" },
+ "⊇": { "codepoints": [8839], "characters": "\u2287" },
+ "⫄": { "codepoints": [10948], "characters": "\u2AC4" },
+ "⟉": { "codepoints": [10185], "characters": "\u27C9" },
+ "⫗": { "codepoints": [10967], "characters": "\u2AD7" },
+ "⥻": { "codepoints": [10619], "characters": "\u297B" },
+ "⫂": { "codepoints": [10946], "characters": "\u2AC2" },
+ "⫌": { "codepoints": [10956], "characters": "\u2ACC" },
+ "⊋": { "codepoints": [8843], "characters": "\u228B" },
+ "⫀": { "codepoints": [10944], "characters": "\u2AC0" },
+ "⊃": { "codepoints": [8835], "characters": "\u2283" },
+ "⊇": { "codepoints": [8839], "characters": "\u2287" },
+ "⫆": { "codepoints": [10950], "characters": "\u2AC6" },
+ "⊋": { "codepoints": [8843], "characters": "\u228B" },
+ "⫌": { "codepoints": [10956], "characters": "\u2ACC" },
+ "⫈": { "codepoints": [10952], "characters": "\u2AC8" },
+ "⫔": { "codepoints": [10964], "characters": "\u2AD4" },
+ "⫖": { "codepoints": [10966], "characters": "\u2AD6" },
+ "⇙": { "codepoints": [8665], "characters": "\u21D9" },
+ "⤦": { "codepoints": [10534], "characters": "\u2926" },
+ "↙": { "codepoints": [8601], "characters": "\u2199" },
+ "↙": { "codepoints": [8601], "characters": "\u2199" },
+ "⤪": { "codepoints": [10538], "characters": "\u292A" },
+ "ß": { "codepoints": [223], "characters": "\u00DF" },
+ "ß": { "codepoints": [223], "characters": "\u00DF" },
+ "⌖": { "codepoints": [8982], "characters": "\u2316" },
+ "τ": { "codepoints": [964], "characters": "\u03C4" },
+ "⎴": { "codepoints": [9140], "characters": "\u23B4" },
+ "ť": { "codepoints": [357], "characters": "\u0165" },
+ "ţ": { "codepoints": [355], "characters": "\u0163" },
+ "т": { "codepoints": [1090], "characters": "\u0442" },
+ "⃛": { "codepoints": [8411], "characters": "\u20DB" },
+ "⌕": { "codepoints": [8981], "characters": "\u2315" },
+ "𝔱": { "codepoints": [120113], "characters": "\uD835\uDD31" },
+ "∴": { "codepoints": [8756], "characters": "\u2234" },
+ "∴": { "codepoints": [8756], "characters": "\u2234" },
+ "θ": { "codepoints": [952], "characters": "\u03B8" },
+ "ϑ": { "codepoints": [977], "characters": "\u03D1" },
+ "ϑ": { "codepoints": [977], "characters": "\u03D1" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "∼": { "codepoints": [8764], "characters": "\u223C" },
+ " ": { "codepoints": [8201], "characters": "\u2009" },
+ "≈": { "codepoints": [8776], "characters": "\u2248" },
+ "∼": { "codepoints": [8764], "characters": "\u223C" },
+ "þ": { "codepoints": [254], "characters": "\u00FE" },
+ "þ": { "codepoints": [254], "characters": "\u00FE" },
+ "˜": { "codepoints": [732], "characters": "\u02DC" },
+ "×": { "codepoints": [215], "characters": "\u00D7" },
+ "×": { "codepoints": [215], "characters": "\u00D7" },
+ "⊠": { "codepoints": [8864], "characters": "\u22A0" },
+ "⨱": { "codepoints": [10801], "characters": "\u2A31" },
+ "⨰": { "codepoints": [10800], "characters": "\u2A30" },
+ "∭": { "codepoints": [8749], "characters": "\u222D" },
+ "⤨": { "codepoints": [10536], "characters": "\u2928" },
+ "⊤": { "codepoints": [8868], "characters": "\u22A4" },
+ "⌶": { "codepoints": [9014], "characters": "\u2336" },
+ "⫱": { "codepoints": [10993], "characters": "\u2AF1" },
+ "𝕥": { "codepoints": [120165], "characters": "\uD835\uDD65" },
+ "⫚": { "codepoints": [10970], "characters": "\u2ADA" },
+ "⤩": { "codepoints": [10537], "characters": "\u2929" },
+ "‴": { "codepoints": [8244], "characters": "\u2034" },
+ "™": { "codepoints": [8482], "characters": "\u2122" },
+ "▵": { "codepoints": [9653], "characters": "\u25B5" },
+ "▿": { "codepoints": [9663], "characters": "\u25BF" },
+ "◃": { "codepoints": [9667], "characters": "\u25C3" },
+ "⊴": { "codepoints": [8884], "characters": "\u22B4" },
+ "≜": { "codepoints": [8796], "characters": "\u225C" },
+ "▹": { "codepoints": [9657], "characters": "\u25B9" },
+ "⊵": { "codepoints": [8885], "characters": "\u22B5" },
+ "◬": { "codepoints": [9708], "characters": "\u25EC" },
+ "≜": { "codepoints": [8796], "characters": "\u225C" },
+ "⨺": { "codepoints": [10810], "characters": "\u2A3A" },
+ "⨹": { "codepoints": [10809], "characters": "\u2A39" },
+ "⧍": { "codepoints": [10701], "characters": "\u29CD" },
+ "⨻": { "codepoints": [10811], "characters": "\u2A3B" },
+ "⏢": { "codepoints": [9186], "characters": "\u23E2" },
+ "𝓉": { "codepoints": [120009], "characters": "\uD835\uDCC9" },
+ "ц": { "codepoints": [1094], "characters": "\u0446" },
+ "ћ": { "codepoints": [1115], "characters": "\u045B" },
+ "ŧ": { "codepoints": [359], "characters": "\u0167" },
+ "≬": { "codepoints": [8812], "characters": "\u226C" },
+ "↞": { "codepoints": [8606], "characters": "\u219E" },
+ "↠": { "codepoints": [8608], "characters": "\u21A0" },
+ "⇑": { "codepoints": [8657], "characters": "\u21D1" },
+ "⥣": { "codepoints": [10595], "characters": "\u2963" },
+ "ú": { "codepoints": [250], "characters": "\u00FA" },
+ "ú": { "codepoints": [250], "characters": "\u00FA" },
+ "↑": { "codepoints": [8593], "characters": "\u2191" },
+ "ў": { "codepoints": [1118], "characters": "\u045E" },
+ "ŭ": { "codepoints": [365], "characters": "\u016D" },
+ "û": { "codepoints": [251], "characters": "\u00FB" },
+ "û": { "codepoints": [251], "characters": "\u00FB" },
+ "у": { "codepoints": [1091], "characters": "\u0443" },
+ "⇅": { "codepoints": [8645], "characters": "\u21C5" },
+ "ű": { "codepoints": [369], "characters": "\u0171" },
+ "⥮": { "codepoints": [10606], "characters": "\u296E" },
+ "⥾": { "codepoints": [10622], "characters": "\u297E" },
+ "𝔲": { "codepoints": [120114], "characters": "\uD835\uDD32" },
+ "ù": { "codepoints": [249], "characters": "\u00F9" },
+ "ù": { "codepoints": [249], "characters": "\u00F9" },
+ "↿": { "codepoints": [8639], "characters": "\u21BF" },
+ "↾": { "codepoints": [8638], "characters": "\u21BE" },
+ "▀": { "codepoints": [9600], "characters": "\u2580" },
+ "⌜": { "codepoints": [8988], "characters": "\u231C" },
+ "⌜": { "codepoints": [8988], "characters": "\u231C" },
+ "⌏": { "codepoints": [8975], "characters": "\u230F" },
+ "◸": { "codepoints": [9720], "characters": "\u25F8" },
+ "ū": { "codepoints": [363], "characters": "\u016B" },
+ "¨": { "codepoints": [168], "characters": "\u00A8" },
+ "¨": { "codepoints": [168], "characters": "\u00A8" },
+ "ų": { "codepoints": [371], "characters": "\u0173" },
+ "𝕦": { "codepoints": [120166], "characters": "\uD835\uDD66" },
+ "↑": { "codepoints": [8593], "characters": "\u2191" },
+ "↕": { "codepoints": [8597], "characters": "\u2195" },
+ "↿": { "codepoints": [8639], "characters": "\u21BF" },
+ "↾": { "codepoints": [8638], "characters": "\u21BE" },
+ "⊎": { "codepoints": [8846], "characters": "\u228E" },
+ "υ": { "codepoints": [965], "characters": "\u03C5" },
+ "ϒ": { "codepoints": [978], "characters": "\u03D2" },
+ "υ": { "codepoints": [965], "characters": "\u03C5" },
+ "⇈": { "codepoints": [8648], "characters": "\u21C8" },
+ "⌝": { "codepoints": [8989], "characters": "\u231D" },
+ "⌝": { "codepoints": [8989], "characters": "\u231D" },
+ "⌎": { "codepoints": [8974], "characters": "\u230E" },
+ "ů": { "codepoints": [367], "characters": "\u016F" },
+ "◹": { "codepoints": [9721], "characters": "\u25F9" },
+ "𝓊": { "codepoints": [120010], "characters": "\uD835\uDCCA" },
+ "⋰": { "codepoints": [8944], "characters": "\u22F0" },
+ "ũ": { "codepoints": [361], "characters": "\u0169" },
+ "▵": { "codepoints": [9653], "characters": "\u25B5" },
+ "▴": { "codepoints": [9652], "characters": "\u25B4" },
+ "⇈": { "codepoints": [8648], "characters": "\u21C8" },
+ "ü": { "codepoints": [252], "characters": "\u00FC" },
+ "ü": { "codepoints": [252], "characters": "\u00FC" },
+ "⦧": { "codepoints": [10663], "characters": "\u29A7" },
+ "⇕": { "codepoints": [8661], "characters": "\u21D5" },
+ "⫨": { "codepoints": [10984], "characters": "\u2AE8" },
+ "⫩": { "codepoints": [10985], "characters": "\u2AE9" },
+ "⊨": { "codepoints": [8872], "characters": "\u22A8" },
+ "⦜": { "codepoints": [10652], "characters": "\u299C" },
+ "ϵ": { "codepoints": [1013], "characters": "\u03F5" },
+ "ϰ": { "codepoints": [1008], "characters": "\u03F0" },
+ "∅": { "codepoints": [8709], "characters": "\u2205" },
+ "ϕ": { "codepoints": [981], "characters": "\u03D5" },
+ "ϖ": { "codepoints": [982], "characters": "\u03D6" },
+ "∝": { "codepoints": [8733], "characters": "\u221D" },
+ "↕": { "codepoints": [8597], "characters": "\u2195" },
+ "ϱ": { "codepoints": [1009], "characters": "\u03F1" },
+ "ς": { "codepoints": [962], "characters": "\u03C2" },
+ "⊊︀": { "codepoints": [8842, 65024], "characters": "\u228A\uFE00" },
+ "⫋︀": { "codepoints": [10955, 65024], "characters": "\u2ACB\uFE00" },
+ "⊋︀": { "codepoints": [8843, 65024], "characters": "\u228B\uFE00" },
+ "⫌︀": { "codepoints": [10956, 65024], "characters": "\u2ACC\uFE00" },
+ "ϑ": { "codepoints": [977], "characters": "\u03D1" },
+ "⊲": { "codepoints": [8882], "characters": "\u22B2" },
+ "⊳": { "codepoints": [8883], "characters": "\u22B3" },
+ "в": { "codepoints": [1074], "characters": "\u0432" },
+ "⊢": { "codepoints": [8866], "characters": "\u22A2" },
+ "∨": { "codepoints": [8744], "characters": "\u2228" },
+ "⊻": { "codepoints": [8891], "characters": "\u22BB" },
+ "≚": { "codepoints": [8794], "characters": "\u225A" },
+ "⋮": { "codepoints": [8942], "characters": "\u22EE" },
+ "|": { "codepoints": [124], "characters": "\u007C" },
+ "|": { "codepoints": [124], "characters": "\u007C" },
+ "𝔳": { "codepoints": [120115], "characters": "\uD835\uDD33" },
+ "⊲": { "codepoints": [8882], "characters": "\u22B2" },
+ "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" },
+ "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" },
+ "𝕧": { "codepoints": [120167], "characters": "\uD835\uDD67" },
+ "∝": { "codepoints": [8733], "characters": "\u221D" },
+ "⊳": { "codepoints": [8883], "characters": "\u22B3" },
+ "𝓋": { "codepoints": [120011], "characters": "\uD835\uDCCB" },
+ "⫋︀": { "codepoints": [10955, 65024], "characters": "\u2ACB\uFE00" },
+ "⊊︀": { "codepoints": [8842, 65024], "characters": "\u228A\uFE00" },
+ "⫌︀": { "codepoints": [10956, 65024], "characters": "\u2ACC\uFE00" },
+ "⊋︀": { "codepoints": [8843, 65024], "characters": "\u228B\uFE00" },
+ "⦚": { "codepoints": [10650], "characters": "\u299A" },
+ "ŵ": { "codepoints": [373], "characters": "\u0175" },
+ "⩟": { "codepoints": [10847], "characters": "\u2A5F" },
+ "∧": { "codepoints": [8743], "characters": "\u2227" },
+ "≙": { "codepoints": [8793], "characters": "\u2259" },
+ "℘": { "codepoints": [8472], "characters": "\u2118" },
+ "𝔴": { "codepoints": [120116], "characters": "\uD835\uDD34" },
+ "𝕨": { "codepoints": [120168], "characters": "\uD835\uDD68" },
+ "℘": { "codepoints": [8472], "characters": "\u2118" },
+ "≀": { "codepoints": [8768], "characters": "\u2240" },
+ "≀": { "codepoints": [8768], "characters": "\u2240" },
+ "𝓌": { "codepoints": [120012], "characters": "\uD835\uDCCC" },
+ "⋂": { "codepoints": [8898], "characters": "\u22C2" },
+ "◯": { "codepoints": [9711], "characters": "\u25EF" },
+ "⋃": { "codepoints": [8899], "characters": "\u22C3" },
+ "▽": { "codepoints": [9661], "characters": "\u25BD" },
+ "𝔵": { "codepoints": [120117], "characters": "\uD835\uDD35" },
+ "⟺": { "codepoints": [10234], "characters": "\u27FA" },
+ "⟷": { "codepoints": [10231], "characters": "\u27F7" },
+ "ξ": { "codepoints": [958], "characters": "\u03BE" },
+ "⟸": { "codepoints": [10232], "characters": "\u27F8" },
+ "⟵": { "codepoints": [10229], "characters": "\u27F5" },
+ "⟼": { "codepoints": [10236], "characters": "\u27FC" },
+ "⋻": { "codepoints": [8955], "characters": "\u22FB" },
+ "⨀": { "codepoints": [10752], "characters": "\u2A00" },
+ "𝕩": { "codepoints": [120169], "characters": "\uD835\uDD69" },
+ "⨁": { "codepoints": [10753], "characters": "\u2A01" },
+ "⨂": { "codepoints": [10754], "characters": "\u2A02" },
+ "⟹": { "codepoints": [10233], "characters": "\u27F9" },
+ "⟶": { "codepoints": [10230], "characters": "\u27F6" },
+ "𝓍": { "codepoints": [120013], "characters": "\uD835\uDCCD" },
+ "⨆": { "codepoints": [10758], "characters": "\u2A06" },
+ "⨄": { "codepoints": [10756], "characters": "\u2A04" },
+ "△": { "codepoints": [9651], "characters": "\u25B3" },
+ "⋁": { "codepoints": [8897], "characters": "\u22C1" },
+ "⋀": { "codepoints": [8896], "characters": "\u22C0" },
+ "ý": { "codepoints": [253], "characters": "\u00FD" },
+ "ý": { "codepoints": [253], "characters": "\u00FD" },
+ "я": { "codepoints": [1103], "characters": "\u044F" },
+ "ŷ": { "codepoints": [375], "characters": "\u0177" },
+ "ы": { "codepoints": [1099], "characters": "\u044B" },
+ "¥": { "codepoints": [165], "characters": "\u00A5" },
+ "¥": { "codepoints": [165], "characters": "\u00A5" },
+ "𝔶": { "codepoints": [120118], "characters": "\uD835\uDD36" },
+ "ї": { "codepoints": [1111], "characters": "\u0457" },
+ "𝕪": { "codepoints": [120170], "characters": "\uD835\uDD6A" },
+ "𝓎": { "codepoints": [120014], "characters": "\uD835\uDCCE" },
+ "ю": { "codepoints": [1102], "characters": "\u044E" },
+ "ÿ": { "codepoints": [255], "characters": "\u00FF" },
+ "ÿ": { "codepoints": [255], "characters": "\u00FF" },
+ "ź": { "codepoints": [378], "characters": "\u017A" },
+ "ž": { "codepoints": [382], "characters": "\u017E" },
+ "з": { "codepoints": [1079], "characters": "\u0437" },
+ "ż": { "codepoints": [380], "characters": "\u017C" },
+ "ℨ": { "codepoints": [8488], "characters": "\u2128" },
+ "ζ": { "codepoints": [950], "characters": "\u03B6" },
+ "𝔷": { "codepoints": [120119], "characters": "\uD835\uDD37" },
+ "ж": { "codepoints": [1078], "characters": "\u0436" },
+ "⇝": { "codepoints": [8669], "characters": "\u21DD" },
+ "𝕫": { "codepoints": [120171], "characters": "\uD835\uDD6B" },
+ "𝓏": { "codepoints": [120015], "characters": "\uD835\uDCCF" },
+ "‍": { "codepoints": [8205], "characters": "\u200D" },
+ "‌": { "codepoints": [8204], "characters": "\u200C" }
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/tests/phpunit/data/html5-entities/entities.json
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunktestsphpunitdatahtml5entitiesgeneratehtml5namedcharacterreferencesphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/tests/phpunit/data/html5-entities/generate-html5-named-character-references.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/data/html5-entities/generate-html5-named-character-references.php (rev 0)
+++ trunk/tests/phpunit/data/html5-entities/generate-html5-named-character-references.php 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,101 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+require_once __DIR__ . '/../../../../src/wp-includes/class-wp-token-map.php';
+
+/**
+ * Stores a mapping from HTML5 named character reference to its transformation metadata.
+ *
+ * Example:
+ *
+ * $entities['©'] === array(
+ * 'codepoints' => array( 0xA9 ),
+ * 'characters' => '©',
+ * );
+ *
+ * @see https://html.spec.whatwg.org/entities.json
+ *
+ * @var array.
+ */
+$entities = json_decode(
+ file_get_contents( __DIR__ . '/entities.json' ),
+ JSON_OBJECT_AS_ARRAY
+);
+
+/**
+ * Direct mapping from character reference name to UTF-8 string.
+ *
+ * Example:
+ *
+ * $character_references['©'] === '©';
+ *
+ * @var array.
+ */
+$character_references = array();
+foreach ( $entities as $reference => $metadata ) {
+ $reference_without_ampersand_prefix = substr( $reference, 1 );
+ $character_references[ $reference_without_ampersand_prefix ] = $metadata['characters'];
+}
+
+$html5_map = WP_Token_Map::from_array( $character_references );
+
+/**
+ * Contains the new contents for the auto-generated module.
+ *
+ * Note that in this template, the `$` is escaped with `\$` so that it
+ * comes through as a `$` in the output. Without escaping, PHP will look
+ * for a variable of the given name to interpolate into the template.
+ *
+ * @var string
+ */
+$module_contents = <<<EOF
+<?php
+
+/**
+ * Auto-generated class for looking up HTML named character references.
+ *
+ * ⚠️ !!! THIS ENTIRE FILE IS AUTOMATICALLY GENERATED !!! ⚠️
+ * Do not modify this file directly.
+ *
+ * To regenerate, run the generation script directly.
+ *
+ * Example:
+ *
+ * php tests/phpunit/data/html5-entities/generate-html5-named-character-references.php
+ *
+ * @package WordPress
+ * @since 6.6.0
+ */
+
+// phpcs:disable
+
+global \$html5_named_character_references;
+
+/**
+ * Set of named character references in the HTML5 specification.
+ *
+ * This list will never change, according to the spec. Each named
+ * character reference is case-sensitive and the presence or absence
+ * of the semicolon is significant. Without the semicolon, the rules
+ * for an ambiguous ampersand govern whether the following text is
+ * to be interpreted as a character reference or not.
+ *
+ * The list of entities is sourced directly from the WHATWG server
+ * and cached in the test directory to avoid needing to download it
+ * every time this file is updated.
+ *
+ * @link https://html.spec.whatwg.org/entities.json.
+ */
+\$html5_named_character_references = {$html5_map->precomputed_php_source_table()};
+
+EOF;
+
+file_put_contents(
+ __DIR__ . '/../../../../src/wp-includes/html-api/html5-named-character-references.php',
+ $module_contents
+);
+
+if ( posix_isatty( STDOUT ) ) {
+ echo "\e[1;32mOK\e[0;90m: \e[mSuccessfully generated optimized lookup class.\n";
+} else {
+ echo "OK: Successfully generated optimized lookup class.\n";
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/tests/phpunit/data/html5-entities/generate-html5-named-character-references.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="trunktestsphpunittestswptokenmapwpTokenMapphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/tests/phpunit/tests/wp-token-map/wpTokenMap.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/wp-token-map/wpTokenMap.php (rev 0)
+++ trunk/tests/phpunit/tests/wp-token-map/wpTokenMap.php 2024-05-23 19:54:17 UTC (rev 58188)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,399 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+/**
+ * Unit tests covering WP_Token_Map functionality.
+ *
+ * @package WordPress
+ *
+ * @since 6.6.0
+ * @group html-api-token-map
+ *
+ * @coversDefaultClass WP_Token_Map
+ */
+class Tests_WpTokenMap extends WP_UnitTestCase {
+ /**
+ * Number of unique HTML5 named character references, including
+ * variations of a given name that don't require the trailing semicolon.
+ *
+ * The set of names is fixed by the specification,
+ * and can be found at the following link.
+ *
+ * @link https://html.spec.whatwg.org/entities.json
+ */
+ const KNOWN_COUNT_OF_ALL_HTML5_NAMED_CHARACTER_REFERENCES = 2231;
+
+ /**
+ * Small test array matching names to Emoji.
+ *
+ * @var array.
+ */
+ const ANIMAL_EMOJI = array(
+ 'cat' => '🐈',
+ 'dog' => '🐶',
+ 'fish' => '🐟',
+ 'mammoth' => '🦣',
+ 'seal' => '🦭',
+ );
+
+ /**
+ * Returns an associative array whose keys are tokens to replace and
+ * whose values are the replacement strings for those tokens.
+ *
+ * This function is here to help avoid bloating this specific test file.
+ * For example, the HTML5 dataset is very large and best served as a
+ * separate file.
+ *
+ * The HTML5 named character reference list is pulled directly from the
+ * WHATWG spec and stored in the tests directory so it doesn't need to
+ * be downloaded on every test run. By specification, it cannot change
+ * and will not be updated.
+ *
+ * @param string $dataset_name Which dataset to return.
+ * @return array The dataset as an associative array.
+ */
+ private static function get_test_input_array( $dataset_name ) {
+ static $html5_character_references = null;
+
+ switch ( $dataset_name ) {
+ case 'ANIMALS':
+ return self::ANIMAL_EMOJI;
+
+ case 'HTML5':
+ if ( ! isset( $html5_character_references ) ) {
+ $dataset = wp_json_file_decode(
+ __DIR__ . '/../../data/html5-entities/entities.json',
+ array( 'associative' => true )
+ );
+
+ $html5_character_references = array();
+ foreach ( $dataset as $name => $value ) {
+ $html5_character_references[ $name ] = $value['characters'];
+ }
+ }
+
+ return $html5_character_references;
+ }
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array[].
+ */
+ public static function data_input_arrays() {
+ $dataset_names = array(
+ 'ANIMALS',
+ 'HTML5',
+ );
+
+ foreach ( $dataset_names as $dataset_name ) {
+ yield $dataset_name => array( self::get_test_input_array( $dataset_name ) );
+ }
+ }
+
+ /**
+ * Ensure the basic creation of a Token Map from an associative array.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_input_arrays
+ *
+ * @param array $dataset Dataset to test.
+ */
+ public function test_creates_map_from_array_containing_proper_values( $dataset ) {
+ $map = WP_Token_Map::from_array( $dataset );
+
+ foreach ( $dataset as $token => $replacement ) {
+ $this->assertTrue(
+ $map->contains( $token ),
+ "Map should have contained '{$token}' but didn't."
+ );
+
+ $skip_bytes = 0;
+ $response = $map->read_token( $token, 0, $skip_bytes );
+ $this->assertSame(
+ $replacement,
+ $response,
+ "Returned the wrong replacement value for '{$token}'."
+ );
+
+ $token_length = strlen( $token );
+ $this->assertSame(
+ $token_length,
+ $skip_bytes,
+ 'Reported the wrong byte-length of the found token.'
+ );
+ }
+ }
+
+ /**
+ * Ensure that keys that are too long prevent the creation of a Token Map.
+ *
+ * If tokens or replacements are stored whose length is more than can be
+ * represented by a single byte, then the encoding scheme in the Token Map
+ * will fail and lead to corruption.
+ *
+ * @ticket 60698
+ *
+ * @expectedIncorrectUsage WP_Token_Map::from_array
+ */
+ public function test_rejects_words_which_are_too_long() {
+ $normal_length = str_pad( '', 255, '.' );
+ $too_long_word = "{$normal_length}.";
+
+ $this->assertInstanceOf(
+ WP_Token_Map::class,
+ WP_Token_Map::from_array( array( $normal_length => 'just fine' ) ),
+ 'Should have built Token Map containing long, but acceptable token length.'
+ );
+
+ $this->assertNull(
+ WP_Token_Map::from_array( array( $too_long_word => 'not good' ) ),
+ 'Should have refused to build Token Map with key exceeding design limit.'
+ );
+
+ $this->assertInstanceOf(
+ WP_Token_Map::class,
+ WP_Token_Map::from_array( array( 'key' => $normal_length ) ),
+ 'Should have build Token Map containing long, but acceptable replacement.'
+ );
+
+ $this->assertNull(
+ WP_Token_Map::from_array( array( 'key' => $too_long_word ) ),
+ 'Should have refused to build Token Map with replacement exceeding design limit.'
+ );
+ }
+
+ /**
+ * Ensure isomorphic creation and export of a Token Map and associative arrays.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_input_arrays
+ *
+ * @param array $dataset Dataset to test.
+ */
+ public function test_round_trips_through_associative_array( $dataset ) {
+ $map = WP_Token_Map::from_array( $dataset );
+ $this->assertEqualsCanonicalizing(
+ $dataset,
+ $map->to_array(),
+ 'Should have produced an identical array on output as was given on input.'
+ );
+ }
+
+ /**
+ * Ensure the basic creation of a Token Map from a precomputed source table.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_input_arrays
+ *
+ * @param array $dataset Dataset to test.
+ */
+ public function test_round_trips_through_precomputed_source_table( $dataset ) {
+ $seed = WP_Token_Map::from_array( $dataset );
+ $source_table = $seed->precomputed_php_source_table();
+ $map = eval( "return {$source_table};" ); // phpcs:ignore.
+
+ foreach ( $dataset as $token => $replacement ) {
+ $this->assertTrue(
+ $map->contains( $token ),
+ "Map should have contained '{$token}' but didn't."
+ );
+
+ $skip_bytes = 0;
+ $response = $map->read_token( $token, 0, $skip_bytes );
+ $this->assertSame(
+ $replacement,
+ $response,
+ 'Returned the wrong replacement value'
+ );
+
+ $token_length = strlen( $token );
+ $this->assertSame(
+ $token_length,
+ $skip_bytes,
+ 'Reported the wrong byte-length of the found token.'
+ );
+ }
+ }
+
+ /**
+ * Ensures that when two or more keys share a prefix that the longest
+ * is matched first, to prevent tokens masking each other.
+ *
+ * @ticket 60698
+ */
+ public function test_finds_longest_match_first() {
+ $map = WP_Token_Map::from_array(
+ array(
+ 'cat' => '1',
+ 'caterpillar' => '2',
+ 'caterpillar machines' => '3',
+ )
+ );
+
+ $skip_bytes = 0;
+ $text = 'cats like to meow';
+ $this->assertSame(
+ '1',
+ $map->read_token( $text, 0, $skip_bytes ),
+ "Should have matched 'cat' but matched '" . substr( $text, 0, $skip_bytes ) . "' instead."
+ );
+
+ $skip_bytes = 0;
+ $text = 'caterpillars turn into butterflies';
+ $this->assertSame(
+ '2',
+ $map->read_token( $text, 0, $skip_bytes ),
+ "Should have matched 'caterpillar' but matched '" . substr( $text, 0, $skip_bytes ) . "' instead."
+ );
+
+ $skip_bytes = 0;
+ $text = 'caterpillar machines are heavy duty equipment';
+ $this->assertSame(
+ '3',
+ $map->read_token( $text, 0, $skip_bytes ),
+ "Should have matched 'caterpillar machines' but matched '" . substr( $text, 0, $skip_bytes ) . "' instead."
+ );
+ }
+
+ /**
+ * Ensures that tokens shorter than the group key length are found.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_short_substring_matches_of_each_other
+ *
+ * @param WP_Token_Map $map Token map containing appropriate mapping for test.
+ * @param string $search_document Document containing expected token at start of string.
+ * @param string $expected_token Which token should be found at start of search document.
+ */
+ public function test_finds_short_matches_shorter_than_group_key_length( $map, $search_document, $expected_token ) {
+ $skip_bytes = 0;
+ $text = 'antarctica is a continent';
+ $this->assertSame(
+ 'article',
+ $map->read_token( $text, 0, $skip_bytes ),
+ "Should have matched 'a' but matched '" . substr( $text, 0, $skip_bytes ) . "' instead."
+ );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array[].
+ */
+ public static function data_short_substring_matches_of_each_other() {
+ $map = WP_Token_Map::from_array(
+ array(
+ 'a' => 'article',
+ 'aa' => 'defensive weapon',
+ 'ar' => 'country code',
+ 'arizona' => 'state name',
+ )
+ );
+
+ return array(
+ 'single character' => array( $map, 'antarctica is a continent', 'a' ),
+ 'duplicate character' => array( $map, 'aaaaahhhh, he exclaimed', 'aa' ),
+ 'different character' => array( $map, 'argentina is a country', 'ar' ),
+ 'full word' => array( $map, 'arizona was full of copper', 'arizona' ),
+ );
+ }
+
+ /**
+ * Ensures that Token Map searches at appropriate starting offset.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_html5_test_dataset
+ *
+ * @param string $token Token to find.
+ * @param string $replacement Replacement string for token.
+ */
+ public function test_reads_token_at_given_offset( $token, $replacement ) {
+ $document = "& another {$token} & then some";
+ $map = self::get_html5_token_map();
+
+ $skip_bytes = 0;
+ $this->assertFalse(
+ $map->read_token( $document, 0, $skip_bytes ),
+ "Shouldn't have found token at start of document."
+ );
+
+ $response = $map->read_token( $document, 10, $skip_bytes );
+
+ $this->assertSame(
+ strlen( $token ),
+ $skip_bytes,
+ "Found the wrong length for token '{$token}'."
+ );
+
+ $this->assertSame(
+ $response,
+ $replacement,
+ 'Found the wrong replacement value for the token.'
+ );
+ }
+
+ /**
+ * Ensures that all given tokens exist inside a constructed Token Map.
+ *
+ * @ticket 60698
+ *
+ * @dataProvider data_html5_test_dataset
+ *
+ * @param string $token Token to find.
+ * @param string $replacement Not used in this test.
+ */
+ public function test_detects_all_tokens( $token, $replacement ) {
+ $map = self::get_html5_token_map();
+
+ $this->assertTrue(
+ $map->contains( $token ),
+ "Should have found '{$token}' inside the Token Map, but didn't."
+ );
+
+ $double_escaped_token = str_replace( '&', '&', $token );
+ $this->assertFalse(
+ $map->contains( $double_escaped_token ),
+ "Should not have found '{$double_escaped_token}' in Token Map, but did."
+ );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array[].
+ */
+ public function data_html5_test_dataset() {
+ $html5 = self::get_test_input_array( 'HTML5' );
+
+ $this->assertSame(
+ self::KNOWN_COUNT_OF_ALL_HTML5_NAMED_CHARACTER_REFERENCES,
+ count( $html5 ),
+ 'Found the wrong number of HTML5 named character references: confirm the entities.json file."'
+ );
+
+ foreach ( $html5 as $token => $replacement ) {
+ yield $token => array( $token, $replacement );
+ }
+ }
+
+ /**
+ * Returns a static copy of the Token Map for HTML5.
+ * This is a test performance optimization.
+ *
+ * @return WP_Token_Map
+ */
+ private static function get_html5_token_map() {
+ static $html5_token_map = null;
+
+ if ( ! isset( $html5_token_map ) ) {
+ $html5_token_map = WP_Token_Map::from_array( self::get_test_input_array( 'HTML5' ) );
+ }
+
+ return $html5_token_map;
+ }
+}
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: trunk/tests/phpunit/tests/wp-token-map/wpTokenMap.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span></div>
</body>
</html>