diff --git a/data.ts b/data.ts index 3559d37..c3080bd 100644 --- a/data.ts +++ b/data.ts @@ -4418,4 +4418,5 @@ export const subsuperscripts = [ ['^>', ' ͐'], ['^,', ' ̓'], ['^,,', ' ̕'], + ['^.', 'ᐧ'] ]; diff --git a/unicodeit/.eslintignore b/unicodeit/.eslintignore new file mode 100644 index 0000000..92c33e0 --- /dev/null +++ b/unicodeit/.eslintignore @@ -0,0 +1,6 @@ +# don't ever lint node_modules +node_modules +# don't lint build output (make sure it's set to your correct build folder name) +ts_dist +# don't lint nyc coverage output +coverage diff --git a/unicodeit/.eslintrc.js b/unicodeit/.eslintrc.js new file mode 100644 index 0000000..80e08d5 --- /dev/null +++ b/unicodeit/.eslintrc.js @@ -0,0 +1,11 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: [ + '@typescript-eslint', + ], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + ], +}; diff --git a/unicodeit/.pylintrc b/unicodeit/.pylintrc new file mode 100644 index 0000000..beab34c --- /dev/null +++ b/unicodeit/.pylintrc @@ -0,0 +1,10 @@ +[BASIC] + +variable-rgx=[a-z0-9_]{1,30}$ +good-names=ap,ar,ax,d,f,g,gt,h,i,im,lr,p,r,s,t,t1,t2,th,v,vs,w,wh,x,x1,x2,xs,y,ys,xy + + + +[TYPECHECK] + +disable=duplicate-code,missing-docstring,invalid-name,redefined-outer-name diff --git a/unicodeit/LICENSE b/unicodeit/LICENSE new file mode 100644 index 0000000..c8f21dd --- /dev/null +++ b/unicodeit/LICENSE @@ -0,0 +1,13 @@ +Copyright 2020 Sven Kreiss, Kyle Cranmer and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +===================== + +Some symbols were extracted from: http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt +which is Copyright 2011 by Günter Milde and licensed under the LaTeX Project Public License (LPPL) +included here as LICENSE.LPPL. diff --git a/unicodeit/LICENSE.LPPL b/unicodeit/LICENSE.LPPL new file mode 100644 index 0000000..2244313 --- /dev/null +++ b/unicodeit/LICENSE.LPPL @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/unicodeit/README.md b/unicodeit/README.md new file mode 100644 index 0000000..1305ac5 --- /dev/null +++ b/unicodeit/README.md @@ -0,0 +1,73 @@ +# UnicodeIt + +Tested on Linux, Mac and Windows:  + +Converts LaTeX tags to unicode. +Available online at [unicodeit.net](https://www.unicodeit.net). + + +## Examples + +``` +\alpha α, \beta β, \infty ∞ e^+ e⁺, \mu^- μ⁻ \exists ∃, \nexists ∄ +\int ∫, \sum ∑, \partial ∂ \to →, p\bar{p} pp̅ \mathcal{H} ℋ, \mathbb{R} ℝ +\slash{\partial} ∂̸ \underline{x} x̲ \phone ☎, \checkmark ✓ +\dot{x} ẋ, \ddot{x} ẍ A^6 A⁶, m_0 m₀ \Im ℑ, \Re ℜ, \hbar ℏ +\gamma γ, \Gamma Γ \~{O} Õ \perp ⊥, \parallel ∥ +\sfrac{3}{5} ⅗ \therefore ∴, \because ∵ \subset ⊂, \supset ⊃ +``` + + +## Python + +Install with `pip install unicodeit` and run + +```sh +python -m unicodeit.cli \\alpha +``` + +or in Python + +```py +import unicodeit +print(unicodeit.replace('\\alpha')) +``` + + +## JavaScript / TypeScript + +Install with `npm install unicodeit --save-dev` and use it like this: + +```js +var unicodeit = require('unicodeit'); +console.log(unicodeit.replace('\\alpha')); +``` + + +## Mac Automator + +Create your own Automator Workflow: + +* Create a new "Quick Action" (might also be labeled as "Service"). +* At the top, leave the defaults: "Service receives *selected text* in *any application*" +* Select the checkmark "output replaces selected text". +* Add the action "Run Shell Script". +* From dropdown, select to "pass in: as arguments". +* The command is: `/usr/local/bin/python3 -m unicodeit.cli $1`. This Python interpreter must have unicodeit installed; e.g. with `/usr/local/bin/python3 -m pip install unicodeit`. +* It should look something like this: + + + +To set a keyboard shortcut, go to `System Preferences` → +`Keyboard` → `Shortcuts` → `Services` → `Text` → `UnicodeItAction`. +Choose a keyboard shortcut like `Command+Option+Shift U`. + +Now you are all set to use your new keyboard shortcut in many apps, like here in Keynote: + + + + +## [dev] New Release Flow + +* update version in `uncodeit/__init__.py` and `package.json` +* create a new release on Github diff --git a/unicodeit/docs/automator.png b/unicodeit/docs/automator.png new file mode 100644 index 0000000..6b90ce2 Binary files /dev/null and b/unicodeit/docs/automator.png differ diff --git a/unicodeit/docs/dev.md b/unicodeit/docs/dev.md new file mode 100644 index 0000000..f9cb937 --- /dev/null +++ b/unicodeit/docs/dev.md @@ -0,0 +1,50 @@ +Update version number in +* `unicode/__init__.py` +* `package.json` +* in two places in `web/index.html` + +Do a github release. + + +================== +OLD: + +# Python Release + +```sh +# python checks +pytest +pylint unicodeit + +# create package and upload +python setup.py sdist +twine upload dist/unicodeit... +``` + + +# NPM Release + +```sh +# update typescript data +python -m unicodeit.export_data + +# typescript checks +npm run lint +npm run test + +# rebuild typescript bundles +npm run build + +# publish +npm publish +``` + + +# Website update + +```sh +# follow steps of NPM release first + +# push web folder to gh-pages branch +ghp-import --no-jekyll --push web +``` diff --git a/unicodeit/docs/unicodeit_demo.gif b/unicodeit/docs/unicodeit_demo.gif new file mode 100644 index 0000000..ccad734 Binary files /dev/null and b/unicodeit/docs/unicodeit_demo.gif differ diff --git a/unicodeit/package-lock.json b/unicodeit/package-lock.json new file mode 100644 index 0000000..7bb50a0 --- /dev/null +++ b/unicodeit/package-lock.json @@ -0,0 +1,3370 @@ +{ + "name": "unicodeit", + "version": "0.7.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "unicodeit", + "version": "0.7.2", + "license": "MIT", + "dependencies": { + "@types/typeahead": "^0.11.32", + "typeahead": "^0.2.2" + }, + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/jquery": "^3.5.16", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^5.54.1", + "@typescript-eslint/parser": "^5.54.1", + "chai": "^4.3.7", + "eslint": "^8.36.0", + "mocha": "^10.2.0", + "ts-loader": "^9.4.2", + "typescript": "^4.9.5", + "webpack": "^5.76.1", + "webpack-cli": "^5.0.1" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", + "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", + "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", + "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.21.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", + "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/jquery": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.15.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz", + "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, + "node_modules/@types/typeahead": { + "version": "0.11.32", + "resolved": "https://registry.npmjs.org/@types/typeahead/-/typeahead-0.11.32.tgz", + "integrity": "sha512-5NkqKPwkBh2dGxFEJjc4Vt9/XsaGmx+tfXMfcJxWjPvCvvCFEKRCz+bz7ZfRAiO0e0Hh1foBol3anLzMY1Ea8A==", + "dependencies": { + "@types/jquery": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz", + "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/type-utils": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz", + "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz", + "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz", + "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", + "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz", + "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz", + "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz", + "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", + "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", + "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", + "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/dom/-/dom-0.0.2.tgz", + "integrity": "sha512-e4et+/XWFf396eDrDOiONO1SCT2zAvpIiutNwG0kzkFHSZB+JUq7jn+gYcIvNS7NJZyMQrZNKrJNdHGHpRPiSQ==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", + "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.1", + "@eslint/js": "8.36.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.5.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", + "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typeahead": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typeahead/-/typeahead-0.2.2.tgz", + "integrity": "sha512-cJLI/AZaAbBCErlHeax2V+jJEKnchXcJTcEXyeMtkiQUDR22LY2wptj8J1hZbGS5r4FxsqNyFCRPvE87gk6N3g==", + "dependencies": { + "dom": "0.0.2", + "xtend": "1.0.3" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.76.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", + "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", + "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.1", + "colorette": "^2.0.14", + "commander": "^9.4.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-1.0.3.tgz", + "integrity": "sha512-wv78b3q8kHDveC/C7Yq/UUrJXsAAM1t/j5m28h/ZlqYy0+eqByglhsWR88D2j3VImQzZlNIDsSbZ3QItwgWEGw==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/unicodeit/package.json b/unicodeit/package.json new file mode 100644 index 0000000..ec98aba --- /dev/null +++ b/unicodeit/package.json @@ -0,0 +1,48 @@ +{ + "name": "unicodeit", + "version": "0.7.5", + "description": "Converts LaTeX tags to unicode.", + "main": "ts_dist/js/index.js", + "types": "ts_dist/js/index.d.ts", + "directories": { + "test": "tests" + }, + "files": [ + "ts_dist/**/*" + ], + "scripts": { + "build": "tsc && webpack", + "watch-tsc": "tsc --watch", + "watch-web": "webpack --watch", + "lint": "eslint ts_src --ext .js,.jsx,.ts,.tsx", + "test": "tsc && mocha ./ts_dist/js/tests.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/svenkreiss/unicodeit.git" + }, + "author": "Sven Kreiss", + "license": "MIT", + "bugs": { + "url": "https://github.com/svenkreiss/unicodeit/issues" + }, + "homepage": "https://github.com/svenkreiss/unicodeit#readme", + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/jquery": "^3.5.16", + "@types/mocha": "^10.0.1", + "@typescript-eslint/eslint-plugin": "^5.54.1", + "@typescript-eslint/parser": "^5.54.1", + "chai": "^4.3.7", + "eslint": "^8.36.0", + "mocha": "^10.2.0", + "ts-loader": "^9.4.2", + "typescript": "^4.9.5", + "webpack": "^5.76.1", + "webpack-cli": "^5.0.1" + }, + "dependencies": { + "@types/typeahead": "^0.11.32", + "typeahead": "^0.2.2" + } +} diff --git a/unicodeit/setup.cfg b/unicodeit/setup.cfg new file mode 100644 index 0000000..cd6afc9 --- /dev/null +++ b/unicodeit/setup.cfg @@ -0,0 +1,3 @@ +[pycodestyle] +max-line-length=119 +ignore=E741,W503 diff --git a/unicodeit/setup.py b/unicodeit/setup.py new file mode 100644 index 0000000..b6d4ce7 --- /dev/null +++ b/unicodeit/setup.py @@ -0,0 +1,33 @@ +from setuptools import setup + + +# extract version from __init__.py +with open('unicodeit/__init__.py', 'r') as f: + VERSION_LINE = [l for l in f if l.startswith('__version__')][0] + VERSION = VERSION_LINE.split('=')[1].strip()[1:-1] + + +setup( + name='unicodeit', + version=VERSION, + packages=[ + 'unicodeit', + ], + license='MIT', + description='Converts LaTeX tags to unicode', + long_description=open('README.md', encoding='utf-8').read(), + long_description_content_type='text/markdown', + author='Sven Kreiss', + author_email='research@svenkreiss.com', + url='https://github.com/svenkreiss/unicodeit', + + install_requires=[ + ], + extras_require={ + 'dev': [ + 'pytest', + 'pylint', + 'pycodestyle', + ], + }, +) diff --git a/unicodeit/tests/test_cli.py b/unicodeit/tests/test_cli.py new file mode 100644 index 0000000..75f2834 --- /dev/null +++ b/unicodeit/tests/test_cli.py @@ -0,0 +1,62 @@ +import subprocess +import sys + +import pytest + + +PYTHON = 'python3' if sys.platform != 'win32' else 'python' + + +def test_cli_symbols1(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + '\\Sigma' + ]) + print(r.decode()) + assert r.decode().strip() == 'Σ' + + +def test_cli_symbols2(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + 'def\\Sigma_{01234}abc\\alpha_{567}ggg\\beta_{1234}lll "\\Sigma e_0 e^3"' + ]) + print(r.decode()) + assert r.decode().strip() == 'defΣ₀₁₂₃₄abcα₅₆₇gggβ₁₂₃₄lll "Σ e₀ e³"' + + +def test_cli_symbols3(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + 'def^{01234}abc\\alpha^{567abc} "\\:) \\:G"' + ]) + print(r.decode()) + assert r.decode().strip() == 'def⁰¹²³⁴abcα⁵⁶⁷ᵃᵇᶜ "☺ ㋡"' + + +@pytest.mark.skip('this was already broken') +def test_cli_symbols4(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + 'ggg\\beta^{1234=\\(5\\)}lll' + ]) + print(r.decode()) + assert r.decode().strip() == 'Σ' + + +def test_subscripts(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + 'a_{\\beta\\gamma\\varphi\\rho\\chi}' + ]) + print(r.decode()) + assert r.decode().strip() == 'aᵦᵧᵩᵨᵪ' + + +def test_superscripts(): + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + 'm^{ABDEGHIJKLMNOPRTUWabcdefghiklmnoprstuvwxyz\\beta\\gamma\\delta\\varphi\\chi<>}' + ]) + print(r.decode()) + assert r.decode().strip() == 'mᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᶜᵈᵉᶠᵍʰⁱᵏˡᵐⁿᵒᵖʳˢᵗᵘᵛʷˣʸᶻᵝᵞᵟᵠᵡ˂˃' diff --git a/unicodeit/tests/test_data.py b/unicodeit/tests/test_data.py new file mode 100644 index 0000000..142db78 --- /dev/null +++ b/unicodeit/tests/test_data.py @@ -0,0 +1,38 @@ +import unicodeit + + +def test_order_replacements(): + expr_length = float('inf') + for l, _ in unicodeit.data.REPLACEMENTS: + assert len(l) <= expr_length + expr_length = len(l) + + +def test_order_subsuperscripts(): + expr_length = float('inf') + for l, _ in unicodeit.data.SUBSUPERSCRIPTS: + assert len(l) <= expr_length + expr_length = len(l) + + +def test_order_combiningmarks(): + expr_length = float('inf') + for l, _ in unicodeit.data.COMBININGMARKS: + assert len(l) <= expr_length + expr_length = len(l) + + +def test_combining_not_in_replacement(): + replacement_latex = {l.replace('{}', ''): u for l, u in unicodeit.data.REPLACEMENTS} + for l, u in unicodeit.data.COMBININGMARKS: + l = l.replace('{}', '') + if l not in replacement_latex: + continue + + # if the same command is in "replacements", + # it must not be the combining mark + assert replacement_latex[l] != u + + +def test_incomplete_combiningmark(): + assert unicodeit.replace('\\breve{') == '\\breve{' diff --git a/unicodeit/tests/test_subsuper.py b/unicodeit/tests/test_subsuper.py new file mode 100644 index 0000000..f8379ee --- /dev/null +++ b/unicodeit/tests/test_subsuper.py @@ -0,0 +1,17 @@ +import unicodeit + + +def test_superscript_12(): + assert unicodeit.replace('a^{12}') == 'a¹²' + + +def test_superscript_minus1(): + assert unicodeit.replace('cm^{-1}') == 'cm⁻¹' + + +def test_subscript_12(): + assert unicodeit.replace('a_{12}') == 'a₁₂' + + +def test_subscript_minus1(): + assert unicodeit.replace('cm_{-1}') == 'cm₋₁' diff --git a/unicodeit/tests/test_v06symbols.py b/unicodeit/tests/test_v06symbols.py new file mode 100644 index 0000000..4488127 --- /dev/null +++ b/unicodeit/tests/test_v06symbols.py @@ -0,0 +1,872 @@ +import subprocess +import sys + +import pytest + + +PYTHON = 'python3' if sys.platform != 'win32' else 'python' + + +SYMBOLS_V06 = [ + (r'\textfractionsolidus', '\u2044'), + (r'\leftrightsquigarrow', '\u21AD'), + (r'\textpertenthousand', '\u2031'), + (r'\blacktriangleright', '\u25B8'), + (r'\blacktriangledown', '\u25BE'), + (r'\blacktriangleleft', '\u25C2'), + (r'\twoheadrightarrow', '\u21A0'), + (r'\leftrightharpoons', '\u21CB'), + (r'\rightleftharpoons', '\u21CC'), + (r'\textreferencemark', '\u203B'), + (r'\circlearrowright', '\u21BB'), + (r'\rightrightarrows', '\u21C9'), + (r'\vartriangleright', '\u22B3'), + (r'\textordmasculine', '\u00BA'), + (r'\textvisiblespace', '\u2423'), + (r'\twoheadleftarrow', '\u219E'), + (r'\downharpoonright', '\u21C2'), + (r'\ntrianglerighteq', '\u22ED'), + (r'\rightharpoondown', '\u21C1'), + (r'\textperthousand', '\u2030'), + (r'\leftrightarrows', '\u21C6'), + (r'\textmusicalnote', '\u266A'), + (r'\nleftrightarrow', '\u21AE'), + (r'\rightleftarrows', '\u21C4'), + (r'\bigtriangledown', '\u25BD'), + (r'\textordfeminine', '\u00AA'), + (r'\ntrianglelefteq', '\u22EC'), + (r'\rightthreetimes', '\u22CC'), + (r'\trianglerighteq', '\u22B5'), + (r'\vartriangleleft', '\u22B2'), + (r'\rightsquigarrow', '\u21DD'), + (r'\downharpoonleft', '\u21C3'), + (r'\curvearrowright', '\u21B7'), + (r'\circlearrowleft', '\u21BA'), + (r'\leftharpoondown', '\u21BD'), + (r'\nLeftrightarrow', '\u21CE'), + (r'\curvearrowleft', '\u21B6'), + (r'\guilsinglright', '\u203A'), + (r'\leftthreetimes', '\u22CB'), + (r'\leftrightarrow', '\u2194'), + (r'\rightharpoonup', '\u21C0'), + (r'\guillemotright', '\u00BB'), + (r'\downdownarrows', '\u21CA'), + (r'\hookrightarrow', '\u21AA'), + (r'\hspace{0.25em}', '\u2005'), + (r'\dashrightarrow', '\u21E2'), + (r'\leftleftarrows', '\u21C7'), + (r'\trianglelefteq', '\u22B4'), + (r'\ntriangleright', '\u22EB'), + (r'\doublebarwedge', '\u2306'), + (r'\upharpoonright', '\u21BE'), + (r'\rightarrowtail', '\u21A3'), + (r'\looparrowright', '\u21AC'), + (r'\Leftrightarrow', '\u21D4'), + (r'\sphericalangle', '\u2222'), + (r'\divideontimes', '\u22C7'), + (r'\measuredangle', '\u2221'), + (r'\blacktriangle', '\u25B4'), + (r'\ntriangleleft', '\u22EA'), + # (r'\mathchar"1356', '\u2041'), + (r'\texttrademark', '\u2122'), + # (r'\\mathchar"2208', '\u2316'), + (r'\triangleright', '\u25B9'), + (r'\leftarrowtail', '\u21A2'), + (r'\guilsinglleft', '\u2039'), + (r'\upharpoonleft', '\u21BF'), + (r'\mathbb{gamma}', '\u213D'), + (r'\fallingdotseq', '\u2252'), + (r'\looparrowleft', '\u21AB'), + (r'\textbrokenbar', '\u00A6'), + (r'\hookleftarrow', '\u21A9'), + (r'\smallsetminus', '\uFE68'), + (r'\dashleftarrow', '\u21E0'), + (r'\guillemotleft', '\u00AB'), + (r'\leftharpoonup', '\u21BC'), + (r'\mathbb{Gamma}', '\u213E'), + (r'\bigtriangleup', '\u25B3'), + (r'\textcircledP', '\u2117'), + (r'\risingdotseq', '\u2253'), + (r'\triangleleft', '\u25C3'), + (r'\mathsterling', '\u00A3'), + (r'\textcurrency', '\u00A4'), + (r'\triangledown', '\u25BF'), + (r'\blacklozenge', '\uE80B'), + (r'\sfrac{5}{6}', '\u215A'), + (r'\preccurlyeq', '\u227C'), + (r'\Rrightarrow', '\u21DB'), + (r'\circledcirc', '\u229A'), + (r'\nRightarrow', '\u21CF'), + (r'\sfrac{3}{8}', '\u215C'), + (r'\sfrac{1}{3}', '\u2153'), + (r'\sfrac{2}{5}', '\u2156'), + (r'\vartriangle', '\u25B5'), + (r'\Updownarrow', '\u21D5'), + (r'\nrightarrow', '\u219B'), + (r'\sfrac{1}{2}', '\u00BD'), + (r'\sfrac{3}{5}', '\u2157'), + (r'\succcurlyeq', '\u227D'), + (r'\sfrac{4}{5}', '\u2158'), + (r'\diamondsuit', '\u2666'), + (r'\hphantom{0}', '\u2007'), + (r'\sfrac{1}{6}', '\u2159'), + (r'\curlyeqsucc', '\u22DF'), + (r'\blacksquare', '\u25AA'), + (r'\hphantom{,}', '\u2008'), + (r'\curlyeqprec', '\u22DE'), + (r'\sfrac{1}{8}', '\u215B'), + (r'\sfrac{7}{8}', '\u215E'), + (r'\sfrac{1}{5}', '\u2155'), + (r'\sfrac{2}{3}', '\u2154'), + (r'\updownarrow', '\u2195'), + (r'\backepsilon', '\u220D'), + (r'\circleddash', '\u229D'), + (r'\eqslantless', '\u22DC'), + (r'\sfrac{3}{4}', '\u00BE'), + (r'\sfrac{5}{8}', '\u215D'), + (r'\hspace{1pt}', '\u200A'), + (r'\sfrac{1}{4}', '\u00BC'), + (r'\mathbb{Pi}', '\u213F'), + (r'\mathcal{M}', '\u2133'), + (r'\mathcal{o}', '\U00002134'), + (r'\mathcal{O}', '\U0001d4aA'), + (r'\nsupseteqq', '\u2289'), + (r'\mathcal{B}', '\u212C'), + (r'\textrecipe', '\u211E'), + (r'\nsubseteqq', '\u2288'), + (r'\subsetneqq', '\u228A'), + (r'\mathcal{I}', '\u2111'), + (r'\upuparrows', '\u21C8'), + (r'\mathcal{e}', '\u212F'), + (r'\mathcal{L}', '\u2112'), + (r'\nleftarrow', '\u219A'), + (r'\mathcal{H}', '\u210B'), + (r'\mathcal{E}', '\u2130'), + (r'\eqslantgtr', '\u22DD'), + (r'\curlywedge', '\u22CF'), + (r'\varepsilon', '\u03B5'), + (r'\supsetneqq', '\u228B'), + (r'\rightarrow', '\u2192'), + (r'\mathcal{R}', '\u211B'), + (r'\sqsubseteq', '\u2291'), + (r'\mathcal{g}', '\u210A'), + (r'\sqsupseteq', '\u2292'), + (r'\complement', '\u2201'), + (r'\Rightarrow', '\u21D2'), + (r'\gtreqqless', '\u22DB'), + (r'\lesseqqgtr', '\u22DA'), + (r'\circledast', '\u229B'), + (r'\nLeftarrow', '\u21CD'), + (r'\Lleftarrow', '\u21DA'), + (r'\Leftarrow', '\u21D0'), + (r'\gvertneqq', '\u2269'), + (r'\mathbb{C}', '\u2102'), + (r'\supsetneq', '\u228B'), + (r'\leftarrow', '\u2190'), + (r'\nleqslant', '\u2270'), + (r'\mathbb{Q}', '\u211A'), + (r'\mathbb{Z}', '\u2124'), + (r'\llbracket', '\u301A'), + (r'\mathbb{H}', '\u210D'), + (r'\spadesuit', '\u2660'), + (r'\mathit{o}', '\U0001d45c'), + (r'\mathbb{P}', '\u2119'), + (r'\rrbracket', '\u301B'), + (r'\supseteqq', '\u2287'), + (r'\copyright', '\u00A9'), + (r'\textsc{k}', '\u0138'), + (r'\gtreqless', '\u22DB'), + (r'\mathbb{j}', '\u2149'), + (r'\pitchfork', '\u22D4'), + (r'\estimated', '\u212E'), + (r'\ngeqslant', '\u2271'), + (r'\mathbb{e}', '\u2147'), + (r'\therefore', '\u2234'), + (r'\triangleq', '\u225C'), + (r'\varpropto', '\u221D'), + (r'\subsetneq', '\u228A'), + (r'\heartsuit', '\u2665'), + (r'\mathbb{d}', '\u2146'), + (r'\lvertneqq', '\u2268'), + (r'\checkmark', '\u2713'), + (r'\nparallel', '\u2226'), + (r'\mathbb{R}', '\u211D'), + (r'\lesseqgtr', '\u22DA'), + (r'\downarrow', '\u2193'), + (r'\mathbb{D}', '\u2145'), + (r'\mathbb{i}', '\u2148'), + (r'\backsimeq', '\u22CD'), + (r'\mathbb{N}', '\u2115'), + (r'\Downarrow', '\u21D3'), + (r'\subseteqq', '\u2286'), + (r'\setminus', '\u2216'), + (r'\succnsim', '\u22E9'), + (r'\doteqdot', '\u2251'), + (r'\clubsuit', '\u2663'), + (r'\emptyset', '\u2205'), + (r'\varnothing', '\u2205'), + (r'\sqsupset', '\u2290'), + (r'\fbox{~~}', '\u25AD'), + (r'\curlyvee', '\u22CE'), + (r'\varkappa', '\u03F0'), + (r'\llcorner', '\u231E'), + (r'\varsigma', '\u03C2'), + (r'\approxeq', '\u224A'), + (r'\backcong', '\u224C'), + (r'\supseteq', '\u2287'), + (r'\circledS', '\u24C8'), + (r'\circledR', '\u00AE'), + (r'\textcent', '\u00A2'), + (r'\urcorner', '\u231D'), + (r'\lrcorner', '\u231F'), + (r'\boxminus', '\u229F'), + (r'\texteuro', '\u20AC'), + (r'\vartheta', '\u03D1'), + (r'\barwedge', '\u22BC'), + (r'\ding{86}', '\u2736'), + (r'\sqsubset', '\u228F'), + (r'\subseteq', '\u2286'), + (r'\intercal', '\u22BA'), + (r'\ding{73}', '\u2606'), + (r'\ulcorner', '\u231C'), + (r'\recorder', '\u2315'), + (r'\precnsim', '\u22E8'), + (r'\parallel', '\u2225'), + (r'\boxtimes', '\u22A0'), + (r'\ding{55}', '\u2717'), + (r'\multimap', '\u22B8'), + (r'\maltese', '\u2720'), + (r'\nearrow', '\u2197'), + (r'\swarrow', '\u2199'), + (r'\lozenge', '\u25CA'), + (r'\sqrt[3]', '\u221B'), + (r'\succsim', '\u227F'), + # (r'\tilde{}', '\u007E'), + (r'\lessgtr', '\u2276'), + (r'\Upsilon', '\u03D2'), + (r'\Cdprime', '\u042A'), + (r'\gtrless', '\u2277'), + (r'\backsim', '\u223D'), + (r'\nexists', '\u2204'), + (r'\dotplus', '\u2214'), + (r'\searrow', '\u2198'), + (r'\lessdot', '\u22D6'), + (r'\boxplus', '\u229E'), + (r'\upsilon', '\u03C5'), + (r'\epsilon', '\u03B5'), + (r'\diamond', '\u22C4'), + (r'\bigstar', '\u2605'), + (r'\ddagger', '\u2021'), + (r'\cdprime', '\u044A'), + (r'\Uparrow', '\u21D1'), + (r'\sqrt[4]', '\u221C'), + (r'\between', '\u226C'), + (r'\sqangle', '\u221F'), + (r'\digamma', '\u03DC'), + (r'\uparrow', '\u2191'), + (r'\nwarrow', '\u2196'), + (r'\precsim', '\u227E'), + (r'\breve{}', '\u02D8'), + (r'\because', '\u2235'), + (r'\bigcirc', '\u25EF'), + (r'\acute{}', '\u00B4'), + (r'\grave{}', '\u0060'), + (r'\check{}', '\u02C7'), + (r'\lesssim', '\u2272'), + (r'\partial', '\u2202'), + (r'\natural', '\u266E'), + (r'\supset', '\u2283'), + (r'\hstrok', '\u0127'), + (r'\Tstrok', '\u0166'), + (r'\coprod', '\u2210'), + (r'\models', '\u22A7'), + (r'\otimes', '\u2297'), + (r'\degree', '\u00B0'), + (r'\gtrdot', '\u22D7'), + (r'\preceq', '\u227C'), + (r'\Lambda', '\u039B'), + (r'\lambda', '\u03BB'), + (r'\cprime', '\u044C'), + (r'\varrho', '\u03F1'), + (r'\Bumpeq', '\u224E'), + (r'\hybull', '\u2043'), + (r'\lmidot', '\u0140'), + (r'\nvdash', '\u22AC'), + (r'\lbrace', '\u007B'), + (r'\bullet', '\u2022'), + (r'\varphi', '\u03C6'), + (r'\bumpeq', '\u224F'), + (r'\ddot{}', '\u00A8'), + (r'\Lmidot', '\u013F'), + (r'\Cprime', '\u042C'), + (r'\female', '\u2640'), + (r'\rtimes', '\u22CA'), + (r'\gtrsim', '\u2273'), + (r'\mapsto', '\u21A6'), + (r'\daleth', '\u2138'), + (r'\square', '\u25A0'), + (r'\nVDash', '\u22AF'), + (r'\rangle', '\u3009'), + (r'\tstrok', '\u0167'), + (r'\oslash', '\u2298'), + (r'\ltimes', '\u22C9'), + (r'\lfloor', '\u230A'), + (r'\marker', '\u25AE'), + (r'\Subset', '\u22D0'), + (r'\Vvdash', '\u22AA'), + (r'\propto', '\u221D'), + (r'\Hstrok', '\u0126'), + (r'\dlcrop', '\u230D'), + (r'\forall', '\u2200'), + (r'\nVdash', '\u22AE'), + (r'\Supset', '\u22D1'), + (r'\langle', '\u3008'), + (r'\ominus', '\u2296'), + (r'\rfloor', '\u230B'), + (r'\circeq', '\u2257'), + (r'\eqcirc', '\u2256'), + (r'\drcrop', '\u230C'), + (r'\veebar', '\u22BB'), + (r'\ulcrop', '\u230F'), + (r'\nvDash', '\u22AD'), + (r'\urcrop', '\u230E'), + (r'\exists', '\u2203'), + (r'\approx', '\u2248'), + (r'\dagger', '\u2020'), + (r'\boxdot', '\u22A1'), + (r'\succeq', '\u227D'), + (r'\bowtie', '\u22C8'), + (r'\subset', '\u2282'), + (r'\Sigma', '\u03A3'), + (r'\Omega', '\u03A9'), + (r'\nabla', '\u2207'), + (r'\colon', '\u003A'), + (r'\boxHu', '\u2567'), + (r'\boxHd', '\u2564'), + (r'\aleph', '\u2135'), + (r'\gnsim', '\u22E7'), + (r'\boxHU', '\u2569'), + (r'\boxHD', '\u2566'), + (r'\equiv', '\u2261'), + (r'\lneqq', '\u2268'), + (r'\alpha', '\u03B1'), + (r'\amalg', '\u2210'), + (r'\boxhU', '\u2568'), + (r'\boxhD', '\u2565'), + (r'\uplus', '\u228E'), + (r'\boxhu', '\u2534'), + (r'\kappa', '\u03BA'), + (r'\sigma', '\u03C3'), + (r'\boxDL', '\u2557'), + (r'\Theta', '\u0398'), + (r'\Vdash', '\u22A9'), + (r'\boxDR', '\u2554'), + (r'\boxDl', '\u2556'), + (r'\sqcap', '\u2293'), + (r'\boxDr', '\u2553'), + (r'\bar{}', '\u00AF'), + (r'\dashv', '\u22A3'), + (r'\vDash', '\u22A8'), + (r'\boxdl', '\u2510'), + (r'\boxVl', '\u2562'), + (r'\boxVh', '\u256B'), + (r'\boxVr', '\u255F'), + (r'\boxdr', '\u250C'), + (r'\boxdL', '\u2555'), + (r'\boxVL', '\u2563'), + (r'\boxVH', '\u256C'), + (r'\boxVR', '\u2560'), + (r'\boxdR', '\u2552'), + (r'\theta', '\u03B8'), + (r'\lhblk', '\u2584'), + (r'\uhblk', '\u2580'), + (r'\ldotp', '\u002E'), + (r'\ldots', '\u2026'), + (r'\boxvL', '\u2561'), + (r'\boxvH', '\u256A'), + (r'\boxvR', '\u255E'), + (r'\boxvl', '\u2524'), + (r'\boxvh', '\u253C'), + (r'\boxvr', '\u251C'), + (r'\Delta', '\u0394'), + (r'\boxUR', '\u255A'), + (r'\boxUL', '\u255D'), + (r'\oplus', '\u2295'), + (r'\boxUr', '\u2559'), + (r'\boxUl', '\u255C'), + (r'\doteq', '\u2250'), + (r'\happy', '\u32E1'), + (r'\varpi', '\u03D6'), + (r'\boxr', '\u2514'), + (r'\smile', '\u263A'), + (r'\boxul', '\u2518'), + (r'\simeq', '\u2243'), + (r'\boxuR', '\u2558'), + (r'\boxuL', '\u255B'), + (r'\boxhd', '\u252C'), + (r'\gimel', '\u2137'), + (r'\Gamma', '\u0393'), + (r'\lnsim', '\u22E6'), + (r'\sqcup', '\u2294'), + (r'\omega', '\u03C9'), + (r'\sharp', '\u266F'), + (r'\times', '\u00D7'), + (r'\block', '\u2588'), + (r'\hat{}', '\u005E'), + (r'\wedge', '\u2227'), + (r'\vdash', '\u22A2'), + (r'\angle', '\u2220'), + (r'\infty', '\u221E'), + (r'\gamma', '\u03B3'), + (r'\asymp', '\u224D'), + (r'\rceil', '\u2309'), + (r'\dot{}', '\u02D9'), + (r'\lceil', '\u2308'), + (r'\delta', '\u03B4'), + (r'\gneqq', '\u2269'), + (r'\frown', '\u2322'), + (r'\phone', '\u260E'), + (r'\vdots', '\u22EE'), + (r'\k{i}', '\u012F'), + (r'\`{I}', '\u00CC'), + (r'\perp', '\u22A5'), + (r'\"{o}', '\u00F6'), + (r'\={I}', '\u012A'), + (r'\`{a}', '\u00E0'), + (r'\v{T}', '\u0164'), + (r'\surd', '\u221A'), + (r'\H{O}', '\u0150'), + (r'\vert', '\u007C'), + (r'\k{I}', '\u012E'), + (r'\"{y}', '\u00FF'), + (r'\"{O}', '\u00D6'), + (r'\'{Y}', '\u00DD'), + (r'\u{u}', '\u045E'), + (r'\u{G}', '\u011E'), + (r'\.{E}', '\u0116'), + (r'\.{z}', '\u017C'), + (r'\v{t}', '\u0165'), + (r'\prec', '\u227A'), + (r'\H{o}', '\u0151'), + (r'\mldr', '\u2026'), + (r'\'{y}', '\u00FD'), + (r'\cong', '\u2245'), + (r'\.{e}', '\u0117'), + (r'\'{L}', '\u0139'), + (r'\star', '\u002A'), + (r'\.{Z}', '\u017B'), + (r'\'{e}', '\u00E9'), + (r'\geqq', '\u2267'), + (r'\cdot', '\u22C5'), + (r'\`{U}', '\u00D9'), + (r'\'{l}', '\u013A'), + (r'\v{L}', '\u013D'), + (r'\c{s}', '\u015F'), + (r'\'{s}', '\u015B'), + (r'\~{A}', '\u00C3'), + (r'\Vert', '\u2016'), + (r'\k{e}', '\u0119'), + (r'\lnot', '\u00AC'), + (r'\'{z}', '\u017A'), + (r'\leqq', '\u2266'), + (r'\beta', '\u03B2'), + (r'\beth', '\u2136'), + (r'\'{E}', '\u00C9'), + (r'\~{n}', '\u00F1'), + (r'\u{i}', '\u0439'), + (r'\c{S}', '\u015E'), + (r'\c{N}', '\u0145'), + (r'\H{u}', '\u0171'), + (r'\v{n}', '\u0148'), + (r'\'{S}', '\u015A'), + (r'\={U}', '\u016A'), + (r'\~{O}', '\u00D5'), + (r'\'{Z}', '\u0179'), + (r'\v{E}', '\u011A'), + (r'\'{R}', '\u0154'), + (r'\H{U}', '\u0170'), + (r'\v{N}', '\u0147'), + (r'\prod', '\u220F'), + (r'\v{s}', '\u0161'), + (r'\"{U}', '\u00DC'), + (r'\c{n}', '\u0146'), + (r'\k{U}', '\u0172'), + (r'\c{R}', '\u0156'), + (r'\'{A}', '\u00C1'), + (r'\~{o}', '\u00F5'), + (r'\v{e}', '\u011B'), + (r'\v{S}', '\u0160'), + (r'\u{A}', '\u0102'), + (r'\circ', '\u2218'), + (r'\"{u}', '\u00FC'), + (r'\flat', '\u266D'), + (r'\v{z}', '\u017E'), + (r'\r{U}', '\u016E'), + (r'\`{O}', '\u00D2'), + (r'\={u}', '\u016B'), + (r'\oint', '\u222E'), + (r'\c{K}', '\u0136'), + (r'\k{u}', '\u0173'), + (r'\not<', '\u226E'), + (r'\not>', '\u226F'), + (r'\`{o}', '\u00F2'), + (r'\"{I}', '\u00CF'), + (r'\v{D}', '\u010E'), + (r'\.{G}', '\u0120'), + (r'\r{u}', '\u016F'), + (r'\not=', '\u2260'), + (r'\`{u}', '\u00F9'), + (r'\v{c}', '\u010D'), + (r'\c{k}', '\u0137'), + (r'\.{g}', '\u0121'), + (r'\'{N}', '\u0143'), + (r'\odot', '\u2299'), + (r'\`{e}', '\u044D'), + (r'\c{T}', '\u0162'), + (r'\v{d}', '\u010F'), + (r'\"{e}', '\u0451'), + (r'\'{I}', '\u00CD'), + (r'\v{R}', '\u0158'), + (r'\k{a}', '\u0105'), + (r'\nldr', '\u2025'), + (r'\`{A}', '\u00C0'), + (r'\'{n}', '\u0144'), + (r'\~{N}', '\u00D1'), + (r'\nmid', '\u2224'), + (r'\.{C}', '\u010A'), + (r'\zeta', '\u03B6'), + (r'\~{u}', '\u0169'), + (r'\`{E}', '\u042D'), + (r'\~{a}', '\u00E3'), + (r'\c{t}', '\u0163'), + (r'\={o}', '\u014D'), + (r'\v{r}', '\u0159'), + (r'\={A}', '\u0100'), + (r'\.{c}', '\u010B'), + (r'\~{U}', '\u0168'), + (r'\k{A}', '\u0104'), + (r'\"{a}', '\u00E4'), + (r'\u{U}', '\u040E'), + (r'\iota', '\u03B9'), + (r'\={O}', '\u014C'), + (r'\c{C}', '\u00C7'), + (r'\gneq', '\u2269'), + (r'\'{c}', '\u0107'), + (r'\boxH', '\u2550'), + (r'\hbar', '\u210F'), + (r'\"{A}', '\u00C4'), + (r'\boxv', '\u2502'), + (r'\boxh', '\u2500'), + (r'\male', '\u2642'), + (r'\'{u}', '\u00FA'), + (r'\sqrt', '\u221A'), + (r'\succ', '\u227B'), + (r'\c{c}', '\u00E7'), + (r'\'{C}', '\u0106'), + (r'\v{l}', '\u013E'), + (r'\u{a}', '\u0103'), + (r'\v{Z}', '\u017D'), + (r'\'{o}', '\u00F3'), + (r'\c{G}', '\u0122'), + (r'\v{C}', '\u010C'), + (r'\lneq', '\u2268'), + (r'\"{E}', '\u0401'), + (r'\={a}', '\u0101'), + (r'\c{l}', '\u013C'), + (r'\'{a}', '\u00E1'), + (r'\={E}', '\u0112'), + (r'\boxV', '\u2551'), + (r'\u{g}', '\u011F'), + (r'\'{O}', '\u00D3'), + (r'\'{g}', '\u01F5'), + (r'\u{I}', '\u0419'), + (r'\c{L}', '\u013B'), + (r'\k{E}', '\u0118'), + (r'\.{I}', '\u0130'), + (r'\~{I}', '\u0128'), + (r'\quad', '\u2003'), + (r'\c{r}', '\u0157'), + (r'\'{r}', '\u0155'), + (r'\"{Y}', '\u0178'), + (r'\={e}', '\u0113'), + (r'\'{U}', '\u00DA'), + (r'\leq', '\u2264'), + (r'\Cup', '\u22D3'), + (r'\Psi', '\u03A8'), + (r'\neq', '\u2260'), + (r'\k{}', '\u02DB'), + (r'\={}', '\u203E'), + (r'\H{}', '\u02DD'), + (r'\cup', '\u222A'), + (r'\geq', '\u2265'), + (r'\mho', '\u2127'), + (r'\Dzh', '\u040F'), + (r'\cap', '\u2229'), + (r'\bot', '\u22A5'), + (r'\psi', '\u03C8'), + (r'\chi', '\u03C7'), + (r'\c{}', '\u00B8'), + (r'\Phi', '\u03A6'), + (r'\ast', '\u002A'), + (r'\ell', '\u2113'), + (r'\top', '\u22A4'), + (r'\lll', '\u22D8'), + (r'\tau', '\u03C4'), + (r'\Cap', '\u22D2'), + (r'\sad', '\u2639'), + (r'\iff', '\u21D4'), + (r'\eta', '\u03B7'), + (r'\eth', '\u00F0'), + (r'\d{}', '\u0323'), + (r'\rho', '\u03C1'), + (r'\dzh', '\u045F'), + (r'\div', '\u00F7'), + (r'\phi', '\u03D5'), + (r'\Rsh', '\u21B1'), + (r'\vee', '\u2228'), + (r'\b{}', '\u02CD'), + (r'\t{}', '\u0361'), + (r'\int', '\u222B'), + (r'\sim', '\u223C'), + (r'\r{}', '\u02DA'), + (r'\Lsh', '\u21B0'), + (r'\yen', '\u00A5'), + (r'\ggg', '\u22D9'), + (r'\mid', '\u2223'), + (r'\sum', '\u2211'), + (r'\Dz', '\u0405'), + (r'\Re', '\u211C'), + (r'\oe', '\u0153'), + (r'\DH', '\u00D0'), + (r'\ll', '\u226A'), + (r'\ng', '\u014B'), + (r'\'G', '\u0403'), + (r'\wr', '\u2240'), + (r'\wp', '\u2118'), + (r'\=I', '\u0406'), + (r'\:)', '\u263A'), + (r'\:(', '\u2639'), + (r'\AE', '\u00C6'), + (r'\AA', '\u00C5'), + (r'\ss', '\u00DF'), + (r'\dz', '\u0455'), + (r'\ae', '\u00E6'), + (r'\aa', '\u00E5'), + (r'\th', '\u00FE'), + (r'\to', '\u2192'), + (r'\Pi', '\u03A0'), + (r'\mp', '\u2213'), + (r'\Im', '\u2111'), + (r'\pm', '\u00B1'), + (r'\pi', '\u03C0'), + (r'\"I', '\u0407'), + (r'\'C', '\u040B'), + (r'\in', '\u2208'), + (r'\'K', '\u040C'), + (r'\'k', '\u045C'), + (r'\'c', '\u045B'), + (r'\'g', '\u0453'), + (r'\ni', '\u220B'), + (r'\ne', '\u2260'), + (r'\TH', '\u00DE'), + (r'\Xi', '\u039E'), + (r'\nu', '\u03BD'), + (r'\NG', '\u014A'), + (r'\:G', '\u32E1'), + (r'\xi', '\u03BE'), + (r'\OE', '\u0152'), + (r'\gg', '\u226B'), + (r'\DJ', '\u0110'), + (r'\=e', '\u0454'), + (r'\=E', '\u0404'), + (r'\mu', '\u03BC'), + (r'\dj', '\u0111'), + # (r'\:', '\u2004'), + # (r'\;', '\u2002'), + (r'\&', '\u0026'), + (r'\$', '\u0024'), + (r'\%', '\u0025'), + (r'\#', '\u0023'), + (r'\,', '\u2009'), + (r'\-', '\u00AD'), + (r'\S', '\u00A7'), + (r'\P', '\u00B6'), + (r'\O', '\u00D8'), + (r'\L', '\u0141'), + (r'\}', '\u007D'), + (r'\o', '\u00F8'), + (r'\l', '\u0142'), + (r'\h', '\u210E'), + (r'\i', '\u2139'), +] +COMBININGMARKS_V06 = [ + (r'\tilde', '\u0303'), + (r'\grave', '\u0300'), + (r'\dot', '\u0307'), + (r'\acute', '\u0301'), + (r'\doubleunderline', '\u0333'), + (r'\ddot', '\u0308'), + (r'\slash', '\u0338'), + (r'\overline', '\u0305'), + (r'\vec', '\u20D7'), + (r'\hat', '\u0302'), + (r'\breve', '\u0306'), + (r'\underline', '\u0332'), + (r'\strikethrough', '\u0335'), + (r'\bar', '\u0305'), +] +SUBSUPERSCRIPTS_V06 = [ + (r'_x', '\u2093'), + (r'_v', '\u1D65'), + (r'_u', '\u1D64'), + (r'_t', '\u209C'), + (r'_s', '\u209B'), + (r'_r', '\u1D63'), + (r'_p', '\u209A'), + (r'_o', '\u2092'), + (r'_n', '\u2099'), + (r'_m', '\u2098'), + (r'_l', '\u2097'), + (r'_k', '\u2096'), + (r'_j', '\u2C7C'), + (r'_i', '\u1D62'), + (r'_h', '\u2095'), + (r'_e', '\u2091'), + (r'_a', '\u2090'), + # (r'\^\u222B', '\u1DB4'), + (r'_>', '\u02F2'), + (r'_=', '\u208C'), + (r'_<', '\u02F1'), + (r'_9', '\u2089'), + (r'_8', '\u2088'), + (r'_7', '\u2087'), + (r'_6', '\u2086'), + (r'_5', '\u2085'), + (r'_4', '\u2084'), + (r'_3', '\u2083'), + (r'_2', '\u2082'), + (r'_1', '\u2081'), + (r'_0', '\u2080'), + (r'_-', '\u208B'), + (r'_+', '\u208A'), + (r'_)', '\u208E'), + (r'_(', '\u208D'), + # (r'_\u03C1', '\u1D68'), + # (r'_\u03C7', '\u1D6A'), + # (r'_\u03C6', '\u1D69'), + # (r'_\u03B2', '\u1D66'), + # (r'_\u03B3', '\u1D67'), + # (r'\^\u03C6', '\u1D60'), + # (r'\^\u03C7', '\u1D61'), + # (r'\^\u03B4', '\u1D5F'), + # (r'\^\u03B3', '\u1D5E'), + # (r'\^\u03B2', '\u1D5D'), + (r'^8', '\u2078'), + (r'^9', '\u2079'), + (r'^<', '\u02C2'), + (r'^=', '\u207C'), + (r'^>', '\u02C3'), + (r'^0', '\u2070'), + (r'^1', '\u00B9'), + (r'^2', '\u00B2'), + (r'^3', '\u00B3'), + (r'^4', '\u2074'), + (r'^5', '\u2075'), + (r'^6', '\u2076'), + (r'^7', '\u2077'), + (r'^(', '\u207D'), + (r'^)', '\u207E'), + (r'^*', '\u002A'), + (r'^+', '\u207A'), + (r'^-', '\u207B'), + (r'^P', '\u1D3E'), + (r'^R', '\u1D3F'), + (r'^T', '\u1D40'), + (r'^U', '\u1D41'), + (r'^V', '\u1111'), + (r'^W', '\u1D42'), + (r'^H', '\u1D34'), + (r'^I', '\u1D35'), + (r'^J', '\u1D36'), + (r'^K', '\u1D37'), + (r'^L', '\u1D38'), + (r'^M', '\u1D39'), + (r'^N', '\u1D3A'), + (r'^O', '\u1D3C'), + (r'^A', '\u1D2C'), + (r'^B', '\u1D2E'), + (r'^D', '\u1D30'), + (r'^E', '\u1D31'), + (r'^G', '\u1D33'), + (r'^x', '\u02E3'), + (r'^y', '\u02B8'), + (r'^z', '\u1DBB'), + (r'^p', '\u1D56'), + (r'^r', '\u02B3'), + (r'^s', '\u02E2'), + (r'^t', '\u1D57'), + (r'^u', '\u1D58'), + (r'^v', '\u1D5B'), + (r'^w', '\u02B7'), + (r'^h', '\u02B0'), + (r'^i', '\u2071'), + (r'^j', '\u02B2'), + (r'^k', '\u1D4F'), + (r'^l', '\u02E1'), + (r'^m', '\u1D50'), + (r'^n', '\u207F'), + (r'^o', '\u1D52'), + (r'^a', '\u1D43'), + (r'^b', '\u1D47'), + (r'^c', '\u1D9C'), + (r'^d', '\u1D48'), + (r'^e', '\u1D49'), + (r'^f', '\u1DA0'), + (r'^g', '\u1D4D'), +] + + +@pytest.mark.parametrize('sets_of_symbols', [SYMBOLS_V06, SUBSUPERSCRIPTS_V06]) +def test_symbols_v06(sets_of_symbols): + for i in range(0, len(sets_of_symbols), 20): + symbols = sets_of_symbols[i:i + 20] + latex = ''.join([l for l, _ in symbols]) + unicode = ''.join([u for _, u in symbols]) + print(latex) + + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + latex, + ]) + print(r.decode()) + assert r.decode().strip() == unicode.strip() + + +def test_combiningmarks_v06(): + for i in range(0, len(COMBININGMARKS_V06), 20): + symbols = COMBININGMARKS_V06[i:i + 20] + latex = ''.join([l + '{a}' for l, _ in symbols]) + unicode = ''.join(['a' + u for _, u in symbols]) + print(latex) + + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + latex, + ]) + print(r.decode()) + assert r.decode().strip() == unicode + + +def test_combiningmarks_v06_nested_replace(): + for i in range(0, len(COMBININGMARKS_V06), 20): + symbols = COMBININGMARKS_V06[i:i + 20] + latex = ''.join([l + '{\\alpha}' for l, _ in symbols]) + unicode = ''.join(['\u03B1' + u for _, u in symbols]) + print(latex) + + r = subprocess.check_output([ + PYTHON, '-m', 'unicodeit.cli', + latex, + ]) + print(r.decode()) + assert r.decode().strip() == unicode diff --git a/unicodeit/ts_src/data.ts b/unicodeit/ts_src/data.ts new file mode 100644 index 0000000..b5442ca --- /dev/null +++ b/unicodeit/ts_src/data.ts @@ -0,0 +1,4391 @@ +// autogenerated with python -m unicodeit.export_data + +export const replacements = [ + ['\\barleftarrowrightarrowba', '↹'], + ['\\rightarrowshortleftarrow', '⥂'], + ['\\leftarrowshortrightarrow', '⥃'], + ['\\shortrightarrowleftarrow', '⥄'], + ['\\leftrightharpoondowndown', '⥐'], + ['\\smallblacktriangleright', '▸'], + ['\\invwhiteupperhalfcircle', '◚'], + ['\\invwhitelowerhalfcircle', '◛'], + ['\\concavediamondtickright', '⟣'], + ['\\nvtwoheadrightarrowtail', '⤗'], + ['\\nVtwoheadrightarrowtail', '⤘'], + ['\\updownharpoonrightright', '⥏'], + ['\\updownharpoonsleftright', '⥮'], + ['\\downupharpoonsleftright', '⥯'], + ['\\mathsfbfit{\\varepsilon}', '𝞮'], + ['\\leftrightarrowtriangle', '⇿'], + ['\\smallblacktriangleleft', '◂'], + ['\\blackcircleulquadwhite', '◕'], + ['\\concavediamondtickleft', '⟢'], + ['\\leftrightharpoonupdown', '⥊'], + ['\\leftrightharpoondownup', '⥋'], + ['\\updownharpoonrightleft', '⥌'], + ['\\updownharpoonleftright', '⥍'], + ['\\downtrianglerightblack', '⧩'], + ['\\partialmeetcontraction', '⪣'], + ['\\nvtwoheadleftarrowtail', '⬼'], + ['\\nVtwoheadleftarrowtail', '⬽'], + ['\\underrightharpoondown', '⃬'], + ['\\barovernorthwestarrow', '↸'], + ['\\rangledownzigzagarrow', '⍼'], + ['\\circlebottomhalfblack', '◒'], + ['\\twoheadrightarrowtail', '⤖'], + ['\\updownharpoonleftleft', '⥑'], + ['\\downharpoonsleftright', '⥥'], + ['\\leftrightharpoonsdown', '⥧'], + ['\\rightleftharpoonsdown', '⥩'], + ['\\downtriangleleftblack', '⧨'], + ['\\blackdiamonddownarrow', '⧪'], + ['\\closedvarcupsmashprod', '⩐'], + ['\\mathbfit{\\varepsilon}', '𝜺'], + ['\\mathbold{\\varepsilon}', '𝜺'], + ['\\mathsfbf{\\varepsilon}', '𝝴'], + ['\\mathsfbfit{\\varsigma}', '𝞻'], + ['\\mathsfbfit{\\vartheta}', '𝟅'], + ['\\underleftharpoondown', '⃭'], + ['\\mathring{\\mathrm{A}}', 'Å'], + ['\\CapitalDifferentialD', 'ⅅ'], + ['\\bigblacktriangledown', '▼'], + ['\\circlerighthalfblack', '◑'], + ['\\blackrighthalfcircle', '◗'], + ['\\blackcircledrightdot', '⚈'], + ['\\whiteinwhitetriangle', '⟁'], + ['\\whitesquaretickright', '⟥'], + ['\\barrightarrowdiamond', '⤠'], + ['\\downrightcurvedarrow', '⤵'], + ['\\rightdowncurvedarrow', '⤷'], + ['\\curvearrowrightminus', '⤼'], + ['\\leftrightarrowcircle', '⥈'], + ['\\twoheaduparrowcircle', '⥉'], + ['\\leftrightharpoonupup', '⥎'], + ['\\leftrightharpoondown', '⥐'], + ['\\dashrightharpoondown', '⥭'], + ['\\blackcircledownarrow', '⧭'], + ['\\NestedGreaterGreater', '⪢'], + ['\\twoheadleftarrowtail', '⬻'], + ['\\rightarrowbackapprox', '⭈'], + ['\\mathsfbfit{\\Upsilon}', '𝞤'], + ['\\mathsfbfit{\\upsilon}', '𝞾'], + ['\\mathsfbfit{\\epsilon}', '𝟄'], + ['\\textfractionsolidus', '⁄'], + ['\\leftrightsquigarrow', '↭'], + ['\\mathrm{\\varepsilon}', 'ε'], + ['\\whitearrowupfrombar', '⇪'], + ['\\blockthreeqtrshaded', '▓'], + ['\\blackinwhitediamond', '◈'], + ['\\circlelefthalfblack', '◐'], + ['\\blacklefthalfcircle', '◖'], + ['\\blackcircledtwodots', '⚉'], + ['\\whitesquaretickleft', '⟤'], + ['\\longrightsquigarrow', '⟿'], + ['\\nvtwoheadrightarrow', '⤀'], + ['\\nVtwoheadrightarrow', '⤁'], + ['\\diamondleftarrowbar', '⤟'], + ['\\leftdowncurvedarrow', '⤶'], + ['\\downharpoonrightbar', '⥕'], + ['\\rightharpoondownbar', '⥗'], + ['\\bardownharpoonright', '⥝'], + ['\\barrightharpoondown', '⥟'], + ['\\upharpoonsleftright', '⥣'], + ['\\rightharpoonsupdown', '⥤'], + ['\\leftrightharpoonsup', '⥦'], + ['\\rightleftharpoonsup', '⥨'], + ['\\dashleftharpoondown', '⥫'], + ['\\twoheadleftdbkarrow', '⬷'], + ['\\leftarrowbackapprox', '⭂'], + ['\\mathbf{\\varepsilon}', '𝛆'], + ['\\mathit{\\varepsilon}', '𝜀'], + ['\\mathbfit{\\varsigma}', '𝝇'], + ['\\mathbold{\\varsigma}', '𝝇'], + ['\\mathbfit{\\vartheta}', '𝝑'], + ['\\mathbold{\\vartheta}', '𝝑'], + ['\\mathsfbf{\\varsigma}', '𝞁'], + ['\\mathsfbf{\\vartheta}', '𝞋'], + ['\\mathsfbfit{\\Lambda}', '𝞚'], + ['\\mathsfbfit{\\lambda}', '𝞴'], + ['\\mathsfbfit{\\varphi}', '𝞿'], + ['\\mbfitsansvarepsilon', '𝟄'], + ['\\mathsfbfit{\\varrho}', '𝟈'], + ['\\textpertenthousand', '‱'], + ['\\blacktriangleright', '▸'], + ['\\rightharpoonaccent', '⃑'], + ['\\overleftrightarrow', '⃡'], + ['\\acwopencirclearrow', '↺'], + ['\\upharpoonrightdown', '⇂'], + ['\\circleonrightarrow', '⇴'], + ['\\rightarrowtriangle', '⇾'], + ['\\PrecedesSlantEqual', '≼'], + ['\\SucceedsSlantEqual', '≽'], + ['\\measuredrightangle', '⊾'], + ['\\blackinwhitesquare', '▣'], + ['\\parallelogramblack', '▰'], + ['\\bigblacktriangleup', '▲'], + ['\\smalltriangleright', '▹'], + ['\\circletophalfblack', '◓'], + ['\\inversewhitecircle', '◙'], + ['\\trianglerightblack', '◮'], + ['\\longleftrightarrow', '⟷'], + ['\\Longleftrightarrow', '⟺'], + ['\\curvearrowleftplus', '⤽'], + ['\\ccwundercurvearrow', '⤿'], + ['\\leftrightharpoonup', '⥎'], + ['\\rightupdownharpoon', '⥏'], + ['\\RightDownVectorBar', '⥕'], + ['\\barleftharpoondown', '⥖'], + ['\\DownRightVectorBar', '⥗'], + ['\\downharpoonleftbar', '⥙'], + ['\\RightDownTeeVector', '⥝'], + ['\\leftharpoondownbar', '⥞'], + ['\\DownRightTeeVector', '⥟'], + ['\\bardownharpoonleft', '⥡'], + ['\\leftharpoonsupdown', '⥢'], + ['\\rightrightharpoons', '⥤'], + ['\\rightharpoonupdash', '⥬'], + ['\\circledwhitebullet', '⦾'], + ['\\errbarblackdiamond', '⧱'], + ['\\longleftsquigarrow', '⬳'], + ['\\nvtwoheadleftarrow', '⬴'], + ['\\nVtwoheadleftarrow', '⬵'], + ['\\bsimilarrightarrow', '⭇'], + ['\\rightarrowbsimilar', '⭌'], + ['\\rightpentagonblack', '⭓'], + ['\\mathbfit{\\Upsilon}', '𝜰'], + ['\\mathbold{\\Upsilon}', '𝜰'], + ['\\mathbfit{\\upsilon}', '𝝊'], + ['\\mathbold{\\upsilon}', '𝝊'], + ['\\mathbfit{\\epsilon}', '𝝐'], + ['\\mathbold{\\epsilon}', '𝝐'], + ['\\mathsfbf{\\Upsilon}', '𝝪'], + ['\\mathsfbf{\\upsilon}', '𝞄'], + ['\\mathsfbf{\\epsilon}', '𝞊'], + ['\\mathsfbfit{\\Gamma}', '𝞒'], + ['\\mathsfbfit{\\Delta}', '𝞓'], + ['\\mathsfbfit{\\Theta}', '𝞗'], + ['\\mathsfbfit{\\Sigma}', '𝞢'], + ['\\mathsfbfit{\\Omega}', '𝞨'], + ['\\mathsfbfit{\\alpha}', '𝞪'], + ['\\mathsfbfit{\\gamma}', '𝞬'], + ['\\mathsfbfit{\\delta}', '𝞭'], + ['\\mathsfbfit{\\theta}', '𝞱'], + ['\\mathsfbfit{\\kappa}', '𝞳'], + ['\\mathsfbfit{\\sigma}', '𝞼'], + ['\\mathsfbfit{\\omega}', '𝟂'], + ['\\mathsfbfit{\\varpi}', '𝟉'], + ['\\blacktriangledown', '▾'], + ['\\blacktriangleleft', '◂'], + ['\\twoheadrightarrow', '↠'], + ['\\leftrightharpoons', '⇋'], + ['\\rightleftharpoons', '⇌'], + ['\\textreferencemark', '※'], + ['\\mathrm{\\varsigma}', 'ς'], + ['\\mathrm{\\vartheta}', 'ϑ'], + ['\\leftharpoonaccent', '⃐'], + ['\\cwopencirclearrow', '↻'], + ['\\upharpoonleftdown', '⇃'], + ['\\leftarrowtriangle', '⇽'], + ['\\kernelcontraction', '∻'], + ['\\vardoublebarwedge', '⌆'], + ['\\varhexagonlrbonds', '⌬'], + ['\\APLvert{\\APLdown}', '⍒'], + ['\\varcarriagereturn', '⏎'], + ['\\blackpointerright', '►'], + ['\\whitepointerright', '▻'], + ['\\smalltriangledown', '▿'], + ['\\smalltriangleleft', '◃'], + ['\\circleurquadblack', '◔'], + ['\\triangleleftblack', '◭'], + ['\\acwgapcirclearrow', '⟲'], + ['\\rightarrowonoplus', '⟴'], + ['\\rightarrowdiamond', '⤞'], + ['\\uprightcurvearrow', '⤴'], + ['\\cwundercurvearrow', '⤾'], + ['\\leftupdownharpoon', '⥑'], + ['\\rightharpoonupbar', '⥓'], + ['\\barupharpoonright', '⥔'], + ['\\DownLeftVectorBar', '⥖'], + ['\\LeftDownVectorBar', '⥙'], + ['\\barrightharpoonup', '⥛'], + ['\\upharpoonrightbar', '⥜'], + ['\\DownLeftTeeVector', '⥞'], + ['\\LeftDownTeeVector', '⥡'], + ['\\leftharpoonupdash', '⥪'], + ['\\similarrightarrow', '⥲'], + ['\\rightarrowsimilar', '⥴'], + ['\\measuredangleleft', '⦛'], + ['\\errbarblacksquare', '⧯'], + ['\\errbarblackcircle', '⧳'], + ['\\diamondrightblack', '⬗'], + ['\\circleonleftarrow', '⬰'], + ['\\bsimilarleftarrow', '⭁'], + ['\\leftarrowbsimilar', '⭋'], + ['\\mathbf{\\varsigma}', '𝛓'], + ['\\mathbf{\\vartheta}', '𝛝'], + ['\\mathit{\\varsigma}', '𝜍'], + ['\\mathit{\\vartheta}', '𝜗'], + ['\\mathbfit{\\Lambda}', '𝜦'], + ['\\mathbold{\\Lambda}', '𝜦'], + ['\\mathbfit{\\lambda}', '𝝀'], + ['\\mathbold{\\lambda}', '𝝀'], + ['\\mathbfit{\\varphi}', '𝝋'], + ['\\mathbold{\\varphi}', '𝝋'], + ['\\mathbfit{\\varrho}', '𝝔'], + ['\\mathbold{\\varrho}', '𝝔'], + ['\\mathsfbf{\\Lambda}', '𝝠'], + ['\\mathsfbf{\\lambda}', '𝝺'], + ['\\mathsfbf{\\varphi}', '𝞅'], + ['\\mbfsansvarepsilon', '𝞊'], + ['\\mathsfbf{\\varrho}', '𝞎'], + ['\\mbfitsansvarTheta', '𝞡'], + ['\\mathsfbfit{\\beta}', '𝞫'], + ['\\mathsfbfit{\\zeta}', '𝞯'], + ['\\mathsfbfit{\\iota}', '𝞲'], + ['\\mbfitsansvarsigma', '𝞻'], + ['\\mbfitsansvartheta', '𝟅'], + ['\\mbfitsansvarkappa', '𝟆'], + ['\\circlearrowright', '↻'], + ['\\rightrightarrows', '⇉'], + ['\\vartriangleright', '⊳'], + ['\\textordmasculine', 'º'], + ['\\textvisiblespace', '␣'], + ['\\twoheadleftarrow', '↞'], + ['\\downharpoonright', '⇂'], + ['\\ntrianglerighteq', '⋭'], + ['\\rightharpoondown', '⇁'], + ['\\mathrm{\\Upsilon}', 'Υ'], + ['\\mathrm{\\upsilon}', 'υ'], + ['\\mathrm{\\epsilon}', 'ϵ'], + ['\\twoheaddownarrow', '↡'], + ['\\upharpoonrightup', '↾'], + ['\\uparrowdownarrow', '⇅'], + ['\\downarrowuparrow', '⇵'], + ['\\rightthreearrows', '⇶'], + ['\\nvleftrightarrow', '⇹'], + ['\\nVleftrightarrow', '⇼'], + ['\\varointclockwise', '∲'], + ['\\ointctrclockwise', '∳'], + ['\\multimapdotbothA', '⊶'], + ['\\multimapdotbothB', '⊷'], + ['\\NotRightTriangle', '⋫'], + ['\\APLcirc{\\APLbox}', '⌼'], + ['\\APLvert{\\Circle}', '⌽'], + ['\\APLcirc{\\Circle}', '⌾'], + ['\\APLrightarrowbox', '⍈'], + ['\\APLnot{\\APLdown}', '⍫'], + ['\\blackpointerleft', '◄'], + ['\\whitepointerleft', '◅'], + ['\\squarerightblack', '◨'], + ['\\cwgapcirclearrow', '⟳'], + ['\\nvLeftrightarrow', '⤄'], + ['\\nvrightarrowtail', '⤔'], + ['\\nVrightarrowtail', '⤕'], + ['\\diamondleftarrow', '⤝'], + ['\\rightcurvedarrow', '⤳'], + ['\\acwunderarcarrow', '⤻'], + ['\\leftrightharpoon', '⥊'], + ['\\rightleftharpoon', '⥋'], + ['\\barleftharpoonup', '⥒'], + ['\\RightUpVectorBar', '⥔'], + ['\\barupharpoonleft', '⥘'], + ['\\leftharpoonupbar', '⥚'], + ['\\RightUpTeeVector', '⥜'], + ['\\upharpoonleftbar', '⥠'], + ['\\leftleftharpoons', '⥢'], + ['\\downdownharpoons', '⥥'], + ['\\uprevequilibrium', '⥯'], + ['\\leftarrowsimilar', '⥳'], + ['\\rightarrowapprox', '⥵'], + ['\\sphericalangleup', '⦡'], + ['\\RightTriangleBar', '⧐'], + ['\\diamondleftblack', '⬖'], + ['\\leftarrowonoplus', '⬲'], + ['\\rightarrowsupset', '⭄'], + ['\\similarleftarrow', '⭉'], + ['\\mathbf{\\Upsilon}', '𝚼'], + ['\\mathbf{\\upsilon}', '𝛖'], + ['\\mathbf{\\epsilon}', '𝛜'], + ['\\mathit{\\Upsilon}', '𝛶'], + ['\\mathit{\\upsilon}', '𝜐'], + ['\\mathit{\\partial}', '𝜕'], + ['\\mathit{\\epsilon}', '𝜖'], + ['\\mathbfit{\\Gamma}', '𝜞'], + ['\\mathbold{\\Gamma}', '𝜞'], + ['\\mathbfit{\\Delta}', '𝜟'], + ['\\mathbold{\\Delta}', '𝜟'], + ['\\mathbfit{\\Theta}', '𝜣'], + ['\\mathbold{\\Theta}', '𝜣'], + ['\\mathbfit{\\Sigma}', '𝜮'], + ['\\mathbold{\\Sigma}', '𝜮'], + ['\\mathbfit{\\Omega}', '𝜴'], + ['\\mathbold{\\Omega}', '𝜴'], + ['\\mathbfit{\\alpha}', '𝜶'], + ['\\mathbold{\\alpha}', '𝜶'], + ['\\mathbfit{\\gamma}', '𝜸'], + ['\\mathbold{\\gamma}', '𝜸'], + ['\\mathbfit{\\delta}', '𝜹'], + ['\\mathbold{\\delta}', '𝜹'], + ['\\mathbfit{\\theta}', '𝜽'], + ['\\mathbold{\\theta}', '𝜽'], + ['\\mathbfit{\\kappa}', '𝜿'], + ['\\mathbold{\\kappa}', '𝜿'], + ['\\mathbfit{\\sigma}', '𝝈'], + ['\\mathbold{\\sigma}', '𝝈'], + ['\\mathbfit{\\omega}', '𝝎'], + ['\\mathbold{\\omega}', '𝝎'], + ['\\mathbfit{\\varpi}', '𝝕'], + ['\\mathbold{\\varpi}', '𝝕'], + ['\\mathsfbf{\\Gamma}', '𝝘'], + ['\\mathsfbf{\\Delta}', '𝝙'], + ['\\mathsfbf{\\Theta}', '𝝝'], + ['\\mathsfbf{\\Sigma}', '𝝨'], + ['\\mathsfbf{\\Omega}', '𝝮'], + ['\\mathsfbf{\\alpha}', '𝝰'], + ['\\mathsfbf{\\gamma}', '𝝲'], + ['\\mathsfbf{\\delta}', '𝝳'], + ['\\mathsfbf{\\theta}', '𝝷'], + ['\\mathsfbf{\\kappa}', '𝝹'], + ['\\mathsfbf{\\sigma}', '𝞂'], + ['\\mathsfbf{\\omega}', '𝞈'], + ['\\mathsfbf{\\varpi}', '𝞏'], + ['\\mbfitsansEpsilon', '𝞔'], + ['\\mbfitsansOmicron', '𝞞'], + ['\\mbfitsansUpsilon', '𝞤'], + ['\\mathsfbfit{\\Phi}', '𝞥'], + ['\\mathsfbfit{\\Psi}', '𝞧'], + ['\\mbfitsansepsilon', '𝞮'], + ['\\mathsfbfit{\\eta}', '𝞰'], + ['\\mbfitsansomicron', '𝞸'], + ['\\mathsfbfit{\\rho}', '𝞺'], + ['\\mathsfbfit{\\tau}', '𝞽'], + ['\\mbfitsansupsilon', '𝞾'], + ['\\mathsfbfit{\\chi}', '𝟀'], + ['\\mathsfbfit{\\psi}', '𝟁'], + ['\\mbfitsanspartial', '𝟃'], + ['\\mathsfbfit{\\phi}', '𝟇'], + ['\\textperthousand', '‰'], + ['\\leftrightarrows', '⇆'], + ['\\textmusicalnote', '♪'], + ['\\nleftrightarrow', '↮'], + ['\\rightleftarrows', '⇄'], + ['\\bigtriangledown', '▽'], + ['\\textordfeminine', 'ª'], + ['\\ntrianglelefteq', '⋬'], + ['\\rightthreetimes', '⋌'], + ['\\trianglerighteq', '⊵'], + ['\\vartriangleleft', '⊲'], + ['\\rightsquigarrow', '⇝'], + ['\\downharpoonleft', '⇃'], + ['\\curvearrowright', '↷'], + ['\\circlearrowleft', '↺'], + ['\\leftharpoondown', '↽'], + ['\\nLeftrightarrow', '⇎'], + ['\\mathrm{\\Lambda}', 'Λ'], + ['\\mathrm{\\lambda}', 'λ'], + ['\\mathrm{\\varphi}', 'φ'], + ['\\mathrm{\\varrho}', 'ϱ'], + ['\\enleadertwodots', '‥'], + ['\\unicodeellipsis', '…'], + ['\\enclosetriangle', '⃤'], + ['\\widebridgeabove', '⃩'], + ['\\underrightarrow', '⃯'], + ['\\downzigzagarrow', '↯'], + ['\\upharpoonleftup', '↿'], + ['\\rightwhitearrow', '⇨'], + ['\\NotGreaterTilde', '≵'], + ['\\NotLeftTriangle', '⋪'], + ['\\APLnotbackslash', '⍀'], + ['\\APLleftarrowbox', '⍇'], + ['\\APLvert{\\APLup}', '⍋'], + ['\\APLdownarrowbox', '⍗'], + ['\\blockhalfshaded', '▒'], + ['\\squarecrossfill', '▩'], + ['\\hrectangleblack', '▬'], + ['\\vrectangleblack', '▮'], + ['\\blacktriangleup', '▴'], + ['\\smalltriangleup', '▵'], + ['\\lrblacktriangle', '◢'], + ['\\llblacktriangle', '◣'], + ['\\ulblacktriangle', '◤'], + ['\\urblacktriangle', '◥'], + ['\\squareleftblack', '◧'], + ['\\circledrightdot', '⚆'], + ['\\downarrowbarred', '⤈'], + ['\\cwrightarcarrow', '⤸'], + ['\\acwleftarcarrow', '⤹'], + ['\\acwoverarcarrow', '⤺'], + ['\\LeftUpVectorBar', '⥘'], + ['\\LeftUpTeeVector', '⥠'], + ['\\rightbarharpoon', '⥬'], + ['\\barrightharpoon', '⥭'], + ['\\equalrightarrow', '⥱'], + ['\\leftarrowsubset', '⥺'], + ['\\measanglerutone', '⦨'], + ['\\measanglelutonw', '⦩'], + ['\\measanglerdtose', '⦪'], + ['\\measangleldtosw', '⦫'], + ['\\measangleurtone', '⦬'], + ['\\measangleultonw', '⦭'], + ['\\measangledrtose', '⦮'], + ['\\measangledltosw', '⦯'], + ['\\circledparallel', '⦷'], + ['\\uparrowoncircle', '⦽'], + ['\\LeftTriangleBar', '⧏'], + ['\\circledownarrow', '⧬'], + ['\\bigtriangleleft', '⨞'], + ['\\diamondtopblack', '⬘'], + ['\\diamondbotblack', '⬙'], + ['\\varhexagonblack', '⬢'], + ['\\leftthreearrows', '⬱'], + ['\\twoheadmapsfrom', '⬶'], + ['\\nvleftarrowtail', '⬹'], + ['\\nVleftarrowtail', '⬺'], + ['\\leftcurvedarrow', '⬿'], + ['\\leftarrowapprox', '⭊'], + ['\\mathbf{\\Lambda}', '𝚲'], + ['\\mathbf{\\lambda}', '𝛌'], + ['\\mathbf{\\varphi}', '𝛗'], + ['\\mathbf{\\varrho}', '𝛠'], + ['\\mathit{\\Lambda}', '𝛬'], + ['\\mathit{\\lambda}', '𝜆'], + ['\\mathit{\\varphi}', '𝜑'], + ['\\mathit{\\varrho}', '𝜚'], + ['\\mathbfit{\\beta}', '𝜷'], + ['\\mathbold{\\beta}', '𝜷'], + ['\\mathbfit{\\zeta}', '𝜻'], + ['\\mathbold{\\zeta}', '𝜻'], + ['\\mathbfit{\\iota}', '𝜾'], + ['\\mathbold{\\iota}', '𝜾'], + ['\\mbfitvarepsilon', '𝝐'], + ['\\mbfsansvarTheta', '𝝧'], + ['\\mathsfbf{\\beta}', '𝝱'], + ['\\mathsfbf{\\zeta}', '𝝵'], + ['\\mathsfbf{\\iota}', '𝝸'], + ['\\mbfsansvarsigma', '𝞁'], + ['\\mbfsansvartheta', '𝞋'], + ['\\mbfsansvarkappa', '𝞌'], + ['\\mbfitsansLambda', '𝞚'], + ['\\mathsfbfit{\\Xi}', '𝞝'], + ['\\mathsfbfit{\\Pi}', '𝞟'], + ['\\mbfitsanslambda', '𝞴'], + ['\\mathsfbfit{\\mu}', '𝞵'], + ['\\mathsfbfit{\\nu}', '𝞶'], + ['\\mathsfbfit{\\xi}', '𝞷'], + ['\\mathsfbfit{\\pi}', '𝞹'], + ['\\mbfitsansvarphi', '𝟇'], + ['\\mbfitsansvarrho', '𝟈'], + ['\\curvearrowleft', '↶'], + ['\\guilsinglright', '›'], + ['\\leftthreetimes', '⋋'], + ['\\leftrightarrow', '↔'], + ['\\rightharpoonup', '⇀'], + ['\\guillemotright', '»'], + ['\\downdownarrows', '⇊'], + ['\\hookrightarrow', '↪'], + ['\\hspace{0.25em}', ' '], + ['\\dashrightarrow', '⇢'], + ['\\leftleftarrows', '⇇'], + ['\\trianglelefteq', '⊴'], + ['\\ntriangleright', '⋫'], + ['\\doublebarwedge', '⌆'], + ['\\upharpoonright', '↾'], + ['\\rightarrowtail', '↣'], + ['\\looparrowright', '↬'], + ['\\Leftrightarrow', '⇔'], + ['\\sphericalangle', '∢'], + ['\\ocommatopright', '̕'], + ['\\mathrm{\\Gamma}', 'Γ'], + ['\\mathrm{\\Delta}', 'Δ'], + ['\\mathrm{\\Theta}', 'Θ'], + ['\\mathrm{\\Sigma}', 'Σ'], + ['\\mathrm{\\Omega}', 'Ω'], + ['\\mathrm{\\alpha}', 'α'], + ['\\mathrm{\\gamma}', 'γ'], + ['\\mathrm{\\delta}', 'δ'], + ['\\mathrm{\\theta}', 'θ'], + ['\\mathrm{\\kappa}', 'κ'], + ['\\mathrm{\\sigma}', 'σ'], + ['\\mathrm{\\omega}', 'ω'], + ['\\mathrm{\\varpi}', 'ϖ'], + ['\\overrightarrow', '⃗'], + ['\\enclosediamond', '⃟'], + ['\\underleftarrow', '⃮'], + ['\\mathbb{\\gamma}', 'ℽ'], + ['\\mathbb{\\Gamma}', 'ℾ'], + ['\\mathbb{\\Sigma}', '⅀'], + ['\\rightwavearrow', '↝'], + ['\\twoheaduparrow', '↟'], + ['\\updownarrowbar', '↨'], + ['\\carriagereturn', '↵'], + ['\\rightleftarrow', '⇄'], + ['\\revequilibrium', '⇋'], + ['\\leftsquigarrow', '⇜'], + ['\\rightdasharrow', '⇢'], + ['\\leftwhitearrow', '⇦'], + ['\\downwhitearrow', '⇩'], + ['\\NotGreaterLess', '≹'], + ['\\APLboxquestion', '⍰'], + ['\\lparenextender', '⎜'], + ['\\rparenextender', '⎟'], + ['\\lbrackextender', '⎢'], + ['\\rbrackextender', '⎥'], + ['\\vbraceextender', '⎪'], + ['\\harrowextender', '⎯'], + ['\\blockrighthalf', '▐'], + ['\\blockqtrshaded', '░'], + ['\\squarenwsefill', '▧'], + ['\\squareneswfill', '▨'], + ['\\mdlgblkdiamond', '◆'], + ['\\mdlgwhtdiamond', '◇'], + ['\\mdlgwhtlozenge', '◊'], + ['\\circlevertfill', '◍'], + ['\\vardiamondsuit', '♦'], + ['\\circledtwodots', '⚇'], + ['\\rightouterjoin', '⟖'], + ['\\concavediamond', '⟡'], + ['\\longrightarrow', '⟶'], + ['\\Longrightarrow', '⟹'], + ['\\longmappedfrom', '⟻'], + ['\\Longmappedfrom', '⟽'], + ['\\fdiagovnearrow', '⤯'], + ['\\rdiagovsearrow', '⤰'], + ['\\acwcirclearrow', '⥀'], + ['\\rightarrowplus', '⥅'], + ['\\RightVectorBar', '⥓'], + ['\\RightTeeVector', '⥛'], + ['\\leftbarharpoon', '⥪'], + ['\\barleftharpoon', '⥫'], + ['\\updownharpoons', '⥮'], + ['\\downupharpoons', '⥯'], + ['\\rightanglemdot', '⦝'], + ['\\triangleserifs', '⧍'], + ['\\blackhourglass', '⧗'], + ['\\mdlgblklozenge', '⧫'], + ['\\bigslopedwedge', '⩘'], + ['\\wedgedoublebar', '⩠'], + ['\\NestedLessLess', '⪡'], + ['\\squaretopblack', '⬒'], + ['\\squarebotblack', '⬓'], + ['\\equalleftarrow', '⭀'], + ['\\mathbf{\\Gamma}', '𝚪'], + ['\\mathbf{\\Delta}', '𝚫'], + ['\\mathbf{\\Theta}', '𝚯'], + ['\\mathbf{\\Sigma}', '𝚺'], + ['\\mathbf{\\Omega}', '𝛀'], + ['\\mathbf{\\alpha}', '𝛂'], + ['\\mathbf{\\gamma}', '𝛄'], + ['\\mathbf{\\delta}', '𝛅'], + ['\\mathbf{\\theta}', '𝛉'], + ['\\mathbf{\\kappa}', '𝛋'], + ['\\mathbf{\\sigma}', '𝛔'], + ['\\mathbf{\\omega}', '𝛚'], + ['\\mathbf{\\varpi}', '𝛡'], + ['\\mathit{\\Gamma}', '𝛤'], + ['\\mathit{\\Delta}', '𝛥'], + ['\\mathit{\\Theta}', '𝛩'], + ['\\mathit{\\Sigma}', '𝛴'], + ['\\mathit{\\Omega}', '𝛺'], + ['\\mathit{\\alpha}', '𝛼'], + ['\\mathit{\\gamma}', '𝛾'], + ['\\mathit{\\delta}', '𝛿'], + ['\\mathit{\\theta}', '𝜃'], + ['\\mathit{\\kappa}', '𝜅'], + ['\\mathit{\\sigma}', '𝜎'], + ['\\mathit{\\omega}', '𝜔'], + ['\\mathit{\\varpi}', '𝜛'], + ['\\mathbfit{\\Phi}', '𝜱'], + ['\\mathbold{\\Phi}', '𝜱'], + ['\\mathbfit{\\Psi}', '𝜳'], + ['\\mathbold{\\Psi}', '𝜳'], + ['\\mathbfit{\\eta}', '𝜼'], + ['\\mathbold{\\eta}', '𝜼'], + ['\\mathbfit{\\rho}', '𝝆'], + ['\\mathbold{\\rho}', '𝝆'], + ['\\mathbfit{\\tau}', '𝝉'], + ['\\mathbold{\\tau}', '𝝉'], + ['\\mathbfit{\\chi}', '𝝌'], + ['\\mathbold{\\chi}', '𝝌'], + ['\\mathbfit{\\psi}', '𝝍'], + ['\\mathbold{\\psi}', '𝝍'], + ['\\mathbfit{\\phi}', '𝝓'], + ['\\mathbold{\\phi}', '𝝓'], + ['\\mbfsansEpsilon', '𝝚'], + ['\\mbfsansOmicron', '𝝤'], + ['\\mbfsansUpsilon', '𝝪'], + ['\\mathsfbf{\\Phi}', '𝝫'], + ['\\mathsfbf{\\Psi}', '𝝭'], + ['\\mbfsansepsilon', '𝝴'], + ['\\mathsfbf{\\eta}', '𝝶'], + ['\\mbfsansomicron', '𝝾'], + ['\\mathsfbf{\\rho}', '𝞀'], + ['\\mathsfbf{\\tau}', '𝞃'], + ['\\mbfsansupsilon', '𝞄'], + ['\\mathsfbf{\\chi}', '𝞆'], + ['\\mathsfbf{\\psi}', '𝞇'], + ['\\mbfsanspartial', '𝞉'], + ['\\mathsfbf{\\phi}', '𝞍'], + ['\\mbfitsansAlpha', '𝞐'], + ['\\mbfitsansGamma', '𝞒'], + ['\\mbfitsansDelta', '𝞓'], + ['\\mbfitsansTheta', '𝞗'], + ['\\mbfitsansKappa', '𝞙'], + ['\\mbfitsansSigma', '𝞢'], + ['\\mbfitsansOmega', '𝞨'], + ['\\mbfitsansnabla', '𝞩'], + ['\\mbfitsansalpha', '𝞪'], + ['\\mbfitsansgamma', '𝞬'], + ['\\mbfitsansdelta', '𝞭'], + ['\\mbfitsanstheta', '𝞱'], + ['\\mbfitsanskappa', '𝞳'], + ['\\mbfitsanssigma', '𝞼'], + ['\\mbfitsansomega', '𝟂'], + ['\\mbfitsansvarpi', '𝟉'], + ['\\divideontimes', '⋇'], + ['\\measuredangle', '∡'], + ['\\blacktriangle', '▴'], + ['\\ntriangleleft', '⋪'], + ['\\mathchar"1356', '⁁'], + ['\\texttrademark', '™'], + ['\\mathchar"2208', '⌖'], + ['\\triangleright', '▹'], + ['\\leftarrowtail', '↢'], + ['\\guilsinglleft', '‹'], + ['\\upharpoonleft', '↿'], + ['\\mathbb{gamma}', 'ℽ'], + ['\\fallingdotseq', '≒'], + ['\\looparrowleft', '↫'], + ['\\textbrokenbar', '¦'], + ['\\hookleftarrow', '↩'], + ['\\smallsetminus', '﹨'], + ['\\dashleftarrow', '⇠'], + ['\\guillemotleft', '«'], + ['\\leftharpoonup', '↼'], + ['\\mathbb{Gamma}', 'ℾ'], + ['\\bigtriangleup', '△'], + ['\\mathrm{\\beta}', 'β'], + ['\\mathrm{\\zeta}', 'ζ'], + ['\\mathrm{\\iota}', 'ι'], + ['\\upbackepsilon', '϶'], + ['\\overleftarrow', '⃖'], + ['\\enclosecircle', '⃝'], + ['\\enclosesquare', '⃞'], + ['\\threeunderdot', '⃨'], + ['\\sansLmirrored', '⅃'], + ['\\DifferentialD', 'ⅆ'], + ['\\leftwavearrow', '↜'], + ['\\leftdasharrow', '⇠'], + ['\\downdasharrow', '⇣'], + ['\\RightArrowBar', '⇥'], + ['\\rightarrowbar', '⇥'], + ['\\vysmwhtcircle', '∘'], + ['\\vysmblkcircle', '∙'], + ['\\wasytherefore', '∴'], + ['\\dotsminusdots', '∺'], + ['\\PrecedesTilde', '≾'], + ['\\SucceedsTilde', '≿'], + ['\\varlrtriangle', '⊿'], + ['\\equalparallel', '⋕'], + ['\\APLuparrowbox', '⍐'], + ['\\APLboxupcaret', '⍓'], + ['\\bdtriplevdash', '┆'], + ['\\blocklefthalf', '▌'], + ['\\mdlgblksquare', '■'], + ['\\mdlgwhtsquare', '□'], + ['\\parallelogram', '▱'], + ['\\RightTriangle', '▷'], + ['\\mdlgwhtcircle', '○'], + ['\\mdlgblkcircle', '●'], + ['\\inversebullet', '◘'], + ['\\topsemicircle', '◠'], + ['\\botsemicircle', '◡'], + ['\\squareulblack', '◩'], + ['\\squarelrblack', '◪'], + ['\\mdsmwhtsquare', '◽'], + ['\\mdsmblksquare', '◾'], + ['\\sixteenthnote', '♬'], + ['\\Hermaphrodite', '⚥'], + ['\\mdsmwhtcircle', '⚬'], + ['\\draftingarrow', '➛'], + ['\\leftouterjoin', '⟕'], + ['\\fullouterjoin', '⟗'], + ['\\longleftarrow', '⟵'], + ['\\Longleftarrow', '⟸'], + ['\\twoheadmapsto', '⤅'], + ['\\uparrowbarred', '⤉'], + ['\\rightdotarrow', '⤑'], + ['\\cwcirclearrow', '⥁'], + ['\\leftarrowplus', '⥆'], + ['\\LeftVectorBar', '⥒'], + ['\\LeftTeeVector', '⥚'], + ['\\upequilibrium', '⥮'], + ['\\leftarrowless', '⥷'], + ['\\rightfishtail', '⥽'], + ['\\mdsmblkcircle', '⦁'], + ['\\llparenthesis', '⦇'], + ['\\rrparenthesis', '⦈'], + ['\\rightanglesqr', '⦜'], + ['\\wideangledown', '⦦'], + ['\\emptysetocirc', '⦲'], + ['\\emptysetoarrl', '⦴'], + ['\\circledbslash', '⦸'], + ['\\circledbullet', '⦿'], + ['\\errbardiamond', '⧰'], + ['\\triangleminus', '⨺'], + ['\\triangletimes', '⨻'], + ['\\shortlefttack', '⫞'], + ['\\shortdowntack', '⫟'], + ['\\threedotcolon', '⫶'], + ['\\biginterleave', '⫼'], + ['\\bigtalloblong', '⫿'], + ['\\squareurblack', '⬔'], + ['\\squarellblack', '⬕'], + ['\\vysmblksquare', '⬝'], + ['\\vysmwhtsquare', '⬞'], + ['\\pentagonblack', '⬟'], + ['\\rightarrowgtr', '⭃'], + ['\\rightpentagon', '⭔'], + ['\\mathsfbfit{A}', '𝘼'], + ['\\mathsfbfit{B}', '𝘽'], + ['\\mathsfbfit{C}', '𝘾'], + ['\\mathsfbfit{D}', '𝘿'], + ['\\mathsfbfit{E}', '𝙀'], + ['\\mathsfbfit{F}', '𝙁'], + ['\\mathsfbfit{G}', '𝙂'], + ['\\mathsfbfit{H}', '𝙃'], + ['\\mathsfbfit{I}', '𝙄'], + ['\\mathsfbfit{J}', '𝙅'], + ['\\mathsfbfit{K}', '𝙆'], + ['\\mathsfbfit{L}', '𝙇'], + ['\\mathsfbfit{M}', '𝙈'], + ['\\mathsfbfit{N}', '𝙉'], + ['\\mathsfbfit{O}', '𝙊'], + ['\\mathsfbfit{P}', '𝙋'], + ['\\mathsfbfit{Q}', '𝙌'], + ['\\mathsfbfit{R}', '𝙍'], + ['\\mathsfbfit{S}', '𝙎'], + ['\\mathsfbfit{T}', '𝙏'], + ['\\mathsfbfit{U}', '𝙐'], + ['\\mathsfbfit{V}', '𝙑'], + ['\\mathsfbfit{W}', '𝙒'], + ['\\mathsfbfit{X}', '𝙓'], + ['\\mathsfbfit{Y}', '𝙔'], + ['\\mathsfbfit{Z}', '𝙕'], + ['\\mathsfbfit{a}', '𝙖'], + ['\\mathsfbfit{b}', '𝙗'], + ['\\mathsfbfit{c}', '𝙘'], + ['\\mathsfbfit{d}', '𝙙'], + ['\\mathsfbfit{e}', '𝙚'], + ['\\mathsfbfit{f}', '𝙛'], + ['\\mathsfbfit{g}', '𝙜'], + ['\\mathsfbfit{h}', '𝙝'], + ['\\mathsfbfit{i}', '𝙞'], + ['\\mathsfbfit{j}', '𝙟'], + ['\\mathsfbfit{k}', '𝙠'], + ['\\mathsfbfit{l}', '𝙡'], + ['\\mathsfbfit{m}', '𝙢'], + ['\\mathsfbfit{n}', '𝙣'], + ['\\mathsfbfit{o}', '𝙤'], + ['\\mathsfbfit{p}', '𝙥'], + ['\\mathsfbfit{q}', '𝙦'], + ['\\mathsfbfit{r}', '𝙧'], + ['\\mathsfbfit{s}', '𝙨'], + ['\\mathsfbfit{t}', '𝙩'], + ['\\mathsfbfit{u}', '𝙪'], + ['\\mathsfbfit{v}', '𝙫'], + ['\\mathsfbfit{w}', '𝙬'], + ['\\mathsfbfit{x}', '𝙭'], + ['\\mathsfbfit{y}', '𝙮'], + ['\\mathsfbfit{z}', '𝙯'], + ['\\mathbf{\\beta}', '𝛃'], + ['\\mathbf{\\zeta}', '𝛇'], + ['\\mathbf{\\iota}', '𝛊'], + ['\\mbfvarepsilon', '𝛜'], + ['\\mathit{\\beta}', '𝛽'], + ['\\mathit{\\zeta}', '𝜁'], + ['\\mathit{\\iota}', '𝜄'], + ['\\mitvarepsilon', '𝜖'], + ['\\mathbfit{\\Xi}', '𝜩'], + ['\\mathbold{\\Xi}', '𝜩'], + ['\\mathbfit{\\Pi}', '𝜫'], + ['\\mathbold{\\Pi}', '𝜫'], + ['\\mbfitvarTheta', '𝜭'], + ['\\mathbfit{\\mu}', '𝝁'], + ['\\mathbold{\\mu}', '𝝁'], + ['\\mathbfit{\\nu}', '𝝂'], + ['\\mathbold{\\nu}', '𝝂'], + ['\\mathbfit{\\xi}', '𝝃'], + ['\\mathbold{\\xi}', '𝝃'], + ['\\mathbfit{\\pi}', '𝝅'], + ['\\mathbold{\\pi}', '𝝅'], + ['\\mbfitvarsigma', '𝝇'], + ['\\mbfitvartheta', '𝝑'], + ['\\mbfitvarkappa', '𝝒'], + ['\\mbfsansLambda', '𝝠'], + ['\\mathsfbf{\\Xi}', '𝝣'], + ['\\mathsfbf{\\Pi}', '𝝥'], + ['\\mbfsanslambda', '𝝺'], + ['\\mathsfbf{\\mu}', '𝝻'], + ['\\mathsfbf{\\nu}', '𝝼'], + ['\\mathsfbf{\\xi}', '𝝽'], + ['\\mathsfbf{\\pi}', '𝝿'], + ['\\mbfsansvarphi', '𝞍'], + ['\\mbfsansvarrho', '𝞎'], + ['\\mbfitsansBeta', '𝞑'], + ['\\mbfitsansZeta', '𝞕'], + ['\\mbfitsansIota', '𝞘'], + ['\\mbfitsansbeta', '𝞫'], + ['\\mbfitsanszeta', '𝞯'], + ['\\mbfitsansiota', '𝞲'], + ['\\textcircledP', '℗'], + ['\\risingdotseq', '≓'], + ['\\triangleleft', '◃'], + ['\\mathsterling', '£'], + ['\\textcurrency', '¤'], + ['\\triangledown', '▿'], + ['\\blacklozenge', ''], + ['\\binampersand', '&'], + ['\\oturnedcomma', '̒'], + ['\\mathrm{\\Phi}', 'Φ'], + ['\\mathrm{\\Psi}', 'Ψ'], + ['\\varepsilonup', 'ε'], + ['\\mathrm{\\eta}', 'η'], + ['\\mathrm{\\rho}', 'ρ'], + ['\\mathrm{\\tau}', 'τ'], + ['\\mathrm{\\chi}', 'χ'], + ['\\mathrm{\\psi}', 'ψ'], + ['\\mathrm{\\phi}', 'ϕ'], + ['\\upvarepsilon', 'ϵ'], + ['\\hyphenbullet', '⁃'], + ['\\PropertyLine', '⅊'], + ['\\bindnasrepma', '⅋'], + ['\\updownarrows', '⇅'], + ['\\LeftArrowBar', '⇤'], + ['\\barleftarrow', '⇤'], + ['\\upwhitearrow', '⇧'], + ['\\downuparrows', '⇵'], + ['\\nvrightarrow', '⇸'], + ['\\nVrightarrow', '⇻'], + ['\\intclockwise', '∱'], + ['\\cntclockoint', '∳'], + ['\\GreaterTilde', '≳'], + ['\\NotLessTilde', '≴'], + ['\\varsubsetneq', '⊊'], + ['\\cupleftarrow', '⊌'], + ['\\circledequal', '⊜'], + ['\\hermitmatrix', '⊹'], + ['\\smwhtdiamond', '⋄'], + ['\\npreccurlyeq', '⋠'], + ['\\nsucccurlyeq', '⋡'], + ['\\unicodecdots', '⋯'], + ['\\notbackslash', '⍀'], + ['\\underbracket', '⎵'], + ['\\blocklowhalf', '▄'], + ['\\squarehvfill', '▦'], + ['\\LeftTriangle', '◁'], + ['\\Diamondblack', '◆'], + ['\\dottedcircle', '◌'], + ['\\trianglecdot', '◬'], + ['\\squareulquad', '◰'], + ['\\squarellquad', '◱'], + ['\\squarelrquad', '◲'], + ['\\squareurquad', '◳'], + ['\\circleulquad', '◴'], + ['\\circlellquad', '◵'], + ['\\circlelrquad', '◶'], + ['\\circleurquad', '◷'], + ['\\bigwhitestar', '☆'], + ['\\invsmileface', '☻'], + ['\\varspadesuit', '♤'], + ['\\varheartsuit', '♥'], + ['\\dingasterisk', '✽'], + ['\\longdivision', '⟌'], + ['\\lozengeminus', '⟠'], + ['\\longmapsfrom', '⟻'], + ['\\Longmapsfrom', '⟽'], + ['\\nvRightarrow', '⤃'], + ['\\rightbkarrow', '⤍'], + ['\\leftdbkarrow', '⤎'], + ['\\DownArrowBar', '⤓'], + ['\\downarrowbar', '⤓'], + ['\\rightdbltail', '⤜'], + ['\\rdiagovfdiag', '⤫'], + ['\\fdiagovrdiag', '⤬'], + ['\\upupharpoons', '⥣'], + ['\\leftfishtail', '⥼'], + ['\\downfishtail', '⥿'], + ['\\lbrackultick', '⦍'], + ['\\rbracklrtick', '⦎'], + ['\\lbracklltick', '⦏'], + ['\\rbrackurtick', '⦐'], + ['\\revangleubar', '⦥'], + ['\\emptysetobar', '⦱'], + ['\\emptysetoarr', '⦳'], + ['\\odotslashdot', '⦼'], + ['\\ogreaterthan', '⧁'], + ['\\triangleodot', '⧊'], + ['\\triangleubar', '⧋'], + ['\\multimapboth', '⧟'], + ['\\lrtriangleeq', '⧡'], + ['\\errbarsquare', '⧮'], + ['\\errbarcircle', '⧲'], + ['\\triangleplus', '⨹'], + ['\\closedvarcup', '⩌'], + ['\\closedvarcap', '⩍'], + ['\\wedgeonwedge', '⩕'], + ['\\bigslopedvee', '⩗'], + ['\\wedgemidvert', '⩚'], + ['\\doublebarvee', '⩢'], + ['\\veedoublebar', '⩣'], + ['\\eqqslantless', '⪛'], + ['\\subsetapprox', '⫉'], + ['\\supsetapprox', '⫊'], + ['\\dottedsquare', '⬚'], + ['\\hexagonblack', '⬣'], + ['\\mdblkdiamond', '⬥'], + ['\\mdwhtdiamond', '⬦'], + ['\\mdblklozenge', '⬧'], + ['\\mdwhtlozenge', '⬨'], + ['\\smblkdiamond', '⬩'], + ['\\smblklozenge', '⬪'], + ['\\smwhtlozenge', '⬫'], + ['\\leftdotarrow', '⬸'], + ['\\medwhitestar', '⭐'], + ['\\medblackstar', '⭑'], + ['\\mathbf{\\Phi}', '𝚽'], + ['\\mathbf{\\Psi}', '𝚿'], + ['\\mathbf{\\eta}', '𝛈'], + ['\\mathbf{\\rho}', '𝛒'], + ['\\mathbf{\\tau}', '𝛕'], + ['\\mathbf{\\chi}', '𝛘'], + ['\\mathbf{\\psi}', '𝛙'], + ['\\mathbf{\\phi}', '𝛟'], + ['\\mathit{\\Phi}', '𝛷'], + ['\\mathit{\\Psi}', '𝛹'], + ['\\mathit{\\eta}', '𝜂'], + ['\\mathit{\\rho}', '𝜌'], + ['\\mathit{\\tau}', '𝜏'], + ['\\mathit{\\chi}', '𝜒'], + ['\\mathit{\\psi}', '𝜓'], + ['\\mathit{\\phi}', '𝜙'], + ['\\mbfitEpsilon', '𝜠'], + ['\\mbfitOmicron', '𝜪'], + ['\\mbfitUpsilon', '𝜰'], + ['\\mbfitepsilon', '𝜺'], + ['\\mbfitomicron', '𝝄'], + ['\\mbfitupsilon', '𝝊'], + ['\\mbfitpartial', '𝝏'], + ['\\mbfsansAlpha', '𝝖'], + ['\\mbfsansGamma', '𝝘'], + ['\\mbfsansDelta', '𝝙'], + ['\\mbfsansTheta', '𝝝'], + ['\\mbfsansKappa', '𝝟'], + ['\\mbfsansSigma', '𝝨'], + ['\\mbfsansOmega', '𝝮'], + ['\\mbfsansnabla', '𝝯'], + ['\\mbfsansalpha', '𝝰'], + ['\\mbfsansgamma', '𝝲'], + ['\\mbfsansdelta', '𝝳'], + ['\\mbfsanstheta', '𝝷'], + ['\\mbfsanskappa', '𝝹'], + ['\\mbfsanssigma', '𝞂'], + ['\\mbfsansomega', '𝞈'], + ['\\mbfsansvarpi', '𝞏'], + ['\\mbfitsansEta', '𝞖'], + ['\\mbfitsansRho', '𝞠'], + ['\\mbfitsansTau', '𝞣'], + ['\\mbfitsansPhi', '𝞥'], + ['\\mbfitsansChi', '𝞦'], + ['\\mbfitsansPsi', '𝞧'], + ['\\mbfitsanseta', '𝞰'], + ['\\mbfitsansrho', '𝞺'], + ['\\mbfitsanstau', '𝞽'], + ['\\mbfitsansphi', '𝞿'], + ['\\mbfitsanschi', '𝟀'], + ['\\mbfitsanspsi', '𝟁'], + ['\\mbfsansthree', '𝟯'], + ['\\mbfsansseven', '𝟳'], + ['\\mbfsanseight', '𝟴'], + ['\\sfrac{5}{6}', '⅚'], + ['\\preccurlyeq', '≼'], + ['\\Rrightarrow', '⇛'], + ['\\circledcirc', '⊚'], + ['\\nRightarrow', '⇏'], + ['\\sfrac{3}{8}', '⅜'], + ['\\sfrac{1}{3}', '⅓'], + ['\\sfrac{2}{5}', '⅖'], + ['\\vartriangle', '▵'], + ['\\Updownarrow', '⇕'], + ['\\nrightarrow', '↛'], + ['\\sfrac{1}{2}', '½'], + ['\\sfrac{3}{5}', '⅗'], + ['\\succcurlyeq', '≽'], + ['\\sfrac{4}{5}', '⅘'], + ['\\diamondsuit', '♦'], + ['\\hphantom{0}', ' '], + ['\\sfrac{1}{6}', '⅙'], + ['\\curlyeqsucc', '⋟'], + ['\\blacksquare', '▪'], + ['\\hphantom{,}', ' '], + ['\\curlyeqprec', '⋞'], + ['\\sfrac{1}{8}', '⅛'], + ['\\sfrac{7}{8}', '⅞'], + ['\\sfrac{1}{5}', '⅕'], + ['\\sfrac{2}{3}', '⅔'], + ['\\updownarrow', '↕'], + ['\\backepsilon', '∍'], + ['\\circleddash', '⊝'], + ['\\eqslantless', '⋜'], + ['\\sfrac{3}{4}', '¾'], + ['\\sfrac{5}{8}', '⅝'], + ['\\hspace{1pt}', ' '], + ['\\sfrac{1}{4}', '¼'], + ['\\mathrm{\\mu}', 'µ'], + ['\\mathrm{\\Xi}', 'Ξ'], + ['\\mathrm{\\Pi}', 'Π'], + ['\\mathrm{\\nu}', 'ν'], + ['\\mathrm{\\xi}', 'ξ'], + ['\\mathrm{\\pi}', 'π'], + ['\\hspace{0pt}', ''], + ['\\smblkcircle', '•'], + ['\\backtrprime', '‷'], + ['\\caretinsert', '‸'], + ['\\vertoverlay', '⃒'], + ['\\asteraccent', '⃰'], + ['\\mathfrak{H}', 'ℌ'], + ['\\Planckconst', 'ℎ'], + ['\\mathfrak{I}', 'ℑ'], + ['\\mathfrak{R}', 'ℜ'], + ['\\mathfrak{Z}', 'ℨ'], + ['\\mathfrak{C}', 'ℭ'], + ['\\mathbb{\\pi}', 'ℼ'], + ['\\mathbb{\\Pi}', 'ℿ'], + ['\\sansLturned', '⅂'], + ['\\ExponetialE', 'ⅇ'], + ['\\restriction', '↾'], + ['\\equilibrium', '⇌'], + ['\\nHdownarrow', '⇟'], + ['\\updasharrow', '⇡'], + ['\\nvleftarrow', '⇷'], + ['\\nVleftarrow', '⇺'], + ['\\approxident', '≋'], + ['\\corresponds', '≙'], + ['\\Corresponds', '≙'], + ['\\GreaterLess', '≷'], + ['\\nsqsubseteq', '⋢'], + ['\\nsqsupseteq', '⋣'], + ['\\sqsubsetneq', '⋤'], + ['\\sqsupsetneq', '⋥'], + ['\\varisinobar', '⋶'], + ['\\varbarwedge', '⌅'], + ['\\wasylozenge', '⌑'], + ['\\APLnotslash', '⌿'], + ['\\invdiameter', '⍉'], + ['\\intextender', '⎮'], + ['\\overbracket', '⎴'], + ['\\blockuphalf', '▀'], + ['\\squarehfill', '▤'], + ['\\squarevfill', '▥'], + ['\\smblksquare', '▪'], + ['\\smwhtsquare', '▫'], + ['\\RIGHTcircle', '◑'], + ['\\RIGHTCIRCLE', '◗'], + ['\\smwhtcircle', '◦'], + ['\\lgwhtcircle', '◯'], + ['\\mdwhtsquare', '◻'], + ['\\mdblksquare', '◼'], + ['\\CONJUNCTION', '☌'], + ['\\blacksmiley', '☻'], + ['\\sagittarius', '♐'], + ['\\capricornus', '♑'], + ['\\varclubsuit', '♧'], + ['\\quarternote', '♩'], + ['\\mdwhtcircle', '⚪'], + ['\\mdblkcircle', '⚫'], + ['\\ballotcheck', '✓'], + ['\\circledstar', '✪'], + ['\\arrowbullet', '➢'], + ['\\threedangle', '⟀'], + ['\\diamondcdot', '⟐'], + ['\\multimapinv', '⟜'], + ['\\nvLeftarrow', '⤂'], + ['\\leftbkarrow', '⤌'], + ['\\leftdbltail', '⤛'], + ['\\seovnearrow', '⤭'], + ['\\neovsearrow', '⤮'], + ['\\neovnwarrow', '⤱'], + ['\\nwovnearrow', '⤲'], + ['\\rightarrowx', '⥇'], + ['\\wideangleup', '⦧'], + ['\\revemptyset', '⦰'], + ['\\circledvert', '⦶'], + ['\\circledless', '⧀'], + ['\\gleichstark', '⧦'], + ['\\ruledelayed', '⧴'], + ['\\lcurvyangle', '⧼'], + ['\\rcurvyangle', '⧽'], + ['\\otimeslhrim', '⨴'], + ['\\otimesrhrim', '⨵'], + ['\\midbarwedge', '⩜'], + ['\\simminussim', '⩬'], + ['\\eqqslantgtr', '⪜'], + ['\\precnapprox', '⪹'], + ['\\succnapprox', '⪺'], + ['\\shortuptack', '⫠'], + ['\\varparallel', '⫽'], + ['\\lgblksquare', '⬛'], + ['\\lgwhtsquare', '⬜'], + ['\\lgblkcircle', '⬤'], + ['\\blkhorzoval', '⬬'], + ['\\whthorzoval', '⬭'], + ['\\blkvertoval', '⬮'], + ['\\whtvertoval', '⬯'], + ['\\RRightarrow', '⭆'], + ['\\smwhitestar', '⭒'], + ['\\mathbfit{A}', '𝑨'], + ['\\mathbold{A}', '𝑨'], + ['\\mathbfit{B}', '𝑩'], + ['\\mathbold{B}', '𝑩'], + ['\\mathbfit{C}', '𝑪'], + ['\\mathbold{C}', '𝑪'], + ['\\mathbfit{D}', '𝑫'], + ['\\mathbold{D}', '𝑫'], + ['\\mathbfit{E}', '𝑬'], + ['\\mathbold{E}', '𝑬'], + ['\\mathbfit{F}', '𝑭'], + ['\\mathbold{F}', '𝑭'], + ['\\mathbfit{G}', '𝑮'], + ['\\mathbold{G}', '𝑮'], + ['\\mathbfit{H}', '𝑯'], + ['\\mathbold{H}', '𝑯'], + ['\\mathbfit{I}', '𝑰'], + ['\\mathbold{I}', '𝑰'], + ['\\mathbfit{J}', '𝑱'], + ['\\mathbold{J}', '𝑱'], + ['\\mathbfit{K}', '𝑲'], + ['\\mathbold{K}', '𝑲'], + ['\\mathbfit{L}', '𝑳'], + ['\\mathbold{L}', '𝑳'], + ['\\mathbfit{M}', '𝑴'], + ['\\mathbold{M}', '𝑴'], + ['\\mathbfit{N}', '𝑵'], + ['\\mathbold{N}', '𝑵'], + ['\\mathbfit{O}', '𝑶'], + ['\\mathbold{O}', '𝑶'], + ['\\mathbfit{P}', '𝑷'], + ['\\mathbold{P}', '𝑷'], + ['\\mathbfit{Q}', '𝑸'], + ['\\mathbold{Q}', '𝑸'], + ['\\mathbfit{R}', '𝑹'], + ['\\mathbold{R}', '𝑹'], + ['\\mathbfit{S}', '𝑺'], + ['\\mathbold{S}', '𝑺'], + ['\\mathbfit{T}', '𝑻'], + ['\\mathbold{T}', '𝑻'], + ['\\mathbfit{U}', '𝑼'], + ['\\mathbold{U}', '𝑼'], + ['\\mathbfit{V}', '𝑽'], + ['\\mathbold{V}', '𝑽'], + ['\\mathbfit{W}', '𝑾'], + ['\\mathbold{W}', '𝑾'], + ['\\mathbfit{X}', '𝑿'], + ['\\mathbold{X}', '𝑿'], + ['\\mathbfit{Y}', '𝒀'], + ['\\mathbold{Y}', '𝒀'], + ['\\mathbfit{Z}', '𝒁'], + ['\\mathbold{Z}', '𝒁'], + ['\\mathbfit{a}', '𝒂'], + ['\\mathbold{a}', '𝒂'], + ['\\mathbfit{b}', '𝒃'], + ['\\mathbold{b}', '𝒃'], + ['\\mathbfit{c}', '𝒄'], + ['\\mathbold{c}', '𝒄'], + ['\\mathbfit{d}', '𝒅'], + ['\\mathbold{d}', '𝒅'], + ['\\mathbfit{e}', '𝒆'], + ['\\mathbold{e}', '𝒆'], + ['\\mathbfit{f}', '𝒇'], + ['\\mathbold{f}', '𝒇'], + ['\\mathbfit{g}', '𝒈'], + ['\\mathbold{g}', '𝒈'], + ['\\mathbfit{h}', '𝒉'], + ['\\mathbold{h}', '𝒉'], + ['\\mathbfit{i}', '𝒊'], + ['\\mathbold{i}', '𝒊'], + ['\\mathbfit{j}', '𝒋'], + ['\\mathbold{j}', '𝒋'], + ['\\mathbfit{k}', '𝒌'], + ['\\mathbold{k}', '𝒌'], + ['\\mathbfit{l}', '𝒍'], + ['\\mathbold{l}', '𝒍'], + ['\\mathbfit{m}', '𝒎'], + ['\\mathbold{m}', '𝒎'], + ['\\mathbfit{n}', '𝒏'], + ['\\mathbold{n}', '𝒏'], + ['\\mathbfit{o}', '𝒐'], + ['\\mathbold{o}', '𝒐'], + ['\\mathbfit{p}', '𝒑'], + ['\\mathbold{p}', '𝒑'], + ['\\mathbfit{q}', '𝒒'], + ['\\mathbold{q}', '𝒒'], + ['\\mathbfit{r}', '𝒓'], + ['\\mathbold{r}', '𝒓'], + ['\\mathbfit{s}', '𝒔'], + ['\\mathbold{s}', '𝒔'], + ['\\mathbfit{t}', '𝒕'], + ['\\mathbold{t}', '𝒕'], + ['\\mathbfit{u}', '𝒖'], + ['\\mathbold{u}', '𝒖'], + ['\\mathbfit{v}', '𝒗'], + ['\\mathbold{v}', '𝒗'], + ['\\mathbfit{w}', '𝒘'], + ['\\mathbold{w}', '𝒘'], + ['\\mathbfit{x}', '𝒙'], + ['\\mathbold{x}', '𝒙'], + ['\\mathbfit{y}', '𝒚'], + ['\\mathbold{y}', '𝒚'], + ['\\mathbfit{z}', '𝒛'], + ['\\mathbold{z}', '𝒛'], + ['\\mathfrak{A}', '𝔄'], + ['\\mathfrak{B}', '𝔅'], + ['\\mathfrak{D}', '𝔇'], + ['\\mathfrak{E}', '𝔈'], + ['\\mathfrak{F}', '𝔉'], + ['\\mathfrak{G}', '𝔊'], + ['\\mathfrak{J}', '𝔍'], + ['\\mathfrak{K}', '𝔎'], + ['\\mathfrak{L}', '𝔏'], + ['\\mathfrak{M}', '𝔐'], + ['\\mathfrak{N}', '𝔑'], + ['\\mathfrak{O}', '𝔒'], + ['\\mathfrak{P}', '𝔓'], + ['\\mathfrak{Q}', '𝔔'], + ['\\mathfrak{S}', '𝔖'], + ['\\mathfrak{T}', '𝔗'], + ['\\mathfrak{U}', '𝔘'], + ['\\mathfrak{V}', '𝔙'], + ['\\mathfrak{W}', '𝔚'], + ['\\mathfrak{X}', '𝔛'], + ['\\mathfrak{Y}', '𝔜'], + ['\\mathfrak{a}', '𝔞'], + ['\\mathfrak{b}', '𝔟'], + ['\\mathfrak{c}', '𝔠'], + ['\\mathfrak{d}', '𝔡'], + ['\\mathfrak{e}', '𝔢'], + ['\\mathfrak{f}', '𝔣'], + ['\\mathfrak{g}', '𝔤'], + ['\\mathfrak{h}', '𝔥'], + ['\\mathfrak{i}', '𝔦'], + ['\\mathfrak{j}', '𝔧'], + ['\\mathfrak{k}', '𝔨'], + ['\\mathfrak{l}', '𝔩'], + ['\\mathfrak{m}', '𝔪'], + ['\\mathfrak{n}', '𝔫'], + ['\\mathfrak{o}', '𝔬'], + ['\\mathfrak{p}', '𝔭'], + ['\\mathfrak{q}', '𝔮'], + ['\\mathfrak{r}', '𝔯'], + ['\\mathfrak{s}', '𝔰'], + ['\\mathfrak{t}', '𝔱'], + ['\\mathfrak{u}', '𝔲'], + ['\\mathfrak{v}', '𝔳'], + ['\\mathfrak{w}', '𝔴'], + ['\\mathfrak{x}', '𝔵'], + ['\\mathfrak{y}', '𝔶'], + ['\\mathfrak{z}', '𝔷'], + ['\\mathsfbf{A}', '𝗔'], + ['\\mathsfbf{B}', '𝗕'], + ['\\mathsfbf{C}', '𝗖'], + ['\\mathsfbf{D}', '𝗗'], + ['\\mathsfbf{E}', '𝗘'], + ['\\mathsfbf{F}', '𝗙'], + ['\\mathsfbf{G}', '𝗚'], + ['\\mathsfbf{H}', '𝗛'], + ['\\mathsfbf{I}', '𝗜'], + ['\\mathsfbf{J}', '𝗝'], + ['\\mathsfbf{K}', '𝗞'], + ['\\mathsfbf{L}', '𝗟'], + ['\\mathsfbf{M}', '𝗠'], + ['\\mathsfbf{N}', '𝗡'], + ['\\mathsfbf{O}', '𝗢'], + ['\\mathsfbf{P}', '𝗣'], + ['\\mathsfbf{Q}', '𝗤'], + ['\\mathsfbf{R}', '𝗥'], + ['\\mathsfbf{S}', '𝗦'], + ['\\mathsfbf{T}', '𝗧'], + ['\\mathsfbf{U}', '𝗨'], + ['\\mathsfbf{V}', '𝗩'], + ['\\mathsfbf{W}', '𝗪'], + ['\\mathsfbf{X}', '𝗫'], + ['\\mathsfbf{Y}', '𝗬'], + ['\\mathsfbf{Z}', '𝗭'], + ['\\mathsfbf{a}', '𝗮'], + ['\\mathsfbf{b}', '𝗯'], + ['\\mathsfbf{c}', '𝗰'], + ['\\mathsfbf{d}', '𝗱'], + ['\\mathsfbf{e}', '𝗲'], + ['\\mathsfbf{f}', '𝗳'], + ['\\mathsfbf{g}', '𝗴'], + ['\\mathsfbf{h}', '𝗵'], + ['\\mathsfbf{i}', '𝗶'], + ['\\mathsfbf{j}', '𝗷'], + ['\\mathsfbf{k}', '𝗸'], + ['\\mathsfbf{l}', '𝗹'], + ['\\mathsfbf{m}', '𝗺'], + ['\\mathsfbf{n}', '𝗻'], + ['\\mathsfbf{o}', '𝗼'], + ['\\mathsfbf{p}', '𝗽'], + ['\\mathsfbf{q}', '𝗾'], + ['\\mathsfbf{r}', '𝗿'], + ['\\mathsfbf{s}', '𝘀'], + ['\\mathsfbf{t}', '𝘁'], + ['\\mathsfbf{u}', '𝘂'], + ['\\mathsfbf{v}', '𝘃'], + ['\\mathsfbf{w}', '𝘄'], + ['\\mathsfbf{x}', '𝘅'], + ['\\mathsfbf{y}', '𝘆'], + ['\\mathsfbf{z}', '𝘇'], + ['\\mathsfit{A}', '𝘈'], + ['\\mathsfit{B}', '𝘉'], + ['\\mathsfit{C}', '𝘊'], + ['\\mathsfit{D}', '𝘋'], + ['\\mathsfit{E}', '𝘌'], + ['\\mathsfit{F}', '𝘍'], + ['\\mathsfit{G}', '𝘎'], + ['\\mathsfit{H}', '𝘏'], + ['\\mathsfit{I}', '𝘐'], + ['\\mathsfit{J}', '𝘑'], + ['\\mathsfit{K}', '𝘒'], + ['\\mathsfit{L}', '𝘓'], + ['\\mathsfit{M}', '𝘔'], + ['\\mathsfit{N}', '𝘕'], + ['\\mathsfit{O}', '𝘖'], + ['\\mathsfit{P}', '𝘗'], + ['\\mathsfit{Q}', '𝘘'], + ['\\mathsfit{R}', '𝘙'], + ['\\mathsfit{S}', '𝘚'], + ['\\mathsfit{T}', '𝘛'], + ['\\mathsfit{U}', '𝘜'], + ['\\mathsfit{V}', '𝘝'], + ['\\mathsfit{W}', '𝘞'], + ['\\mathsfit{X}', '𝘟'], + ['\\mathsfit{Y}', '𝘠'], + ['\\mathsfit{Z}', '𝘡'], + ['\\mathsfit{a}', '𝘢'], + ['\\mathsfit{b}', '𝘣'], + ['\\mathsfit{c}', '𝘤'], + ['\\mathsfit{d}', '𝘥'], + ['\\mathsfit{e}', '𝘦'], + ['\\mathsfit{f}', '𝘧'], + ['\\mathsfit{g}', '𝘨'], + ['\\mathsfit{h}', '𝘩'], + ['\\mathsfit{i}', '𝘪'], + ['\\mathsfit{j}', '𝘫'], + ['\\mathsfit{k}', '𝘬'], + ['\\mathsfit{l}', '𝘭'], + ['\\mathsfit{m}', '𝘮'], + ['\\mathsfit{n}', '𝘯'], + ['\\mathsfit{o}', '𝘰'], + ['\\mathsfit{p}', '𝘱'], + ['\\mathsfit{q}', '𝘲'], + ['\\mathsfit{r}', '𝘳'], + ['\\mathsfit{s}', '𝘴'], + ['\\mathsfit{t}', '𝘵'], + ['\\mathsfit{u}', '𝘶'], + ['\\mathsfit{v}', '𝘷'], + ['\\mathsfit{w}', '𝘸'], + ['\\mathsfit{x}', '𝘹'], + ['\\mathsfit{y}', '𝘺'], + ['\\mathsfit{z}', '𝘻'], + ['\\mathbf{\\Xi}', '𝚵'], + ['\\mathbf{\\Pi}', '𝚷'], + ['\\mbfvarTheta', '𝚹'], + ['\\mathbf{\\mu}', '𝛍'], + ['\\mathbf{\\nu}', '𝛎'], + ['\\mathbf{\\xi}', '𝛏'], + ['\\mathbf{\\pi}', '𝛑'], + ['\\mbfvarsigma', '𝛓'], + ['\\mbfvartheta', '𝛝'], + ['\\mbfvarkappa', '𝛞'], + ['\\mathit{\\Xi}', '𝛯'], + ['\\mathit{\\Pi}', '𝛱'], + ['\\mitvarTheta', '𝛳'], + ['\\mathit{\\mu}', '𝜇'], + ['\\mathit{\\nu}', '𝜈'], + ['\\mathit{\\xi}', '𝜉'], + ['\\mathit{\\pi}', '𝜋'], + ['\\mitvarsigma', '𝜍'], + ['\\mitvartheta', '𝜗'], + ['\\mitvarkappa', '𝜘'], + ['\\mbfitLambda', '𝜦'], + ['\\mbfitlambda', '𝝀'], + ['\\mbfitvarphi', '𝝓'], + ['\\mbfitvarrho', '𝝔'], + ['\\mbfsansBeta', '𝝗'], + ['\\mbfsansZeta', '𝝛'], + ['\\mbfsansIota', '𝝞'], + ['\\mbfsansbeta', '𝝱'], + ['\\mbfsanszeta', '𝝵'], + ['\\mbfsansiota', '𝝸'], + ['\\mbfitsansMu', '𝞛'], + ['\\mbfitsansNu', '𝞜'], + ['\\mbfitsansXi', '𝞝'], + ['\\mbfitsansPi', '𝞟'], + ['\\mbfitsansmu', '𝞵'], + ['\\mbfitsansnu', '𝞶'], + ['\\mbfitsansxi', '𝞷'], + ['\\mbfitsanspi', '𝞹'], + ['\\mathsfbf{0}', '𝟬'], + ['\\mbfsanszero', '𝟬'], + ['\\mathsfbf{1}', '𝟭'], + ['\\mathsfbf{2}', '𝟮'], + ['\\mathsfbf{3}', '𝟯'], + ['\\mathsfbf{4}', '𝟰'], + ['\\mbfsansfour', '𝟰'], + ['\\mathsfbf{5}', '𝟱'], + ['\\mbfsansfive', '𝟱'], + ['\\mathsfbf{6}', '𝟲'], + ['\\mathsfbf{7}', '𝟳'], + ['\\mathsfbf{8}', '𝟴'], + ['\\mathsfbf{9}', '𝟵'], + ['\\mbfsansnine', '𝟵'], + ['\\mathbb{Pi}', 'ℿ'], + ['\\mathcal{M}', 'ℳ'], + ['\\mathcal{o}', 'ℴ'], + ['\\mathcal{O}', '𝒪'], + ['\\nsupseteqq', '⊉'], + ['\\mathcal{B}', 'ℬ'], + ['\\textrecipe', '℞'], + ['\\nsubseteqq', '⊈'], + ['\\subsetneqq', '⊊'], + ['\\mathcal{I}', 'ℑ'], + ['\\upuparrows', '⇈'], + ['\\mathcal{e}', 'ℯ'], + ['\\mathcal{L}', 'ℒ'], + ['\\nleftarrow', '↚'], + ['\\mathcal{H}', 'ℋ'], + ['\\mathcal{E}', 'ℰ'], + ['\\eqslantgtr', '⋝'], + ['\\curlywedge', '⋏'], + ['\\varepsilon', 'ε'], + ['\\supsetneqq', '⊋'], + ['\\rightarrow', '→'], + ['\\mathcal{R}', 'ℛ'], + ['\\sqsubseteq', '⊑'], + ['\\mathcal{g}', 'ℊ'], + ['\\sqsupseteq', '⊒'], + ['\\complement', '∁'], + ['\\Rightarrow', '⇒'], + ['\\gtreqqless', '⋛'], + ['\\lesseqqgtr', '⋚'], + ['\\circledast', '⊛'], + ['\\nLeftarrow', '⇍'], + ['\\Lleftarrow', '⇚'], + ['\\varnothing', '∅'], + ['\\mathcal{N}', '𝒩'], + ['\\octothorpe', '#'], + ['\\mathdollar', '$'], + ['\\wideutilde', '̰'], + ['\\upvarsigma', 'ς'], + ['\\varsigmaup', 'ς'], + ['\\upvartheta', 'ϑ'], + ['\\varthetaup', 'ϑ'], + ['\\upoldKoppa', 'Ϙ'], + ['\\upoldkoppa', 'ϙ'], + ['\\upvarkappa', 'ϰ'], + ['\\upvarTheta', 'ϴ'], + ['\\twolowline', '‗'], + ['\\backdprime', '‶'], + ['\\Eulerconst', 'ℇ'], + ['\\turnediota', '℩'], + ['\\mathcal{F}', 'ℱ'], + ['\\EulerGamma', 'ℽ'], + ['\\mappedfrom', '↤'], + ['\\fourthroot', '∜'], + ['\\rightangle', '∟'], + ['\\Proportion', '∷'], + ['\\SetDelayed', '≔'], + ['\\smallfrown', '⌢'], + ['\\smallsmile', '⌣'], + ['\\conictaper', '⌲'], + ['\\APLcomment', '⍝'], + ['\\lparenuend', '⎛'], + ['\\lparenlend', '⎝'], + ['\\rparenuend', '⎞'], + ['\\rparenlend', '⎠'], + ['\\lbrackuend', '⎡'], + ['\\lbracklend', '⎣'], + ['\\rbrackuend', '⎤'], + ['\\rbracklend', '⎦'], + ['\\lbraceuend', '⎧'], + ['\\lbracelend', '⎩'], + ['\\rbraceuend', '⎫'], + ['\\rbracelend', '⎭'], + ['\\lmoustache', '⎰'], + ['\\rmoustache', '⎱'], + ['\\sqrtbottom', '⎷'], + ['\\underparen', '⏝'], + ['\\underbrace', '⏟'], + ['\\hrectangle', '▭'], + ['\\vrectangle', '▯'], + ['\\LEFTcircle', '◐'], + ['\\LEFTCIRCLE', '◖'], + ['\\ultriangle', '◸'], + ['\\urtriangle', '◹'], + ['\\lltriangle', '◺'], + ['\\lrtriangle', '◿'], + ['\\CheckedBox', '☑'], + ['\\Checkedbox', '☑'], + ['\\Crossedbox', '☒'], + ['\\pointright', '☞'], + ['\\vardiamond', '♦'], + ['\\eighthnote', '♪'], + ['\\subsetcirc', '⟃'], + ['\\supsetcirc', '⟄'], + ['\\Diamonddot', '⟐'], + ['\\DDownarrow', '⟱'], + ['\\longmapsto', '⟼'], + ['\\Longmapsto', '⟾'], + ['\\Mappedfrom', '⤆'], + ['\\Ddownarrow', '⤋'], + ['\\UpArrowBar', '⤒'], + ['\\baruparrow', '⤒'], + ['\\rightimply', '⥰'], + ['\\upfishtail', '⥾'], + ['\\lbrackubar', '⦋'], + ['\\rbrackubar', '⦌'], + ['\\lparenless', '⦓'], + ['\\Rparenless', '⦖'], + ['\\lblkbrbrak', '⦗'], + ['\\rblkbrbrak', '⦘'], + ['\\circlehbar', '⦵'], + ['\\circledgtr', '⧁'], + ['\\doubleplus', '⧺'], + ['\\tripleplus', '⧻'], + ['\\plussubtwo', '⨧'], + ['\\commaminus', '⨩'], + ['\\minusfdots', '⨫'], + ['\\minusrdots', '⨬'], + ['\\opluslhrim', '⨭'], + ['\\oplusrhrim', '⨮'], + ['\\smashtimes', '⨳'], + ['\\cupovercap', '⩆'], + ['\\capovercup', '⩇'], + ['\\veeonwedge', '⩙'], + ['\\veemidvert', '⩛'], + ['\\equivVvert', '⩩'], + ['\\lessapprox', '⪅'], + ['\\rightslice', '⪧'], + ['\\precapprox', '⪷'], + ['\\succapprox', '⪸'], + ['\\subsetplus', '⪿'], + ['\\supsetplus', '⫀'], + ['\\interleave', '⫴'], + ['\\talloblong', '⫾'], + ['\\varhexagon', '⬡'], + ['\\leftarrowx', '⬾'], + ['\\LLeftarrow', '⭅'], + ['\\postalmark', '〒'], + ['\\mathcal{A}', '𝒜'], + ['\\mathcal{C}', '𝒞'], + ['\\mathcal{D}', '𝒟'], + ['\\mathcal{G}', '𝒢'], + ['\\mathcal{J}', '𝒥'], + ['\\mathcal{K}', '𝒦'], + ['\\mathcal{P}', '𝒫'], + ['\\mathcal{Q}', '𝒬'], + ['\\mathcal{S}', '𝒮'], + ['\\mathcal{T}', '𝒯'], + ['\\mathcal{U}', '𝒰'], + ['\\mathcal{V}', '𝒱'], + ['\\mathcal{W}', '𝒲'], + ['\\mathcal{X}', '𝒳'], + ['\\mathcal{Y}', '𝒴'], + ['\\mathcal{Z}', '𝒵'], + ['\\mathcal{a}', '𝒶'], + ['\\mathcal{b}', '𝒷'], + ['\\mathcal{c}', '𝒸'], + ['\\mathcal{d}', '𝒹'], + ['\\mathcal{f}', '𝒻'], + ['\\mathcal{h}', '𝒽'], + ['\\mathcal{i}', '𝒾'], + ['\\mathcal{j}', '𝒿'], + ['\\mathcal{k}', '𝓀'], + ['\\mathcal{l}', '𝓁'], + ['\\mathcal{m}', '𝓂'], + ['\\mathcal{n}', '𝓃'], + ['\\mathcal{p}', '𝓅'], + ['\\mathcal{q}', '𝓆'], + ['\\mathcal{r}', '𝓇'], + ['\\mathcal{s}', '𝓈'], + ['\\mathcal{t}', '𝓉'], + ['\\mathcal{u}', '𝓊'], + ['\\mathcal{v}', '𝓋'], + ['\\mathcal{w}', '𝓌'], + ['\\mathcal{x}', '𝓍'], + ['\\mathcal{y}', '𝓎'], + ['\\mathcal{z}', '𝓏'], + ['\\mbfitsansA', '𝘼'], + ['\\mbfitsansB', '𝘽'], + ['\\mbfitsansC', '𝘾'], + ['\\mbfitsansD', '𝘿'], + ['\\mbfitsansE', '𝙀'], + ['\\mbfitsansF', '𝙁'], + ['\\mbfitsansG', '𝙂'], + ['\\mbfitsansH', '𝙃'], + ['\\mbfitsansI', '𝙄'], + ['\\mbfitsansJ', '𝙅'], + ['\\mbfitsansK', '𝙆'], + ['\\mbfitsansL', '𝙇'], + ['\\mbfitsansM', '𝙈'], + ['\\mbfitsansN', '𝙉'], + ['\\mbfitsansO', '𝙊'], + ['\\mbfitsansP', '𝙋'], + ['\\mbfitsansQ', '𝙌'], + ['\\mbfitsansR', '𝙍'], + ['\\mbfitsansS', '𝙎'], + ['\\mbfitsansT', '𝙏'], + ['\\mbfitsansU', '𝙐'], + ['\\mbfitsansV', '𝙑'], + ['\\mbfitsansW', '𝙒'], + ['\\mbfitsansX', '𝙓'], + ['\\mbfitsansY', '𝙔'], + ['\\mbfitsansZ', '𝙕'], + ['\\mbfitsansa', '𝙖'], + ['\\mbfitsansb', '𝙗'], + ['\\mbfitsansc', '𝙘'], + ['\\mbfitsansd', '𝙙'], + ['\\mbfitsanse', '𝙚'], + ['\\mbfitsansf', '𝙛'], + ['\\mbfitsansg', '𝙜'], + ['\\mbfitsansh', '𝙝'], + ['\\mbfitsansi', '𝙞'], + ['\\mbfitsansj', '𝙟'], + ['\\mbfitsansk', '𝙠'], + ['\\mbfitsansl', '𝙡'], + ['\\mbfitsansm', '𝙢'], + ['\\mbfitsansn', '𝙣'], + ['\\mbfitsanso', '𝙤'], + ['\\mbfitsansp', '𝙥'], + ['\\mbfitsansq', '𝙦'], + ['\\mbfitsansr', '𝙧'], + ['\\mbfitsanss', '𝙨'], + ['\\mbfitsanst', '𝙩'], + ['\\mbfitsansu', '𝙪'], + ['\\mbfitsansv', '𝙫'], + ['\\mbfitsansw', '𝙬'], + ['\\mbfitsansx', '𝙭'], + ['\\mbfitsansy', '𝙮'], + ['\\mbfitsansz', '𝙯'], + ['\\mbfEpsilon', '𝚬'], + ['\\mbfOmicron', '𝚶'], + ['\\mbfUpsilon', '𝚼'], + ['\\mbfepsilon', '𝛆'], + ['\\mbfomicron', '𝛐'], + ['\\mbfupsilon', '𝛖'], + ['\\mbfpartial', '𝛛'], + ['\\mitEpsilon', '𝛦'], + ['\\mitOmicron', '𝛰'], + ['\\mitUpsilon', '𝛶'], + ['\\varUpsilon', '𝛶'], + ['\\mitepsilon', '𝜀'], + ['\\mitomicron', '𝜊'], + ['\\mitupsilon', '𝜐'], + ['\\mitpartial', '𝜕'], + ['\\mbfitAlpha', '𝜜'], + ['\\mbfitGamma', '𝜞'], + ['\\mbfitDelta', '𝜟'], + ['\\mbfitTheta', '𝜣'], + ['\\mbfitKappa', '𝜥'], + ['\\mbfitSigma', '𝜮'], + ['\\mbfitOmega', '𝜴'], + ['\\mbfitnabla', '𝜵'], + ['\\mbfitalpha', '𝜶'], + ['\\mbfitgamma', '𝜸'], + ['\\mbfitdelta', '𝜹'], + ['\\mbfittheta', '𝜽'], + ['\\mbfitkappa', '𝜿'], + ['\\mbfitsigma', '𝝈'], + ['\\mbfitomega', '𝝎'], + ['\\mbfitvarpi', '𝝕'], + ['\\mbfsansEta', '𝝜'], + ['\\mbfsansRho', '𝝦'], + ['\\mbfsansTau', '𝝩'], + ['\\mbfsansPhi', '𝝫'], + ['\\mbfsansChi', '𝝬'], + ['\\mbfsansPsi', '𝝭'], + ['\\mbfsanseta', '𝝶'], + ['\\mbfsansrho', '𝞀'], + ['\\mbfsanstau', '𝞃'], + ['\\mbfsansphi', '𝞅'], + ['\\mbfsanschi', '𝞆'], + ['\\mbfsanspsi', '𝞇'], + ['\\mbfDigamma', '𝟊'], + ['\\mbfdigamma', '𝟋'], + ['\\msansthree', '𝟥'], + ['\\msansseven', '𝟩'], + ['\\msanseight', '𝟪'], + ['\\mbfsansone', '𝟭'], + ['\\mbfsanstwo', '𝟮'], + ['\\mbfsanssix', '𝟲'], + ['\\Leftarrow', '⇐'], + ['\\gvertneqq', '≩'], + ['\\mathbb{C}', 'ℂ'], + ['\\supsetneq', '⊋'], + ['\\leftarrow', '←'], + ['\\nleqslant', '≰'], + ['\\mathbb{Q}', 'ℚ'], + ['\\mathbb{Z}', 'ℤ'], + ['\\llbracket', '〚'], + ['\\mathbb{H}', 'ℍ'], + ['\\spadesuit', '♠'], + ['\\mathbb{P}', 'ℙ'], + ['\\rrbracket', '〛'], + ['\\supseteqq', '⊇'], + ['\\copyright', '©'], + ['\\textsc{k}', 'ĸ'], + ['\\gtreqless', '⋛'], + ['\\mathbb{j}', 'ⅉ'], + ['\\pitchfork', '⋔'], + ['\\estimated', '℮'], + ['\\ngeqslant', '≱'], + ['\\mathbb{e}', 'ⅇ'], + ['\\therefore', '∴'], + ['\\triangleq', '≜'], + ['\\varpropto', '∝'], + ['\\subsetneq', '⊊'], + ['\\heartsuit', '♥'], + ['\\mathbb{d}', 'ⅆ'], + ['\\lvertneqq', '≨'], + ['\\checkmark', '✓'], + ['\\nparallel', '∦'], + ['\\mathbb{R}', 'ℝ'], + ['\\lesseqgtr', '⋚'], + ['\\downarrow', '↓'], + ['\\mathbb{D}', 'ⅅ'], + ['\\mathbb{i}', 'ⅈ'], + ['\\backsimeq', '⋍'], + ['\\mathbb{N}', 'ℕ'], + ['\\Downarrow', '⇓'], + ['\\subseteqq', '⊆'], + ['\\ampersand', '&'], + ['\\mathslash', '/'], + ['\\mathcolon', ':'], + ['\\semicolon', ';'], + ['\\mathrm{A}', 'A'], + ['\\mathrm{B}', 'B'], + ['\\mathrm{C}', 'C'], + ['\\mathrm{D}', 'D'], + ['\\mathrm{E}', 'E'], + ['\\mathrm{F}', 'F'], + ['\\mathrm{G}', 'G'], + ['\\mathrm{H}', 'H'], + ['\\mathrm{I}', 'I'], + ['\\mathrm{J}', 'J'], + ['\\mathrm{K}', 'K'], + ['\\mathrm{L}', 'L'], + ['\\mathrm{M}', 'M'], + ['\\mathrm{N}', 'N'], + ['\\mathrm{O}', 'O'], + ['\\mathrm{P}', 'P'], + ['\\mathrm{Q}', 'Q'], + ['\\mathrm{R}', 'R'], + ['\\mathrm{S}', 'S'], + ['\\mathrm{T}', 'T'], + ['\\mathrm{U}', 'U'], + ['\\mathrm{V}', 'V'], + ['\\mathrm{W}', 'W'], + ['\\mathrm{X}', 'X'], + ['\\mathrm{Y}', 'Y'], + ['\\mathrm{Z}', 'Z'], + ['\\backslash', '\\'], + ['\\mathrm{a}', 'a'], + ['\\mathrm{b}', 'b'], + ['\\mathrm{c}', 'c'], + ['\\mathrm{d}', 'd'], + ['\\mathrm{e}', 'e'], + ['\\mathrm{f}', 'f'], + ['\\mathrm{g}', 'g'], + ['\\mathrm{h}', 'h'], + ['\\mathrm{i}', 'i'], + ['\\mathrm{j}', 'j'], + ['\\mathrm{k}', 'k'], + ['\\mathrm{l}', 'l'], + ['\\mathrm{m}', 'm'], + ['\\mathrm{n}', 'n'], + ['\\mathrm{o}', 'o'], + ['\\mathrm{p}', 'p'], + ['\\mathrm{q}', 'q'], + ['\\mathrm{r}', 'r'], + ['\\mathrm{s}', 's'], + ['\\mathrm{t}', 't'], + ['\\mathrm{u}', 'u'], + ['\\mathrm{v}', 'v'], + ['\\mathrm{w}', 'w'], + ['\\mathrm{x}', 'x'], + ['\\mathrm{y}', 'y'], + ['\\mathrm{z}', 'z'], + ['\\widetilde', '̃'], + ['\\upEpsilon', 'Ε'], + ['\\upOmicron', 'Ο'], + ['\\upUpsilon', 'Υ'], + ['\\upepsilon', 'ε'], + ['\\upomicron', 'ο'], + ['\\upupsilon', 'υ'], + ['\\upsilonup', 'υ'], + ['\\upvarbeta', 'ϐ'], + ['\\upDigamma', 'Ϝ'], + ['\\updigamma', 'ϝ'], + ['\\epsilonup', 'ϵ'], + ['\\backprime', '‵'], + ['\\tieconcat', '⁀'], + ['\\fracslash', '⁄'], + ['\\mathds{C}', 'ℂ'], + ['\\mathds{H}', 'ℍ'], + ['\\mathds{N}', 'ℕ'], + ['\\mathds{P}', 'ℙ'], + ['\\mathds{Q}', 'ℚ'], + ['\\mathds{R}', 'ℝ'], + ['\\mathds{Z}', 'ℤ'], + ['\\Angstroem', 'Å'], + ['\\lightning', '↯'], + ['\\Lightning', '↯'], + ['\\rightturn', '↻'], + ['\\nHuparrow', '⇞'], + ['\\dasharrow', '⇢'], + ['\\partialup', '∂'], + ['\\increment', '∆'], + ['\\clockoint', '∲'], + ['\\mathratio', '∶'], + ['\\dashcolon', '∹'], + ['\\LessTilde', '≲'], + ['\\nsubseteq', '⊈'], + ['\\nsupseteq', '⊉'], + ['\\varniobar', '⋽'], + ['\\bagmember', '⋿'], + ['\\sqlozenge', '⌑'], + ['\\turnednot', '⌙'], + ['\\intbottom', '⌡'], + ['\\lbracemid', '⎨'], + ['\\rbracemid', '⎬'], + ['\\sumbottom', '⎳'], + ['\\lvboxline', '⎸'], + ['\\rvboxline', '⎹'], + ['\\overparen', '⏜'], + ['\\wideparen', '⏜'], + ['\\overbrace', '⏞'], + ['\\trapezium', '⏢'], + ['\\accurrent', '⏦'], + ['\\blockfull', '█'], + ['\\radiation', '☢'], + ['\\biohazard', '☣'], + ['\\smileface', '☺'], + ['\\rightmoon', '☽'], + ['\\medbullet', '⚫'], + ['\\DashVDash', '⟚'], + ['\\dashVdash', '⟛'], + ['\\vlongdash', '⟝'], + ['\\longdashv', '⟞'], + ['\\impliedby', '⟸'], + ['\\righttail', '⤚'], + ['\\nwsearrow', '⤡'], + ['\\neswarrow', '⤢'], + ['\\hknwarrow', '⤣'], + ['\\hknearrow', '⤤'], + ['\\typecolon', '⦂'], + ['\\langledot', '⦑'], + ['\\rangledot', '⦒'], + ['\\rparengtr', '⦔'], + ['\\Lparengtr', '⦕'], + ['\\fourvdots', '⦙'], + ['\\turnangle', '⦢'], + ['\\angleubar', '⦤'], + ['\\olessthan', '⧀'], + ['\\boxbslash', '⧅'], + ['\\boxcircle', '⧇'], + ['\\triangles', '⧌'], + ['\\hourglass', '⧖'], + ['\\bigotimes', '⨂'], + ['\\bigcupdot', '⨃'], + ['\\conjquant', '⨇'], + ['\\disjquant', '⨈'], + ['\\modtwosum', '⨊'], + ['\\otimeshat', '⨶'], + ['\\cupbarcap', '⩈'], + ['\\capbarcup', '⩉'], + ['\\wedgeodot', '⩑'], + ['\\midbarvee', '⩝'], + ['\\varveebar', '⩡'], + ['\\equivVert', '⩨'], + ['\\hatapprox', '⩯'], + ['\\approxeqq', '⩰'], + ['\\gtrapprox', '⪆'], + ['\\leftslice', '⪦'], + ['\\subsetdot', '⪽'], + ['\\supsetdot', '⪾'], + ['\\leqqslant', '⫹'], + ['\\geqqslant', '⫺'], + ['\\centerdot', '⬝'], + ['\\Squaredot', '⬝'], + ['\\mathbf{A}', '𝐀'], + ['\\mathbf{B}', '𝐁'], + ['\\mathbf{C}', '𝐂'], + ['\\mathbf{D}', '𝐃'], + ['\\mathbf{E}', '𝐄'], + ['\\mathbf{F}', '𝐅'], + ['\\mathbf{G}', '𝐆'], + ['\\mathbf{H}', '𝐇'], + ['\\mathbf{I}', '𝐈'], + ['\\mathbf{J}', '𝐉'], + ['\\mathbf{K}', '𝐊'], + ['\\mathbf{L}', '𝐋'], + ['\\mathbf{M}', '𝐌'], + ['\\mathbf{N}', '𝐍'], + ['\\mathbf{O}', '𝐎'], + ['\\mathbf{P}', '𝐏'], + ['\\mathbf{Q}', '𝐐'], + ['\\mathbf{R}', '𝐑'], + ['\\mathbf{S}', '𝐒'], + ['\\mathbf{T}', '𝐓'], + ['\\mathbf{U}', '𝐔'], + ['\\mathbf{V}', '𝐕'], + ['\\mathbf{W}', '𝐖'], + ['\\mathbf{X}', '𝐗'], + ['\\mathbf{Y}', '𝐘'], + ['\\mathbf{Z}', '𝐙'], + ['\\mathbf{a}', '𝐚'], + ['\\mathbf{b}', '𝐛'], + ['\\mathbf{c}', '𝐜'], + ['\\mathbf{d}', '𝐝'], + ['\\mathbf{e}', '𝐞'], + ['\\mathbf{f}', '𝐟'], + ['\\mathbf{g}', '𝐠'], + ['\\mathbf{h}', '𝐡'], + ['\\mathbf{i}', '𝐢'], + ['\\mathbf{j}', '𝐣'], + ['\\mathbf{k}', '𝐤'], + ['\\mathbf{l}', '𝐥'], + ['\\mathbf{m}', '𝐦'], + ['\\mathbf{n}', '𝐧'], + ['\\mathbf{o}', '𝐨'], + ['\\mathbf{p}', '𝐩'], + ['\\mathbf{q}', '𝐪'], + ['\\mathbf{r}', '𝐫'], + ['\\mathbf{s}', '𝐬'], + ['\\mathbf{t}', '𝐭'], + ['\\mathbf{u}', '𝐮'], + ['\\mathbf{v}', '𝐯'], + ['\\mathbf{w}', '𝐰'], + ['\\mathbf{x}', '𝐱'], + ['\\mathbf{y}', '𝐲'], + ['\\mathbf{z}', '𝐳'], + ['\\mathit{A}', '𝐴'], + ['\\mathit{B}', '𝐵'], + ['\\mathit{C}', '𝐶'], + ['\\mathit{D}', '𝐷'], + ['\\mathit{E}', '𝐸'], + ['\\mathit{F}', '𝐹'], + ['\\mathit{G}', '𝐺'], + ['\\mathit{H}', '𝐻'], + ['\\mathit{I}', '𝐼'], + ['\\mathit{J}', '𝐽'], + ['\\mathit{K}', '𝐾'], + ['\\mathit{L}', '𝐿'], + ['\\mathit{M}', '𝑀'], + ['\\mathit{N}', '𝑁'], + ['\\mathit{O}', '𝑂'], + ['\\mathit{P}', '𝑃'], + ['\\mathit{Q}', '𝑄'], + ['\\mathit{R}', '𝑅'], + ['\\mathit{S}', '𝑆'], + ['\\mathit{T}', '𝑇'], + ['\\mathit{U}', '𝑈'], + ['\\mathit{V}', '𝑉'], + ['\\mathit{W}', '𝑊'], + ['\\mathit{X}', '𝑋'], + ['\\mathit{Y}', '𝑌'], + ['\\mathit{Z}', '𝑍'], + ['\\mathit{a}', '𝑎'], + ['\\mathit{b}', '𝑏'], + ['\\mathit{c}', '𝑐'], + ['\\mathit{d}', '𝑑'], + ['\\mathit{e}', '𝑒'], + ['\\mathit{f}', '𝑓'], + ['\\mathit{g}', '𝑔'], + ['\\mathit{i}', '𝑖'], + ['\\mathit{j}', '𝑗'], + ['\\mathit{k}', '𝑘'], + ['\\mathit{l}', '𝑙'], + ['\\mathit{m}', '𝑚'], + ['\\mathit{n}', '𝑛'], + ['\\mathit{o}', '𝑜'], + ['\\mathit{p}', '𝑝'], + ['\\mathit{q}', '𝑞'], + ['\\mathit{r}', '𝑟'], + ['\\mathit{s}', '𝑠'], + ['\\mathit{t}', '𝑡'], + ['\\mathit{u}', '𝑢'], + ['\\mathit{v}', '𝑣'], + ['\\mathit{w}', '𝑤'], + ['\\mathit{x}', '𝑥'], + ['\\mathit{y}', '𝑦'], + ['\\mathit{z}', '𝑧'], + ['\\mathbb{A}', '𝔸'], + ['\\mathds{A}', '𝔸'], + ['\\mathbb{B}', '𝔹'], + ['\\mathds{B}', '𝔹'], + ['\\mathds{D}', '𝔻'], + ['\\mathbb{E}', '𝔼'], + ['\\mathds{E}', '𝔼'], + ['\\mathbb{F}', '𝔽'], + ['\\mathds{F}', '𝔽'], + ['\\mathbb{G}', '𝔾'], + ['\\mathds{G}', '𝔾'], + ['\\mathbb{I}', '𝕀'], + ['\\mathds{I}', '𝕀'], + ['\\mathbb{J}', '𝕁'], + ['\\mathds{J}', '𝕁'], + ['\\mathbb{K}', '𝕂'], + ['\\mathds{K}', '𝕂'], + ['\\mathbb{L}', '𝕃'], + ['\\mathds{L}', '𝕃'], + ['\\mathbb{M}', '𝕄'], + ['\\mathds{M}', '𝕄'], + ['\\mathbb{O}', '𝕆'], + ['\\mathds{O}', '𝕆'], + ['\\mathbb{S}', '𝕊'], + ['\\mathds{S}', '𝕊'], + ['\\mathbb{T}', '𝕋'], + ['\\mathds{T}', '𝕋'], + ['\\mathbb{U}', '𝕌'], + ['\\mathds{U}', '𝕌'], + ['\\mathbb{V}', '𝕍'], + ['\\mathds{V}', '𝕍'], + ['\\mathbb{W}', '𝕎'], + ['\\mathds{W}', '𝕎'], + ['\\mathbb{X}', '𝕏'], + ['\\mathds{X}', '𝕏'], + ['\\mathbb{Y}', '𝕐'], + ['\\mathds{Y}', '𝕐'], + ['\\mathbb{a}', '𝕒'], + ['\\mathbb{b}', '𝕓'], + ['\\mathbb{c}', '𝕔'], + ['\\mathbb{f}', '𝕗'], + ['\\mathbb{g}', '𝕘'], + ['\\mathbb{h}', '𝕙'], + ['\\mathbb{k}', '𝕜'], + ['\\mathbb{l}', '𝕝'], + ['\\mathbb{m}', '𝕞'], + ['\\mathbb{n}', '𝕟'], + ['\\mathbb{o}', '𝕠'], + ['\\mathbb{p}', '𝕡'], + ['\\mathbb{q}', '𝕢'], + ['\\mathbb{r}', '𝕣'], + ['\\mathbb{s}', '𝕤'], + ['\\mathbb{t}', '𝕥'], + ['\\mathbb{u}', '𝕦'], + ['\\mathbb{v}', '𝕧'], + ['\\mathbb{w}', '𝕨'], + ['\\mathbb{x}', '𝕩'], + ['\\mathbb{y}', '𝕪'], + ['\\mathbb{z}', '𝕫'], + ['\\mathsf{A}', '𝖠'], + ['\\mathsf{B}', '𝖡'], + ['\\mathsf{C}', '𝖢'], + ['\\mathsf{D}', '𝖣'], + ['\\mathsf{E}', '𝖤'], + ['\\mathsf{F}', '𝖥'], + ['\\mathsf{G}', '𝖦'], + ['\\mathsf{H}', '𝖧'], + ['\\mathsf{I}', '𝖨'], + ['\\mathsf{J}', '𝖩'], + ['\\mathsf{K}', '𝖪'], + ['\\mathsf{L}', '𝖫'], + ['\\mathsf{M}', '𝖬'], + ['\\mathsf{N}', '𝖭'], + ['\\mathsf{O}', '𝖮'], + ['\\mathsf{P}', '𝖯'], + ['\\mathsf{Q}', '𝖰'], + ['\\mathsf{R}', '𝖱'], + ['\\mathsf{S}', '𝖲'], + ['\\mathsf{T}', '𝖳'], + ['\\mathsf{U}', '𝖴'], + ['\\mathsf{V}', '𝖵'], + ['\\mathsf{W}', '𝖶'], + ['\\mathsf{X}', '𝖷'], + ['\\mathsf{Y}', '𝖸'], + ['\\mathsf{Z}', '𝖹'], + ['\\mathsf{a}', '𝖺'], + ['\\mathsf{b}', '𝖻'], + ['\\mathsf{c}', '𝖼'], + ['\\mathsf{d}', '𝖽'], + ['\\mathsf{e}', '𝖾'], + ['\\mathsf{f}', '𝖿'], + ['\\mathsf{g}', '𝗀'], + ['\\mathsf{h}', '𝗁'], + ['\\mathsf{i}', '𝗂'], + ['\\mathsf{j}', '𝗃'], + ['\\mathsf{k}', '𝗄'], + ['\\mathsf{l}', '𝗅'], + ['\\mathsf{m}', '𝗆'], + ['\\mathsf{n}', '𝗇'], + ['\\mathsf{o}', '𝗈'], + ['\\mathsf{p}', '𝗉'], + ['\\mathsf{q}', '𝗊'], + ['\\mathsf{r}', '𝗋'], + ['\\mathsf{s}', '𝗌'], + ['\\mathsf{t}', '𝗍'], + ['\\mathsf{u}', '𝗎'], + ['\\mathsf{v}', '𝗏'], + ['\\mathsf{w}', '𝗐'], + ['\\mathsf{x}', '𝗑'], + ['\\mathsf{y}', '𝗒'], + ['\\mathsf{z}', '𝗓'], + ['\\mathtt{A}', '𝙰'], + ['\\mathtt{B}', '𝙱'], + ['\\mathtt{C}', '𝙲'], + ['\\mathtt{D}', '𝙳'], + ['\\mathtt{E}', '𝙴'], + ['\\mathtt{F}', '𝙵'], + ['\\mathtt{G}', '𝙶'], + ['\\mathtt{H}', '𝙷'], + ['\\mathtt{I}', '𝙸'], + ['\\mathtt{J}', '𝙹'], + ['\\mathtt{K}', '𝙺'], + ['\\mathtt{L}', '𝙻'], + ['\\mathtt{M}', '𝙼'], + ['\\mathtt{N}', '𝙽'], + ['\\mathtt{O}', '𝙾'], + ['\\mathtt{P}', '𝙿'], + ['\\mathtt{Q}', '𝚀'], + ['\\mathtt{R}', '𝚁'], + ['\\mathtt{S}', '𝚂'], + ['\\mathtt{T}', '𝚃'], + ['\\mathtt{U}', '𝚄'], + ['\\mathtt{V}', '𝚅'], + ['\\mathtt{W}', '𝚆'], + ['\\mathtt{X}', '𝚇'], + ['\\mathtt{Y}', '𝚈'], + ['\\mathtt{Z}', '𝚉'], + ['\\mathtt{a}', '𝚊'], + ['\\mathtt{b}', '𝚋'], + ['\\mathtt{c}', '𝚌'], + ['\\mathtt{d}', '𝚍'], + ['\\mathtt{e}', '𝚎'], + ['\\mathtt{f}', '𝚏'], + ['\\mathtt{g}', '𝚐'], + ['\\mathtt{h}', '𝚑'], + ['\\mathtt{i}', '𝚒'], + ['\\mathtt{j}', '𝚓'], + ['\\mathtt{k}', '𝚔'], + ['\\mathtt{l}', '𝚕'], + ['\\mathtt{m}', '𝚖'], + ['\\mathtt{n}', '𝚗'], + ['\\mathtt{o}', '𝚘'], + ['\\mathtt{p}', '𝚙'], + ['\\mathtt{q}', '𝚚'], + ['\\mathtt{r}', '𝚛'], + ['\\mathtt{s}', '𝚜'], + ['\\mathtt{t}', '𝚝'], + ['\\mathtt{u}', '𝚞'], + ['\\mathtt{v}', '𝚟'], + ['\\mathtt{w}', '𝚠'], + ['\\mathtt{x}', '𝚡'], + ['\\mathtt{y}', '𝚢'], + ['\\mathtt{z}', '𝚣'], + ['\\mbfLambda', '𝚲'], + ['\\mbflambda', '𝛌'], + ['\\mbfvarphi', '𝛗'], + ['\\mbfvarrho', '𝛠'], + ['\\mitLambda', '𝛬'], + ['\\varLambda', '𝛬'], + ['\\mitlambda', '𝜆'], + ['\\mitvarphi', '𝜙'], + ['\\mitvarrho', '𝜚'], + ['\\mbfitBeta', '𝜝'], + ['\\mbfitZeta', '𝜡'], + ['\\mbfitIota', '𝜤'], + ['\\mbfitbeta', '𝜷'], + ['\\mbfitzeta', '𝜻'], + ['\\mbfitiota', '𝜾'], + ['\\mbfsansMu', '𝝡'], + ['\\mbfsansNu', '𝝢'], + ['\\mbfsansXi', '𝝣'], + ['\\mbfsansPi', '𝝥'], + ['\\mbfsansmu', '𝝻'], + ['\\mbfsansnu', '𝝼'], + ['\\mbfsansxi', '𝝽'], + ['\\mbfsanspi', '𝝿'], + ['\\mathbf{0}', '𝟎'], + ['\\mathbf{1}', '𝟏'], + ['\\mathbf{2}', '𝟐'], + ['\\mathbf{3}', '𝟑'], + ['\\mathbf{4}', '𝟒'], + ['\\mathbf{5}', '𝟓'], + ['\\mathbf{6}', '𝟔'], + ['\\mathbf{7}', '𝟕'], + ['\\mathbf{8}', '𝟖'], + ['\\mathbf{9}', '𝟗'], + ['\\mathbb{0}', '𝟘'], + ['\\mathbb{1}', '𝟙'], + ['\\mathds{1}', '𝟙'], + ['\\mathbb{2}', '𝟚'], + ['\\mathbb{3}', '𝟛'], + ['\\mathbb{4}', '𝟜'], + ['\\mathbb{5}', '𝟝'], + ['\\mathbb{6}', '𝟞'], + ['\\mathbb{7}', '𝟟'], + ['\\mathbb{8}', '𝟠'], + ['\\mathbb{9}', '𝟡'], + ['\\mathsf{0}', '𝟢'], + ['\\msanszero', '𝟢'], + ['\\mathsf{1}', '𝟣'], + ['\\mathsf{2}', '𝟤'], + ['\\mathsf{3}', '𝟥'], + ['\\mathsf{4}', '𝟦'], + ['\\msansfour', '𝟦'], + ['\\mathsf{5}', '𝟧'], + ['\\msansfive', '𝟧'], + ['\\mathsf{6}', '𝟨'], + ['\\mathsf{7}', '𝟩'], + ['\\mathsf{8}', '𝟪'], + ['\\mathsf{9}', '𝟫'], + ['\\msansnine', '𝟫'], + ['\\mathtt{0}', '𝟶'], + ['\\mathtt{1}', '𝟷'], + ['\\mathtt{2}', '𝟸'], + ['\\mathtt{3}', '𝟹'], + ['\\mathtt{4}', '𝟺'], + ['\\mathtt{5}', '𝟻'], + ['\\mathtt{6}', '𝟼'], + ['\\mathtt{7}', '𝟽'], + ['\\mathtt{8}', '𝟾'], + ['\\mathtt{9}', '𝟿'], + ['\\setminus', '∖'], + ['\\succnsim', '⋩'], + ['\\doteqdot', '≑'], + ['\\clubsuit', '♣'], + ['\\emptyset', '∅'], + ['\\sqsupset', '⊐'], + ['\\fbox{~~}', '▭'], + ['\\curlyvee', '⋎'], + ['\\varkappa', 'ϰ'], + ['\\llcorner', '⌞'], + ['\\varsigma', 'ς'], + ['\\approxeq', '≊'], + ['\\backcong', '≌'], + ['\\supseteq', '⊇'], + ['\\circledS', 'Ⓢ'], + ['\\circledR', '®'], + ['\\textcent', '¢'], + ['\\urcorner', '⌝'], + ['\\lrcorner', '⌟'], + ['\\boxminus', '⊟'], + ['\\texteuro', '€'], + ['\\vartheta', 'ϑ'], + ['\\barwedge', '⊼'], + ['\\ding{86}', '✶'], + ['\\sqsubset', '⊏'], + ['\\subseteq', '⊆'], + ['\\intercal', '⊺'], + ['\\ding{73}', '☆'], + ['\\ulcorner', '⌜'], + ['\\recorder', '⌕'], + ['\\precnsim', '⋨'], + ['\\parallel', '∥'], + ['\\boxtimes', '⊠'], + ['\\ding{55}', '✗'], + ['\\multimap', '⊸'], + ['\\question', '?'], + ['\\mathcent', '¢'], + ['\\sterling', '£'], + ['\\currency', '¤'], + ['\\mathring', '̊'], + ['\\underbar', '̱'], + ['\\upLambda', 'Λ'], + ['\\uplambda', 'λ'], + ['\\lambdaup', 'λ'], + ['\\upvarphi', 'φ'], + ['\\varphiup', 'φ'], + ['\\upStigma', 'Ϛ'], + ['\\upstigma', 'ϛ'], + ['\\upvarrho', 'ϱ'], + ['\\varrhoup', 'ϱ'], + ['\\varTheta', 'ϴ'], + ['\\horizbar', '―'], + ['\\Question', '⁇'], + ['\\medspace', ' '], + ['\\Angstrom', 'Å'], + ['\\DoublePi', 'ℼ'], + ['\\Bbbgamma', 'ℽ'], + ['\\BbbGamma', 'ℾ'], + ['\\ComplexI', 'ⅈ'], + ['\\ComplexJ', 'ⅉ'], + ['\\mapsfrom', '↤'], + ['\\MapsDown', '↧'], + ['\\mapsdown', '↧'], + ['\\linefeed', '↴'], + ['\\leftturn', '↺'], + ['\\notowner', '∌'], + ['\\divslash', '∕'], + ['\\cuberoot', '∛'], + ['\\dotminus', '∸'], + ['\\invlazys', '∾'], + ['\\sinewave', '∿'], + ['\\dotequal', '≐'], + ['\\coloneqq', '≔'], + ['\\eqqcolon', '≕'], + ['\\notasymp', '≭'], + ['\\nlesssim', '≴'], + ['\\nlessgtr', '≸'], + ['\\ngtrless', '≹'], + ['\\bigwedge', '⋀'], + ['\\varisins', '⋳'], + ['\\isinobar', '⋷'], + ['\\diameter', '⌀'], + ['\\profline', '⌒'], + ['\\profsurf', '⌓'], + ['\\viewdata', '⌗'], + ['\\notslash', '⌿'], + ['\\APLinput', '⍞'], + ['\\bbrktbrk', '⎶'], + ['\\elinters', '⏧'], + ['\\triangle', '△'], + ['\\bullseye', '◎'], + ['\\astrosun', '☉'], + ['\\steaming', '☕'], + ['\\leftmoon', '☾'], + ['\\varEarth', '♁'], + ['\\aquarius', '♒'], + ['\\varspade', '♤'], + ['\\varheart', '♥'], + ['\\twonotes', '♫'], + ['\\acidfree', '♾'], + ['\\bsolhsub', '⟈'], + ['\\wedgedot', '⟑'], + ['\\pullback', '⟓'], + ['\\UUparrow', '⟰'], + ['\\Mapsfrom', '⤆'], + ['\\Uuparrow', '⤊'], + ['\\drbkarow', '⤐'], + ['\\lefttail', '⤙'], + ['\\hksearow', '⤥'], + ['\\hkswarow', '⤦'], + ['\\strictfi', '⥼'], + ['\\strictif', '⥽'], + ['\\revangle', '⦣'], + ['\\boxslash', '⧄'], + ['\\boxonbox', '⧉'], + ['\\rtriltri', '⧎'], + ['\\lfbowtie', '⧑'], + ['\\rfbowtie', '⧒'], + ['\\lvzigzag', '⧘'], + ['\\rvzigzag', '⧙'], + ['\\Lvzigzag', '⧚'], + ['\\Rvzigzag', '⧛'], + ['\\tieinfty', '⧝'], + ['\\smeparsl', '⧤'], + ['\\eqvparsl', '⧥'], + ['\\bigoplus', '⨁'], + ['\\biguplus', '⨄'], + ['\\bigsqcap', '⨅'], + ['\\bigsqcup', '⨆'], + ['\\bigtimes', '⨉'], + ['\\cirfnint', '⨐'], + ['\\rppolint', '⨒'], + ['\\scpolint', '⨓'], + ['\\pointint', '⨕'], + ['\\intlarhk', '⨗'], + ['\\zproject', '⨡'], + ['\\ringplus', '⨢'], + ['\\plustrif', '⨨'], + ['\\minusdot', '⨪'], + ['\\vectimes', '⨯'], + ['\\dottimes', '⨰'], + ['\\timesbar', '⨱'], + ['\\intprodr', '⨽'], + ['\\capwedge', '⩄'], + ['\\veeonvee', '⩖'], + ['\\wedgebar', '⩟'], + ['\\dotequiv', '⩧'], + ['\\simrdots', '⩫'], + ['\\Coloneqq', '⩴'], + ['\\leqslant', '⩽'], + ['\\geqslant', '⩾'], + ['\\lesdotor', '⪃'], + ['\\gesdotol', '⪄'], + ['\\lnapprox', '⪉'], + ['\\gnapprox', '⪊'], + ['\\precneqq', '⪵'], + ['\\succneqq', '⪶'], + ['\\forksnot', '⫝'], + ['\\varVdash', '⫦'], + ['\\pentagon', '⬠'], + ['\\mbffrakA', '𝕬'], + ['\\mbffrakB', '𝕭'], + ['\\mbffrakC', '𝕮'], + ['\\mbffrakD', '𝕯'], + ['\\mbffrakE', '𝕰'], + ['\\mbffrakF', '𝕱'], + ['\\mbffrakG', '𝕲'], + ['\\mbffrakH', '𝕳'], + ['\\mbffrakI', '𝕴'], + ['\\mbffrakJ', '𝕵'], + ['\\mbffrakK', '𝕶'], + ['\\mbffrakL', '𝕷'], + ['\\mbffrakM', '𝕸'], + ['\\mbffrakN', '𝕹'], + ['\\mbffrakO', '𝕺'], + ['\\mbffrakP', '𝕻'], + ['\\mbffrakQ', '𝕼'], + ['\\mbffrakR', '𝕽'], + ['\\mbffrakS', '𝕾'], + ['\\mbffrakT', '𝕿'], + ['\\mbffrakU', '𝖀'], + ['\\mbffrakV', '𝖁'], + ['\\mbffrakW', '𝖂'], + ['\\mbffrakX', '𝖃'], + ['\\mbffrakY', '𝖄'], + ['\\mbffrakZ', '𝖅'], + ['\\mbffraka', '𝖆'], + ['\\mbffrakb', '𝖇'], + ['\\mbffrakc', '𝖈'], + ['\\mbffrakd', '𝖉'], + ['\\mbffrake', '𝖊'], + ['\\mbffrakf', '𝖋'], + ['\\mbffrakg', '𝖌'], + ['\\mbffrakh', '𝖍'], + ['\\mbffraki', '𝖎'], + ['\\mbffrakj', '𝖏'], + ['\\mbffrakk', '𝖐'], + ['\\mbffrakl', '𝖑'], + ['\\mbffrakm', '𝖒'], + ['\\mbffrakn', '𝖓'], + ['\\mbffrako', '𝖔'], + ['\\mbffrakp', '𝖕'], + ['\\mbffrakq', '𝖖'], + ['\\mbffrakr', '𝖗'], + ['\\mbffraks', '𝖘'], + ['\\mbffrakt', '𝖙'], + ['\\mbffraku', '𝖚'], + ['\\mbffrakv', '𝖛'], + ['\\mbffrakw', '𝖜'], + ['\\mbffrakx', '𝖝'], + ['\\mbffraky', '𝖞'], + ['\\mbffrakz', '𝖟'], + ['\\mbfsansA', '𝗔'], + ['\\mbfsansB', '𝗕'], + ['\\mbfsansC', '𝗖'], + ['\\mbfsansD', '𝗗'], + ['\\mbfsansE', '𝗘'], + ['\\mbfsansF', '𝗙'], + ['\\mbfsansG', '𝗚'], + ['\\mbfsansH', '𝗛'], + ['\\mbfsansI', '𝗜'], + ['\\mbfsansJ', '𝗝'], + ['\\mbfsansK', '𝗞'], + ['\\mbfsansL', '𝗟'], + ['\\mbfsansM', '𝗠'], + ['\\mbfsansN', '𝗡'], + ['\\mbfsansO', '𝗢'], + ['\\mbfsansP', '𝗣'], + ['\\mbfsansQ', '𝗤'], + ['\\mbfsansR', '𝗥'], + ['\\mbfsansS', '𝗦'], + ['\\mbfsansT', '𝗧'], + ['\\mbfsansU', '𝗨'], + ['\\mbfsansV', '𝗩'], + ['\\mbfsansW', '𝗪'], + ['\\mbfsansX', '𝗫'], + ['\\mbfsansY', '𝗬'], + ['\\mbfsansZ', '𝗭'], + ['\\mbfsansa', '𝗮'], + ['\\mbfsansb', '𝗯'], + ['\\mbfsansc', '𝗰'], + ['\\mbfsansd', '𝗱'], + ['\\mbfsanse', '𝗲'], + ['\\mbfsansf', '𝗳'], + ['\\mbfsansg', '𝗴'], + ['\\mbfsansh', '𝗵'], + ['\\mbfsansi', '𝗶'], + ['\\mbfsansj', '𝗷'], + ['\\mbfsansk', '𝗸'], + ['\\mbfsansl', '𝗹'], + ['\\mbfsansm', '𝗺'], + ['\\mbfsansn', '𝗻'], + ['\\mbfsanso', '𝗼'], + ['\\mbfsansp', '𝗽'], + ['\\mbfsansq', '𝗾'], + ['\\mbfsansr', '𝗿'], + ['\\mbfsanss', '𝘀'], + ['\\mbfsanst', '𝘁'], + ['\\mbfsansu', '𝘂'], + ['\\mbfsansv', '𝘃'], + ['\\mbfsansw', '𝘄'], + ['\\mbfsansx', '𝘅'], + ['\\mbfsansy', '𝘆'], + ['\\mbfsansz', '𝘇'], + ['\\mitsansA', '𝘈'], + ['\\mitsansB', '𝘉'], + ['\\mitsansC', '𝘊'], + ['\\mitsansD', '𝘋'], + ['\\mitsansE', '𝘌'], + ['\\mitsansF', '𝘍'], + ['\\mitsansG', '𝘎'], + ['\\mitsansH', '𝘏'], + ['\\mitsansI', '𝘐'], + ['\\mitsansJ', '𝘑'], + ['\\mitsansK', '𝘒'], + ['\\mitsansL', '𝘓'], + ['\\mitsansM', '𝘔'], + ['\\mitsansN', '𝘕'], + ['\\mitsansO', '𝘖'], + ['\\mitsansP', '𝘗'], + ['\\mitsansQ', '𝘘'], + ['\\mitsansR', '𝘙'], + ['\\mitsansS', '𝘚'], + ['\\mitsansT', '𝘛'], + ['\\mitsansU', '𝘜'], + ['\\mitsansV', '𝘝'], + ['\\mitsansW', '𝘞'], + ['\\mitsansX', '𝘟'], + ['\\mitsansY', '𝘠'], + ['\\mitsansZ', '𝘡'], + ['\\mitsansa', '𝘢'], + ['\\mitsansb', '𝘣'], + ['\\mitsansc', '𝘤'], + ['\\mitsansd', '𝘥'], + ['\\mitsanse', '𝘦'], + ['\\mitsansf', '𝘧'], + ['\\mitsansg', '𝘨'], + ['\\mitsansh', '𝘩'], + ['\\mitsansi', '𝘪'], + ['\\mitsansj', '𝘫'], + ['\\mitsansk', '𝘬'], + ['\\mitsansl', '𝘭'], + ['\\mitsansm', '𝘮'], + ['\\mitsansn', '𝘯'], + ['\\mitsanso', '𝘰'], + ['\\mitsansp', '𝘱'], + ['\\mitsansq', '𝘲'], + ['\\mitsansr', '𝘳'], + ['\\mitsanss', '𝘴'], + ['\\mitsanst', '𝘵'], + ['\\mitsansu', '𝘶'], + ['\\mitsansv', '𝘷'], + ['\\mitsansw', '𝘸'], + ['\\mitsansx', '𝘹'], + ['\\mitsansy', '𝘺'], + ['\\mitsansz', '𝘻'], + ['\\mbfAlpha', '𝚨'], + ['\\mbfGamma', '𝚪'], + ['\\mbfDelta', '𝚫'], + ['\\mbfTheta', '𝚯'], + ['\\mbfKappa', '𝚱'], + ['\\mbfSigma', '𝚺'], + ['\\mbfOmega', '𝛀'], + ['\\mbfnabla', '𝛁'], + ['\\mbfalpha', '𝛂'], + ['\\mbfgamma', '𝛄'], + ['\\mbfdelta', '𝛅'], + ['\\mbftheta', '𝛉'], + ['\\mbfkappa', '𝛋'], + ['\\mbfsigma', '𝛔'], + ['\\mbfomega', '𝛚'], + ['\\mbfvarpi', '𝛡'], + ['\\mitAlpha', '𝛢'], + ['\\mitGamma', '𝛤'], + ['\\varGamma', '𝛤'], + ['\\mitDelta', '𝛥'], + ['\\varDelta', '𝛥'], + ['\\mitTheta', '𝛩'], + ['\\mitKappa', '𝛫'], + ['\\mitSigma', '𝛴'], + ['\\varSigma', '𝛴'], + ['\\mitOmega', '𝛺'], + ['\\varOmega', '𝛺'], + ['\\mitnabla', '𝛻'], + ['\\mitalpha', '𝛼'], + ['\\mitgamma', '𝛾'], + ['\\mitdelta', '𝛿'], + ['\\mittheta', '𝜃'], + ['\\mitkappa', '𝜅'], + ['\\mitsigma', '𝜎'], + ['\\mitomega', '𝜔'], + ['\\mitvarpi', '𝜛'], + ['\\mbfitEta', '𝜢'], + ['\\mbfitRho', '𝜬'], + ['\\mbfitTau', '𝜯'], + ['\\mbfitPhi', '𝜱'], + ['\\mbfitChi', '𝜲'], + ['\\mbfitPsi', '𝜳'], + ['\\mbfiteta', '𝜼'], + ['\\mbfitrho', '𝝆'], + ['\\mbfittau', '𝝉'], + ['\\mbfitphi', '𝝋'], + ['\\mbfitchi', '𝝌'], + ['\\mbfitpsi', '𝝍'], + ['\\Bbbthree', '𝟛'], + ['\\Bbbseven', '𝟟'], + ['\\Bbbeight', '𝟠'], + ['\\msansone', '𝟣'], + ['\\msanstwo', '𝟤'], + ['\\msanssix', '𝟨'], + ['\\mttthree', '𝟹'], + ['\\mttseven', '𝟽'], + ['\\mtteight', '𝟾'], + ['\\maltese', '✠'], + ['\\nearrow', '↗'], + ['\\swarrow', '↙'], + ['\\lozenge', '◊'], + ['\\sqrt[3]', '∛'], + ['\\succsim', '≿'], + ['\\dotplus', '∔'], + ['\\tilde{}', '~'], + ['\\check{}', 'ˇ'], + ['\\lessgtr', '≶'], + ['\\Upsilon', 'ϒ'], + ['\\Cdprime', 'Ъ'], + ['\\gtrless', '≷'], + ['\\backsim', '∽'], + ['\\nexists', '∄'], + ['\\searrow', '↘'], + ['\\lessdot', '⋖'], + ['\\boxplus', '⊞'], + ['\\upsilon', 'υ'], + ['\\epsilon', 'ε'], + ['\\diamond', '⋄'], + ['\\bigstar', '★'], + ['\\ddagger', '‡'], + ['\\cdprime', 'ъ'], + ['\\Uparrow', '⇑'], + ['\\sqrt[4]', '∜'], + ['\\between', '≬'], + ['\\sqangle', '∟'], + ['\\digamma', 'Ϝ'], + ['\\uparrow', '↑'], + ['\\nwarrow', '↖'], + ['\\precsim', '≾'], + ['\\breve{}', '˘'], + ['\\because', '∵'], + ['\\bigcirc', '◯'], + ['\\acute{}', '´'], + ['\\grave{}', '`'], + ['\\lesssim', '≲'], + ['\\partial', '∂'], + ['\\natural', '♮'], + ['\\percent', '%'], + ['\\greater', '>'], + ['\\sptilde', '~'], + ['\\matheth', 'ð'], + ['\\widehat', '̂'], + ['\\overbar', '̅'], + ['\\upAlpha', 'Α'], + ['\\upGamma', 'Γ'], + ['\\upDelta', 'Δ'], + ['\\upTheta', 'Θ'], + ['\\upKappa', 'Κ'], + ['\\upSigma', 'Σ'], + ['\\upOmega', 'Ω'], + ['\\upalpha', 'α'], + ['\\alphaup', 'α'], + ['\\upgamma', 'γ'], + ['\\gammaup', 'γ'], + ['\\updelta', 'δ'], + ['\\deltaup', 'δ'], + ['\\uptheta', 'θ'], + ['\\thetaup', 'θ'], + ['\\upkappa', 'κ'], + ['\\kappaup', 'κ'], + ['\\upsigma', 'σ'], + ['\\sigmaup', 'σ'], + ['\\upomega', 'ω'], + ['\\omegaup', 'ω'], + ['\\varbeta', 'ϐ'], + ['\\upvarpi', 'ϖ'], + ['\\varpiup', 'ϖ'], + ['\\Digamma', 'Ϝ'], + ['\\upKoppa', 'Ϟ'], + ['\\upkoppa', 'ϟ'], + ['\\upSampi', 'Ϡ'], + ['\\upsampi', 'ϡ'], + ['\\trprime', '‴'], + ['\\closure', '⁐'], + ['\\annuity', '⃧'], + ['\\mitBbbD', 'ⅅ'], + ['\\mitBbbd', 'ⅆ'], + ['\\mitBbbe', 'ⅇ'], + ['\\mitBbbi', 'ⅈ'], + ['\\mitBbbj', 'ⅉ'], + ['\\Nwarrow', '⇖'], + ['\\Nearrow', '⇗'], + ['\\Searrow', '⇘'], + ['\\Swarrow', '⇙'], + ['\\smallin', '∊'], + ['\\notowns', '∌'], + ['\\smallni', '∍'], + ['\\dbloint', '∯'], + ['\\eqcolon', '∹'], + ['\\simneqq', '≆'], + ['\\napprox', '≉'], + ['\\coloneq', '≔'], + ['\\varsdef', '≜'], + ['\\questeq', '≟'], + ['\\ngtrsim', '≵'], + ['\\nsubset', '⊄'], + ['\\nsupset', '⊅'], + ['\\imageof', '⊷'], + ['\\lrtimes', '⋈'], + ['\\npreceq', '⋠'], + ['\\nsucceq', '⋡'], + ['\\isindot', '⋵'], + ['\\hexagon', '⎔'], + ['\\obrbrak', '⏠'], + ['\\ubrbrak', '⏡'], + ['\\benzenr', '⏣'], + ['\\squoval', '▢'], + ['\\Diamond', '◇'], + ['\\fisheye', '◉'], + ['\\yinyang', '☯'], + ['\\frownie', '☹'], + ['\\sadface', '☹'], + ['\\mercury', '☿'], + ['\\Mercury', '☿'], + ['\\jupiter', '♃'], + ['\\Jupiter', '♃'], + ['\\neptune', '♆'], + ['\\Neptune', '♆'], + ['\\scorpio', '♏'], + ['\\Scorpio', '♏'], + ['\\varclub', '♧'], + ['\\recycle', '♻'], + ['\\diceiii', '⚂'], + ['\\warning', '⚠'], + ['\\medcirc', '⚪'], + ['\\ballotx', '✗'], + ['\\varstar', '✶'], + ['\\lbrbrak', '❲'], + ['\\rbrbrak', '❳'], + ['\\suphsol', '⟉'], + ['\\pushout', '⟔'], + ['\\Lbrbrak', '⟬'], + ['\\Rbrbrak', '⟭'], + ['\\implies', '⟹'], + ['\\dbkarow', '⤏'], + ['\\leadsto', '⤳'], + ['\\subrarr', '⥹'], + ['\\suplarr', '⥻'], + ['\\llangle', '⦉'], + ['\\rrangle', '⦊'], + ['\\vzigzag', '⦚'], + ['\\obslash', '⦸'], + ['\\olcross', '⦻'], + ['\\cirscir', '⧂'], + ['\\boxdiag', '⧄'], + ['\\fbowtie', '⧓'], + ['\\lftimes', '⧔'], + ['\\rftimes', '⧕'], + ['\\nvinfty', '⧞'], + ['\\dualmap', '⧟'], + ['\\shuffle', '⧢'], + ['\\thermod', '⧧'], + ['\\rsolbar', '⧷'], + ['\\bigodot', '⨀'], + ['\\varprod', '⨉'], + ['\\npolint', '⨔'], + ['\\fatsemi', '⨟'], + ['\\project', '⨡'], + ['\\plushat', '⨣'], + ['\\simplus', '⨤'], + ['\\plusdot', '⨥'], + ['\\plussim', '⨦'], + ['\\intprod', '⨼'], + ['\\twocups', '⩊'], + ['\\twocaps', '⩋'], + ['\\veeodot', '⩒'], + ['\\congdot', '⩭'], + ['\\eqqplus', '⩱'], + ['\\pluseqq', '⩲'], + ['\\Coloneq', '⩴'], + ['\\ddotseq', '⩷'], + ['\\equivDD', '⩸'], + ['\\ltquest', '⩻'], + ['\\gtquest', '⩼'], + ['\\lesdoto', '⪁'], + ['\\gesdoto', '⪂'], + ['\\eqqless', '⪙'], + ['\\simless', '⪝'], + ['\\bumpeqq', '⪮'], + ['\\precneq', '⪱'], + ['\\succneq', '⪲'], + ['\\preceqq', '⪳'], + ['\\succeqq', '⪴'], + ['\\llcurly', '⪻'], + ['\\ggcurly', '⪼'], + ['\\submult', '⫁'], + ['\\supmult', '⫂'], + ['\\subedot', '⫃'], + ['\\supedot', '⫄'], + ['\\lsqhook', '⫍'], + ['\\rsqhook', '⫎'], + ['\\suphsub', '⫗'], + ['\\supdsub', '⫘'], + ['\\topfork', '⫚'], + ['\\revnmid', '⫮'], + ['\\nhVvert', '⫵'], + ['\\lllnest', '⫷'], + ['\\gggnest', '⫸'], + ['\\trslash', '⫻'], + ['\\hzigzag', '〰'], + ['\\mbfscrA', '𝓐'], + ['\\mbfscrB', '𝓑'], + ['\\mbfscrC', '𝓒'], + ['\\mbfscrD', '𝓓'], + ['\\mbfscrE', '𝓔'], + ['\\mbfscrF', '𝓕'], + ['\\mbfscrG', '𝓖'], + ['\\mbfscrH', '𝓗'], + ['\\mbfscrI', '𝓘'], + ['\\mbfscrJ', '𝓙'], + ['\\mbfscrK', '𝓚'], + ['\\mbfscrL', '𝓛'], + ['\\mbfscrM', '𝓜'], + ['\\mbfscrN', '𝓝'], + ['\\mbfscrO', '𝓞'], + ['\\mbfscrP', '𝓟'], + ['\\mbfscrQ', '𝓠'], + ['\\mbfscrR', '𝓡'], + ['\\mbfscrS', '𝓢'], + ['\\mbfscrT', '𝓣'], + ['\\mbfscrU', '𝓤'], + ['\\mbfscrV', '𝓥'], + ['\\mbfscrW', '𝓦'], + ['\\mbfscrX', '𝓧'], + ['\\mbfscrY', '𝓨'], + ['\\mbfscrZ', '𝓩'], + ['\\mbfscra', '𝓪'], + ['\\mbfscrb', '𝓫'], + ['\\mbfscrc', '𝓬'], + ['\\mbfscrd', '𝓭'], + ['\\mbfscre', '𝓮'], + ['\\mbfscrf', '𝓯'], + ['\\mbfscrg', '𝓰'], + ['\\mbfscrh', '𝓱'], + ['\\mbfscri', '𝓲'], + ['\\mbfscrj', '𝓳'], + ['\\mbfscrk', '𝓴'], + ['\\mbfscrl', '𝓵'], + ['\\mbfscrm', '𝓶'], + ['\\mbfscrn', '𝓷'], + ['\\mbfscro', '𝓸'], + ['\\mbfscrp', '𝓹'], + ['\\mbfscrq', '𝓺'], + ['\\mbfscrr', '𝓻'], + ['\\mbfscrs', '𝓼'], + ['\\mbfscrt', '𝓽'], + ['\\mbfscru', '𝓾'], + ['\\mbfscrv', '𝓿'], + ['\\mbfscrw', '𝔀'], + ['\\mbfscrx', '𝔁'], + ['\\mbfscry', '𝔂'], + ['\\mbfscrz', '𝔃'], + ['\\mbfBeta', '𝚩'], + ['\\mbfZeta', '𝚭'], + ['\\mbfIota', '𝚰'], + ['\\mbfbeta', '𝛃'], + ['\\mbfzeta', '𝛇'], + ['\\mbfiota', '𝛊'], + ['\\mitBeta', '𝛣'], + ['\\mitZeta', '𝛧'], + ['\\mitIota', '𝛪'], + ['\\mitbeta', '𝛽'], + ['\\mitzeta', '𝜁'], + ['\\mitiota', '𝜄'], + ['\\mbfitMu', '𝜧'], + ['\\mbfitNu', '𝜨'], + ['\\mbfitXi', '𝜩'], + ['\\mbfitPi', '𝜫'], + ['\\mbfitmu', '𝝁'], + ['\\mbfitnu', '𝝂'], + ['\\mbfitxi', '𝝃'], + ['\\mbfitpi', '𝝅'], + ['\\Bbbzero', '𝟘'], + ['\\Bbbfour', '𝟜'], + ['\\Bbbfive', '𝟝'], + ['\\Bbbnine', '𝟡'], + ['\\mttzero', '𝟶'], + ['\\mttfour', '𝟺'], + ['\\mttfive', '𝟻'], + ['\\mttnine', '𝟿'], + ['\\supset', '⊃'], + ['\\hstrok', 'ħ'], + ['\\Tstrok', 'Ŧ'], + ['\\coprod', '∐'], + ['\\models', '⊧'], + ['\\otimes', '⊗'], + ['\\degree', '°'], + ['\\gtrdot', '⋗'], + ['\\preceq', '≼'], + ['\\Lambda', 'Λ'], + ['\\lambda', 'λ'], + ['\\cprime', 'ь'], + ['\\varrho', 'ϱ'], + ['\\Bumpeq', '≎'], + ['\\hybull', '⁃'], + ['\\lmidot', 'ŀ'], + ['\\nvdash', '⊬'], + ['\\lbrace', '{'], + ['\\bullet', '•'], + ['\\varphi', 'φ'], + ['\\bumpeq', '≏'], + ['\\ddot{}', '¨'], + ['\\Lmidot', 'Ŀ'], + ['\\Cprime', 'Ь'], + ['\\female', '♀'], + ['\\rtimes', '⋊'], + ['\\gtrsim', '≳'], + ['\\mapsto', '↦'], + ['\\daleth', 'ℸ'], + ['\\square', '■'], + ['\\nVDash', '⊯'], + ['\\rangle', '〉'], + ['\\tstrok', 'ŧ'], + ['\\oslash', '⊘'], + ['\\ltimes', '⋉'], + ['\\lfloor', '⌊'], + ['\\marker', '▮'], + ['\\Subset', '⋐'], + ['\\Vvdash', '⊪'], + ['\\propto', '∝'], + ['\\Hstrok', 'Ħ'], + ['\\dlcrop', '⌍'], + ['\\forall', '∀'], + ['\\nVdash', '⊮'], + ['\\Supset', '⋑'], + ['\\langle', '〈'], + ['\\ominus', '⊖'], + ['\\rfloor', '⌋'], + ['\\circeq', '≗'], + ['\\eqcirc', '≖'], + ['\\drcrop', '⌌'], + ['\\veebar', '⊻'], + ['\\ulcrop', '⌏'], + ['\\nvDash', '⊭'], + ['\\urcrop', '⌎'], + ['\\exists', '∃'], + ['\\approx', '≈'], + ['\\dagger', '†'], + ['\\boxdot', '⊡'], + ['\\succeq', '≽'], + ['\\bowtie', '⋈'], + ['\\subset', '⊂'], + ['\\exclam', '!'], + ['\\lparen', '('], + ['\\rparen', ')'], + ['\\period', '.'], + ['\\atsign', '@'], + ['\\lbrack', '('], + ['\\rbrack', ')'], + ['\\rbrace', '}'], + ['\\pounds', '£'], + ['\\spddot', '¨'], + ['\\textmu', 'µ'], + ['\\ovhook', '̉'], + ['\\candra', '̐'], + ['\\droang', '̚'], + ['\\utilde', '̰'], + ['\\upBeta', 'Β'], + ['\\upZeta', 'Ζ'], + ['\\upIota', 'Ι'], + ['\\upbeta', 'β'], + ['\\betaup', 'β'], + ['\\upzeta', 'ζ'], + ['\\zetaup', 'ζ'], + ['\\upiota', 'ι'], + ['\\iotaup', 'ι'], + ['\\Stigma', 'Ϛ'], + ['\\stigma', 'ϛ'], + ['\\CYRSHA', 'Ш'], + ['\\second', '″'], + ['\\dprime', '″'], + ['\\Exclam', '‼'], + ['\\fourth', '⁗'], + ['\\qprime', '⁗'], + ['\\ddddot', '⃜'], + ['\\mfrakH', 'ℌ'], + ['\\hslash', 'ℏ'], + ['\\mfrakZ', 'ℨ'], + ['\\mfrakC', 'ℭ'], + ['\\Bbbsum', '⅀'], + ['\\invamp', '⅋'], + ['\\MapsUp', '↥'], + ['\\mapsup', '↥'], + ['\\oiiint', '∰'], + ['\\nsimeq', '≄'], + ['\\wedgeq', '≙'], + ['\\stareq', '≛'], + ['\\measeq', '≞'], + ['\\nequiv', '≢'], + ['\\nasymp', '≭'], + ['\\apprle', '≲'], + ['\\apprge', '≳'], + ['\\cupdot', '⊍'], + ['\\assert', '⊦'], + ['\\prurel', '⊰'], + ['\\scurel', '⊱'], + ['\\origof', '⊶'], + ['\\barvee', '⊽'], + ['\\bigvee', '⋁'], + ['\\bigcap', '⋂'], + ['\\dinter', '⋂'], + ['\\bigcup', '⋃'], + ['\\dunion', '⋃'], + ['\\eqless', '⋜'], + ['\\nunlhd', '⋬'], + ['\\nunrhd', '⋭'], + ['\\iddots', '⋰'], + ['\\isinvb', '⋸'], + ['\\varnis', '⋻'], + ['\\niobar', '⋾'], + ['\\invneg', '⌐'], + ['\\invnot', '⌐'], + ['\\inttop', '⌠'], + ['\\topbot', '⌶'], + ['\\APLinv', '⌹'], + ['\\APLlog', '⍟'], + ['\\sumtop', '⎲'], + ['\\Circle', '○'], + ['\\CIRCLE', '●'], + ['\\boxbar', '◫'], + ['\\Square', '☐'], + ['\\danger', '☡'], + ['\\smiley', '☺'], + ['\\saturn', '♄'], + ['\\Saturn', '♄'], + ['\\uranus', '♅'], + ['\\Uranus', '♅'], + ['\\taurus', '♉'], + ['\\Taurus', '♉'], + ['\\gemini', '♊'], + ['\\Gemini', '♊'], + ['\\cancer', '♋'], + ['\\pisces', '♓'], + ['\\diceii', '⚁'], + ['\\diceiv', '⚃'], + ['\\dicevi', '⚅'], + ['\\anchor', '⚓'], + ['\\swords', '⚔'], + ['\\neuter', '⚲'], + ['\\pencil', '✎'], + ['\\veedot', '⟇'], + ['\\bigbot', '⟘'], + ['\\bigtop', '⟙'], + ['\\cirbot', '⟟'], + ['\\lBrack', '⟦'], + ['\\Lbrack', '⟦'], + ['\\rBrack', '⟧'], + ['\\Rbrack', '⟧'], + ['\\lAngle', '⟪'], + ['\\rAngle', '⟫'], + ['\\lgroup', '⟮'], + ['\\rgroup', '⟯'], + ['\\Mapsto', '⤇'], + ['\\ltlarr', '⥶'], + ['\\gtrarr', '⥸'], + ['\\lBrace', '⦃'], + ['\\rBrace', '⦄'], + ['\\Lparen', '⦅'], + ['\\lParen', '⦅'], + ['\\Rparen', '⦆'], + ['\\rParen', '⦆'], + ['\\angles', '⦞'], + ['\\angdnr', '⦟'], + ['\\gtlpar', '⦠'], + ['\\boxast', '⧆'], + ['\\boxbox', '⧈'], + ['\\ltrivb', '⧏'], + ['\\vbrtri', '⧐'], + ['\\iinfin', '⧜'], + ['\\laplac', '⧠'], + ['\\eparsl', '⧣'], + ['\\tminus', '⧿'], + ['\\sumint', '⨋'], + ['\\iiiint', '⨌'], + ['\\intbar', '⨍'], + ['\\intBar', '⨎'], + ['\\sqrint', '⨖'], + ['\\intcap', '⨙'], + ['\\intcup', '⨚'], + ['\\lowint', '⨜'], + ['\\btimes', '⨲'], + ['\\Otimes', '⨷'], + ['\\capdot', '⩀'], + ['\\uminus', '⩁'], + ['\\barcup', '⩂'], + ['\\barcap', '⩃'], + ['\\cupvee', '⩅'], + ['\\dotsim', '⩪'], + ['\\eqqsim', '⩳'], + ['\\eqeqeq', '⩶'], + ['\\lesdot', '⩿'], + ['\\gesdot', '⪀'], + ['\\lesges', '⪓'], + ['\\gesles', '⪔'], + ['\\elsdot', '⪗'], + ['\\egsdot', '⪘'], + ['\\eqqgtr', '⪚'], + ['\\simgtr', '⪞'], + ['\\subsim', '⫇'], + ['\\supsim', '⫈'], + ['\\subsup', '⫓'], + ['\\supsub', '⫔'], + ['\\subsub', '⫕'], + ['\\supsup', '⫖'], + ['\\vDdash', '⫢'], + ['\\cirmid', '⫯'], + ['\\midcir', '⫰'], + ['\\topcir', '⫱'], + ['\\parsim', '⫳'], + ['\\sslash', '⫽'], + ['\\mbfitA', '𝑨'], + ['\\mbfitB', '𝑩'], + ['\\mbfitC', '𝑪'], + ['\\mbfitD', '𝑫'], + ['\\mbfitE', '𝑬'], + ['\\mbfitF', '𝑭'], + ['\\mbfitG', '𝑮'], + ['\\mbfitH', '𝑯'], + ['\\mbfitI', '𝑰'], + ['\\mbfitJ', '𝑱'], + ['\\mbfitK', '𝑲'], + ['\\mbfitL', '𝑳'], + ['\\mbfitM', '𝑴'], + ['\\mbfitN', '𝑵'], + ['\\mbfitO', '𝑶'], + ['\\mbfitP', '𝑷'], + ['\\mbfitQ', '𝑸'], + ['\\mbfitR', '𝑹'], + ['\\mbfitS', '𝑺'], + ['\\mbfitT', '𝑻'], + ['\\mbfitU', '𝑼'], + ['\\mbfitV', '𝑽'], + ['\\mbfitW', '𝑾'], + ['\\mbfitX', '𝑿'], + ['\\mbfitY', '𝒀'], + ['\\mbfitZ', '𝒁'], + ['\\mbfita', '𝒂'], + ['\\mbfitb', '𝒃'], + ['\\mbfitc', '𝒄'], + ['\\mbfitd', '𝒅'], + ['\\mbfite', '𝒆'], + ['\\mbfitf', '𝒇'], + ['\\mbfitg', '𝒈'], + ['\\mbfith', '𝒉'], + ['\\mbfiti', '𝒊'], + ['\\mbfitj', '𝒋'], + ['\\mbfitk', '𝒌'], + ['\\mbfitl', '𝒍'], + ['\\mbfitm', '𝒎'], + ['\\mbfitn', '𝒏'], + ['\\mbfito', '𝒐'], + ['\\mbfitp', '𝒑'], + ['\\mbfitq', '𝒒'], + ['\\mbfitr', '𝒓'], + ['\\mbfits', '𝒔'], + ['\\mbfitt', '𝒕'], + ['\\mbfitu', '𝒖'], + ['\\mbfitv', '𝒗'], + ['\\mbfitw', '𝒘'], + ['\\mbfitx', '𝒙'], + ['\\mbfity', '𝒚'], + ['\\mbfitz', '𝒛'], + ['\\mfrakA', '𝔄'], + ['\\mfrakB', '𝔅'], + ['\\mfrakD', '𝔇'], + ['\\mfrakE', '𝔈'], + ['\\mfrakF', '𝔉'], + ['\\mfrakG', '𝔊'], + ['\\mfrakJ', '𝔍'], + ['\\mfrakK', '𝔎'], + ['\\mfrakL', '𝔏'], + ['\\mfrakM', '𝔐'], + ['\\mfrakN', '𝔑'], + ['\\mfrakO', '𝔒'], + ['\\mfrakP', '𝔓'], + ['\\mfrakQ', '𝔔'], + ['\\mfrakS', '𝔖'], + ['\\mfrakT', '𝔗'], + ['\\mfrakU', '𝔘'], + ['\\mfrakV', '𝔙'], + ['\\mfrakW', '𝔚'], + ['\\mfrakX', '𝔛'], + ['\\mfrakY', '𝔜'], + ['\\mfraka', '𝔞'], + ['\\mfrakb', '𝔟'], + ['\\mfrakc', '𝔠'], + ['\\mfrakd', '𝔡'], + ['\\mfrake', '𝔢'], + ['\\mfrakf', '𝔣'], + ['\\mfrakg', '𝔤'], + ['\\mfrakh', '𝔥'], + ['\\mfraki', '𝔦'], + ['\\mfrakj', '𝔧'], + ['\\mfrakk', '𝔨'], + ['\\mfrakl', '𝔩'], + ['\\mfrakm', '𝔪'], + ['\\mfrakn', '𝔫'], + ['\\mfrako', '𝔬'], + ['\\mfrakp', '𝔭'], + ['\\mfrakq', '𝔮'], + ['\\mfrakr', '𝔯'], + ['\\mfraks', '𝔰'], + ['\\mfrakt', '𝔱'], + ['\\mfraku', '𝔲'], + ['\\mfrakv', '𝔳'], + ['\\mfrakw', '𝔴'], + ['\\mfrakx', '𝔵'], + ['\\mfraky', '𝔶'], + ['\\mfrakz', '𝔷'], + ['\\msansA', '𝖠'], + ['\\msansB', '𝖡'], + ['\\msansC', '𝖢'], + ['\\msansD', '𝖣'], + ['\\msansE', '𝖤'], + ['\\msansF', '𝖥'], + ['\\msansG', '𝖦'], + ['\\msansH', '𝖧'], + ['\\msansI', '𝖨'], + ['\\msansJ', '𝖩'], + ['\\msansK', '𝖪'], + ['\\msansL', '𝖫'], + ['\\msansM', '𝖬'], + ['\\msansN', '𝖭'], + ['\\msansO', '𝖮'], + ['\\msansP', '𝖯'], + ['\\msansQ', '𝖰'], + ['\\msansR', '𝖱'], + ['\\msansS', '𝖲'], + ['\\msansT', '𝖳'], + ['\\msansU', '𝖴'], + ['\\msansV', '𝖵'], + ['\\msansW', '𝖶'], + ['\\msansX', '𝖷'], + ['\\msansY', '𝖸'], + ['\\msansZ', '𝖹'], + ['\\msansa', '𝖺'], + ['\\msansb', '𝖻'], + ['\\msansc', '𝖼'], + ['\\msansd', '𝖽'], + ['\\msanse', '𝖾'], + ['\\msansf', '𝖿'], + ['\\msansg', '𝗀'], + ['\\msansh', '𝗁'], + ['\\msansi', '𝗂'], + ['\\msansj', '𝗃'], + ['\\msansk', '𝗄'], + ['\\msansl', '𝗅'], + ['\\msansm', '𝗆'], + ['\\msansn', '𝗇'], + ['\\msanso', '𝗈'], + ['\\msansp', '𝗉'], + ['\\msansq', '𝗊'], + ['\\msansr', '𝗋'], + ['\\msanss', '𝗌'], + ['\\msanst', '𝗍'], + ['\\msansu', '𝗎'], + ['\\msansv', '𝗏'], + ['\\msansw', '𝗐'], + ['\\msansx', '𝗑'], + ['\\msansy', '𝗒'], + ['\\msansz', '𝗓'], + ['\\mbfEta', '𝚮'], + ['\\mbfRho', '𝚸'], + ['\\mbfTau', '𝚻'], + ['\\mbfPhi', '𝚽'], + ['\\mbfChi', '𝚾'], + ['\\mbfPsi', '𝚿'], + ['\\mbfeta', '𝛈'], + ['\\mbfrho', '𝛒'], + ['\\mbftau', '𝛕'], + ['\\mbfchi', '𝛘'], + ['\\mbfpsi', '𝛙'], + ['\\mbfphi', '𝛟'], + ['\\mitEta', '𝛨'], + ['\\mitRho', '𝛲'], + ['\\mitTau', '𝛵'], + ['\\mitPhi', '𝛷'], + ['\\varPhi', '𝛷'], + ['\\mitChi', '𝛸'], + ['\\mitPsi', '𝛹'], + ['\\varPsi', '𝛹'], + ['\\miteta', '𝜂'], + ['\\mitrho', '𝜌'], + ['\\mittau', '𝜏'], + ['\\mitphi', '𝜑'], + ['\\mitchi', '𝜒'], + ['\\mitpsi', '𝜓'], + ['\\Bbbone', '𝟙'], + ['\\Bbbtwo', '𝟚'], + ['\\Bbbsix', '𝟞'], + ['\\mttone', '𝟷'], + ['\\mtttwo', '𝟸'], + ['\\mttsix', '𝟼'], + ['\\Sigma', 'Σ'], + ['\\Omega', 'Ω'], + ['\\nabla', '∇'], + ['\\colon', ':'], + ['\\boxHu', '╧'], + ['\\boxHd', '╤'], + ['\\aleph', 'ℵ'], + ['\\gnsim', '⋧'], + ['\\boxHU', '╩'], + ['\\boxHD', '╦'], + ['\\equiv', '≡'], + ['\\lneqq', '≨'], + ['\\alpha', 'α'], + ['\\amalg', '∐'], + ['\\boxhU', '╨'], + ['\\boxhD', '╥'], + ['\\uplus', '⊎'], + ['\\boxhu', '┴'], + ['\\kappa', 'κ'], + ['\\sigma', 'σ'], + ['\\boxDL', '╗'], + ['\\Theta', 'Θ'], + ['\\Vdash', '⊩'], + ['\\boxDR', '╔'], + ['\\boxDl', '╖'], + ['\\sqcap', '⊓'], + ['\\boxDr', '╓'], + ['\\bar{}', '¯'], + ['\\dashv', '⊣'], + ['\\vDash', '⊨'], + ['\\boxdl', '┐'], + ['\\boxVl', '╢'], + ['\\boxVh', '╫'], + ['\\boxVr', '╟'], + ['\\boxdr', '┌'], + ['\\boxdL', '╕'], + ['\\boxVL', '╣'], + ['\\boxVH', '╬'], + ['\\boxVR', '╠'], + ['\\boxdR', '╒'], + ['\\theta', 'θ'], + ['\\lhblk', '▄'], + ['\\uhblk', '▀'], + ['\\ldotp', '.'], + ['\\ldots', '…'], + ['\\boxvL', '╡'], + ['\\boxvH', '╪'], + ['\\boxvR', '╞'], + ['\\boxvl', '┤'], + ['\\boxvh', '┼'], + ['\\boxvr', '├'], + ['\\Delta', 'Δ'], + ['\\boxUR', '╚'], + ['\\boxUL', '╝'], + ['\\oplus', '⊕'], + ['\\boxUr', '╙'], + ['\\boxUl', '╜'], + ['\\doteq', '≐'], + ['\\happy', '㋡'], + ['\\varpi', 'ϖ'], + ['\\smile', '☺'], + ['\\boxul', '┘'], + ['\\simeq', '≃'], + ['\\boxuR', '╘'], + ['\\boxuL', '╛'], + ['\\boxhd', '┬'], + ['\\gimel', 'ℷ'], + ['\\Gamma', 'Γ'], + ['\\lnsim', '⋦'], + ['\\sqcup', '⊔'], + ['\\omega', 'ω'], + ['\\sharp', '♯'], + ['\\times', '×'], + ['\\block', '█'], + ['\\hat{}', '^'], + ['\\wedge', '∧'], + ['\\vdash', '⊢'], + ['\\angle', '∠'], + ['\\infty', '∞'], + ['\\gamma', 'γ'], + ['\\asymp', '≍'], + ['\\rceil', '⌉'], + ['\\dot{}', '˙'], + ['\\lceil', '⌈'], + ['\\delta', 'δ'], + ['\\gneqq', '≩'], + ['\\frown', '⌢'], + ['\\phone', '☎'], + ['\\vdots', '⋮'], + ['\\comma', ','], + ['\\slash', '/'], + ['\\equal', '='], + ['\\sphat', '^'], + ['\\Micro', 'µ'], + ['\\cdotp', '·'], + ['\\imath', 'ı'], + ['\\jmath', 'ȷ'], + ['\\ocirc', '̊'], + ['\\check', '̌'], + ['\\upEta', 'Η'], + ['\\upRho', 'Ρ'], + ['\\upTau', 'Τ'], + ['\\upPhi', 'Φ'], + ['\\upChi', 'Χ'], + ['\\upPsi', 'Ψ'], + ['\\upeta', 'η'], + ['\\etaup', 'η'], + ['\\uprho', 'ρ'], + ['\\rhoup', 'ρ'], + ['\\uptau', 'τ'], + ['\\tauup', 'τ'], + ['\\upchi', 'χ'], + ['\\chiup', 'χ'], + ['\\uppsi', 'ψ'], + ['\\psiup', 'ψ'], + ['\\upphi', 'ϕ'], + ['\\phiup', 'ϕ'], + ['\\Qoppa', 'Ϙ'], + ['\\Koppa', 'Ϙ'], + ['\\qoppa', 'ϙ'], + ['\\koppa', 'ϙ'], + ['\\Sampi', 'Ϡ'], + ['\\sampi', 'ϡ'], + ['\\prime', '′'], + ['\\third', '‴'], + ['\\dddot', '⃛'], + ['\\DDDot', '⃛'], + ['\\Euler', 'ℇ'], + ['\\mscrg', 'ℊ'], + ['\\mscrH', 'ℋ'], + ['=\\HBar', 'ℏ'], + ['#\\hbar', 'ℏ'], + ['\\mscrI', 'ℐ'], + ['\\mscrL', 'ℒ'], + ['\\mscrR', 'ℛ'], + ['\\tcohm', 'Ω'], + ['\\agemO', '℧'], + ['\\mscrB', 'ℬ'], + ['\\mscre', 'ℯ'], + ['\\mscrE', 'ℰ'], + ['\\mscrF', 'ℱ'], + ['\\mscrM', 'ℳ'], + ['\\mscro', 'ℴ'], + ['\\Bbbpi', 'ℼ'], + ['\\BbbPi', 'ℿ'], + ['\\upand', '⅋'], + ['\\notin', '∉'], + ['\\notni', '∌'], + ['\\minus', '−'], + ['\\iiint', '∭'], + ['\\oiint', '∯'], + ['\\Colon', '∷'], + ['\\eqsim', '≂'], + ['\\nsime', '≄'], + ['\\ncong', '≇'], + ['\\Doteq', '≑'], + ['\\arceq', '≘'], + ['\\veeeq', '≚'], + ['\\eqdef', '≝'], + ['\\Equiv', '≣'], + ['\\nless', '≮'], + ['\\nprec', '⊀'], + ['\\nsucc', '⊁'], + ['\\unlhd', '⊴'], + ['\\unrhd', '⊵'], + ['\\eqgtr', '⋝'], + ['\\cdots', '⋯'], + ['\\adots', '⋰'], + ['\\ddots', '⋱'], + ['\\disin', '⋲'], + ['\\isins', '⋴'], + ['\\barin', '⋶'], + ['\\isinE', '⋹'], + ['\\house', '⌂'], + ['\\strns', '⏤'], + ['\\fltns', '⏥'], + ['\\ularc', '◜'], + ['\\urarc', '◝'], + ['\\lrarc', '◞'], + ['\\llarc', '◟'], + ['\\skull', '☠'], + ['\\Venus', '♀'], + ['\\earth', '♁'], + ['\\pluto', '♇'], + ['\\Pluto', '♇'], + ['\\aries', '♈'], + ['\\Aries', '♈'], + ['\\virgo', '♍'], + ['\\libra', '♎'], + ['\\Libra', '♎'], + ['\\dicei', '⚀'], + ['\\dicev', '⚄'], + ['\\psurj', '⤀'], + ['\\Vvert', '⦀'], + ['\\lblot', '⦉'], + ['\\rblot', '⦊'], + ['\\operp', '⦹'], + ['\\zhide', '⧹'], + ['\\xbsol', '⧹'], + ['\\tplus', '⧾'], + ['\\awint', '⨑'], + ['\\sqint', '⨖'], + ['\\upint', '⨛'], + ['\\zpipe', '⨠'], + ['\\Sqcap', '⩎'], + ['\\Sqcup', '⩏'], + ['\\Wedge', '⩓'], + ['\\ndres', '⩤'], + ['\\nrres', '⩥'], + ['\\eqdot', '⩦'], + ['\\asteq', '⩮'], + ['\\Equal', '⩵'], + ['\\ltcir', '⩹'], + ['\\gtcir', '⩺'], + ['\\lsime', '⪍'], + ['\\gsime', '⪎'], + ['\\lsimg', '⪏'], + ['\\gsiml', '⪐'], + ['\\simlE', '⪟'], + ['\\simgE', '⪠'], + ['\\lescc', '⪨'], + ['\\gescc', '⪩'], + ['\\csube', '⫑'], + ['\\csupe', '⫒'], + ['\\forkv', '⫙'], + ['\\forks', '⫝̸'], + ['\\perps', '⫡'], + ['\\dashV', '⫣'], + ['\\Dashv', '⫤'], + ['\\DashV', '⫥'], + ['\\vBarv', '⫩'], + ['\\nhpar', '⫲'], + ['\\mscrA', '𝒜'], + ['\\mscrC', '𝒞'], + ['\\mscrD', '𝒟'], + ['\\mscrG', '𝒢'], + ['\\mscrJ', '𝒥'], + ['\\mscrK', '𝒦'], + ['\\mscrN', '𝒩'], + ['\\mscrO', '𝒪'], + ['\\mscrP', '𝒫'], + ['\\mscrQ', '𝒬'], + ['\\mscrS', '𝒮'], + ['\\mscrT', '𝒯'], + ['\\mscrU', '𝒰'], + ['\\mscrV', '𝒱'], + ['\\mscrW', '𝒲'], + ['\\mscrX', '𝒳'], + ['\\mscrY', '𝒴'], + ['\\mscrZ', '𝒵'], + ['\\mscra', '𝒶'], + ['\\mscrb', '𝒷'], + ['\\mscrc', '𝒸'], + ['\\mscrd', '𝒹'], + ['\\mscrf', '𝒻'], + ['\\mscrh', '𝒽'], + ['\\mscri', '𝒾'], + ['\\mscrj', '𝒿'], + ['\\mscrk', '𝓀'], + ['\\mscrl', '𝓁'], + ['\\mscrm', '𝓂'], + ['\\mscrn', '𝓃'], + ['\\mscrp', '𝓅'], + ['\\mscrq', '𝓆'], + ['\\mscrr', '𝓇'], + ['\\mscrs', '𝓈'], + ['\\mscrt', '𝓉'], + ['\\mscru', '𝓊'], + ['\\mscrv', '𝓋'], + ['\\mscrw', '𝓌'], + ['\\mscrx', '𝓍'], + ['\\mscry', '𝓎'], + ['\\mscrz', '𝓏'], + ['\\mbfMu', '𝚳'], + ['\\mbfNu', '𝚴'], + ['\\mbfXi', '𝚵'], + ['\\mbfPi', '𝚷'], + ['\\mbfmu', '𝛍'], + ['\\mbfnu', '𝛎'], + ['\\mbfxi', '𝛏'], + ['\\mbfpi', '𝛑'], + ['\\mitMu', '𝛭'], + ['\\mitNu', '𝛮'], + ['\\mitXi', '𝛯'], + ['\\varXi', '𝛯'], + ['\\mitPi', '𝛱'], + ['\\varPi', '𝛱'], + ['\\mitmu', '𝜇'], + ['\\mitnu', '𝜈'], + ['\\mitxi', '𝜉'], + ['\\mitpi', '𝜋'], + ['\\boxr', '└'], + ['\\k{i}', 'į'], + ['\\`{I}', 'Ì'], + ['\\perp', '⊥'], + ['\\"{o}', 'ö'], + ['\\={I}', 'Ī'], + ['\\`{a}', 'à'], + ['\\v{T}', 'Ť'], + ['\\surd', '√'], + ['\\H{O}', 'Ő'], + ['\\vert', '|'], + ['\\k{I}', 'Į'], + ['\\"{y}', 'ÿ'], + ['\\"{O}', 'Ö'], + ['\\\'{Y}', 'Ý'], + ['\\u{u}', 'ў'], + ['\\u{G}', 'Ğ'], + ['\\.{E}', 'Ė'], + ['\\.{z}', 'ż'], + ['\\v{t}', 'ť'], + ['\\prec', '≺'], + ['\\H{o}', 'ő'], + ['\\mldr', '…'], + ['\\\'{y}', 'ý'], + ['\\cong', '≅'], + ['\\.{e}', 'ė'], + ['\\\'{L}', 'Ĺ'], + ['\\star', '*'], + ['\\.{Z}', 'Ż'], + ['\\\'{e}', 'é'], + ['\\geqq', '≧'], + ['\\cdot', '⋅'], + ['\\`{U}', 'Ù'], + ['\\\'{l}', 'ĺ'], + ['\\v{L}', 'Ľ'], + ['\\c{s}', 'ş'], + ['\\\'{s}', 'ś'], + ['\\~{A}', 'Ã'], + ['\\Vert', '‖'], + ['\\k{e}', 'ę'], + ['\\lnot', '¬'], + ['\\\'{z}', 'ź'], + ['\\leqq', '≦'], + ['\\beta', 'β'], + ['\\beth', 'ℶ'], + ['\\\'{E}', 'É'], + ['\\~{n}', 'ñ'], + ['\\u{i}', 'й'], + ['\\c{S}', 'Ş'], + ['\\c{N}', 'Ņ'], + ['\\H{u}', 'ű'], + ['\\v{n}', 'ň'], + ['\\\'{S}', 'Ś'], + ['\\={U}', 'Ū'], + ['\\~{O}', 'Õ'], + ['\\\'{Z}', 'Ź'], + ['\\v{E}', 'Ě'], + ['\\\'{R}', 'Ŕ'], + ['\\H{U}', 'Ű'], + ['\\v{N}', 'Ň'], + ['\\prod', '∏'], + ['\\v{s}', 'š'], + ['\\"{U}', 'Ü'], + ['\\c{n}', 'ņ'], + ['\\k{U}', 'Ų'], + ['\\c{R}', 'Ŗ'], + ['\\\'{A}', 'Á'], + ['\\~{o}', 'õ'], + ['\\v{e}', 'ě'], + ['\\v{S}', 'Š'], + ['\\u{A}', 'Ă'], + ['\\circ', '∘'], + ['\\"{u}', 'ü'], + ['\\flat', '♭'], + ['\\v{z}', 'ž'], + ['\\r{U}', 'Ů'], + ['\\`{O}', 'Ò'], + ['\\={u}', 'ū'], + ['\\oint', '∮'], + ['\\c{K}', 'Ķ'], + ['\\k{u}', 'ų'], + ['\\not<', '≮'], + ['\\not>', '≯'], + ['\\`{o}', 'ò'], + ['\\"{I}', 'Ï'], + ['\\v{D}', 'Ď'], + ['\\.{G}', 'Ġ'], + ['\\r{u}', 'ů'], + ['\\not=', '≠'], + ['\\`{u}', 'ù'], + ['\\v{c}', 'č'], + ['\\c{k}', 'ķ'], + ['\\.{g}', 'ġ'], + ['\\\'{N}', 'Ń'], + ['\\odot', '⊙'], + ['\\`{e}', 'э'], + ['\\c{T}', 'Ţ'], + ['\\v{d}', 'ď'], + ['\\"{e}', 'ё'], + ['\\\'{I}', 'Í'], + ['\\v{R}', 'Ř'], + ['\\k{a}', 'ą'], + ['\\nldr', '‥'], + ['\\`{A}', 'À'], + ['\\\'{n}', 'ń'], + ['\\~{N}', 'Ñ'], + ['\\nmid', '∤'], + ['\\.{C}', 'Ċ'], + ['\\zeta', 'ζ'], + ['\\~{u}', 'ũ'], + ['\\`{E}', 'Э'], + ['\\~{a}', 'ã'], + ['\\c{t}', 'ţ'], + ['\\={o}', 'ō'], + ['\\v{r}', 'ř'], + ['\\={A}', 'Ā'], + ['\\.{c}', 'ċ'], + ['\\~{U}', 'Ũ'], + ['\\k{A}', 'Ą'], + ['\\"{a}', 'ä'], + ['\\u{U}', 'Ў'], + ['\\iota', 'ι'], + ['\\={O}', 'Ō'], + ['\\c{C}', 'Ç'], + ['\\gneq', '≩'], + ['\\\'{c}', 'ć'], + ['\\boxH', '═'], + ['\\hbar', 'ℏ'], + ['\\"{A}', 'Ä'], + ['\\boxv', '│'], + ['\\boxh', '─'], + ['\\male', '♂'], + ['\\\'{u}', 'ú'], + ['\\sqrt', '√'], + ['\\succ', '≻'], + ['\\c{c}', 'ç'], + ['\\\'{C}', 'Ć'], + ['\\v{l}', 'ľ'], + ['\\u{a}', 'ă'], + ['\\v{Z}', 'Ž'], + ['\\\'{o}', 'ó'], + ['\\c{G}', 'Ģ'], + ['\\v{C}', 'Č'], + ['\\lneq', '≨'], + ['\\"{E}', 'Ё'], + ['\\={a}', 'ā'], + ['\\c{l}', 'ļ'], + ['\\\'{a}', 'á'], + ['\\={E}', 'Ē'], + ['\\boxV', '║'], + ['\\u{g}', 'ğ'], + ['\\\'{O}', 'Ó'], + ['\\\'{g}', 'ǵ'], + ['\\u{I}', 'Й'], + ['\\c{L}', 'Ļ'], + ['\\k{E}', 'Ę'], + ['\\.{I}', 'İ'], + ['\\~{I}', 'Ĩ'], + ['\\quad', ' '], + ['\\c{r}', 'ŗ'], + ['\\\'{r}', 'ŕ'], + ['\\"{Y}', 'Ÿ'], + ['\\={e}', 'ē'], + ['\\\'{U}', 'Ú'], + ['\\plus', '+'], + ['\\less', '<'], + ['\\cent', '¢'], + ['\\tcmu', 'µ'], + ['\\muup', 'µ'], + ['\\Zbar', 'Ƶ'], + ['\\DDot', '̈'], + ['\\ring', '̊'], + ['\\upMu', 'Μ'], + ['\\upNu', 'Ν'], + ['\\upXi', 'Ξ'], + ['\\upPi', 'Π'], + ['\\upmu', 'μ'], + ['\\upnu', 'ν'], + ['\\nuup', 'ν'], + ['\\upxi', 'ξ'], + ['\\xiup', 'ξ'], + ['\\uppi', 'π'], + ['\\piup', 'π'], + ['\\euro', '€'], + ['\\lvec', '⃐'], + ['\\LVec', '⃖'], + ['\\BbbC', 'ℂ'], + ['\\BbbH', 'ℍ'], + ['\\BbbN', 'ℕ'], + ['\\BbbP', 'ℙ'], + ['\\BbbQ', 'ℚ'], + ['\\BbbR', 'ℝ'], + ['\\BbbZ', 'ℤ'], + ['\\Finv', 'Ⅎ'], + ['\\Game', '⅁'], + ['\\gets', '←'], + ['\\tfun', '→'], + ['\\tsur', '↠'], + ['\\surj', '↠'], + ['\\tinj', '↣'], + ['\\dlsh', '↲'], + ['\\Ldsh', '↲'], + ['\\drsh', '↳'], + ['\\Rdsh', '↳'], + ['\\pfun', '⇸'], + ['\\ffun', '⇻'], + ['\\nexi', '∄'], + ['\\owns', '∋'], + ['\\land', '∧'], + ['\\iint', '∬'], + ['\\nsim', '≁'], + ['\\sdef', '≙'], + ['\\ngtr', '≯'], + ['\\nleq', '≰'], + ['\\ngeq', '≱'], + ['\\buni', '⊎'], + ['\\dint', '⋂'], + ['\\duni', '⋃'], + ['\\hash', '⋕'], + ['\\nisd', '⋺'], + ['\\obar', '⌽'], + ['\\rres', '▷'], + ['\\dres', '◁'], + ['\\XBox', '☒'], + ['\\girl', '♀'], + ['\\Mars', '♂'], + ['\\Lbag', '⟅'], + ['\\lbag', '⟅'], + ['\\Rbag', '⟆'], + ['\\rbag', '⟆'], + ['\\upin', '⟒'], + ['\\lang', '⟪'], + ['\\rang', '⟫'], + ['\\psur', '⤀'], + ['\\pinj', '⤔'], + ['\\finj', '⤕'], + ['\\tona', '⤧'], + ['\\toea', '⤨'], + ['\\tosa', '⤩'], + ['\\towa', '⤪'], + ['\\VERT', '⦀'], + ['\\spot', '⦁'], + ['\\limg', '⦇'], + ['\\rimg', '⦈'], + ['\\obot', '⦺'], + ['\\cirE', '⧃'], + ['\\dsol', '⧶'], + ['\\xsol', '⧸'], + ['\\hide', '⧹'], + ['\\fint', '⨏'], + ['\\intx', '⨘'], + ['\\Join', '⨝'], + ['\\zcmp', '⨟'], + ['\\semi', '⨟'], + ['\\odiv', '⨸'], + ['\\fcmp', '⨾'], + ['\\comp', '⨾'], + ['\\dsub', '⩤'], + ['\\rsub', '⩥'], + ['\\eqeq', '⩵'], + ['\\Same', '⩶'], + ['\\ltcc', '⪦'], + ['\\gtcc', '⪧'], + ['\\smte', '⪬'], + ['\\late', '⪭'], + ['\\Prec', '⪻'], + ['\\Succ', '⪼'], + ['\\csub', '⫏'], + ['\\csup', '⫐'], + ['\\mlcp', '⫛'], + ['\\Barv', '⫧'], + ['\\vBar', '⫨'], + ['\\barV', '⫪'], + ['\\Vbar', '⫫'], + ['\\Perp', '⫫'], + ['\\bNot', '⫭'], + ['\\mbfA', '𝐀'], + ['\\mbfB', '𝐁'], + ['\\mbfC', '𝐂'], + ['\\mbfD', '𝐃'], + ['\\mbfE', '𝐄'], + ['\\mbfF', '𝐅'], + ['\\mbfG', '𝐆'], + ['\\mbfH', '𝐇'], + ['\\mbfI', '𝐈'], + ['\\mbfJ', '𝐉'], + ['\\mbfK', '𝐊'], + ['\\mbfL', '𝐋'], + ['\\mbfM', '𝐌'], + ['\\mbfN', '𝐍'], + ['\\mbfO', '𝐎'], + ['\\mbfP', '𝐏'], + ['\\mbfQ', '𝐐'], + ['\\mbfR', '𝐑'], + ['\\mbfS', '𝐒'], + ['\\mbfT', '𝐓'], + ['\\mbfU', '𝐔'], + ['\\mbfV', '𝐕'], + ['\\mbfW', '𝐖'], + ['\\mbfX', '𝐗'], + ['\\mbfY', '𝐘'], + ['\\mbfZ', '𝐙'], + ['\\mbfa', '𝐚'], + ['\\mbfb', '𝐛'], + ['\\mbfc', '𝐜'], + ['\\mbfd', '𝐝'], + ['\\mbfe', '𝐞'], + ['\\mbff', '𝐟'], + ['\\mbfg', '𝐠'], + ['\\mbfh', '𝐡'], + ['\\mbfi', '𝐢'], + ['\\mbfj', '𝐣'], + ['\\mbfk', '𝐤'], + ['\\mbfl', '𝐥'], + ['\\mbfm', '𝐦'], + ['\\mbfn', '𝐧'], + ['\\mbfo', '𝐨'], + ['\\mbfp', '𝐩'], + ['\\mbfq', '𝐪'], + ['\\mbfr', '𝐫'], + ['\\mbfs', '𝐬'], + ['\\mbft', '𝐭'], + ['\\mbfu', '𝐮'], + ['\\mbfv', '𝐯'], + ['\\mbfw', '𝐰'], + ['\\mbfx', '𝐱'], + ['\\mbfy', '𝐲'], + ['\\mbfz', '𝐳'], + ['\\mitA', '𝐴'], + ['\\mitB', '𝐵'], + ['\\mitC', '𝐶'], + ['\\mitD', '𝐷'], + ['\\mitE', '𝐸'], + ['\\mitF', '𝐹'], + ['\\mitG', '𝐺'], + ['\\mitH', '𝐻'], + ['\\mitI', '𝐼'], + ['\\mitJ', '𝐽'], + ['\\mitK', '𝐾'], + ['\\mitL', '𝐿'], + ['\\mitM', '𝑀'], + ['\\mitN', '𝑁'], + ['\\mitO', '𝑂'], + ['\\mitP', '𝑃'], + ['\\mitQ', '𝑄'], + ['\\mitR', '𝑅'], + ['\\mitS', '𝑆'], + ['\\mitT', '𝑇'], + ['\\mitU', '𝑈'], + ['\\mitV', '𝑉'], + ['\\mitW', '𝑊'], + ['\\mitX', '𝑋'], + ['\\mitY', '𝑌'], + ['\\mitZ', '𝑍'], + ['\\mita', '𝑎'], + ['\\mitb', '𝑏'], + ['\\mitc', '𝑐'], + ['\\mitd', '𝑑'], + ['\\mite', '𝑒'], + ['\\mitf', '𝑓'], + ['\\mitg', '𝑔'], + ['\\miti', '𝑖'], + ['\\mitj', '𝑗'], + ['\\mitk', '𝑘'], + ['\\mitl', '𝑙'], + ['\\mitm', '𝑚'], + ['\\mitn', '𝑛'], + ['\\mito', '𝑜'], + ['\\mitp', '𝑝'], + ['\\mitq', '𝑞'], + ['\\mitr', '𝑟'], + ['\\mits', '𝑠'], + ['\\mitt', '𝑡'], + ['\\mitu', '𝑢'], + ['\\mitv', '𝑣'], + ['\\mitw', '𝑤'], + ['\\mitx', '𝑥'], + ['\\mity', '𝑦'], + ['\\mitz', '𝑧'], + ['\\BbbA', '𝔸'], + ['\\BbbB', '𝔹'], + ['\\BbbD', '𝔻'], + ['\\BbbE', '𝔼'], + ['\\BbbF', '𝔽'], + ['\\BbbG', '𝔾'], + ['\\BbbI', '𝕀'], + ['\\BbbJ', '𝕁'], + ['\\BbbK', '𝕂'], + ['\\BbbL', '𝕃'], + ['\\BbbM', '𝕄'], + ['\\BbbO', '𝕆'], + ['\\BbbS', '𝕊'], + ['\\BbbT', '𝕋'], + ['\\BbbU', '𝕌'], + ['\\BbbV', '𝕍'], + ['\\BbbW', '𝕎'], + ['\\BbbX', '𝕏'], + ['\\BbbY', '𝕐'], + ['\\Bbba', '𝕒'], + ['\\Bbbb', '𝕓'], + ['\\Bbbc', '𝕔'], + ['\\Bbbd', '𝕕'], + ['\\Bbbe', '𝕖'], + ['\\Bbbf', '𝕗'], + ['\\Bbbg', '𝕘'], + ['\\Bbbh', '𝕙'], + ['\\Bbbi', '𝕚'], + ['\\Bbbj', '𝕛'], + ['\\Bbbk', '𝕜'], + ['\\Bbbl', '𝕝'], + ['\\Bbbm', '𝕞'], + ['\\Bbbn', '𝕟'], + ['\\Bbbo', '𝕠'], + ['\\Bbbp', '𝕡'], + ['\\Bbbq', '𝕢'], + ['\\Bbbr', '𝕣'], + ['\\Bbbs', '𝕤'], + ['\\Bbbt', '𝕥'], + ['\\Bbbu', '𝕦'], + ['\\Bbbv', '𝕧'], + ['\\Bbbw', '𝕨'], + ['\\Bbbx', '𝕩'], + ['\\Bbby', '𝕪'], + ['\\Bbbz', '𝕫'], + ['\\mttA', '𝙰'], + ['\\mttB', '𝙱'], + ['\\mttC', '𝙲'], + ['\\mttD', '𝙳'], + ['\\mttE', '𝙴'], + ['\\mttF', '𝙵'], + ['\\mttG', '𝙶'], + ['\\mttH', '𝙷'], + ['\\mttI', '𝙸'], + ['\\mttJ', '𝙹'], + ['\\mttK', '𝙺'], + ['\\mttL', '𝙻'], + ['\\mttM', '𝙼'], + ['\\mttN', '𝙽'], + ['\\mttO', '𝙾'], + ['\\mttP', '𝙿'], + ['\\mttQ', '𝚀'], + ['\\mttR', '𝚁'], + ['\\mttS', '𝚂'], + ['\\mttT', '𝚃'], + ['\\mttU', '𝚄'], + ['\\mttV', '𝚅'], + ['\\mttW', '𝚆'], + ['\\mttX', '𝚇'], + ['\\mttY', '𝚈'], + ['\\mttZ', '𝚉'], + ['\\mtta', '𝚊'], + ['\\mttb', '𝚋'], + ['\\mttc', '𝚌'], + ['\\mttd', '𝚍'], + ['\\mtte', '𝚎'], + ['\\mttf', '𝚏'], + ['\\mttg', '𝚐'], + ['\\mtth', '𝚑'], + ['\\mtti', '𝚒'], + ['\\mttj', '𝚓'], + ['\\mttk', '𝚔'], + ['\\mttl', '𝚕'], + ['\\mttm', '𝚖'], + ['\\mttn', '𝚗'], + ['\\mtto', '𝚘'], + ['\\mttp', '𝚙'], + ['\\mttq', '𝚚'], + ['\\mttr', '𝚛'], + ['\\mtts', '𝚜'], + ['\\mttt', '𝚝'], + ['\\mttu', '𝚞'], + ['\\mttv', '𝚟'], + ['\\mttw', '𝚠'], + ['\\mttx', '𝚡'], + ['\\mtty', '𝚢'], + ['\\mttz', '𝚣'], + ['\\leq', '≤'], + ['\\Cup', '⋓'], + ['\\Psi', 'Ψ'], + ['\\neq', '≠'], + ['\\k{}', '˛'], + ['\\={}', '‾'], + ['\\H{}', '˝'], + ['\\cup', '∪'], + ['\\geq', '≥'], + ['\\mho', '℧'], + ['\\Dzh', 'Џ'], + ['\\cap', '∩'], + ['\\bot', '⊥'], + ['\\psi', 'ψ'], + ['\\chi', 'χ'], + ['\\c{}', '¸'], + ['\\Phi', 'Φ'], + ['\\ast', '*'], + ['\\ell', 'ℓ'], + ['\\top', '⊤'], + ['\\lll', '⋘'], + ['\\tau', 'τ'], + ['\\Cap', '⋒'], + ['\\sad', '☹'], + ['\\iff', '⇔'], + ['\\eta', 'η'], + ['\\eth', 'ð'], + ['\\d{}', '̣'], + ['\\rho', 'ρ'], + ['\\dzh', 'џ'], + ['\\div', '÷'], + ['\\phi', 'ϕ'], + ['\\Rsh', '↱'], + ['\\vee', '∨'], + ['\\b{}', 'ˍ'], + ['\\t{}', '͡'], + ['\\int', '∫'], + ['\\sim', '∼'], + ['\\r{}', '˚'], + ['\\Lsh', '↰'], + ['\\yen', '¥'], + ['\\ggg', '⋙'], + ['\\mid', '∣'], + ['\\sum', '∑'], + ['\\neg', '¬'], + ['\\Dot', '̇'], + ['\\not', '̸'], + ['\\cat', '⁀'], + ['\\Vec', '⃗'], + ['\\Mho', '℧'], + ['\\Yup', '⅄'], + ['\\fun', '→'], + ['\\rel', '↔'], + ['\\inj', '↣'], + ['\\exi', '∃'], + ['\\nin', '∉'], + ['\\nni', '∌'], + ['\\QED', '∎'], + ['\\lor', '∨'], + ['\\nis', '⋼'], + ['25\\%', '░'], + ['50\\%', '▒'], + ['75\\%', '▓'], + ['\\RHD', '▶'], + ['\\rhd', '▷'], + ['\\LHD', '◀'], + ['\\lhd', '◁'], + ['\\Sun', '☉'], + ['\\sun', '☼'], + ['\\boy', '♂'], + ['\\leo', '♌'], + ['\\Leo', '♌'], + ['\\bij', '⤖'], + ['\\Vee', '⩔'], + ['\\lgE', '⪑'], + ['\\glE', '⪒'], + ['\\glj', '⪤'], + ['\\gla', '⪥'], + ['\\smt', '⪪'], + ['\\lat', '⪫'], + ['\\Top', '⫪'], + ['\\Bot', '⫫'], + ['\\Not', '⫬'], + ['\\Dz', 'Ѕ'], + ['\\Re', 'ℜ'], + ['\\oe', 'œ'], + ['\\DH', 'Ð'], + ['\\ll', '≪'], + ['\\ng', 'ŋ'], + ['\\\'G', 'Ѓ'], + ['\\wr', '≀'], + ['\\wp', '℘'], + ['\\=I', 'І'], + ['\\:)', '☺'], + ['\\:(', '☹'], + ['\\AE', 'Æ'], + ['\\AA', 'Å'], + ['\\ss', 'ß'], + ['\\dz', 'ѕ'], + ['\\ae', 'æ'], + ['\\aa', 'å'], + ['\\th', 'þ'], + ['\\to', '→'], + ['\\Pi', 'Π'], + ['\\mp', '∓'], + ['\\Im', 'ℑ'], + ['\\pm', '±'], + ['\\pi', 'π'], + ['\\"I', 'Ї'], + ['\\\'C', 'Ћ'], + ['\\in', '∈'], + ['\\\'K', 'Ќ'], + ['\\\'k', 'ќ'], + ['\\\'c', 'ћ'], + ['\\\'g', 'ѓ'], + ['\\ni', '∋'], + ['\\ne', '≠'], + ['\\TH', 'Þ'], + ['\\Xi', 'Ξ'], + ['\\nu', 'ν'], + ['\\NG', 'Ŋ'], + ['\\:G', '㋡'], + ['\\xi', 'ξ'], + ['\\OE', 'Œ'], + ['\\gg', '≫'], + ['\\DJ', 'Đ'], + ['\\=e', 'є'], + ['\\=E', 'Є'], + ['\\mu', 'μ'], + ['\\dj', 'đ'], + ['\\DD', 'ⅅ'], + ['\\dd', 'ⅆ'], + ['\\ee', 'ⅇ'], + ['\\ii', 'ⅈ'], + ['\\jj', 'ⅉ'], + ['\\AC', '∿'], + ['\\le', '≤'], + ['\\ge', '≥'], + ['\\Lt', '⪡'], + ['\\Gt', '⪢'], + ['\\:', ' '], + ['\\;', ' '], + ['\\&', '&'], + ['\\$', '$'], + ['\\%', '%'], + ['\\#', '#'], + ['\\,', ' '], + ['\\-', ''], + ['\\S', '§'], + ['\\P', '¶'], + ['\\O', 'Ø'], + ['\\L', 'Ł'], + ['\\}', '}'], + ['\\o', 'ø'], + ['\\l', 'ł'], + ['\\h', 'ℎ'], + ['\\i', 'ℹ'], + ['\\_', '_'], + ['\\{', '{'], + ['\\|', '‖'], + ['-', '−'], +]; + +export const combiningmarks = [ + ['\\doubleunderline', '\u0333'], + ['\\strikethrough', '\u0335'], + ['\\underline', '\u0332'], + ['\\overline', '\u0305'], + ['\\tilde', '\u0303'], + ['\\grave', '\u0300'], + ['\\acute', '\u0301'], + ['\\slash', '\u0338'], + ['\\breve', '\u0306'], + ['\\ddot', '\u0308'], + ['\\dot', '\u0307'], + ['\\bar', '\u0305'], + ['\\vec', '\u20d7'], + ['\\hat', '\u0302'], +]; + +export const subsuperscripts = [ + ['_x', 'ₓ'], + ['_v', 'ᵥ'], + ['_u', 'ᵤ'], + ['_t', 'ₜ'], + ['_s', 'ₛ'], + ['_r', 'ᵣ'], + ['_p', 'ₚ'], + ['_o', 'ₒ'], + ['_n', 'ₙ'], + ['_m', 'ₘ'], + ['_l', 'ₗ'], + ['_k', 'ₖ'], + ['_j', 'ⱼ'], + ['_i', 'ᵢ'], + ['_h', 'ₕ'], + ['_e', 'ₑ'], + ['_a', 'ₐ'], + ['^∫', 'ᶴ'], + ['_>', '˲'], + ['_=', '₌'], + ['_<', '˱'], + ['_9', '₉'], + ['_8', '₈'], + ['_7', '₇'], + ['_6', '₆'], + ['_5', '₅'], + ['_4', '₄'], + ['_3', '₃'], + ['_2', '₂'], + ['_1', '₁'], + ['_0', '₀'], + ['_-', '₋'], + ['_−', '₋'], + ['_+', '₊'], + ['_)', '₎'], + ['_(', '₍'], + ['_ρ', 'ᵨ'], + ['_χ', 'ᵪ'], + ['_φ', 'ᵩ'], + ['_β', 'ᵦ'], + ['_γ', 'ᵧ'], + ['^φ', 'ᵠ'], + ['^χ', 'ᵡ'], + ['^δ', 'ᵟ'], + ['^γ', 'ᵞ'], + ['^β', 'ᵝ'], + ['^8', '⁸'], + ['^9', '⁹'], + ['^<', '˂'], + ['^=', '⁼'], + ['^>', '˃'], + ['^0', '⁰'], + ['^1', '¹'], + ['^2', '²'], + ['^3', '³'], + ['^4', '⁴'], + ['^5', '⁵'], + ['^6', '⁶'], + ['^7', '⁷'], + ['^(', '⁽'], + ['^)', '⁾'], + ['^*', '*'], + ['^+', '⁺'], + ['^-', '⁻'], + ['^−', '⁻'], + ['^.', 'ᐧ'], + ['^P', 'ᴾ'], + ['^R', 'ᴿ'], + ['^T', 'ᵀ'], + ['^U', 'ᵁ'], + ['^V', 'ᄑ'], + ['^W', 'ᵂ'], + ['^H', 'ᴴ'], + ['^I', 'ᴵ'], + ['^J', 'ᴶ'], + ['^K', 'ᴷ'], + ['^L', 'ᴸ'], + ['^M', 'ᴹ'], + ['^N', 'ᴺ'], + ['^O', 'ᴼ'], + ['^A', 'ᴬ'], + ['^B', 'ᴮ'], + ['^D', 'ᴰ'], + ['^E', 'ᴱ'], + ['^G', 'ᴳ'], + ['^x', 'ˣ'], + ['^y', 'ʸ'], + ['^z', 'ᶻ'], + ['^p', 'ᵖ'], + ['^r', 'ʳ'], + ['^s', 'ˢ'], + ['^t', 'ᵗ'], + ['^u', 'ᵘ'], + ['^v', 'ᵛ'], + ['^w', 'ʷ'], + ['^h', 'ʰ'], + ['^i', 'ⁱ'], + ['^j', 'ʲ'], + ['^k', 'ᵏ'], + ['^l', 'ˡ'], + ['^m', 'ᵐ'], + ['^n', 'ⁿ'], + ['^o', 'ᵒ'], + ['^a', 'ᵃ'], + ['^b', 'ᵇ'], + ['^c', 'ᶜ'], + ['^d', 'ᵈ'], + ['^e', 'ᵉ'], + ['^f', 'ᶠ'], + ['^g', 'ᵍ'], +]; diff --git a/unicodeit/ts_src/index.ts b/unicodeit/ts_src/index.ts new file mode 100644 index 0000000..7e4148f --- /dev/null +++ b/unicodeit/ts_src/index.ts @@ -0,0 +1 @@ +export { replace } from './replace'; diff --git a/unicodeit/ts_src/replace.ts b/unicodeit/ts_src/replace.ts new file mode 100644 index 0000000..e24a9f5 --- /dev/null +++ b/unicodeit/ts_src/replace.ts @@ -0,0 +1,76 @@ +// Copyright (c) 2010-2020 Sven Kreiss, Kyle Cranmer + +import { combiningmarks, replacements, subsuperscripts } from './data'; + + +export function replace(f: string): string { + // Catch cases like \not\subset and \not\in and convert them to + // use the combining character slash as in \slash{\subset} + f = f.replace(/\\not(\\[A-z]+)/g, '\\slash{$1}'); + // escape combining marks with a space after the backslash + for (const ic in combiningmarks) { + const c = combiningmarks[ic]; + + let i = -1; + while ( + (i = f.indexOf(c[0], i+1)) > -1 + && f.indexOf("}", i+1) > i + ) { + f = f.slice(0, i+1) + ' ' + f.slice(i+1); + } + } + + // console.log(replacements); + for (const ir in replacements) { + const r = replacements[ir]; + // dirty way of a replaceAll(): + f = f.split(r[0]).join(r[1]); + + if (r[0].slice(-2) == '{}') { + f = f.split('\\ '+r[0].slice(1)).join(r[1]); + } + } + + // expand groups of subscripts: _{01234} + let isub = -1; + while ( + (isub = f.indexOf("_{", isub+1)) > -1 + && f.indexOf("}", isub+1) > isub + ) { + f = f.slice(0, isub) + '_' + f[isub+2] + '_{' + f.slice(isub+3); + f = f.replace('_{}', ''); + } + + // expand groups of superscripts: ^{01234} + let isup = -1; + while ( + (isup = f.indexOf("^{", isup+1)) > -1 + && f.indexOf("}", isup+1) > isup + ) { + f = f.slice(0, isup) + '^' + f[isup+2] + '^{' + f.slice(isup+3); + f = f.replace('^{}', ''); + } + + // now replace subsuperscripts + for (const ir in subsuperscripts) { + const r = subsuperscripts[ir]; + // dirty way of a replaceAll(): + f = f.split(r[0]).join(r[1]); + } + + // combining marks (unicode char modifies previous char) + for (const ic in combiningmarks) { + const c = combiningmarks[ic]; + + let i = -1; + while ( + (i = f.indexOf('\\ '+c[0].slice(1)+'{', i+1)) > -1 + && f.indexOf("}", i+1) > i + ) { + const newString = f[i+c[0].length+2] + c[1]; + f = f.slice(0,i)+newString+f.slice(i+1+c[0].length+3); + } + } + + return f; +} diff --git a/unicodeit/ts_src/tests.ts b/unicodeit/ts_src/tests.ts new file mode 100644 index 0000000..835a1c8 --- /dev/null +++ b/unicodeit/ts_src/tests.ts @@ -0,0 +1,31 @@ +import { expect } from 'chai'; +import { replace } from './replace'; + + +describe('Symbols', () => { + describe('replace alpha', () => { + it('converts', done => { + expect(replace('\\alpha')).to.equal('α'); + done(); + }); + }); + + describe('combining mark', () => { + it('adds dot to a', done => { + expect(replace('\\dot{a}')).to.equal('ȧ'); + done(); + }); + it('adds dot to alpha', done => { + expect(replace('\\dot{\\alpha}')).to.equal('α̇'); + done(); + }); + it('empty combining char', done => { + expect(replace('\\breve{}')).to.equal('˘'); + done(); + }); + it('incomplete combining char', done => { + expect(replace('\\breve{')).to.equal('\\breve{'); + done(); + }); + }); +}); diff --git a/unicodeit/ts_src/ui.ts b/unicodeit/ts_src/ui.ts new file mode 100644 index 0000000..a0c3db4 --- /dev/null +++ b/unicodeit/ts_src/ui.ts @@ -0,0 +1,75 @@ +import {replacements} from './data'; +import {replace} from './replace'; + +const latexInput = $('#latexInput'); +const unicodeOutput = $('#unicodeOutput'); +const permaLink = $('.permalink'); + + +// copy replacements and sort case insensitive +let listOfReplacements = replacements + .map(function(r) { return { value: r[0], unicode: r[1] }; }) + .sort(function(a, b) { return a.value.toLowerCase().localeCompare(b.value.toLowerCase()); }); + +// reorder such that when just typing '\' suggestions starting with '\a' appear +const indexOfFirstA = listOfReplacements + .map(function(r) { return r.value.slice(0, 2).toLowerCase(); }) + .indexOf('\\a'); +listOfReplacements = listOfReplacements.slice(indexOfFirstA).concat(listOfReplacements.slice(0, indexOfFirstA)); + + +// Bloodhound: the source (dataset) for typeahead +const mySource = new Bloodhound({ + datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); }, + queryTokenizer: function(d) { const i = d.lastIndexOf('\\'); const r = [d.substr(0, i), d.substr(i)]; console.log(r); return r; }, + local: listOfReplacements, +}); +mySource.initialize(); + +// apply typeahead to input text field +latexInput.typeahead({ + hint: false, + highlight: true, + minLength: 0, +}, { + display: 'value', + source: mySource.ttAdapter(), + limit: 15, + templates: { + suggestion: function(datum: {unicode:string, value:string}) { + return '
Created by Sven Kreiss and Kyle Cranmer.
+ Maintained on GitHub.
+ +Tweet + + +
+ + + ++ All the info in the README file. +
+ + +Type LaTeX expressions in the input box on the left. The converted text in the box on the right can be copied to most programs including PowerPoint and Keynote, e-mail clients like Outlook and Mail and even apps on smart phones. UnicodeIt can create greek letters, arrows, mathematical symbols and many more for presentations, emails, chats, facebook, etc.
+ +| x \in (-\infty, \infty) | x ∈ (-∞, ∞) | |
| p\bar{p} \to \mu^+\mu^- | pp̅ → μ⁺μ⁻ | |
| \alpha\omega\epsilon\S\om\in | αωε§øm∈ | |
| ^2H ^6Li ^{10}B ^{14}N | ²H ⁶Li ¹⁰B ¹⁴N | |
| \mathcal{L} \mathcal{H} \mathbb{R} \mathbb{C} | ℒ ℋ ℝ ℂ |