Something went wrong. Try again.
Markdown parser fork with extended syntax for personal use.
Something went wrong. Try again.
67 kB · 2756 lines
Rust
at hack
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757//! Constants needed to parse markdown.//!//! Most of these constants are magic numbers, such as the number of markers//! needed to parse [code (fenced)][raw_flow]//! ([`CODE_FENCED_SEQUENCE_SIZE_MIN`][]) or the max number of allowed markers//! in a [heading (atx)][heading_atx]//! ([`HEADING_ATX_OPENING_FENCE_SIZE_MAX`][]).//!//! Some constants are instead lists of things, such as the list of tag names//! considered in the **raw** production of [HTML (flow)][html_flow]//! ([`HTML_RAW_NAMES`][]), or the list of named character references//! ([`CHARACTER_REFERENCES`][]).//!//! [raw_flow]: crate::construct::raw_flow//! [heading_atx]: crate::construct::heading_atx//! [html_flow]: crate::construct::html_flow
/// The number of characters allowed in a protocol of an [autolink][].////// The protocol part is the `xxx` in `<xxx://example.com>`./// 32 characters is fine, 33 is too many.////// [autolink]: crate::construct::autolinkpub const AUTOLINK_SCHEME_SIZE_MAX: usize = 32;
/// The number of characters allowed in a domain of an email [autolink][].////// There can be multiple “domains”./// A domain part is each `xxx` in `<example@xxx.xxx.xxx>`./// 63 characters is fine, 64 is too many.////// [autolink]: crate::construct::autolinkpub const AUTOLINK_DOMAIN_SIZE_MAX: usize = 63;
/// The max number of characters in a decimal numeric/// [character reference][character_reference].////// To illustrate, this allows `�` and disallows `�`./// This limit is imposed because all bigger numbers are invalid.////// [character_reference]: crate::construct::character_referencepub const CHARACTER_REFERENCE_DECIMAL_SIZE_MAX: usize = 7;
/// The max number of characters in a hexadecimal numeric/// [character reference][character_reference].////// To illustrate, this allows `�` and disallows `�`./// This limit is imposed because all bigger numbers are invalid.////// [character_reference]: crate::construct::character_referencepub const CHARACTER_REFERENCE_HEXADECIMAL_SIZE_MAX: usize = 6;
/// The max number of characters in a named/// [character reference][character_reference].////// This is the number of the longest name in [`CHARACTER_REFERENCES`][]./// It allows `∳` and prevents the parser from/// continuing for eons.////// [character_reference]: crate::construct::character_referencepub const CHARACTER_REFERENCE_NAMED_SIZE_MAX: usize = 31;
/// The number of markers needed for [code (fenced)][raw_flow] to form.////// Like many things in markdown, the number is `3`.////// [raw_flow]: crate::construct::raw_flowpub const CODE_FENCED_SEQUENCE_SIZE_MIN: usize = 3;
/// The number of markers needed for [frontmatter][] to form.////// Like many things in markdown, the number is `3`.////// [frontmatter]: crate::construct::frontmatterpub const FRONTMATTER_SEQUENCE_SIZE: usize = 3;
/// The number of the longest tag name in [`GFM_HTML_TAGFILTER_NAMES`][].////// This is currently the size of `plaintext`.pub const GFM_HTML_TAGFILTER_SIZE_MAX: usize = 9;
/// List of HTML tag names that are escaped by GFMs tag filter.////// Tag name matching must be performed insensitive to case, and thus this list/// includes lowercase tag names.////// ## References////// * [*§ 6.1 Disallowed Raw HTML (extension)* in GFM](https://github.github.com/gfm/#disallowed-raw-html-extension-)pub const GFM_HTML_TAGFILTER_NAMES: [&str; 9] = [ "iframe", "noembed", "noframes", "plaintext", "script", "style", "textarea", "title", "xmp",];
/// The number of preceding spaces needed for a [hard break/// (trailing)][whitespace] to form.////// [whitespace]: crate::construct::partial_whitespacepub const HARD_BREAK_PREFIX_SIZE_MIN: usize = 2;
/// The max number of markers allowed to form a [heading (atx)][heading_atx].////// This limitation is imposed by HTML, which imposes a max heading rank of/// `6`.////// [heading_atx]: crate::construct::heading_atxpub const HEADING_ATX_OPENING_FENCE_SIZE_MAX: usize = 6;
/// List of HTML tag names that form the **basic** production of/// [HTML (flow)][html_flow].////// The **basic** production allows interleaving HTML and markdown with blank/// lines and allows flow (block) elements to interrupt definitions, paragraphs,/// and heading (setext)./// Tag name matching must be performed insensitive to case, and thus this list/// includes lowercase tag names.////// Tag names not on this list result in the **complete** production.////// > 👉 **Note**: `source` was removed on `main` of the `CommonMark` spec and/// > is slated to be released in `CommonMark@0.31`.////// ## References////// * [*§ 4.6 HTML blocks* in `CommonMark`](https://spec.commonmark.org/0.31/#html-blocks)/// * [*Remove source element as HTML block start condition* as `commonmark/commonmark-spec#710`](https://github.com/commonmark/commonmark-spec/pull/710)////// [html_flow]: crate::construct::html_flowpub const HTML_BLOCK_NAMES: [&str; 62] = [ "address", "article", "aside", "base", "basefont", "blockquote", "body", "caption", "center", "col", "colgroup", "dd", "details", "dialog", "dir", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hr", "html", "iframe", "legend", "li", "link", "main", "menu", "menuitem", "nav", "noframes", "ol", "optgroup", "option", "p", "param", "search", "section", "summary", "table", "tbody", "td", "tfoot", "th", "thead", "title", "tr", "track", "ul",];
/// Magic string of CDATA (after `<![`).////// Used in the **cdata** production of [HTML (flow)][html_flow] and/// [HTML (text)][html_text].////// [html_flow]: crate::construct::html_flow/// [html_text]: crate::construct::html_textpub const HTML_CDATA_PREFIX: [u8; 6] = [b'C', b'D', b'A', b'T', b'A', b'['];
/// List of HTML tag names that form the **raw** production of/// [HTML (flow)][html_flow].////// The **raw** production allows blank lines and thus no interleaving with/// markdown./// Tag name matching must be performed insensitive to case, and thus this list/// includes lowercase tag names.////// The number of the longest tag name is also stored as a constant in/// [`HTML_RAW_SIZE_MAX`][].////// > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.////// ## References////// * [*§ 4.6 HTML blocks* in `CommonMark`](https://spec.commonmark.org/0.31/#html-blocks)////// [html_flow]: crate::construct::html_flowpub const HTML_RAW_NAMES: [&str; 4] = ["pre", "script", "style", "textarea"];
/// The number of the longest tag name in [`HTML_RAW_NAMES`][].////// This is currently the size of `textarea`.pub const HTML_RAW_SIZE_MAX: usize = 8;
/// To safeguard performance, labels are capped at a large number: `999`.pub const LINK_REFERENCE_SIZE_MAX: usize = 999;
/// The max number of decimals allowed to form an (ordered)/// [list item][list-item].////// `CommonMark` caps this at 10 digits (9 is fine, 10 not)./// This limit is imposed because bigger numbers result in integer overflows/// in some browsers.////// ## References////// * [*§ 5.2 List items* in `CommonMark`](https://spec.commonmark.org/0.31/#ordered-list-marker)////// [list-item]: crate::construct::list_itempub const LIST_ITEM_VALUE_SIZE_MAX: usize = 10;
/// The number of markers needed for [math (flow)][raw_flow] to form.////// Unlike code (fenced), this number is `2`.////// [raw_flow]: crate::construct::raw_flowpub const MATH_FLOW_SEQUENCE_SIZE_MIN: usize = 2;
/// Maximum allowed unbalanced parens in destination.////// There can be many balanced parens, but if there are 33 opens that were not/// yet closed, the destination does not parse./// `CommonMark` requires that at least 3 opening parens are allowed./// See: <https://spec.commonmark.org/0.31/#link-destination>,/// In practice, this is quite low, and several places instead cap it at 32./// See: <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>.pub const RESOURCE_DESTINATION_BALANCE_MAX: usize = 32;
/// List of protocols allowed, when operating safely, as `href` on `a`.////// This list is based on what is allowed by GitHub.pub const SAFE_PROTOCOL_HREF: [&str; 6] = ["http", "https", "irc", "ircs", "mailto", "xmpp"];
/// List of protocols allowed, when operating safely, as `src` on `img`.////// This list is based on what is allowed by GitHub.pub const SAFE_PROTOCOL_SRC: [&str; 2] = ["http", "https"];
/// The number of characters that form a tab stop.////// This relates to the number of whitespace characters needed to form certain/// constructs in markdown, most notable the whitespace required to form/// [code (indented)][code_indented].////// [code_indented]: crate::construct::code_indentedpub const TAB_SIZE: usize = 4;
/// The number of markers needed for a [thematic break][thematic_break] to form.////// Like many things in markdown, the number is `3`.////// [thematic_break]: crate::construct::thematic_breakpub const THEMATIC_BREAK_MARKER_COUNT_MIN: usize = 3;
// Important: please touch the below lists as few times as possible to keep Git small.
/// List of names and values that form named [character reference][character_reference]s.////// This list is sensitive to casing.////// The number of the longest name (`CounterClockwiseContourIntegral`) is also/// stored as a constant in [`CHARACTER_REFERENCE_NAMED_SIZE_MAX`][].////// ## References////// * [*§ 2.5 Entity and numeric character references* in `CommonMark`](https://spec.commonmark.org/0.31/#entity-and-numeric-character-references)////// [character_reference]: crate::construct::character_referencepub static CHARACTER_REFERENCES: [(&str, &str); 2125] = [ ("AElig", "Æ"), ("AMP", "&"), ("Aacute", "Á"), ("Abreve", "Ă"), ("Acirc", "Â"), ("Acy", "А"), ("Afr", "𝔄"), ("Agrave", "À"), ("Alpha", "Α"), ("Amacr", "Ā"), ("And", "⩓"), ("Aogon", "Ą"), ("Aopf", "𝔸"), ("ApplyFunction", ""), ("Aring", "Å"), ("Ascr", "𝒜"), ("Assign", "≔"), ("Atilde", "Ã"), ("Auml", "Ä"), ("Backslash", "∖"), ("Barv", "⫧"), ("Barwed", "⌆"), ("Bcy", "Б"), ("Because", "∵"), ("Bernoullis", "ℬ"), ("Beta", "Β"), ("Bfr", "𝔅"), ("Bopf", "𝔹"), ("Breve", "˘"), ("Bscr", "ℬ"), ("Bumpeq", "≎"), ("CHcy", "Ч"), ("COPY", "©"), ("Cacute", "Ć"), ("Cap", "⋒"), ("CapitalDifferentialD", "ⅅ"), ("Cayleys", "ℭ"), ("Ccaron", "Č"), ("Ccedil", "Ç"), ("Ccirc", "Ĉ"), ("Cconint", "∰"), ("Cdot", "Ċ"), ("Cedilla", "¸"), ("CenterDot", "·"), ("Cfr", "ℭ"), ("Chi", "Χ"), ("CircleDot", "⊙"), ("CircleMinus", "⊖"), ("CirclePlus", "⊕"), ("CircleTimes", "⊗"), ("ClockwiseContourIntegral", "∲"), ("CloseCurlyDoubleQuote", "”"), ("CloseCurlyQuote", "’"), ("Colon", "∷"), ("Colone", "⩴"), ("Congruent", "≡"), ("Conint", "∯"), ("ContourIntegral", "∮"), ("Copf", "ℂ"), ("Coproduct", "∐"), ("CounterClockwiseContourIntegral", "∳"), ("Cross", "⨯"), ("Cscr", "𝒞"), ("Cup", "⋓"), ("CupCap", "≍"), ("DD", "ⅅ"), ("DDotrahd", "⤑"), ("DJcy", "Ђ"), ("DScy", "Ѕ"), ("DZcy", "Џ"), ("Dagger", "‡"), ("Darr", "↡"), ("Dashv", "⫤"), ("Dcaron", "Ď"), ("Dcy", "Д"), ("Del", "∇"), ("Delta", "Δ"), ("Dfr", "𝔇"), ("DiacriticalAcute", "´"), ("DiacriticalDot", "˙"), ("DiacriticalDoubleAcute", "˝"), ("DiacriticalGrave", "`"), ("DiacriticalTilde", "˜"), ("Diamond", "⋄"), ("DifferentialD", "ⅆ"), ("Dopf", "𝔻"), ("Dot", "¨"), ("DotDot", "⃜"), ("DotEqual", "≐"), ("DoubleContourIntegral", "∯"), ("DoubleDot", "¨"), ("DoubleDownArrow", "⇓"), ("DoubleLeftArrow", "⇐"), ("DoubleLeftRightArrow", "⇔"), ("DoubleLeftTee", "⫤"), ("DoubleLongLeftArrow", "⟸"), ("DoubleLongLeftRightArrow", "⟺"), ("DoubleLongRightArrow", "⟹"), ("DoubleRightArrow", "⇒"), ("DoubleRightTee", "⊨"), ("DoubleUpArrow", "⇑"), ("DoubleUpDownArrow", "⇕"), ("DoubleVerticalBar", "∥"), ("DownArrow", "↓"), ("DownArrowBar", "⤓"), ("DownArrowUpArrow", "⇵"), ("DownBreve", "̑"), ("DownLeftRightVector", "⥐"), ("DownLeftTeeVector", "⥞"), ("DownLeftVector", "↽"), ("DownLeftVectorBar", "⥖"), ("DownRightTeeVector", "⥟"), ("DownRightVector", "⇁"), ("DownRightVectorBar", "⥗"), ("DownTee", "⊤"), ("DownTeeArrow", "↧"), ("Downarrow", "⇓"), ("Dscr", "𝒟"), ("Dstrok", "Đ"), ("ENG", "Ŋ"), ("ETH", "Ð"), ("Eacute", "É"), ("Ecaron", "Ě"), ("Ecirc", "Ê"), ("Ecy", "Э"), ("Edot", "Ė"), ("Efr", "𝔈"), ("Egrave", "È"), ("Element", "∈"), ("Emacr", "Ē"), ("EmptySmallSquare", "◻"), ("EmptyVerySmallSquare", "▫"), ("Eogon", "Ę"), ("Eopf", "𝔼"), ("Epsilon", "Ε"), ("Equal", "⩵"), ("EqualTilde", "≂"), ("Equilibrium", "⇌"), ("Escr", "ℰ"), ("Esim", "⩳"), ("Eta", "Η"), ("Euml", "Ë"), ("Exists", "∃"), ("ExponentialE", "ⅇ"), ("Fcy", "Ф"), ("Ffr", "𝔉"), ("FilledSmallSquare", "◼"), ("FilledVerySmallSquare", "▪"), ("Fopf", "𝔽"), ("ForAll", "∀"), ("Fouriertrf", "ℱ"), ("Fscr", "ℱ"), ("GJcy", "Ѓ"), ("GT", ">"), ("Gamma", "Γ"), ("Gammad", "Ϝ"), ("Gbreve", "Ğ"), ("Gcedil", "Ģ"), ("Gcirc", "Ĝ"), ("Gcy", "Г"), ("Gdot", "Ġ"), ("Gfr", "𝔊"), ("Gg", "⋙"), ("Gopf", "𝔾"), ("GreaterEqual", "≥"), ("GreaterEqualLess", "⋛"), ("GreaterFullEqual", "≧"), ("GreaterGreater", "⪢"), ("GreaterLess", "≷"), ("GreaterSlantEqual", "⩾"), ("GreaterTilde", "≳"), ("Gscr", "𝒢"), ("Gt", "≫"), ("HARDcy", "Ъ"), ("Hacek", "ˇ"), ("Hat", "^"), ("Hcirc", "Ĥ"), ("Hfr", "ℌ"), ("HilbertSpace", "ℋ"), ("Hopf", "ℍ"), ("HorizontalLine", "─"), ("Hscr", "ℋ"), ("Hstrok", "Ħ"), ("HumpDownHump", "≎"), ("HumpEqual", "≏"), ("IEcy", "Е"), ("IJlig", "IJ"), ("IOcy", "Ё"), ("Iacute", "Í"), ("Icirc", "Î"), ("Icy", "И"), ("Idot", "İ"), ("Ifr", "ℑ"), ("Igrave", "Ì"), ("Im", "ℑ"), ("Imacr", "Ī"), ("ImaginaryI", "ⅈ"), ("Implies", "⇒"), ("Int", "∬"), ("Integral", "∫"), ("Intersection", "⋂"), ("InvisibleComma", ""), ("InvisibleTimes", ""), ("Iogon", "Į"), ("Iopf", "𝕀"), ("Iota", "Ι"), ("Iscr", "ℐ"), ("Itilde", "Ĩ"), ("Iukcy", "І"), ("Iuml", "Ï"), ("Jcirc", "Ĵ"), ("Jcy", "Й"), ("Jfr", "𝔍"), ("Jopf", "𝕁"), ("Jscr", "𝒥"), ("Jsercy", "Ј"), ("Jukcy", "Є"), ("KHcy", "Х"), ("KJcy", "Ќ"), ("Kappa", "Κ"), ("Kcedil", "Ķ"), ("Kcy", "К"), ("Kfr", "𝔎"), ("Kopf", "𝕂"), ("Kscr", "𝒦"), ("LJcy", "Љ"), ("LT", "<"), ("Lacute", "Ĺ"), ("Lambda", "Λ"), ("Lang", "⟪"), ("Laplacetrf", "ℒ"), ("Larr", "↞"), ("Lcaron", "Ľ"), ("Lcedil", "Ļ"), ("Lcy", "Л"), ("LeftAngleBracket", "⟨"), ("LeftArrow", "←"), ("LeftArrowBar", "⇤"), ("LeftArrowRightArrow", "⇆"), ("LeftCeiling", "⌈"), ("LeftDoubleBracket", "⟦"), ("LeftDownTeeVector", "⥡"), ("LeftDownVector", "⇃"), ("LeftDownVectorBar", "⥙"), ("LeftFloor", "⌊"), ("LeftRightArrow", "↔"), ("LeftRightVector", "⥎"), ("LeftTee", "⊣"), ("LeftTeeArrow", "↤"), ("LeftTeeVector", "⥚"), ("LeftTriangle", "⊲"), ("LeftTriangleBar", "⧏"), ("LeftTriangleEqual", "⊴"), ("LeftUpDownVector", "⥑"), ("LeftUpTeeVector", "⥠"), ("LeftUpVector", "↿"), ("LeftUpVectorBar", "⥘"), ("LeftVector", "↼"), ("LeftVectorBar", "⥒"), ("Leftarrow", "⇐"), ("Leftrightarrow", "⇔"), ("LessEqualGreater", "⋚"), ("LessFullEqual", "≦"), ("LessGreater", "≶"), ("LessLess", "⪡"), ("LessSlantEqual", "⩽"), ("LessTilde", "≲"), ("Lfr", "𝔏"), ("Ll", "⋘"), ("Lleftarrow", "⇚"), ("Lmidot", "Ŀ"), ("LongLeftArrow", "⟵"), ("LongLeftRightArrow", "⟷"), ("LongRightArrow", "⟶"), ("Longleftarrow", "⟸"), ("Longleftrightarrow", "⟺"), ("Longrightarrow", "⟹"), ("Lopf", "𝕃"), ("LowerLeftArrow", "↙"), ("LowerRightArrow", "↘"), ("Lscr", "ℒ"), ("Lsh", "↰"), ("Lstrok", "Ł"), ("Lt", "≪"), ("Map", "⤅"), ("Mcy", "М"), ("MediumSpace", " "), ("Mellintrf", "ℳ"), ("Mfr", "𝔐"), ("MinusPlus", "∓"), ("Mopf", "𝕄"), ("Mscr", "ℳ"), ("Mu", "Μ"), ("NJcy", "Њ"), ("Nacute", "Ń"), ("Ncaron", "Ň"), ("Ncedil", "Ņ"), ("Ncy", "Н"), ("NegativeMediumSpace", "\u{200B}"), ("NegativeThickSpace", "\u{200B}"), ("NegativeThinSpace", "\u{200B}"), ("NegativeVeryThinSpace", "\u{200B}"), ("NestedGreaterGreater", "≫"), ("NestedLessLess", "≪"), ("NewLine", "\n"), ("Nfr", "𝔑"), ("NoBreak", "\u{2060}"), ("NonBreakingSpace", " "), ("Nopf", "ℕ"), ("Not", "⫬"), ("NotCongruent", "≢"), ("NotCupCap", "≭"), ("NotDoubleVerticalBar", "∦"), ("NotElement", "∉"), ("NotEqual", "≠"), ("NotEqualTilde", "≂̸"), ("NotExists", "∄"), ("NotGreater", "≯"), ("NotGreaterEqual", "≱"), ("NotGreaterFullEqual", "≧̸"), ("NotGreaterGreater", "≫̸"), ("NotGreaterLess", "≹"), ("NotGreaterSlantEqual", "⩾̸"), ("NotGreaterTilde", "≵"), ("NotHumpDownHump", "≎̸"), ("NotHumpEqual", "≏̸"), ("NotLeftTriangle", "⋪"), ("NotLeftTriangleBar", "⧏̸"), ("NotLeftTriangleEqual", "⋬"), ("NotLess", "≮"), ("NotLessEqual", "≰"), ("NotLessGreater", "≸"), ("NotLessLess", "≪̸"), ("NotLessSlantEqual", "⩽̸"), ("NotLessTilde", "≴"), ("NotNestedGreaterGreater", "⪢̸"), ("NotNestedLessLess", "⪡̸"), ("NotPrecedes", "⊀"), ("NotPrecedesEqual", "⪯̸"), ("NotPrecedesSlantEqual", "⋠"), ("NotReverseElement", "∌"), ("NotRightTriangle", "⋫"), ("NotRightTriangleBar", "⧐̸"), ("NotRightTriangleEqual", "⋭"), ("NotSquareSubset", "⊏̸"), ("NotSquareSubsetEqual", "⋢"), ("NotSquareSuperset", "⊐̸"), ("NotSquareSupersetEqual", "⋣"), ("NotSubset", "⊂⃒"), ("NotSubsetEqual", "⊈"), ("NotSucceeds", "⊁"), ("NotSucceedsEqual", "⪰̸"), ("NotSucceedsSlantEqual", "⋡"), ("NotSucceedsTilde", "≿̸"), ("NotSuperset", "⊃⃒"), ("NotSupersetEqual", "⊉"), ("NotTilde", "≁"), ("NotTildeEqual", "≄"), ("NotTildeFullEqual", "≇"), ("NotTildeTilde", "≉"), ("NotVerticalBar", "∤"), ("Nscr", "𝒩"), ("Ntilde", "Ñ"), ("Nu", "Ν"), ("OElig", "Œ"), ("Oacute", "Ó"), ("Ocirc", "Ô"), ("Ocy", "О"), ("Odblac", "Ő"), ("Ofr", "𝔒"), ("Ograve", "Ò"), ("Omacr", "Ō"), ("Omega", "Ω"), ("Omicron", "Ο"), ("Oopf", "𝕆"), ("OpenCurlyDoubleQuote", "“"), ("OpenCurlyQuote", "‘"), ("Or", "⩔"), ("Oscr", "𝒪"), ("Oslash", "Ø"), ("Otilde", "Õ"), ("Otimes", "⨷"), ("Ouml", "Ö"), ("OverBar", "‾"), ("OverBrace", "⏞"), ("OverBracket", "⎴"), ("OverParenthesis", "⏜"), ("PartialD", "∂"), ("Pcy", "П"), ("Pfr", "𝔓"), ("Phi", "Φ"), ("Pi", "Π"), ("PlusMinus", "±"), ("Poincareplane", "ℌ"), ("Popf", "ℙ"), ("Pr", "⪻"), ("Precedes", "≺"), ("PrecedesEqual", "⪯"), ("PrecedesSlantEqual", "≼"), ("PrecedesTilde", "≾"), ("Prime", "″"), ("Product", "∏"), ("Proportion", "∷"), ("Proportional", "∝"), ("Pscr", "𝒫"), ("Psi", "Ψ"), ("QUOT", "\""), ("Qfr", "𝔔"), ("Qopf", "ℚ"), ("Qscr", "𝒬"), ("RBarr", "⤐"), ("REG", "®"), ("Racute", "Ŕ"), ("Rang", "⟫"), ("Rarr", "↠"), ("Rarrtl", "⤖"), ("Rcaron", "Ř"), ("Rcedil", "Ŗ"), ("Rcy", "Р"), ("Re", "ℜ"), ("ReverseElement", "∋"), ("ReverseEquilibrium", "⇋"), ("ReverseUpEquilibrium", "⥯"), ("Rfr", "ℜ"), ("Rho", "Ρ"), ("RightAngleBracket", "⟩"), ("RightArrow", "→"), ("RightArrowBar", "⇥"), ("RightArrowLeftArrow", "⇄"), ("RightCeiling", "⌉"), ("RightDoubleBracket", "⟧"), ("RightDownTeeVector", "⥝"), ("RightDownVector", "⇂"), ("RightDownVectorBar", "⥕"), ("RightFloor", "⌋"), ("RightTee", "⊢"), ("RightTeeArrow", "↦"), ("RightTeeVector", "⥛"), ("RightTriangle", "⊳"), ("RightTriangleBar", "⧐"), ("RightTriangleEqual", "⊵"), ("RightUpDownVector", "⥏"), ("RightUpTeeVector", "⥜"), ("RightUpVector", "↾"), ("RightUpVectorBar", "⥔"), ("RightVector", "⇀"), ("RightVectorBar", "⥓"), ("Rightarrow", "⇒"), ("Ropf", "ℝ"), ("RoundImplies", "⥰"), ("Rrightarrow", "⇛"), ("Rscr", "ℛ"), ("Rsh", "↱"), ("RuleDelayed", "⧴"), ("SHCHcy", "Щ"), ("SHcy", "Ш"), ("SOFTcy", "Ь"), ("Sacute", "Ś"), ("Sc", "⪼"), ("Scaron", "Š"), ("Scedil", "Ş"), ("Scirc", "Ŝ"), ("Scy", "С"), ("Sfr", "𝔖"), ("ShortDownArrow", "↓"), ("ShortLeftArrow", "←"), ("ShortRightArrow", "→"), ("ShortUpArrow", "↑"), ("Sigma", "Σ"), ("SmallCircle", "∘"), ("Sopf", "𝕊"), ("Sqrt", "√"), ("Square", "□"), ("SquareIntersection", "⊓"), ("SquareSubset", "⊏"), ("SquareSubsetEqual", "⊑"), ("SquareSuperset", "⊐"), ("SquareSupersetEqual", "⊒"), ("SquareUnion", "⊔"), ("Sscr", "𝒮"), ("Star", "⋆"), ("Sub", "⋐"), ("Subset", "⋐"), ("SubsetEqual", "⊆"), ("Succeeds", "≻"), ("SucceedsEqual", "⪰"), ("SucceedsSlantEqual", "≽"), ("SucceedsTilde", "≿"), ("SuchThat", "∋"), ("Sum", "∑"), ("Sup", "⋑"), ("Superset", "⊃"), ("SupersetEqual", "⊇"), ("Supset", "⋑"), ("THORN", "Þ"), ("TRADE", "™"), ("TSHcy", "Ћ"), ("TScy", "Ц"), ("Tab", "\t"), ("Tau", "Τ"), ("Tcaron", "Ť"), ("Tcedil", "Ţ"), ("Tcy", "Т"), ("Tfr", "𝔗"), ("Therefore", "∴"), ("Theta", "Θ"), ("ThickSpace", " "), ("ThinSpace", " "), ("Tilde", "∼"), ("TildeEqual", "≃"), ("TildeFullEqual", "≅"), ("TildeTilde", "≈"), ("Topf", "𝕋"), ("TripleDot", "⃛"), ("Tscr", "𝒯"), ("Tstrok", "Ŧ"), ("Uacute", "Ú"), ("Uarr", "↟"), ("Uarrocir", "⥉"), ("Ubrcy", "Ў"), ("Ubreve", "Ŭ"), ("Ucirc", "Û"), ("Ucy", "У"), ("Udblac", "Ű"), ("Ufr", "𝔘"), ("Ugrave", "Ù"), ("Umacr", "Ū"), ("UnderBar", "_"), ("UnderBrace", "⏟"), ("UnderBracket", "⎵"), ("UnderParenthesis", "⏝"), ("Union", "⋃"), ("UnionPlus", "⊎"), ("Uogon", "Ų"), ("Uopf", "𝕌"), ("UpArrow", "↑"), ("UpArrowBar", "⤒"), ("UpArrowDownArrow", "⇅"), ("UpDownArrow", "↕"), ("UpEquilibrium", "⥮"), ("UpTee", "⊥"), ("UpTeeArrow", "↥"), ("Uparrow", "⇑"), ("Updownarrow", "⇕"), ("UpperLeftArrow", "↖"), ("UpperRightArrow", "↗"), ("Upsi", "ϒ"), ("Upsilon", "Υ"), ("Uring", "Ů"), ("Uscr", "𝒰"), ("Utilde", "Ũ"), ("Uuml", "Ü"), ("VDash", "⊫"), ("Vbar", "⫫"), ("Vcy", "В"), ("Vdash", "⊩"), ("Vdashl", "⫦"), ("Vee", "⋁"), ("Verbar", "‖"), ("Vert", "‖"), ("VerticalBar", "∣"), ("VerticalLine", "|"), ("VerticalSeparator", "❘"), ("VerticalTilde", "≀"), ("VeryThinSpace", " "), ("Vfr", "𝔙"), ("Vopf", "𝕍"), ("Vscr", "𝒱"), ("Vvdash", "⊪"), ("Wcirc", "Ŵ"), ("Wedge", "⋀"), ("Wfr", "𝔚"), ("Wopf", "𝕎"), ("Wscr", "𝒲"), ("Xfr", "𝔛"), ("Xi", "Ξ"), ("Xopf", "𝕏"), ("Xscr", "𝒳"), ("YAcy", "Я"), ("YIcy", "Ї"), ("YUcy", "Ю"), ("Yacute", "Ý"), ("Ycirc", "Ŷ"), ("Ycy", "Ы"), ("Yfr", "𝔜"), ("Yopf", "𝕐"), ("Yscr", "𝒴"), ("Yuml", "Ÿ"), ("ZHcy", "Ж"), ("Zacute", "Ź"), ("Zcaron", "Ž"), ("Zcy", "З"), ("Zdot", "Ż"), ("ZeroWidthSpace", "\u{200B}"), ("Zeta", "Ζ"), ("Zfr", "ℨ"), ("Zopf", "ℤ"), ("Zscr", "𝒵"), ("aacute", "á"), ("abreve", "ă"), ("ac", "∾"), ("acE", "∾̳"), ("acd", "∿"), ("acirc", "â"), ("acute", "´"), ("acy", "а"), ("aelig", "æ"), ("af", ""), ("afr", "𝔞"), ("agrave", "à"), ("alefsym", "ℵ"), ("aleph", "ℵ"), ("alpha", "α"), ("amacr", "ā"), ("amalg", "⨿"), ("amp", "&"), ("and", "∧"), ("andand", "⩕"), ("andd", "⩜"), ("andslope", "⩘"), ("andv", "⩚"), ("ang", "∠"), ("ange", "⦤"), ("angle", "∠"), ("angmsd", "∡"), ("angmsdaa", "⦨"), ("angmsdab", "⦩"), ("angmsdac", "⦪"), ("angmsdad", "⦫"), ("angmsdae", "⦬"), ("angmsdaf", "⦭"), ("angmsdag", "⦮"), ("angmsdah", "⦯"), ("angrt", "∟"), ("angrtvb", "⊾"), ("angrtvbd", "⦝"), ("angsph", "∢"), ("angst", "Å"), ("angzarr", "⍼"), ("aogon", "ą"), ("aopf", "𝕒"), ("ap", "≈"), ("apE", "⩰"), ("apacir", "⩯"), ("ape", "≊"), ("apid", "≋"), ("apos", "'"), ("approx", "≈"), ("approxeq", "≊"), ("aring", "å"), ("ascr", "𝒶"), ("ast", "*"), ("asymp", "≈"), ("asympeq", "≍"), ("atilde", "ã"), ("auml", "ä"), ("awconint", "∳"), ("awint", "⨑"), ("bNot", "⫭"), ("backcong", "≌"), ("backepsilon", "϶"), ("backprime", "‵"), ("backsim", "∽"), ("backsimeq", "⋍"), ("barvee", "⊽"), ("barwed", "⌅"), ("barwedge", "⌅"), ("bbrk", "⎵"), ("bbrktbrk", "⎶"), ("bcong", "≌"), ("bcy", "б"), ("bdquo", "„"), ("becaus", "∵"), ("because", "∵"), ("bemptyv", "⦰"), ("bepsi", "϶"), ("bernou", "ℬ"), ("beta", "β"), ("beth", "ℶ"), ("between", "≬"), ("bfr", "𝔟"), ("bigcap", "⋂"), ("bigcirc", "◯"), ("bigcup", "⋃"), ("bigodot", "⨀"), ("bigoplus", "⨁"), ("bigotimes", "⨂"), ("bigsqcup", "⨆"), ("bigstar", "★"), ("bigtriangledown", "▽"), ("bigtriangleup", "△"), ("biguplus", "⨄"), ("bigvee", "⋁"), ("bigwedge", "⋀"), ("bkarow", "⤍"), ("blacklozenge", "⧫"), ("blacksquare", "▪"), ("blacktriangle", "▴"), ("blacktriangledown", "▾"), ("blacktriangleleft", "◂"), ("blacktriangleright", "▸"), ("blank", "␣"), ("blk12", "▒"), ("blk14", "░"), ("blk34", "▓"), ("block", "█"), ("bne", "=⃥"), ("bnequiv", "≡⃥"), ("bnot", "⌐"), ("bopf", "𝕓"), ("bot", "⊥"), ("bottom", "⊥"), ("bowtie", "⋈"), ("boxDL", "╗"), ("boxDR", "╔"), ("boxDl", "╖"), ("boxDr", "╓"), ("boxH", "═"), ("boxHD", "╦"), ("boxHU", "╩"), ("boxHd", "╤"), ("boxHu", "╧"), ("boxUL", "╝"), ("boxUR", "╚"), ("boxUl", "╜"), ("boxUr", "╙"), ("boxV", "║"), ("boxVH", "╬"), ("boxVL", "╣"), ("boxVR", "╠"), ("boxVh", "╫"), ("boxVl", "╢"), ("boxVr", "╟"), ("boxbox", "⧉"), ("boxdL", "╕"), ("boxdR", "╒"), ("boxdl", "┐"), ("boxdr", "┌"), ("boxh", "─"), ("boxhD", "╥"), ("boxhU", "╨"), ("boxhd", "┬"), ("boxhu", "┴"), ("boxminus", "⊟"), ("boxplus", "⊞"), ("boxtimes", "⊠"), ("boxuL", "╛"), ("boxuR", "╘"), ("boxul", "┘"), ("boxur", "└"), ("boxv", "│"), ("boxvH", "╪"), ("boxvL", "╡"), ("boxvR", "╞"), ("boxvh", "┼"), ("boxvl", "┤"), ("boxvr", "├"), ("bprime", "‵"), ("breve", "˘"), ("brvbar", "¦"), ("bscr", "𝒷"), ("bsemi", "⁏"), ("bsim", "∽"), ("bsime", "⋍"), ("bsol", "\\"), ("bsolb", "⧅"), ("bsolhsub", "⟈"), ("bull", "•"), ("bullet", "•"), ("bump", "≎"), ("bumpE", "⪮"), ("bumpe", "≏"), ("bumpeq", "≏"), ("cacute", "ć"), ("cap", "∩"), ("capand", "⩄"), ("capbrcup", "⩉"), ("capcap", "⩋"), ("capcup", "⩇"), ("capdot", "⩀"), ("caps", "∩︀"), ("caret", "⁁"), ("caron", "ˇ"), ("ccaps", "⩍"), ("ccaron", "č"), ("ccedil", "ç"), ("ccirc", "ĉ"), ("ccups", "⩌"), ("ccupssm", "⩐"), ("cdot", "ċ"), ("cedil", "¸"), ("cemptyv", "⦲"), ("cent", "¢"), ("centerdot", "·"), ("cfr", "𝔠"), ("chcy", "ч"), ("check", "✓"), ("checkmark", "✓"), ("chi", "χ"), ("cir", "○"), ("cirE", "⧃"), ("circ", "ˆ"), ("circeq", "≗"), ("circlearrowleft", "↺"), ("circlearrowright", "↻"), ("circledR", "®"), ("circledS", "Ⓢ"), ("circledast", "⊛"), ("circledcirc", "⊚"), ("circleddash", "⊝"), ("cire", "≗"), ("cirfnint", "⨐"), ("cirmid", "⫯"), ("cirscir", "⧂"), ("clubs", "♣"), ("clubsuit", "♣"), ("colon", ":"), ("colone", "≔"), ("coloneq", "≔"), ("comma", ","), ("commat", "@"), ("comp", "∁"), ("compfn", "∘"), ("complement", "∁"), ("complexes", "ℂ"), ("cong", "≅"), ("congdot", "⩭"), ("conint", "∮"), ("copf", "𝕔"), ("coprod", "∐"), ("copy", "©"), ("copysr", "℗"), ("crarr", "↵"), ("cross", "✗"), ("cscr", "𝒸"), ("csub", "⫏"), ("csube", "⫑"), ("csup", "⫐"), ("csupe", "⫒"), ("ctdot", "⋯"), ("cudarrl", "⤸"), ("cudarrr", "⤵"), ("cuepr", "⋞"), ("cuesc", "⋟"), ("cularr", "↶"), ("cularrp", "⤽"), ("cup", "∪"), ("cupbrcap", "⩈"), ("cupcap", "⩆"), ("cupcup", "⩊"), ("cupdot", "⊍"), ("cupor", "⩅"), ("cups", "∪︀"), ("curarr", "↷"), ("curarrm", "⤼"), ("curlyeqprec", "⋞"), ("curlyeqsucc", "⋟"), ("curlyvee", "⋎"), ("curlywedge", "⋏"), ("curren", "¤"), ("curvearrowleft", "↶"), ("curvearrowright", "↷"), ("cuvee", "⋎"), ("cuwed", "⋏"), ("cwconint", "∲"), ("cwint", "∱"), ("cylcty", "⌭"), ("dArr", "⇓"), ("dHar", "⥥"), ("dagger", "†"), ("daleth", "ℸ"), ("darr", "↓"), ("dash", "‐"), ("dashv", "⊣"), ("dbkarow", "⤏"), ("dblac", "˝"), ("dcaron", "ď"), ("dcy", "д"), ("dd", "ⅆ"), ("ddagger", "‡"), ("ddarr", "⇊"), ("ddotseq", "⩷"), ("deg", "°"), ("delta", "δ"), ("demptyv", "⦱"), ("dfisht", "⥿"), ("dfr", "𝔡"), ("dharl", "⇃"), ("dharr", "⇂"), ("diam", "⋄"), ("diamond", "⋄"), ("diamondsuit", "♦"), ("diams", "♦"), ("die", "¨"), ("digamma", "ϝ"), ("disin", "⋲"), ("div", "÷"), ("divide", "÷"), ("divideontimes", "⋇"), ("divonx", "⋇"), ("djcy", "ђ"), ("dlcorn", "⌞"), ("dlcrop", "⌍"), ("dollar", "$"), ("dopf", "𝕕"), ("dot", "˙"), ("doteq", "≐"), ("doteqdot", "≑"), ("dotminus", "∸"), ("dotplus", "∔"), ("dotsquare", "⊡"), ("doublebarwedge", "⌆"), ("downarrow", "↓"), ("downdownarrows", "⇊"), ("downharpoonleft", "⇃"), ("downharpoonright", "⇂"), ("drbkarow", "⤐"), ("drcorn", "⌟"), ("drcrop", "⌌"), ("dscr", "𝒹"), ("dscy", "ѕ"), ("dsol", "⧶"), ("dstrok", "đ"), ("dtdot", "⋱"), ("dtri", "▿"), ("dtrif", "▾"), ("duarr", "⇵"), ("duhar", "⥯"), ("dwangle", "⦦"), ("dzcy", "џ"), ("dzigrarr", "⟿"), ("eDDot", "⩷"), ("eDot", "≑"), ("eacute", "é"), ("easter", "⩮"), ("ecaron", "ě"), ("ecir", "≖"), ("ecirc", "ê"), ("ecolon", "≕"), ("ecy", "э"), ("edot", "ė"), ("ee", "ⅇ"), ("efDot", "≒"), ("efr", "𝔢"), ("eg", "⪚"), ("egrave", "è"), ("egs", "⪖"), ("egsdot", "⪘"), ("el", "⪙"), ("elinters", "⏧"), ("ell", "ℓ"), ("els", "⪕"), ("elsdot", "⪗"), ("emacr", "ē"), ("empty", "∅"), ("emptyset", "∅"), ("emptyv", "∅"), ("emsp13", " "), ("emsp14", " "), ("emsp", " "), ("eng", "ŋ"), ("ensp", " "), ("eogon", "ę"), ("eopf", "𝕖"), ("epar", "⋕"), ("eparsl", "⧣"), ("eplus", "⩱"), ("epsi", "ε"), ("epsilon", "ε"), ("epsiv", "ϵ"), ("eqcirc", "≖"), ("eqcolon", "≕"), ("eqsim", "≂"), ("eqslantgtr", "⪖"), ("eqslantless", "⪕"), ("equals", "="), ("equest", "≟"), ("equiv", "≡"), ("equivDD", "⩸"), ("eqvparsl", "⧥"), ("erDot", "≓"), ("erarr", "⥱"), ("escr", "ℯ"), ("esdot", "≐"), ("esim", "≂"), ("eta", "η"), ("eth", "ð"), ("euml", "ë"), ("euro", "€"), ("excl", "!"), ("exist", "∃"), ("expectation", "ℰ"), ("exponentiale", "ⅇ"), ("fallingdotseq", "≒"), ("fcy", "ф"), ("female", "♀"), ("ffilig", "ffi"), ("fflig", "ff"), ("ffllig", "ffl"), ("ffr", "𝔣"), ("filig", "fi"), ("fjlig", "fj"), ("flat", "♭"), ("fllig", "fl"), ("fltns", "▱"), ("fnof", "ƒ"), ("fopf", "𝕗"), ("forall", "∀"), ("fork", "⋔"), ("forkv", "⫙"), ("fpartint", "⨍"), ("frac12", "½"), ("frac13", "⅓"), ("frac14", "¼"), ("frac15", "⅕"), ("frac16", "⅙"), ("frac18", "⅛"), ("frac23", "⅔"), ("frac25", "⅖"), ("frac34", "¾"), ("frac35", "⅗"), ("frac38", "⅜"), ("frac45", "⅘"), ("frac56", "⅚"), ("frac58", "⅝"), ("frac78", "⅞"), ("frasl", "⁄"), ("frown", "⌢"), ("fscr", "𝒻"), ("gE", "≧"), ("gEl", "⪌"), ("gacute", "ǵ"), ("gamma", "γ"), ("gammad", "ϝ"), ("gap", "⪆"), ("gbreve", "ğ"), ("gcirc", "ĝ"), ("gcy", "г"), ("gdot", "ġ"), ("ge", "≥"), ("gel", "⋛"), ("geq", "≥"), ("geqq", "≧"), ("geqslant", "⩾"), ("ges", "⩾"), ("gescc", "⪩"), ("gesdot", "⪀"), ("gesdoto", "⪂"), ("gesdotol", "⪄"), ("gesl", "⋛︀"), ("gesles", "⪔"), ("gfr", "𝔤"), ("gg", "≫"), ("ggg", "⋙"), ("gimel", "ℷ"), ("gjcy", "ѓ"), ("gl", "≷"), ("glE", "⪒"), ("gla", "⪥"), ("glj", "⪤"), ("gnE", "≩"), ("gnap", "⪊"), ("gnapprox", "⪊"), ("gne", "⪈"), ("gneq", "⪈"), ("gneqq", "≩"), ("gnsim", "⋧"), ("gopf", "𝕘"), ("grave", "`"), ("gscr", "ℊ"), ("gsim", "≳"), ("gsime", "⪎"), ("gsiml", "⪐"), ("gt", ">"), ("gtcc", "⪧"), ("gtcir", "⩺"), ("gtdot", "⋗"), ("gtlPar", "⦕"), ("gtquest", "⩼"), ("gtrapprox", "⪆"), ("gtrarr", "⥸"), ("gtrdot", "⋗"), ("gtreqless", "⋛"), ("gtreqqless", "⪌"), ("gtrless", "≷"), ("gtrsim", "≳"), ("gvertneqq", "≩︀"), ("gvnE", "≩︀"), ("hArr", "⇔"), ("hairsp", " "), ("half", "½"), ("hamilt", "ℋ"), ("hardcy", "ъ"), ("harr", "↔"), ("harrcir", "⥈"), ("harrw", "↭"), ("hbar", "ℏ"), ("hcirc", "ĥ"), ("hearts", "♥"), ("heartsuit", "♥"), ("hellip", "…"), ("hercon", "⊹"), ("hfr", "𝔥"), ("hksearow", "⤥"), ("hkswarow", "⤦"), ("hoarr", "⇿"), ("homtht", "∻"), ("hookleftarrow", "↩"), ("hookrightarrow", "↪"), ("hopf", "𝕙"), ("horbar", "―"), ("hscr", "𝒽"), ("hslash", "ℏ"), ("hstrok", "ħ"), ("hybull", "⁃"), ("hyphen", "‐"), ("iacute", "í"), ("ic", ""), ("icirc", "î"), ("icy", "и"), ("iecy", "е"), ("iexcl", "¡"), ("iff", "⇔"), ("ifr", "𝔦"), ("igrave", "ì"), ("ii", "ⅈ"), ("iiiint", "⨌"), ("iiint", "∭"), ("iinfin", "⧜"), ("iiota", "℩"), ("ijlig", "ij"), ("imacr", "ī"), ("image", "ℑ"), ("imagline", "ℐ"), ("imagpart", "ℑ"), ("imath", "ı"), ("imof", "⊷"), ("imped", "Ƶ"), ("in", "∈"), ("incare", "℅"), ("infin", "∞"), ("infintie", "⧝"), ("inodot", "ı"), ("int", "∫"), ("intcal", "⊺"), ("integers", "ℤ"), ("intercal", "⊺"), ("intlarhk", "⨗"), ("intprod", "⨼"), ("iocy", "ё"), ("iogon", "į"), ("iopf", "𝕚"), ("iota", "ι"), ("iprod", "⨼"), ("iquest", "¿"), ("iscr", "𝒾"), ("isin", "∈"), ("isinE", "⋹"), ("isindot", "⋵"), ("isins", "⋴"), ("isinsv", "⋳"), ("isinv", "∈"), ("it", ""), ("itilde", "ĩ"), ("iukcy", "і"), ("iuml", "ï"), ("jcirc", "ĵ"), ("jcy", "й"), ("jfr", "𝔧"), ("jmath", "ȷ"), ("jopf", "𝕛"), ("jscr", "𝒿"), ("jsercy", "ј"), ("jukcy", "є"), ("kappa", "κ"), ("kappav", "ϰ"), ("kcedil", "ķ"), ("kcy", "к"), ("kfr", "𝔨"), ("kgreen", "ĸ"), ("khcy", "х"), ("kjcy", "ќ"), ("kopf", "𝕜"), ("kscr", "𝓀"), ("lAarr", "⇚"), ("lArr", "⇐"), ("lAtail", "⤛"), ("lBarr", "⤎"), ("lE", "≦"), ("lEg", "⪋"), ("lHar", "⥢"), ("lacute", "ĺ"), ("laemptyv", "⦴"), ("lagran", "ℒ"), ("lambda", "λ"), ("lang", "⟨"), ("langd", "⦑"), ("langle", "⟨"), ("lap", "⪅"), ("laquo", "«"), ("larr", "←"), ("larrb", "⇤"), ("larrbfs", "⤟"), ("larrfs", "⤝"), ("larrhk", "↩"), ("larrlp", "↫"), ("larrpl", "⤹"), ("larrsim", "⥳"), ("larrtl", "↢"), ("lat", "⪫"), ("latail", "⤙"), ("late", "⪭"), ("lates", "⪭︀"), ("lbarr", "⤌"), ("lbbrk", "❲"), ("lbrace", "{"), ("lbrack", "["), ("lbrke", "⦋"), ("lbrksld", "⦏"), ("lbrkslu", "⦍"), ("lcaron", "ľ"), ("lcedil", "ļ"), ("lceil", "⌈"), ("lcub", "{"), ("lcy", "л"), ("ldca", "⤶"), ("ldquo", "“"), ("ldquor", "„"), ("ldrdhar", "⥧"), ("ldrushar", "⥋"), ("ldsh", "↲"), ("le", "≤"), ("leftarrow", "←"), ("leftarrowtail", "↢"), ("leftharpoondown", "↽"), ("leftharpoonup", "↼"), ("leftleftarrows", "⇇"), ("leftrightarrow", "↔"), ("leftrightarrows", "⇆"), ("leftrightharpoons", "⇋"), ("leftrightsquigarrow", "↭"), ("leftthreetimes", "⋋"), ("leg", "⋚"), ("leq", "≤"), ("leqq", "≦"), ("leqslant", "⩽"), ("les", "⩽"), ("lescc", "⪨"), ("lesdot", "⩿"), ("lesdoto", "⪁"), ("lesdotor", "⪃"), ("lesg", "⋚︀"), ("lesges", "⪓"), ("lessapprox", "⪅"), ("lessdot", "⋖"), ("lesseqgtr", "⋚"), ("lesseqqgtr", "⪋"), ("lessgtr", "≶"), ("lesssim", "≲"), ("lfisht", "⥼"), ("lfloor", "⌊"), ("lfr", "𝔩"), ("lg", "≶"), ("lgE", "⪑"), ("lhard", "↽"), ("lharu", "↼"), ("lharul", "⥪"), ("lhblk", "▄"), ("ljcy", "љ"), ("ll", "≪"), ("llarr", "⇇"), ("llcorner", "⌞"), ("llhard", "⥫"), ("lltri", "◺"), ("lmidot", "ŀ"), ("lmoust", "⎰"), ("lmoustache", "⎰"), ("lnE", "≨"), ("lnap", "⪉"), ("lnapprox", "⪉"), ("lne", "⪇"), ("lneq", "⪇"), ("lneqq", "≨"), ("lnsim", "⋦"), ("loang", "⟬"), ("loarr", "⇽"), ("lobrk", "⟦"), ("longleftarrow", "⟵"), ("longleftrightarrow", "⟷"), ("longmapsto", "⟼"), ("longrightarrow", "⟶"), ("looparrowleft", "↫"), ("looparrowright", "↬"), ("lopar", "⦅"), ("lopf", "𝕝"), ("loplus", "⨭"), ("lotimes", "⨴"), ("lowast", "∗"), ("lowbar", "_"), ("loz", "◊"), ("lozenge", "◊"), ("lozf", "⧫"), ("lpar", "("), ("lparlt", "⦓"), ("lrarr", "⇆"), ("lrcorner", "⌟"), ("lrhar", "⇋"), ("lrhard", "⥭"), ("lrm", ""), ("lrtri", "⊿"), ("lsaquo", "‹"), ("lscr", "𝓁"), ("lsh", "↰"), ("lsim", "≲"), ("lsime", "⪍"), ("lsimg", "⪏"), ("lsqb", "["), ("lsquo", "‘"), ("lsquor", "‚"), ("lstrok", "ł"), ("lt", "<"), ("ltcc", "⪦"), ("ltcir", "⩹"), ("ltdot", "⋖"), ("lthree", "⋋"), ("ltimes", "⋉"), ("ltlarr", "⥶"), ("ltquest", "⩻"), ("ltrPar", "⦖"), ("ltri", "◃"), ("ltrie", "⊴"), ("ltrif", "◂"), ("lurdshar", "⥊"), ("luruhar", "⥦"), ("lvertneqq", "≨︀"), ("lvnE", "≨︀"), ("mDDot", "∺"), ("macr", "¯"), ("male", "♂"), ("malt", "✠"), ("maltese", "✠"), ("map", "↦"), ("mapsto", "↦"), ("mapstodown", "↧"), ("mapstoleft", "↤"), ("mapstoup", "↥"), ("marker", "▮"), ("mcomma", "⨩"), ("mcy", "м"), ("mdash", "—"), ("measuredangle", "∡"), ("mfr", "𝔪"), ("mho", "℧"), ("micro", "µ"), ("mid", "∣"), ("midast", "*"), ("midcir", "⫰"), ("middot", "·"), ("minus", "−"), ("minusb", "⊟"), ("minusd", "∸"), ("minusdu", "⨪"), ("mlcp", "⫛"), ("mldr", "…"), ("mnplus", "∓"), ("models", "⊧"), ("mopf", "𝕞"), ("mp", "∓"), ("mscr", "𝓂"), ("mstpos", "∾"), ("mu", "μ"), ("multimap", "⊸"), ("mumap", "⊸"), ("nGg", "⋙̸"), ("nGt", "≫⃒"), ("nGtv", "≫̸"), ("nLeftarrow", "⇍"), ("nLeftrightarrow", "⇎"), ("nLl", "⋘̸"), ("nLt", "≪⃒"), ("nLtv", "≪̸"), ("nRightarrow", "⇏"), ("nVDash", "⊯"), ("nVdash", "⊮"), ("nabla", "∇"), ("nacute", "ń"), ("nang", "∠⃒"), ("nap", "≉"), ("napE", "⩰̸"), ("napid", "≋̸"), ("napos", "ʼn"), ("napprox", "≉"), ("natur", "♮"), ("natural", "♮"), ("naturals", "ℕ"), ("nbsp", " "), ("nbump", "≎̸"), ("nbumpe", "≏̸"), ("ncap", "⩃"), ("ncaron", "ň"), ("ncedil", "ņ"), ("ncong", "≇"), ("ncongdot", "⩭̸"), ("ncup", "⩂"), ("ncy", "н"), ("ndash", "–"), ("ne", "≠"), ("neArr", "⇗"), ("nearhk", "⤤"), ("nearr", "↗"), ("nearrow", "↗"), ("nedot", "≐̸"), ("nequiv", "≢"), ("nesear", "⤨"), ("nesim", "≂̸"), ("nexist", "∄"), ("nexists", "∄"), ("nfr", "𝔫"), ("ngE", "≧̸"), ("nge", "≱"), ("ngeq", "≱"), ("ngeqq", "≧̸"), ("ngeqslant", "⩾̸"), ("nges", "⩾̸"), ("ngsim", "≵"), ("ngt", "≯"), ("ngtr", "≯"), ("nhArr", "⇎"), ("nharr", "↮"), ("nhpar", "⫲"), ("ni", "∋"), ("nis", "⋼"), ("nisd", "⋺"), ("niv", "∋"), ("njcy", "њ"), ("nlArr", "⇍"), ("nlE", "≦̸"), ("nlarr", "↚"), ("nldr", "‥"), ("nle", "≰"), ("nleftarrow", "↚"), ("nleftrightarrow", "↮"), ("nleq", "≰"), ("nleqq", "≦̸"), ("nleqslant", "⩽̸"), ("nles", "⩽̸"), ("nless", "≮"), ("nlsim", "≴"), ("nlt", "≮"), ("nltri", "⋪"), ("nltrie", "⋬"), ("nmid", "∤"), ("nopf", "𝕟"), ("not", "¬"), ("notin", "∉"), ("notinE", "⋹̸"), ("notindot", "⋵̸"), ("notinva", "∉"), ("notinvb", "⋷"), ("notinvc", "⋶"), ("notni", "∌"), ("notniva", "∌"), ("notnivb", "⋾"), ("notnivc", "⋽"), ("npar", "∦"), ("nparallel", "∦"), ("nparsl", "⫽⃥"), ("npart", "∂̸"), ("npolint", "⨔"), ("npr", "⊀"), ("nprcue", "⋠"), ("npre", "⪯̸"), ("nprec", "⊀"), ("npreceq", "⪯̸"), ("nrArr", "⇏"), ("nrarr", "↛"), ("nrarrc", "⤳̸"), ("nrarrw", "↝̸"), ("nrightarrow", "↛"), ("nrtri", "⋫"), ("nrtrie", "⋭"), ("nsc", "⊁"), ("nsccue", "⋡"), ("nsce", "⪰̸"), ("nscr", "𝓃"), ("nshortmid", "∤"), ("nshortparallel", "∦"), ("nsim", "≁"), ("nsime", "≄"), ("nsimeq", "≄"), ("nsmid", "∤"), ("nspar", "∦"), ("nsqsube", "⋢"), ("nsqsupe", "⋣"), ("nsub", "⊄"), ("nsubE", "⫅̸"), ("nsube", "⊈"), ("nsubset", "⊂⃒"), ("nsubseteq", "⊈"), ("nsubseteqq", "⫅̸"), ("nsucc", "⊁"), ("nsucceq", "⪰̸"), ("nsup", "⊅"), ("nsupE", "⫆̸"), ("nsupe", "⊉"), ("nsupset", "⊃⃒"), ("nsupseteq", "⊉"), ("nsupseteqq", "⫆̸"), ("ntgl", "≹"), ("ntilde", "ñ"), ("ntlg", "≸"), ("ntriangleleft", "⋪"), ("ntrianglelefteq", "⋬"), ("ntriangleright", "⋫"), ("ntrianglerighteq", "⋭"), ("nu", "ν"), ("num", "#"), ("numero", "№"), ("numsp", " "), ("nvDash", "⊭"), ("nvHarr", "⤄"), ("nvap", "≍⃒"), ("nvdash", "⊬"), ("nvge", "≥⃒"), ("nvgt", ">⃒"), ("nvinfin", "⧞"), ("nvlArr", "⤂"), ("nvle", "≤⃒"), ("nvlt", "<⃒"), ("nvltrie", "⊴⃒"), ("nvrArr", "⤃"), ("nvrtrie", "⊵⃒"), ("nvsim", "∼⃒"), ("nwArr", "⇖"), ("nwarhk", "⤣"), ("nwarr", "↖"), ("nwarrow", "↖"), ("nwnear", "⤧"), ("oS", "Ⓢ"), ("oacute", "ó"), ("oast", "⊛"), ("ocir", "⊚"), ("ocirc", "ô"), ("ocy", "о"), ("odash", "⊝"), ("odblac", "ő"), ("odiv", "⨸"), ("odot", "⊙"), ("odsold", "⦼"), ("oelig", "œ"), ("ofcir", "⦿"), ("ofr", "𝔬"), ("ogon", "˛"), ("ograve", "ò"), ("ogt", "⧁"), ("ohbar", "⦵"), ("ohm", "Ω"), ("oint", "∮"), ("olarr", "↺"), ("olcir", "⦾"), ("olcross", "⦻"), ("oline", "‾"), ("olt", "⧀"), ("omacr", "ō"), ("omega", "ω"), ("omicron", "ο"), ("omid", "⦶"), ("ominus", "⊖"), ("oopf", "𝕠"), ("opar", "⦷"), ("operp", "⦹"), ("oplus", "⊕"), ("or", "∨"), ("orarr", "↻"), ("ord", "⩝"), ("order", "ℴ"), ("orderof", "ℴ"), ("ordf", "ª"), ("ordm", "º"), ("origof", "⊶"), ("oror", "⩖"), ("orslope", "⩗"), ("orv", "⩛"), ("oscr", "ℴ"), ("oslash", "ø"), ("osol", "⊘"), ("otilde", "õ"), ("otimes", "⊗"), ("otimesas", "⨶"), ("ouml", "ö"), ("ovbar", "⌽"), ("par", "∥"), ("para", "¶"), ("parallel", "∥"), ("parsim", "⫳"), ("parsl", "⫽"), ("part", "∂"), ("pcy", "п"), ("percnt", "%"), ("period", "."), ("permil", "‰"), ("perp", "⊥"), ("pertenk", "‱"), ("pfr", "𝔭"), ("phi", "φ"), ("phiv", "ϕ"), ("phmmat", "ℳ"), ("phone", "☎"), ("pi", "π"), ("pitchfork", "⋔"), ("piv", "ϖ"), ("planck", "ℏ"), ("planckh", "ℎ"), ("plankv", "ℏ"), ("plus", "+"), ("plusacir", "⨣"), ("plusb", "⊞"), ("pluscir", "⨢"), ("plusdo", "∔"), ("plusdu", "⨥"), ("pluse", "⩲"), ("plusmn", "±"), ("plussim", "⨦"), ("plustwo", "⨧"), ("pm", "±"), ("pointint", "⨕"), ("popf", "𝕡"), ("pound", "£"), ("pr", "≺"), ("prE", "⪳"), ("prap", "⪷"), ("prcue", "≼"), ("pre", "⪯"), ("prec", "≺"), ("precapprox", "⪷"), ("preccurlyeq", "≼"), ("preceq", "⪯"), ("precnapprox", "⪹"), ("precneqq", "⪵"), ("precnsim", "⋨"), ("precsim", "≾"), ("prime", "′"), ("primes", "ℙ"), ("prnE", "⪵"), ("prnap", "⪹"), ("prnsim", "⋨"), ("prod", "∏"), ("profalar", "⌮"), ("profline", "⌒"), ("profsurf", "⌓"), ("prop", "∝"), ("propto", "∝"), ("prsim", "≾"), ("prurel", "⊰"), ("pscr", "𝓅"), ("psi", "ψ"), ("puncsp", " "), ("qfr", "𝔮"), ("qint", "⨌"), ("qopf", "𝕢"), ("qprime", "⁗"), ("qscr", "𝓆"), ("quaternions", "ℍ"), ("quatint", "⨖"), ("quest", "?"), ("questeq", "≟"), ("quot", "\""), ("rAarr", "⇛"), ("rArr", "⇒"), ("rAtail", "⤜"), ("rBarr", "⤏"), ("rHar", "⥤"), ("race", "∽̱"), ("racute", "ŕ"), ("radic", "√"), ("raemptyv", "⦳"), ("rang", "⟩"), ("rangd", "⦒"), ("range", "⦥"), ("rangle", "⟩"), ("raquo", "»"), ("rarr", "→"), ("rarrap", "⥵"), ("rarrb", "⇥"), ("rarrbfs", "⤠"), ("rarrc", "⤳"), ("rarrfs", "⤞"), ("rarrhk", "↪"), ("rarrlp", "↬"), ("rarrpl", "⥅"), ("rarrsim", "⥴"), ("rarrtl", "↣"), ("rarrw", "↝"), ("ratail", "⤚"), ("ratio", "∶"), ("rationals", "ℚ"), ("rbarr", "⤍"), ("rbbrk", "❳"), ("rbrace", "}"), ("rbrack", "]"), ("rbrke", "⦌"), ("rbrksld", "⦎"), ("rbrkslu", "⦐"), ("rcaron", "ř"), ("rcedil", "ŗ"), ("rceil", "⌉"), ("rcub", "}"), ("rcy", "р"), ("rdca", "⤷"), ("rdldhar", "⥩"), ("rdquo", "”"), ("rdquor", "”"), ("rdsh", "↳"), ("real", "ℜ"), ("realine", "ℛ"), ("realpart", "ℜ"), ("reals", "ℝ"), ("rect", "▭"), ("reg", "®"), ("rfisht", "⥽"), ("rfloor", "⌋"), ("rfr", "𝔯"), ("rhard", "⇁"), ("rharu", "⇀"), ("rharul", "⥬"), ("rho", "ρ"), ("rhov", "ϱ"), ("rightarrow", "→"), ("rightarrowtail", "↣"), ("rightharpoondown", "⇁"), ("rightharpoonup", "⇀"), ("rightleftarrows", "⇄"), ("rightleftharpoons", "⇌"), ("rightrightarrows", "⇉"), ("rightsquigarrow", "↝"), ("rightthreetimes", "⋌"), ("ring", "˚"), ("risingdotseq", "≓"), ("rlarr", "⇄"), ("rlhar", "⇌"), ("rlm", ""), ("rmoust", "⎱"), ("rmoustache", "⎱"), ("rnmid", "⫮"), ("roang", "⟭"), ("roarr", "⇾"), ("robrk", "⟧"), ("ropar", "⦆"), ("ropf", "𝕣"), ("roplus", "⨮"), ("rotimes", "⨵"), ("rpar", ")"), ("rpargt", "⦔"), ("rppolint", "⨒"), ("rrarr", "⇉"), ("rsaquo", "›"), ("rscr", "𝓇"), ("rsh", "↱"), ("rsqb", "]"), ("rsquo", "’"), ("rsquor", "’"), ("rthree", "⋌"), ("rtimes", "⋊"), ("rtri", "▹"), ("rtrie", "⊵"), ("rtrif", "▸"), ("rtriltri", "⧎"), ("ruluhar", "⥨"), ("rx", "℞"), ("sacute", "ś"), ("sbquo", "‚"), ("sc", "≻"), ("scE", "⪴"), ("scap", "⪸"), ("scaron", "š"), ("sccue", "≽"), ("sce", "⪰"), ("scedil", "ş"), ("scirc", "ŝ"), ("scnE", "⪶"), ("scnap", "⪺"), ("scnsim", "⋩"), ("scpolint", "⨓"), ("scsim", "≿"), ("scy", "с"), ("sdot", "⋅"), ("sdotb", "⊡"), ("sdote", "⩦"), ("seArr", "⇘"), ("searhk", "⤥"), ("searr", "↘"), ("searrow", "↘"), ("sect", "§"), ("semi", ";"), ("seswar", "⤩"), ("setminus", "∖"), ("setmn", "∖"), ("sext", "✶"), ("sfr", "𝔰"), ("sfrown", "⌢"), ("sharp", "♯"), ("shchcy", "щ"), ("shcy", "ш"), ("shortmid", "∣"), ("shortparallel", "∥"), ("shy", "\u{AD}"), ("sigma", "σ"), ("sigmaf", "ς"), ("sigmav", "ς"), ("sim", "∼"), ("simdot", "⩪"), ("sime", "≃"), ("simeq", "≃"), ("simg", "⪞"), ("simgE", "⪠"), ("siml", "⪝"), ("simlE", "⪟"), ("simne", "≆"), ("simplus", "⨤"), ("simrarr", "⥲"), ("slarr", "←"), ("smallsetminus", "∖"), ("smashp", "⨳"), ("smeparsl", "⧤"), ("smid", "∣"), ("smile", "⌣"), ("smt", "⪪"), ("smte", "⪬"), ("smtes", "⪬︀"), ("softcy", "ь"), ("sol", "/"), ("solb", "⧄"), ("solbar", "⌿"), ("sopf", "𝕤"), ("spades", "♠"), ("spadesuit", "♠"), ("spar", "∥"), ("sqcap", "⊓"), ("sqcaps", "⊓︀"), ("sqcup", "⊔"), ("sqcups", "⊔︀"), ("sqsub", "⊏"), ("sqsube", "⊑"), ("sqsubset", "⊏"), ("sqsubseteq", "⊑"), ("sqsup", "⊐"), ("sqsupe", "⊒"), ("sqsupset", "⊐"), ("sqsupseteq", "⊒"), ("squ", "□"), ("square", "□"), ("squarf", "▪"), ("squf", "▪"), ("srarr", "→"), ("sscr", "𝓈"), ("ssetmn", "∖"), ("ssmile", "⌣"), ("sstarf", "⋆"), ("star", "☆"), ("starf", "★"), ("straightepsilon", "ϵ"), ("straightphi", "ϕ"), ("strns", "¯"), ("sub", "⊂"), ("subE", "⫅"), ("subdot", "⪽"), ("sube", "⊆"), ("subedot", "⫃"), ("submult", "⫁"), ("subnE", "⫋"), ("subne", "⊊"), ("subplus", "⪿"), ("subrarr", "⥹"), ("subset", "⊂"), ("subseteq", "⊆"), ("subseteqq", "⫅"), ("subsetneq", "⊊"), ("subsetneqq", "⫋"), ("subsim", "⫇"), ("subsub", "⫕"), ("subsup", "⫓"), ("succ", "≻"), ("succapprox", "⪸"), ("succcurlyeq", "≽"), ("succeq", "⪰"), ("succnapprox", "⪺"), ("succneqq", "⪶"), ("succnsim", "⋩"), ("succsim", "≿"), ("sum", "∑"), ("sung", "♪"), ("sup1", "¹"), ("sup2", "²"), ("sup3", "³"), ("sup", "⊃"), ("supE", "⫆"), ("supdot", "⪾"), ("supdsub", "⫘"), ("supe", "⊇"), ("supedot", "⫄"), ("suphsol", "⟉"), ("suphsub", "⫗"), ("suplarr", "⥻"), ("supmult", "⫂"), ("supnE", "⫌"), ("supne", "⊋"), ("supplus", "⫀"), ("supset", "⊃"), ("supseteq", "⊇"), ("supseteqq", "⫆"), ("supsetneq", "⊋"), ("supsetneqq", "⫌"), ("supsim", "⫈"), ("supsub", "⫔"), ("supsup", "⫖"), ("swArr", "⇙"), ("swarhk", "⤦"), ("swarr", "↙"), ("swarrow", "↙"), ("swnwar", "⤪"), ("szlig", "ß"), ("target", "⌖"), ("tau", "τ"), ("tbrk", "⎴"), ("tcaron", "ť"), ("tcedil", "ţ"), ("tcy", "т"), ("tdot", "⃛"), ("telrec", "⌕"), ("tfr", "𝔱"), ("there4", "∴"), ("therefore", "∴"), ("theta", "θ"), ("thetasym", "ϑ"), ("thetav", "ϑ"), ("thickapprox", "≈"), ("thicksim", "∼"), ("thinsp", " "), ("thkap", "≈"), ("thksim", "∼"), ("thorn", "þ"), ("tilde", "˜"), ("times", "×"), ("timesb", "⊠"), ("timesbar", "⨱"), ("timesd", "⨰"), ("tint", "∭"), ("toea", "⤨"), ("top", "⊤"), ("topbot", "⌶"), ("topcir", "⫱"), ("topf", "𝕥"), ("topfork", "⫚"), ("tosa", "⤩"), ("tprime", "‴"), ("trade", "™"), ("triangle", "▵"), ("triangledown", "▿"), ("triangleleft", "◃"), ("trianglelefteq", "⊴"), ("triangleq", "≜"), ("triangleright", "▹"), ("trianglerighteq", "⊵"), ("tridot", "◬"), ("trie", "≜"), ("triminus", "⨺"), ("triplus", "⨹"), ("trisb", "⧍"), ("tritime", "⨻"), ("trpezium", "⏢"), ("tscr", "𝓉"), ("tscy", "ц"), ("tshcy", "ћ"), ("tstrok", "ŧ"), ("twixt", "≬"), ("twoheadleftarrow", "↞"), ("twoheadrightarrow", "↠"), ("uArr", "⇑"), ("uHar", "⥣"), ("uacute", "ú"), ("uarr", "↑"), ("ubrcy", "ў"), ("ubreve", "ŭ"), ("ucirc", "û"), ("ucy", "у"), ("udarr", "⇅"), ("udblac", "ű"), ("udhar", "⥮"), ("ufisht", "⥾"), ("ufr", "𝔲"), ("ugrave", "ù"), ("uharl", "↿"), ("uharr", "↾"), ("uhblk", "▀"), ("ulcorn", "⌜"), ("ulcorner", "⌜"), ("ulcrop", "⌏"), ("ultri", "◸"), ("umacr", "ū"), ("uml", "¨"), ("uogon", "ų"), ("uopf", "𝕦"), ("uparrow", "↑"), ("updownarrow", "↕"), ("upharpoonleft", "↿"), ("upharpoonright", "↾"), ("uplus", "⊎"), ("upsi", "υ"), ("upsih", "ϒ"), ("upsilon", "υ"), ("upuparrows", "⇈"), ("urcorn", "⌝"), ("urcorner", "⌝"), ("urcrop", "⌎"), ("uring", "ů"), ("urtri", "◹"), ("uscr", "𝓊"), ("utdot", "⋰"), ("utilde", "ũ"), ("utri", "▵"), ("utrif", "▴"), ("uuarr", "⇈"), ("uuml", "ü"), ("uwangle", "⦧"), ("vArr", "⇕"), ("vBar", "⫨"), ("vBarv", "⫩"), ("vDash", "⊨"), ("vangrt", "⦜"), ("varepsilon", "ϵ"), ("varkappa", "ϰ"), ("varnothing", "∅"), ("varphi", "ϕ"), ("varpi", "ϖ"), ("varpropto", "∝"), ("varr", "↕"), ("varrho", "ϱ"), ("varsigma", "ς"), ("varsubsetneq", "⊊︀"), ("varsubsetneqq", "⫋︀"), ("varsupsetneq", "⊋︀"), ("varsupsetneqq", "⫌︀"), ("vartheta", "ϑ"), ("vartriangleleft", "⊲"), ("vartriangleright", "⊳"), ("vcy", "в"), ("vdash", "⊢"), ("vee", "∨"), ("veebar", "⊻"), ("veeeq", "≚"), ("vellip", "⋮"), ("verbar", "|"), ("vert", "|"), ("vfr", "𝔳"), ("vltri", "⊲"), ("vnsub", "⊂⃒"), ("vnsup", "⊃⃒"), ("vopf", "𝕧"), ("vprop", "∝"), ("vrtri", "⊳"), ("vscr", "𝓋"), ("vsubnE", "⫋︀"), ("vsubne", "⊊︀"), ("vsupnE", "⫌︀"), ("vsupne", "⊋︀"), ("vzigzag", "⦚"), ("wcirc", "ŵ"), ("wedbar", "⩟"), ("wedge", "∧"), ("wedgeq", "≙"), ("weierp", "℘"), ("wfr", "𝔴"), ("wopf", "𝕨"), ("wp", "℘"), ("wr", "≀"), ("wreath", "≀"), ("wscr", "𝓌"), ("xcap", "⋂"), ("xcirc", "◯"), ("xcup", "⋃"), ("xdtri", "▽"), ("xfr", "𝔵"), ("xhArr", "⟺"), ("xharr", "⟷"), ("xi", "ξ"), ("xlArr", "⟸"), ("xlarr", "⟵"), ("xmap", "⟼"), ("xnis", "⋻"), ("xodot", "⨀"), ("xopf", "𝕩"), ("xoplus", "⨁"), ("xotime", "⨂"), ("xrArr", "⟹"), ("xrarr", "⟶"), ("xscr", "𝓍"), ("xsqcup", "⨆"), ("xuplus", "⨄"), ("xutri", "△"), ("xvee", "⋁"), ("xwedge", "⋀"), ("yacute", "ý"), ("yacy", "я"), ("ycirc", "ŷ"), ("ycy", "ы"), ("yen", "¥"), ("yfr", "𝔶"), ("yicy", "ї"), ("yopf", "𝕪"), ("yscr", "𝓎"), ("yucy", "ю"), ("yuml", "ÿ"), ("zacute", "ź"), ("zcaron", "ž"), ("zcy", "з"), ("zdot", "ż"), ("zeetrf", "ℨ"), ("zeta", "ζ"), ("zfr", "𝔷"), ("zhcy", "ж"), ("zigrarr", "⇝"), ("zopf", "𝕫"), ("zscr", "𝓏"), ("zwj", ""), ("zwnj", ""),];
// Important: please touch the below lists as few times as possible to keep Git small.
/// List of names and values that form named character reference in HTML 4.////// This list is normally not used in markdown, but it is used in MDX, because/// in JSX attribute values, only the old HTML 4 character references are/// supported.////// This list is sensitive to casing.////// ## References////// * [*§ 1.5.2 HTML Character References* in `JSX`](https://facebook.github.io/jsx/#sec-HTMLCharacterReference)pub const CHARACTER_REFERENCES_HTML_4: [(&str, &str); 252] = [ ("AElig", "Æ"), ("Aacute", "Á"), ("Acirc", "Â"), ("Agrave", "À"), ("Alpha", "Α"), ("Aring", "Å"), ("Atilde", "Ã"), ("Auml", "Ä"), ("Beta", "Β"), ("Ccedil", "Ç"), ("Chi", "Χ"), ("Dagger", "‡"), ("Delta", "Δ"), ("ETH", "Ð"), ("Eacute", "É"), ("Ecirc", "Ê"), ("Egrave", "È"), ("Epsilon", "Ε"), ("Eta", "Η"), ("Euml", "Ë"), ("Gamma", "Γ"), ("Iacute", "Í"), ("Icirc", "Î"), ("Igrave", "Ì"), ("Iota", "Ι"), ("Iuml", "Ï"), ("Kappa", "Κ"), ("Lambda", "Λ"), ("Mu", "Μ"), ("Ntilde", "Ñ"), ("Nu", "Ν"), ("OElig", "Œ"), ("Oacute", "Ó"), ("Ocirc", "Ô"), ("Ograve", "Ò"), ("Omega", "Ω"), ("Omicron", "Ο"), ("Oslash", "Ø"), ("Otilde", "Õ"), ("Ouml", "Ö"), ("Phi", "Φ"), ("Pi", "Π"), ("Prime", "″"), ("Psi", "Ψ"), ("Rho", "Ρ"), ("Scaron", "Š"), ("Sigma", "Σ"), ("THORN", "Þ"), ("Tau", "Τ"), ("Theta", "Θ"), ("Uacute", "Ú"), ("Ucirc", "Û"), ("Ugrave", "Ù"), ("Upsilon", "Υ"), ("Uuml", "Ü"), ("Xi", "Ξ"), ("Yacute", "Ý"), ("Yuml", "Ÿ"), ("Zeta", "Ζ"), ("aacute", "á"), ("acirc", "â"), ("acute", "´"), ("aelig", "æ"), ("agrave", "à"), ("alefsym", "ℵ"), ("alpha", "α"), ("amp", "&"), ("and", "∧"), ("ang", "∠"), ("aring", "å"), ("asymp", "≈"), ("atilde", "ã"), ("auml", "ä"), ("bdquo", "„"), ("beta", "β"), ("brvbar", "¦"), ("bull", "•"), ("cap", "∩"), ("ccedil", "ç"), ("cedil", "¸"), ("cent", "¢"), ("chi", "χ"), ("circ", "ˆ"), ("clubs", "♣"), ("cong", "≅"), ("copy", "©"), ("crarr", "↵"), ("cup", "∪"), ("curren", "¤"), ("dArr", "⇓"), ("dagger", "†"), ("darr", "↓"), ("deg", "°"), ("delta", "δ"), ("diams", "♦"), ("divide", "÷"), ("eacute", "é"), ("ecirc", "ê"), ("egrave", "è"), ("empty", "∅"), ("emsp", " "), ("ensp", " "), ("epsilon", "ε"), ("equiv", "≡"), ("eta", "η"), ("eth", "ð"), ("euml", "ë"), ("euro", "€"), ("exist", "∃"), ("fnof", "ƒ"), ("forall", "∀"), ("frac12", "½"), ("frac14", "¼"), ("frac34", "¾"), ("frasl", "⁄"), ("gamma", "γ"), ("ge", "≥"), ("gt", ">"), ("hArr", "⇔"), ("harr", "↔"), ("hearts", "♥"), ("hellip", "…"), ("iacute", "í"), ("icirc", "î"), ("iexcl", "¡"), ("igrave", "ì"), ("image", "ℑ"), ("infin", "∞"), ("int", "∫"), ("iota", "ι"), ("iquest", "¿"), ("isin", "∈"), ("iuml", "ï"), ("kappa", "κ"), ("lArr", "⇐"), ("lambda", "λ"), ("lang", "〈"), ("laquo", "«"), ("larr", "←"), ("lceil", "⌈"), ("ldquo", "“"), ("le", "≤"), ("lfloor", "⌊"), ("lowast", "∗"), ("loz", "◊"), ("lrm", ""), ("lsaquo", "‹"), ("lsquo", "‘"), ("lt", "<"), ("macr", "¯"), ("mdash", "—"), ("micro", "µ"), ("middot", "·"), ("minus", "−"), ("mu", "μ"), ("nabla", "∇"), ("nbsp", " "), ("ndash", "–"), ("ne", "≠"), ("ni", "∋"), ("not", "¬"), ("notin", "∉"), ("nsub", "⊄"), ("ntilde", "ñ"), ("nu", "ν"), ("oacute", "ó"), ("ocirc", "ô"), ("oelig", "œ"), ("ograve", "ò"), ("oline", "‾"), ("omega", "ω"), ("omicron", "ο"), ("oplus", "⊕"), ("or", "∨"), ("ordf", "ª"), ("ordm", "º"), ("oslash", "ø"), ("otilde", "õ"), ("otimes", "⊗"), ("ouml", "ö"), ("para", "¶"), ("part", "∂"), ("permil", "‰"), ("perp", "⊥"), ("phi", "φ"), ("pi", "π"), ("piv", "ϖ"), ("plusmn", "±"), ("pound", "£"), ("prime", "′"), ("prod", "∏"), ("prop", "∝"), ("psi", "ψ"), ("quot", "\""), ("rArr", "⇒"), ("radic", "√"), ("rang", "〉"), ("raquo", "»"), ("rarr", "→"), ("rceil", "⌉"), ("rdquo", "”"), ("real", "ℜ"), ("reg", "®"), ("rfloor", "⌋"), ("rho", "ρ"), ("rlm", ""), ("rsaquo", "›"), ("rsquo", "’"), ("sbquo", "‚"), ("scaron", "š"), ("sdot", "⋅"), ("sect", "§"), ("shy", "\u{AD}"), ("sigma", "σ"), ("sigmaf", "ς"), ("sim", "∼"), ("spades", "♠"), ("sub", "⊂"), ("sube", "⊆"), ("sum", "∑"), ("sup", "⊃"), ("sup1", "¹"), ("sup2", "²"), ("sup3", "³"), ("supe", "⊇"), ("szlig", "ß"), ("tau", "τ"), ("there4", "∴"), ("theta", "θ"), ("thetasym", "ϑ"), ("thinsp", " "), ("thorn", "þ"), ("tilde", "˜"), ("times", "×"), ("trade", "™"), ("uArr", "⇑"), ("uacute", "ú"), ("uarr", "↑"), ("ucirc", "û"), ("ugrave", "ù"), ("uml", "¨"), ("upsih", "ϒ"), ("upsilon", "υ"), ("uuml", "ü"), ("weierp", "℘"), ("xi", "ξ"), ("yacute", "ý"), ("yen", "¥"), ("yuml", "ÿ"), ("zeta", "ζ"), ("zwj", ""), ("zwnj", ""),];
#[cfg(test)]mod tests { use super::*; use alloc::format;
#[test] fn constants() { assert_eq!( CHARACTER_REFERENCE_DECIMAL_SIZE_MAX, format!("{}", 0x0010_ffff).len(), "`CHARACTER_REFERENCE_DECIMAL_SIZE_MAX`" );
assert_eq!( CHARACTER_REFERENCE_HEXADECIMAL_SIZE_MAX, format!("{:x}", 0x0010_ffff).len(), "`CHARACTER_REFERENCE_HEXADECIMAL_SIZE_MAX`" );
assert_eq!( CHARACTER_REFERENCE_NAMED_SIZE_MAX, longest(&CHARACTER_REFERENCES.map(|d| d.0)).unwrap().len(), "`CHARACTER_REFERENCE_NAMED_SIZE_MAX`" );
assert_eq!( GFM_HTML_TAGFILTER_SIZE_MAX, longest(&GFM_HTML_TAGFILTER_NAMES).unwrap().len(), "`GFM_HTML_TAGFILTER_SIZE_MAX`" );
assert_eq!( HTML_RAW_SIZE_MAX, longest(&HTML_RAW_NAMES).unwrap().len(), "`HTML_RAW_SIZE_MAX`" ); }
fn longest<'a>(list: &[&'a str]) -> Option<&'a str> { let mut max = 0; let mut result = None; for name in list { let len = name.len(); if len > max { max = len; result = Some(*name); } }
result }}