compiler-dom.cjs.js 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var compilerCore = require('@vue/compiler-core');
  4. var shared = require('@vue/shared');
  5. const V_MODEL_RADIO = Symbol(`vModelRadio` );
  6. const V_MODEL_CHECKBOX = Symbol(`vModelCheckbox` );
  7. const V_MODEL_TEXT = Symbol(`vModelText` );
  8. const V_MODEL_SELECT = Symbol(`vModelSelect` );
  9. const V_MODEL_DYNAMIC = Symbol(`vModelDynamic` );
  10. const V_ON_WITH_MODIFIERS = Symbol(`vOnModifiersGuard` );
  11. const V_ON_WITH_KEYS = Symbol(`vOnKeysGuard` );
  12. const V_SHOW = Symbol(`vShow` );
  13. const TRANSITION = Symbol(`Transition` );
  14. const TRANSITION_GROUP = Symbol(`TransitionGroup` );
  15. compilerCore.registerRuntimeHelpers({
  16. [V_MODEL_RADIO]: `vModelRadio`,
  17. [V_MODEL_CHECKBOX]: `vModelCheckbox`,
  18. [V_MODEL_TEXT]: `vModelText`,
  19. [V_MODEL_SELECT]: `vModelSelect`,
  20. [V_MODEL_DYNAMIC]: `vModelDynamic`,
  21. [V_ON_WITH_MODIFIERS]: `withModifiers`,
  22. [V_ON_WITH_KEYS]: `withKeys`,
  23. [V_SHOW]: `vShow`,
  24. [TRANSITION]: `Transition`,
  25. [TRANSITION_GROUP]: `TransitionGroup`
  26. });
  27. var namedCharacterReferences = {
  28. GT: ">",
  29. gt: ">",
  30. LT: "<",
  31. lt: "<",
  32. "ac;": "∾",
  33. "af;": "⁡",
  34. AMP: "&",
  35. amp: "&",
  36. "ap;": "≈",
  37. "DD;": "ⅅ",
  38. "dd;": "ⅆ",
  39. deg: "°",
  40. "ee;": "ⅇ",
  41. "eg;": "⪚",
  42. "el;": "⪙",
  43. ETH: "Ð",
  44. eth: "ð",
  45. "gE;": "≧",
  46. "ge;": "≥",
  47. "Gg;": "⋙",
  48. "gg;": "≫",
  49. "gl;": "≷",
  50. "GT;": ">",
  51. "Gt;": "≫",
  52. "gt;": ">",
  53. "ic;": "⁣",
  54. "ii;": "ⅈ",
  55. "Im;": "ℑ",
  56. "in;": "∈",
  57. "it;": "⁢",
  58. "lE;": "≦",
  59. "le;": "≤",
  60. "lg;": "≶",
  61. "Ll;": "⋘",
  62. "ll;": "≪",
  63. "LT;": "<",
  64. "Lt;": "≪",
  65. "lt;": "<",
  66. "mp;": "∓",
  67. "Mu;": "Μ",
  68. "mu;": "μ",
  69. "ne;": "≠",
  70. "ni;": "∋",
  71. not: "¬",
  72. "Nu;": "Ν",
  73. "nu;": "ν",
  74. "Or;": "⩔",
  75. "or;": "∨",
  76. "oS;": "Ⓢ",
  77. "Pi;": "Π",
  78. "pi;": "π",
  79. "pm;": "±",
  80. "Pr;": "⪻",
  81. "pr;": "≺",
  82. "Re;": "ℜ",
  83. REG: "®",
  84. reg: "®",
  85. "rx;": "℞",
  86. "Sc;": "⪼",
  87. "sc;": "≻",
  88. shy: "­",
  89. uml: "¨",
  90. "wp;": "℘",
  91. "wr;": "≀",
  92. "Xi;": "Ξ",
  93. "xi;": "ξ",
  94. yen: "¥",
  95. "acd;": "∿",
  96. "acE;": "∾̳",
  97. "Acy;": "А",
  98. "acy;": "а",
  99. "Afr;": "𝔄",
  100. "afr;": "𝔞",
  101. "AMP;": "&",
  102. "amp;": "&",
  103. "And;": "⩓",
  104. "and;": "∧",
  105. "ang;": "∠",
  106. "apE;": "⩰",
  107. "ape;": "≊",
  108. "ast;": "*",
  109. Auml: "Ä",
  110. auml: "ä",
  111. "Bcy;": "Б",
  112. "bcy;": "б",
  113. "Bfr;": "𝔅",
  114. "bfr;": "𝔟",
  115. "bne;": "=⃥",
  116. "bot;": "⊥",
  117. "Cap;": "⋒",
  118. "cap;": "∩",
  119. cent: "¢",
  120. "Cfr;": "ℭ",
  121. "cfr;": "𝔠",
  122. "Chi;": "Χ",
  123. "chi;": "χ",
  124. "cir;": "○",
  125. COPY: "©",
  126. copy: "©",
  127. "Cup;": "⋓",
  128. "cup;": "∪",
  129. "Dcy;": "Д",
  130. "dcy;": "д",
  131. "deg;": "°",
  132. "Del;": "∇",
  133. "Dfr;": "𝔇",
  134. "dfr;": "𝔡",
  135. "die;": "¨",
  136. "div;": "÷",
  137. "Dot;": "¨",
  138. "dot;": "˙",
  139. "Ecy;": "Э",
  140. "ecy;": "э",
  141. "Efr;": "𝔈",
  142. "efr;": "𝔢",
  143. "egs;": "⪖",
  144. "ell;": "ℓ",
  145. "els;": "⪕",
  146. "ENG;": "Ŋ",
  147. "eng;": "ŋ",
  148. "Eta;": "Η",
  149. "eta;": "η",
  150. "ETH;": "Ð",
  151. "eth;": "ð",
  152. Euml: "Ë",
  153. euml: "ë",
  154. "Fcy;": "Ф",
  155. "fcy;": "ф",
  156. "Ffr;": "𝔉",
  157. "ffr;": "𝔣",
  158. "gap;": "⪆",
  159. "Gcy;": "Г",
  160. "gcy;": "г",
  161. "gEl;": "⪌",
  162. "gel;": "⋛",
  163. "geq;": "≥",
  164. "ges;": "⩾",
  165. "Gfr;": "𝔊",
  166. "gfr;": "𝔤",
  167. "ggg;": "⋙",
  168. "gla;": "⪥",
  169. "glE;": "⪒",
  170. "glj;": "⪤",
  171. "gnE;": "≩",
  172. "gne;": "⪈",
  173. "Hat;": "^",
  174. "Hfr;": "ℌ",
  175. "hfr;": "𝔥",
  176. "Icy;": "И",
  177. "icy;": "и",
  178. "iff;": "⇔",
  179. "Ifr;": "ℑ",
  180. "ifr;": "𝔦",
  181. "Int;": "∬",
  182. "int;": "∫",
  183. Iuml: "Ï",
  184. iuml: "ï",
  185. "Jcy;": "Й",
  186. "jcy;": "й",
  187. "Jfr;": "𝔍",
  188. "jfr;": "𝔧",
  189. "Kcy;": "К",
  190. "kcy;": "к",
  191. "Kfr;": "𝔎",
  192. "kfr;": "𝔨",
  193. "lap;": "⪅",
  194. "lat;": "⪫",
  195. "Lcy;": "Л",
  196. "lcy;": "л",
  197. "lEg;": "⪋",
  198. "leg;": "⋚",
  199. "leq;": "≤",
  200. "les;": "⩽",
  201. "Lfr;": "𝔏",
  202. "lfr;": "𝔩",
  203. "lgE;": "⪑",
  204. "lnE;": "≨",
  205. "lne;": "⪇",
  206. "loz;": "◊",
  207. "lrm;": "‎",
  208. "Lsh;": "↰",
  209. "lsh;": "↰",
  210. macr: "¯",
  211. "Map;": "⤅",
  212. "map;": "↦",
  213. "Mcy;": "М",
  214. "mcy;": "м",
  215. "Mfr;": "𝔐",
  216. "mfr;": "𝔪",
  217. "mho;": "℧",
  218. "mid;": "∣",
  219. "nap;": "≉",
  220. nbsp: " ",
  221. "Ncy;": "Н",
  222. "ncy;": "н",
  223. "Nfr;": "𝔑",
  224. "nfr;": "𝔫",
  225. "ngE;": "≧̸",
  226. "nge;": "≱",
  227. "nGg;": "⋙̸",
  228. "nGt;": "≫⃒",
  229. "ngt;": "≯",
  230. "nis;": "⋼",
  231. "niv;": "∋",
  232. "nlE;": "≦̸",
  233. "nle;": "≰",
  234. "nLl;": "⋘̸",
  235. "nLt;": "≪⃒",
  236. "nlt;": "≮",
  237. "Not;": "⫬",
  238. "not;": "¬",
  239. "npr;": "⊀",
  240. "nsc;": "⊁",
  241. "num;": "#",
  242. "Ocy;": "О",
  243. "ocy;": "о",
  244. "Ofr;": "𝔒",
  245. "ofr;": "𝔬",
  246. "ogt;": "⧁",
  247. "ohm;": "Ω",
  248. "olt;": "⧀",
  249. "ord;": "⩝",
  250. ordf: "ª",
  251. ordm: "º",
  252. "orv;": "⩛",
  253. Ouml: "Ö",
  254. ouml: "ö",
  255. "par;": "∥",
  256. para: "¶",
  257. "Pcy;": "П",
  258. "pcy;": "п",
  259. "Pfr;": "𝔓",
  260. "pfr;": "𝔭",
  261. "Phi;": "Φ",
  262. "phi;": "φ",
  263. "piv;": "ϖ",
  264. "prE;": "⪳",
  265. "pre;": "⪯",
  266. "Psi;": "Ψ",
  267. "psi;": "ψ",
  268. "Qfr;": "𝔔",
  269. "qfr;": "𝔮",
  270. QUOT: "\"",
  271. quot: "\"",
  272. "Rcy;": "Р",
  273. "rcy;": "р",
  274. "REG;": "®",
  275. "reg;": "®",
  276. "Rfr;": "ℜ",
  277. "rfr;": "𝔯",
  278. "Rho;": "Ρ",
  279. "rho;": "ρ",
  280. "rlm;": "‏",
  281. "Rsh;": "↱",
  282. "rsh;": "↱",
  283. "scE;": "⪴",
  284. "sce;": "⪰",
  285. "Scy;": "С",
  286. "scy;": "с",
  287. sect: "§",
  288. "Sfr;": "𝔖",
  289. "sfr;": "𝔰",
  290. "shy;": "­",
  291. "sim;": "∼",
  292. "smt;": "⪪",
  293. "sol;": "/",
  294. "squ;": "□",
  295. "Sub;": "⋐",
  296. "sub;": "⊂",
  297. "Sum;": "∑",
  298. "sum;": "∑",
  299. "Sup;": "⋑",
  300. "sup;": "⊃",
  301. sup1: "¹",
  302. sup2: "²",
  303. sup3: "³",
  304. "Tab;": "\t",
  305. "Tau;": "Τ",
  306. "tau;": "τ",
  307. "Tcy;": "Т",
  308. "tcy;": "т",
  309. "Tfr;": "𝔗",
  310. "tfr;": "𝔱",
  311. "top;": "⊤",
  312. "Ucy;": "У",
  313. "ucy;": "у",
  314. "Ufr;": "𝔘",
  315. "ufr;": "𝔲",
  316. "uml;": "¨",
  317. Uuml: "Ü",
  318. uuml: "ü",
  319. "Vcy;": "В",
  320. "vcy;": "в",
  321. "Vee;": "⋁",
  322. "vee;": "∨",
  323. "Vfr;": "𝔙",
  324. "vfr;": "𝔳",
  325. "Wfr;": "𝔚",
  326. "wfr;": "𝔴",
  327. "Xfr;": "𝔛",
  328. "xfr;": "𝔵",
  329. "Ycy;": "Ы",
  330. "ycy;": "ы",
  331. "yen;": "¥",
  332. "Yfr;": "𝔜",
  333. "yfr;": "𝔶",
  334. yuml: "ÿ",
  335. "Zcy;": "З",
  336. "zcy;": "з",
  337. "Zfr;": "ℨ",
  338. "zfr;": "𝔷",
  339. "zwj;": "‍",
  340. Acirc: "Â",
  341. acirc: "â",
  342. acute: "´",
  343. AElig: "Æ",
  344. aelig: "æ",
  345. "andd;": "⩜",
  346. "andv;": "⩚",
  347. "ange;": "⦤",
  348. "Aopf;": "𝔸",
  349. "aopf;": "𝕒",
  350. "apid;": "≋",
  351. "apos;": "'",
  352. Aring: "Å",
  353. aring: "å",
  354. "Ascr;": "𝒜",
  355. "ascr;": "𝒶",
  356. "Auml;": "Ä",
  357. "auml;": "ä",
  358. "Barv;": "⫧",
  359. "bbrk;": "⎵",
  360. "Beta;": "Β",
  361. "beta;": "β",
  362. "beth;": "ℶ",
  363. "bNot;": "⫭",
  364. "bnot;": "⌐",
  365. "Bopf;": "𝔹",
  366. "bopf;": "𝕓",
  367. "boxH;": "═",
  368. "boxh;": "─",
  369. "boxV;": "║",
  370. "boxv;": "│",
  371. "Bscr;": "ℬ",
  372. "bscr;": "𝒷",
  373. "bsim;": "∽",
  374. "bsol;": "\\",
  375. "bull;": "•",
  376. "bump;": "≎",
  377. "caps;": "∩︀",
  378. "Cdot;": "Ċ",
  379. "cdot;": "ċ",
  380. cedil: "¸",
  381. "cent;": "¢",
  382. "CHcy;": "Ч",
  383. "chcy;": "ч",
  384. "circ;": "ˆ",
  385. "cirE;": "⧃",
  386. "cire;": "≗",
  387. "comp;": "∁",
  388. "cong;": "≅",
  389. "Copf;": "ℂ",
  390. "copf;": "𝕔",
  391. "COPY;": "©",
  392. "copy;": "©",
  393. "Cscr;": "𝒞",
  394. "cscr;": "𝒸",
  395. "csub;": "⫏",
  396. "csup;": "⫐",
  397. "cups;": "∪︀",
  398. "Darr;": "↡",
  399. "dArr;": "⇓",
  400. "darr;": "↓",
  401. "dash;": "‐",
  402. "dHar;": "⥥",
  403. "diam;": "⋄",
  404. "DJcy;": "Ђ",
  405. "djcy;": "ђ",
  406. "Dopf;": "𝔻",
  407. "dopf;": "𝕕",
  408. "Dscr;": "𝒟",
  409. "dscr;": "𝒹",
  410. "DScy;": "Ѕ",
  411. "dscy;": "ѕ",
  412. "dsol;": "⧶",
  413. "dtri;": "▿",
  414. "DZcy;": "Џ",
  415. "dzcy;": "џ",
  416. "ecir;": "≖",
  417. Ecirc: "Ê",
  418. ecirc: "ê",
  419. "Edot;": "Ė",
  420. "eDot;": "≑",
  421. "edot;": "ė",
  422. "emsp;": " ",
  423. "ensp;": " ",
  424. "Eopf;": "𝔼",
  425. "eopf;": "𝕖",
  426. "epar;": "⋕",
  427. "epsi;": "ε",
  428. "Escr;": "ℰ",
  429. "escr;": "ℯ",
  430. "Esim;": "⩳",
  431. "esim;": "≂",
  432. "Euml;": "Ë",
  433. "euml;": "ë",
  434. "euro;": "€",
  435. "excl;": "!",
  436. "flat;": "♭",
  437. "fnof;": "ƒ",
  438. "Fopf;": "𝔽",
  439. "fopf;": "𝕗",
  440. "fork;": "⋔",
  441. "Fscr;": "ℱ",
  442. "fscr;": "𝒻",
  443. "Gdot;": "Ġ",
  444. "gdot;": "ġ",
  445. "geqq;": "≧",
  446. "gesl;": "⋛︀",
  447. "GJcy;": "Ѓ",
  448. "gjcy;": "ѓ",
  449. "gnap;": "⪊",
  450. "gneq;": "⪈",
  451. "Gopf;": "𝔾",
  452. "gopf;": "𝕘",
  453. "Gscr;": "𝒢",
  454. "gscr;": "ℊ",
  455. "gsim;": "≳",
  456. "gtcc;": "⪧",
  457. "gvnE;": "≩︀",
  458. "half;": "½",
  459. "hArr;": "⇔",
  460. "harr;": "↔",
  461. "hbar;": "ℏ",
  462. "Hopf;": "ℍ",
  463. "hopf;": "𝕙",
  464. "Hscr;": "ℋ",
  465. "hscr;": "𝒽",
  466. Icirc: "Î",
  467. icirc: "î",
  468. "Idot;": "İ",
  469. "IEcy;": "Е",
  470. "iecy;": "е",
  471. iexcl: "¡",
  472. "imof;": "⊷",
  473. "IOcy;": "Ё",
  474. "iocy;": "ё",
  475. "Iopf;": "𝕀",
  476. "iopf;": "𝕚",
  477. "Iota;": "Ι",
  478. "iota;": "ι",
  479. "Iscr;": "ℐ",
  480. "iscr;": "𝒾",
  481. "isin;": "∈",
  482. "Iuml;": "Ï",
  483. "iuml;": "ï",
  484. "Jopf;": "𝕁",
  485. "jopf;": "𝕛",
  486. "Jscr;": "𝒥",
  487. "jscr;": "𝒿",
  488. "KHcy;": "Х",
  489. "khcy;": "х",
  490. "KJcy;": "Ќ",
  491. "kjcy;": "ќ",
  492. "Kopf;": "𝕂",
  493. "kopf;": "𝕜",
  494. "Kscr;": "𝒦",
  495. "kscr;": "𝓀",
  496. "Lang;": "⟪",
  497. "lang;": "⟨",
  498. laquo: "«",
  499. "Larr;": "↞",
  500. "lArr;": "⇐",
  501. "larr;": "←",
  502. "late;": "⪭",
  503. "lcub;": "{",
  504. "ldca;": "⤶",
  505. "ldsh;": "↲",
  506. "leqq;": "≦",
  507. "lesg;": "⋚︀",
  508. "lHar;": "⥢",
  509. "LJcy;": "Љ",
  510. "ljcy;": "љ",
  511. "lnap;": "⪉",
  512. "lneq;": "⪇",
  513. "Lopf;": "𝕃",
  514. "lopf;": "𝕝",
  515. "lozf;": "⧫",
  516. "lpar;": "(",
  517. "Lscr;": "ℒ",
  518. "lscr;": "𝓁",
  519. "lsim;": "≲",
  520. "lsqb;": "[",
  521. "ltcc;": "⪦",
  522. "ltri;": "◃",
  523. "lvnE;": "≨︀",
  524. "macr;": "¯",
  525. "male;": "♂",
  526. "malt;": "✠",
  527. micro: "µ",
  528. "mlcp;": "⫛",
  529. "mldr;": "…",
  530. "Mopf;": "𝕄",
  531. "mopf;": "𝕞",
  532. "Mscr;": "ℳ",
  533. "mscr;": "𝓂",
  534. "nang;": "∠⃒",
  535. "napE;": "⩰̸",
  536. "nbsp;": " ",
  537. "ncap;": "⩃",
  538. "ncup;": "⩂",
  539. "ngeq;": "≱",
  540. "nges;": "⩾̸",
  541. "ngtr;": "≯",
  542. "nGtv;": "≫̸",
  543. "nisd;": "⋺",
  544. "NJcy;": "Њ",
  545. "njcy;": "њ",
  546. "nldr;": "‥",
  547. "nleq;": "≰",
  548. "nles;": "⩽̸",
  549. "nLtv;": "≪̸",
  550. "nmid;": "∤",
  551. "Nopf;": "ℕ",
  552. "nopf;": "𝕟",
  553. "npar;": "∦",
  554. "npre;": "⪯̸",
  555. "nsce;": "⪰̸",
  556. "Nscr;": "𝒩",
  557. "nscr;": "𝓃",
  558. "nsim;": "≁",
  559. "nsub;": "⊄",
  560. "nsup;": "⊅",
  561. "ntgl;": "≹",
  562. "ntlg;": "≸",
  563. "nvap;": "≍⃒",
  564. "nvge;": "≥⃒",
  565. "nvgt;": ">⃒",
  566. "nvle;": "≤⃒",
  567. "nvlt;": "<⃒",
  568. "oast;": "⊛",
  569. "ocir;": "⊚",
  570. Ocirc: "Ô",
  571. ocirc: "ô",
  572. "odiv;": "⨸",
  573. "odot;": "⊙",
  574. "ogon;": "˛",
  575. "oint;": "∮",
  576. "omid;": "⦶",
  577. "Oopf;": "𝕆",
  578. "oopf;": "𝕠",
  579. "opar;": "⦷",
  580. "ordf;": "ª",
  581. "ordm;": "º",
  582. "oror;": "⩖",
  583. "Oscr;": "𝒪",
  584. "oscr;": "ℴ",
  585. "osol;": "⊘",
  586. "Ouml;": "Ö",
  587. "ouml;": "ö",
  588. "para;": "¶",
  589. "part;": "∂",
  590. "perp;": "⊥",
  591. "phiv;": "ϕ",
  592. "plus;": "+",
  593. "Popf;": "ℙ",
  594. "popf;": "𝕡",
  595. pound: "£",
  596. "prap;": "⪷",
  597. "prec;": "≺",
  598. "prnE;": "⪵",
  599. "prod;": "∏",
  600. "prop;": "∝",
  601. "Pscr;": "𝒫",
  602. "pscr;": "𝓅",
  603. "qint;": "⨌",
  604. "Qopf;": "ℚ",
  605. "qopf;": "𝕢",
  606. "Qscr;": "𝒬",
  607. "qscr;": "𝓆",
  608. "QUOT;": "\"",
  609. "quot;": "\"",
  610. "race;": "∽̱",
  611. "Rang;": "⟫",
  612. "rang;": "⟩",
  613. raquo: "»",
  614. "Rarr;": "↠",
  615. "rArr;": "⇒",
  616. "rarr;": "→",
  617. "rcub;": "}",
  618. "rdca;": "⤷",
  619. "rdsh;": "↳",
  620. "real;": "ℜ",
  621. "rect;": "▭",
  622. "rHar;": "⥤",
  623. "rhov;": "ϱ",
  624. "ring;": "˚",
  625. "Ropf;": "ℝ",
  626. "ropf;": "𝕣",
  627. "rpar;": ")",
  628. "Rscr;": "ℛ",
  629. "rscr;": "𝓇",
  630. "rsqb;": "]",
  631. "rtri;": "▹",
  632. "scap;": "⪸",
  633. "scnE;": "⪶",
  634. "sdot;": "⋅",
  635. "sect;": "§",
  636. "semi;": ";",
  637. "sext;": "✶",
  638. "SHcy;": "Ш",
  639. "shcy;": "ш",
  640. "sime;": "≃",
  641. "simg;": "⪞",
  642. "siml;": "⪝",
  643. "smid;": "∣",
  644. "smte;": "⪬",
  645. "solb;": "⧄",
  646. "Sopf;": "𝕊",
  647. "sopf;": "𝕤",
  648. "spar;": "∥",
  649. "Sqrt;": "√",
  650. "squf;": "▪",
  651. "Sscr;": "𝒮",
  652. "sscr;": "𝓈",
  653. "Star;": "⋆",
  654. "star;": "☆",
  655. "subE;": "⫅",
  656. "sube;": "⊆",
  657. "succ;": "≻",
  658. "sung;": "♪",
  659. "sup1;": "¹",
  660. "sup2;": "²",
  661. "sup3;": "³",
  662. "supE;": "⫆",
  663. "supe;": "⊇",
  664. szlig: "ß",
  665. "tbrk;": "⎴",
  666. "tdot;": "⃛",
  667. THORN: "Þ",
  668. thorn: "þ",
  669. times: "×",
  670. "tint;": "∭",
  671. "toea;": "⤨",
  672. "Topf;": "𝕋",
  673. "topf;": "𝕥",
  674. "tosa;": "⤩",
  675. "trie;": "≜",
  676. "Tscr;": "𝒯",
  677. "tscr;": "𝓉",
  678. "TScy;": "Ц",
  679. "tscy;": "ц",
  680. "Uarr;": "↟",
  681. "uArr;": "⇑",
  682. "uarr;": "↑",
  683. Ucirc: "Û",
  684. ucirc: "û",
  685. "uHar;": "⥣",
  686. "Uopf;": "𝕌",
  687. "uopf;": "𝕦",
  688. "Upsi;": "ϒ",
  689. "upsi;": "υ",
  690. "Uscr;": "𝒰",
  691. "uscr;": "𝓊",
  692. "utri;": "▵",
  693. "Uuml;": "Ü",
  694. "uuml;": "ü",
  695. "vArr;": "⇕",
  696. "varr;": "↕",
  697. "Vbar;": "⫫",
  698. "vBar;": "⫨",
  699. "Vert;": "‖",
  700. "vert;": "|",
  701. "Vopf;": "𝕍",
  702. "vopf;": "𝕧",
  703. "Vscr;": "𝒱",
  704. "vscr;": "𝓋",
  705. "Wopf;": "𝕎",
  706. "wopf;": "𝕨",
  707. "Wscr;": "𝒲",
  708. "wscr;": "𝓌",
  709. "xcap;": "⋂",
  710. "xcup;": "⋃",
  711. "xmap;": "⟼",
  712. "xnis;": "⋻",
  713. "Xopf;": "𝕏",
  714. "xopf;": "𝕩",
  715. "Xscr;": "𝒳",
  716. "xscr;": "𝓍",
  717. "xvee;": "⋁",
  718. "YAcy;": "Я",
  719. "yacy;": "я",
  720. "YIcy;": "Ї",
  721. "yicy;": "ї",
  722. "Yopf;": "𝕐",
  723. "yopf;": "𝕪",
  724. "Yscr;": "𝒴",
  725. "yscr;": "𝓎",
  726. "YUcy;": "Ю",
  727. "yucy;": "ю",
  728. "Yuml;": "Ÿ",
  729. "yuml;": "ÿ",
  730. "Zdot;": "Ż",
  731. "zdot;": "ż",
  732. "Zeta;": "Ζ",
  733. "zeta;": "ζ",
  734. "ZHcy;": "Ж",
  735. "zhcy;": "ж",
  736. "Zopf;": "ℤ",
  737. "zopf;": "𝕫",
  738. "Zscr;": "𝒵",
  739. "zscr;": "𝓏",
  740. "zwnj;": "‌",
  741. Aacute: "Á",
  742. aacute: "á",
  743. "Acirc;": "Â",
  744. "acirc;": "â",
  745. "acute;": "´",
  746. "AElig;": "Æ",
  747. "aelig;": "æ",
  748. Agrave: "À",
  749. agrave: "à",
  750. "aleph;": "ℵ",
  751. "Alpha;": "Α",
  752. "alpha;": "α",
  753. "Amacr;": "Ā",
  754. "amacr;": "ā",
  755. "amalg;": "⨿",
  756. "angle;": "∠",
  757. "angrt;": "∟",
  758. "angst;": "Å",
  759. "Aogon;": "Ą",
  760. "aogon;": "ą",
  761. "Aring;": "Å",
  762. "aring;": "å",
  763. "asymp;": "≈",
  764. Atilde: "Ã",
  765. atilde: "ã",
  766. "awint;": "⨑",
  767. "bcong;": "≌",
  768. "bdquo;": "„",
  769. "bepsi;": "϶",
  770. "blank;": "␣",
  771. "blk12;": "▒",
  772. "blk14;": "░",
  773. "blk34;": "▓",
  774. "block;": "█",
  775. "boxDL;": "╗",
  776. "boxDl;": "╖",
  777. "boxdL;": "╕",
  778. "boxdl;": "┐",
  779. "boxDR;": "╔",
  780. "boxDr;": "╓",
  781. "boxdR;": "╒",
  782. "boxdr;": "┌",
  783. "boxHD;": "╦",
  784. "boxHd;": "╤",
  785. "boxhD;": "╥",
  786. "boxhd;": "┬",
  787. "boxHU;": "╩",
  788. "boxHu;": "╧",
  789. "boxhU;": "╨",
  790. "boxhu;": "┴",
  791. "boxUL;": "╝",
  792. "boxUl;": "╜",
  793. "boxuL;": "╛",
  794. "boxul;": "┘",
  795. "boxUR;": "╚",
  796. "boxUr;": "╙",
  797. "boxuR;": "╘",
  798. "boxur;": "└",
  799. "boxVH;": "╬",
  800. "boxVh;": "╫",
  801. "boxvH;": "╪",
  802. "boxvh;": "┼",
  803. "boxVL;": "╣",
  804. "boxVl;": "╢",
  805. "boxvL;": "╡",
  806. "boxvl;": "┤",
  807. "boxVR;": "╠",
  808. "boxVr;": "╟",
  809. "boxvR;": "╞",
  810. "boxvr;": "├",
  811. "Breve;": "˘",
  812. "breve;": "˘",
  813. brvbar: "¦",
  814. "bsemi;": "⁏",
  815. "bsime;": "⋍",
  816. "bsolb;": "⧅",
  817. "bumpE;": "⪮",
  818. "bumpe;": "≏",
  819. "caret;": "⁁",
  820. "caron;": "ˇ",
  821. "ccaps;": "⩍",
  822. Ccedil: "Ç",
  823. ccedil: "ç",
  824. "Ccirc;": "Ĉ",
  825. "ccirc;": "ĉ",
  826. "ccups;": "⩌",
  827. "cedil;": "¸",
  828. "check;": "✓",
  829. "clubs;": "♣",
  830. "Colon;": "∷",
  831. "colon;": ":",
  832. "comma;": ",",
  833. "crarr;": "↵",
  834. "Cross;": "⨯",
  835. "cross;": "✗",
  836. "csube;": "⫑",
  837. "csupe;": "⫒",
  838. "ctdot;": "⋯",
  839. "cuepr;": "⋞",
  840. "cuesc;": "⋟",
  841. "cupor;": "⩅",
  842. curren: "¤",
  843. "cuvee;": "⋎",
  844. "cuwed;": "⋏",
  845. "cwint;": "∱",
  846. "Dashv;": "⫤",
  847. "dashv;": "⊣",
  848. "dblac;": "˝",
  849. "ddarr;": "⇊",
  850. "Delta;": "Δ",
  851. "delta;": "δ",
  852. "dharl;": "⇃",
  853. "dharr;": "⇂",
  854. "diams;": "♦",
  855. "disin;": "⋲",
  856. divide: "÷",
  857. "doteq;": "≐",
  858. "dtdot;": "⋱",
  859. "dtrif;": "▾",
  860. "duarr;": "⇵",
  861. "duhar;": "⥯",
  862. Eacute: "É",
  863. eacute: "é",
  864. "Ecirc;": "Ê",
  865. "ecirc;": "ê",
  866. "eDDot;": "⩷",
  867. "efDot;": "≒",
  868. Egrave: "È",
  869. egrave: "è",
  870. "Emacr;": "Ē",
  871. "emacr;": "ē",
  872. "empty;": "∅",
  873. "Eogon;": "Ę",
  874. "eogon;": "ę",
  875. "eplus;": "⩱",
  876. "epsiv;": "ϵ",
  877. "eqsim;": "≂",
  878. "Equal;": "⩵",
  879. "equiv;": "≡",
  880. "erarr;": "⥱",
  881. "erDot;": "≓",
  882. "esdot;": "≐",
  883. "exist;": "∃",
  884. "fflig;": "ff",
  885. "filig;": "fi",
  886. "fjlig;": "fj",
  887. "fllig;": "fl",
  888. "fltns;": "▱",
  889. "forkv;": "⫙",
  890. frac12: "½",
  891. frac14: "¼",
  892. frac34: "¾",
  893. "frasl;": "⁄",
  894. "frown;": "⌢",
  895. "Gamma;": "Γ",
  896. "gamma;": "γ",
  897. "Gcirc;": "Ĝ",
  898. "gcirc;": "ĝ",
  899. "gescc;": "⪩",
  900. "gimel;": "ℷ",
  901. "gneqq;": "≩",
  902. "gnsim;": "⋧",
  903. "grave;": "`",
  904. "gsime;": "⪎",
  905. "gsiml;": "⪐",
  906. "gtcir;": "⩺",
  907. "gtdot;": "⋗",
  908. "Hacek;": "ˇ",
  909. "harrw;": "↭",
  910. "Hcirc;": "Ĥ",
  911. "hcirc;": "ĥ",
  912. "hoarr;": "⇿",
  913. Iacute: "Í",
  914. iacute: "í",
  915. "Icirc;": "Î",
  916. "icirc;": "î",
  917. "iexcl;": "¡",
  918. Igrave: "Ì",
  919. igrave: "ì",
  920. "iiint;": "∭",
  921. "iiota;": "℩",
  922. "IJlig;": "IJ",
  923. "ijlig;": "ij",
  924. "Imacr;": "Ī",
  925. "imacr;": "ī",
  926. "image;": "ℑ",
  927. "imath;": "ı",
  928. "imped;": "Ƶ",
  929. "infin;": "∞",
  930. "Iogon;": "Į",
  931. "iogon;": "į",
  932. "iprod;": "⨼",
  933. iquest: "¿",
  934. "isinE;": "⋹",
  935. "isins;": "⋴",
  936. "isinv;": "∈",
  937. "Iukcy;": "І",
  938. "iukcy;": "і",
  939. "Jcirc;": "Ĵ",
  940. "jcirc;": "ĵ",
  941. "jmath;": "ȷ",
  942. "Jukcy;": "Є",
  943. "jukcy;": "є",
  944. "Kappa;": "Κ",
  945. "kappa;": "κ",
  946. "lAarr;": "⇚",
  947. "langd;": "⦑",
  948. "laquo;": "«",
  949. "larrb;": "⇤",
  950. "lates;": "⪭︀",
  951. "lBarr;": "⤎",
  952. "lbarr;": "⤌",
  953. "lbbrk;": "❲",
  954. "lbrke;": "⦋",
  955. "lceil;": "⌈",
  956. "ldquo;": "“",
  957. "lescc;": "⪨",
  958. "lhard;": "↽",
  959. "lharu;": "↼",
  960. "lhblk;": "▄",
  961. "llarr;": "⇇",
  962. "lltri;": "◺",
  963. "lneqq;": "≨",
  964. "lnsim;": "⋦",
  965. "loang;": "⟬",
  966. "loarr;": "⇽",
  967. "lobrk;": "⟦",
  968. "lopar;": "⦅",
  969. "lrarr;": "⇆",
  970. "lrhar;": "⇋",
  971. "lrtri;": "⊿",
  972. "lsime;": "⪍",
  973. "lsimg;": "⪏",
  974. "lsquo;": "‘",
  975. "ltcir;": "⩹",
  976. "ltdot;": "⋖",
  977. "ltrie;": "⊴",
  978. "ltrif;": "◂",
  979. "mdash;": "—",
  980. "mDDot;": "∺",
  981. "micro;": "µ",
  982. middot: "·",
  983. "minus;": "−",
  984. "mumap;": "⊸",
  985. "nabla;": "∇",
  986. "napid;": "≋̸",
  987. "napos;": "ʼn",
  988. "natur;": "♮",
  989. "nbump;": "≎̸",
  990. "ncong;": "≇",
  991. "ndash;": "–",
  992. "neArr;": "⇗",
  993. "nearr;": "↗",
  994. "nedot;": "≐̸",
  995. "nesim;": "≂̸",
  996. "ngeqq;": "≧̸",
  997. "ngsim;": "≵",
  998. "nhArr;": "⇎",
  999. "nharr;": "↮",
  1000. "nhpar;": "⫲",
  1001. "nlArr;": "⇍",
  1002. "nlarr;": "↚",
  1003. "nleqq;": "≦̸",
  1004. "nless;": "≮",
  1005. "nlsim;": "≴",
  1006. "nltri;": "⋪",
  1007. "notin;": "∉",
  1008. "notni;": "∌",
  1009. "npart;": "∂̸",
  1010. "nprec;": "⊀",
  1011. "nrArr;": "⇏",
  1012. "nrarr;": "↛",
  1013. "nrtri;": "⋫",
  1014. "nsime;": "≄",
  1015. "nsmid;": "∤",
  1016. "nspar;": "∦",
  1017. "nsubE;": "⫅̸",
  1018. "nsube;": "⊈",
  1019. "nsucc;": "⊁",
  1020. "nsupE;": "⫆̸",
  1021. "nsupe;": "⊉",
  1022. Ntilde: "Ñ",
  1023. ntilde: "ñ",
  1024. "numsp;": " ",
  1025. "nvsim;": "∼⃒",
  1026. "nwArr;": "⇖",
  1027. "nwarr;": "↖",
  1028. Oacute: "Ó",
  1029. oacute: "ó",
  1030. "Ocirc;": "Ô",
  1031. "ocirc;": "ô",
  1032. "odash;": "⊝",
  1033. "OElig;": "Œ",
  1034. "oelig;": "œ",
  1035. "ofcir;": "⦿",
  1036. Ograve: "Ò",
  1037. ograve: "ò",
  1038. "ohbar;": "⦵",
  1039. "olarr;": "↺",
  1040. "olcir;": "⦾",
  1041. "oline;": "‾",
  1042. "Omacr;": "Ō",
  1043. "omacr;": "ō",
  1044. "Omega;": "Ω",
  1045. "omega;": "ω",
  1046. "operp;": "⦹",
  1047. "oplus;": "⊕",
  1048. "orarr;": "↻",
  1049. "order;": "ℴ",
  1050. Oslash: "Ø",
  1051. oslash: "ø",
  1052. Otilde: "Õ",
  1053. otilde: "õ",
  1054. "ovbar;": "⌽",
  1055. "parsl;": "⫽",
  1056. "phone;": "☎",
  1057. "plusb;": "⊞",
  1058. "pluse;": "⩲",
  1059. plusmn: "±",
  1060. "pound;": "£",
  1061. "prcue;": "≼",
  1062. "Prime;": "″",
  1063. "prime;": "′",
  1064. "prnap;": "⪹",
  1065. "prsim;": "≾",
  1066. "quest;": "?",
  1067. "rAarr;": "⇛",
  1068. "radic;": "√",
  1069. "rangd;": "⦒",
  1070. "range;": "⦥",
  1071. "raquo;": "»",
  1072. "rarrb;": "⇥",
  1073. "rarrc;": "⤳",
  1074. "rarrw;": "↝",
  1075. "ratio;": "∶",
  1076. "RBarr;": "⤐",
  1077. "rBarr;": "⤏",
  1078. "rbarr;": "⤍",
  1079. "rbbrk;": "❳",
  1080. "rbrke;": "⦌",
  1081. "rceil;": "⌉",
  1082. "rdquo;": "”",
  1083. "reals;": "ℝ",
  1084. "rhard;": "⇁",
  1085. "rharu;": "⇀",
  1086. "rlarr;": "⇄",
  1087. "rlhar;": "⇌",
  1088. "rnmid;": "⫮",
  1089. "roang;": "⟭",
  1090. "roarr;": "⇾",
  1091. "robrk;": "⟧",
  1092. "ropar;": "⦆",
  1093. "rrarr;": "⇉",
  1094. "rsquo;": "’",
  1095. "rtrie;": "⊵",
  1096. "rtrif;": "▸",
  1097. "sbquo;": "‚",
  1098. "sccue;": "≽",
  1099. "Scirc;": "Ŝ",
  1100. "scirc;": "ŝ",
  1101. "scnap;": "⪺",
  1102. "scsim;": "≿",
  1103. "sdotb;": "⊡",
  1104. "sdote;": "⩦",
  1105. "seArr;": "⇘",
  1106. "searr;": "↘",
  1107. "setmn;": "∖",
  1108. "sharp;": "♯",
  1109. "Sigma;": "Σ",
  1110. "sigma;": "σ",
  1111. "simeq;": "≃",
  1112. "simgE;": "⪠",
  1113. "simlE;": "⪟",
  1114. "simne;": "≆",
  1115. "slarr;": "←",
  1116. "smile;": "⌣",
  1117. "smtes;": "⪬︀",
  1118. "sqcap;": "⊓",
  1119. "sqcup;": "⊔",
  1120. "sqsub;": "⊏",
  1121. "sqsup;": "⊐",
  1122. "srarr;": "→",
  1123. "starf;": "★",
  1124. "strns;": "¯",
  1125. "subnE;": "⫋",
  1126. "subne;": "⊊",
  1127. "supnE;": "⫌",
  1128. "supne;": "⊋",
  1129. "swArr;": "⇙",
  1130. "swarr;": "↙",
  1131. "szlig;": "ß",
  1132. "Theta;": "Θ",
  1133. "theta;": "θ",
  1134. "thkap;": "≈",
  1135. "THORN;": "Þ",
  1136. "thorn;": "þ",
  1137. "Tilde;": "∼",
  1138. "tilde;": "˜",
  1139. "times;": "×",
  1140. "TRADE;": "™",
  1141. "trade;": "™",
  1142. "trisb;": "⧍",
  1143. "TSHcy;": "Ћ",
  1144. "tshcy;": "ћ",
  1145. "twixt;": "≬",
  1146. Uacute: "Ú",
  1147. uacute: "ú",
  1148. "Ubrcy;": "Ў",
  1149. "ubrcy;": "ў",
  1150. "Ucirc;": "Û",
  1151. "ucirc;": "û",
  1152. "udarr;": "⇅",
  1153. "udhar;": "⥮",
  1154. Ugrave: "Ù",
  1155. ugrave: "ù",
  1156. "uharl;": "↿",
  1157. "uharr;": "↾",
  1158. "uhblk;": "▀",
  1159. "ultri;": "◸",
  1160. "Umacr;": "Ū",
  1161. "umacr;": "ū",
  1162. "Union;": "⋃",
  1163. "Uogon;": "Ų",
  1164. "uogon;": "ų",
  1165. "uplus;": "⊎",
  1166. "upsih;": "ϒ",
  1167. "UpTee;": "⊥",
  1168. "Uring;": "Ů",
  1169. "uring;": "ů",
  1170. "urtri;": "◹",
  1171. "utdot;": "⋰",
  1172. "utrif;": "▴",
  1173. "uuarr;": "⇈",
  1174. "varpi;": "ϖ",
  1175. "vBarv;": "⫩",
  1176. "VDash;": "⊫",
  1177. "Vdash;": "⊩",
  1178. "vDash;": "⊨",
  1179. "vdash;": "⊢",
  1180. "veeeq;": "≚",
  1181. "vltri;": "⊲",
  1182. "vnsub;": "⊂⃒",
  1183. "vnsup;": "⊃⃒",
  1184. "vprop;": "∝",
  1185. "vrtri;": "⊳",
  1186. "Wcirc;": "Ŵ",
  1187. "wcirc;": "ŵ",
  1188. "Wedge;": "⋀",
  1189. "wedge;": "∧",
  1190. "xcirc;": "◯",
  1191. "xdtri;": "▽",
  1192. "xhArr;": "⟺",
  1193. "xharr;": "⟷",
  1194. "xlArr;": "⟸",
  1195. "xlarr;": "⟵",
  1196. "xodot;": "⨀",
  1197. "xrArr;": "⟹",
  1198. "xrarr;": "⟶",
  1199. "xutri;": "△",
  1200. Yacute: "Ý",
  1201. yacute: "ý",
  1202. "Ycirc;": "Ŷ",
  1203. "ycirc;": "ŷ",
  1204. "Aacute;": "Á",
  1205. "aacute;": "á",
  1206. "Abreve;": "Ă",
  1207. "abreve;": "ă",
  1208. "Agrave;": "À",
  1209. "agrave;": "à",
  1210. "andand;": "⩕",
  1211. "angmsd;": "∡",
  1212. "angsph;": "∢",
  1213. "apacir;": "⩯",
  1214. "approx;": "≈",
  1215. "Assign;": "≔",
  1216. "Atilde;": "Ã",
  1217. "atilde;": "ã",
  1218. "barvee;": "⊽",
  1219. "Barwed;": "⌆",
  1220. "barwed;": "⌅",
  1221. "becaus;": "∵",
  1222. "bernou;": "ℬ",
  1223. "bigcap;": "⋂",
  1224. "bigcup;": "⋃",
  1225. "bigvee;": "⋁",
  1226. "bkarow;": "⤍",
  1227. "bottom;": "⊥",
  1228. "bowtie;": "⋈",
  1229. "boxbox;": "⧉",
  1230. "bprime;": "‵",
  1231. "brvbar;": "¦",
  1232. "bullet;": "•",
  1233. "Bumpeq;": "≎",
  1234. "bumpeq;": "≏",
  1235. "Cacute;": "Ć",
  1236. "cacute;": "ć",
  1237. "capand;": "⩄",
  1238. "capcap;": "⩋",
  1239. "capcup;": "⩇",
  1240. "capdot;": "⩀",
  1241. "Ccaron;": "Č",
  1242. "ccaron;": "č",
  1243. "Ccedil;": "Ç",
  1244. "ccedil;": "ç",
  1245. "circeq;": "≗",
  1246. "cirmid;": "⫯",
  1247. "Colone;": "⩴",
  1248. "colone;": "≔",
  1249. "commat;": "@",
  1250. "compfn;": "∘",
  1251. "Conint;": "∯",
  1252. "conint;": "∮",
  1253. "coprod;": "∐",
  1254. "copysr;": "℗",
  1255. "cularr;": "↶",
  1256. "CupCap;": "≍",
  1257. "cupcap;": "⩆",
  1258. "cupcup;": "⩊",
  1259. "cupdot;": "⊍",
  1260. "curarr;": "↷",
  1261. "curren;": "¤",
  1262. "cylcty;": "⌭",
  1263. "Dagger;": "‡",
  1264. "dagger;": "†",
  1265. "daleth;": "ℸ",
  1266. "Dcaron;": "Ď",
  1267. "dcaron;": "ď",
  1268. "dfisht;": "⥿",
  1269. "divide;": "÷",
  1270. "divonx;": "⋇",
  1271. "dlcorn;": "⌞",
  1272. "dlcrop;": "⌍",
  1273. "dollar;": "$",
  1274. "DotDot;": "⃜",
  1275. "drcorn;": "⌟",
  1276. "drcrop;": "⌌",
  1277. "Dstrok;": "Đ",
  1278. "dstrok;": "đ",
  1279. "Eacute;": "É",
  1280. "eacute;": "é",
  1281. "easter;": "⩮",
  1282. "Ecaron;": "Ě",
  1283. "ecaron;": "ě",
  1284. "ecolon;": "≕",
  1285. "Egrave;": "È",
  1286. "egrave;": "è",
  1287. "egsdot;": "⪘",
  1288. "elsdot;": "⪗",
  1289. "emptyv;": "∅",
  1290. "emsp13;": " ",
  1291. "emsp14;": " ",
  1292. "eparsl;": "⧣",
  1293. "eqcirc;": "≖",
  1294. "equals;": "=",
  1295. "equest;": "≟",
  1296. "Exists;": "∃",
  1297. "female;": "♀",
  1298. "ffilig;": "ffi",
  1299. "ffllig;": "ffl",
  1300. "ForAll;": "∀",
  1301. "forall;": "∀",
  1302. "frac12;": "½",
  1303. "frac13;": "⅓",
  1304. "frac14;": "¼",
  1305. "frac15;": "⅕",
  1306. "frac16;": "⅙",
  1307. "frac18;": "⅛",
  1308. "frac23;": "⅔",
  1309. "frac25;": "⅖",
  1310. "frac34;": "¾",
  1311. "frac35;": "⅗",
  1312. "frac38;": "⅜",
  1313. "frac45;": "⅘",
  1314. "frac56;": "⅚",
  1315. "frac58;": "⅝",
  1316. "frac78;": "⅞",
  1317. "gacute;": "ǵ",
  1318. "Gammad;": "Ϝ",
  1319. "gammad;": "ϝ",
  1320. "Gbreve;": "Ğ",
  1321. "gbreve;": "ğ",
  1322. "Gcedil;": "Ģ",
  1323. "gesdot;": "⪀",
  1324. "gesles;": "⪔",
  1325. "gtlPar;": "⦕",
  1326. "gtrarr;": "⥸",
  1327. "gtrdot;": "⋗",
  1328. "gtrsim;": "≳",
  1329. "hairsp;": " ",
  1330. "hamilt;": "ℋ",
  1331. "HARDcy;": "Ъ",
  1332. "hardcy;": "ъ",
  1333. "hearts;": "♥",
  1334. "hellip;": "…",
  1335. "hercon;": "⊹",
  1336. "homtht;": "∻",
  1337. "horbar;": "―",
  1338. "hslash;": "ℏ",
  1339. "Hstrok;": "Ħ",
  1340. "hstrok;": "ħ",
  1341. "hybull;": "⁃",
  1342. "hyphen;": "‐",
  1343. "Iacute;": "Í",
  1344. "iacute;": "í",
  1345. "Igrave;": "Ì",
  1346. "igrave;": "ì",
  1347. "iiiint;": "⨌",
  1348. "iinfin;": "⧜",
  1349. "incare;": "℅",
  1350. "inodot;": "ı",
  1351. "intcal;": "⊺",
  1352. "iquest;": "¿",
  1353. "isinsv;": "⋳",
  1354. "Itilde;": "Ĩ",
  1355. "itilde;": "ĩ",
  1356. "Jsercy;": "Ј",
  1357. "jsercy;": "ј",
  1358. "kappav;": "ϰ",
  1359. "Kcedil;": "Ķ",
  1360. "kcedil;": "ķ",
  1361. "kgreen;": "ĸ",
  1362. "Lacute;": "Ĺ",
  1363. "lacute;": "ĺ",
  1364. "lagran;": "ℒ",
  1365. "Lambda;": "Λ",
  1366. "lambda;": "λ",
  1367. "langle;": "⟨",
  1368. "larrfs;": "⤝",
  1369. "larrhk;": "↩",
  1370. "larrlp;": "↫",
  1371. "larrpl;": "⤹",
  1372. "larrtl;": "↢",
  1373. "lAtail;": "⤛",
  1374. "latail;": "⤙",
  1375. "lbrace;": "{",
  1376. "lbrack;": "[",
  1377. "Lcaron;": "Ľ",
  1378. "lcaron;": "ľ",
  1379. "Lcedil;": "Ļ",
  1380. "lcedil;": "ļ",
  1381. "ldquor;": "„",
  1382. "lesdot;": "⩿",
  1383. "lesges;": "⪓",
  1384. "lfisht;": "⥼",
  1385. "lfloor;": "⌊",
  1386. "lharul;": "⥪",
  1387. "llhard;": "⥫",
  1388. "Lmidot;": "Ŀ",
  1389. "lmidot;": "ŀ",
  1390. "lmoust;": "⎰",
  1391. "loplus;": "⨭",
  1392. "lowast;": "∗",
  1393. "lowbar;": "_",
  1394. "lparlt;": "⦓",
  1395. "lrhard;": "⥭",
  1396. "lsaquo;": "‹",
  1397. "lsquor;": "‚",
  1398. "Lstrok;": "Ł",
  1399. "lstrok;": "ł",
  1400. "lthree;": "⋋",
  1401. "ltimes;": "⋉",
  1402. "ltlarr;": "⥶",
  1403. "ltrPar;": "⦖",
  1404. "mapsto;": "↦",
  1405. "marker;": "▮",
  1406. "mcomma;": "⨩",
  1407. "midast;": "*",
  1408. "midcir;": "⫰",
  1409. "middot;": "·",
  1410. "minusb;": "⊟",
  1411. "minusd;": "∸",
  1412. "mnplus;": "∓",
  1413. "models;": "⊧",
  1414. "mstpos;": "∾",
  1415. "Nacute;": "Ń",
  1416. "nacute;": "ń",
  1417. "nbumpe;": "≏̸",
  1418. "Ncaron;": "Ň",
  1419. "ncaron;": "ň",
  1420. "Ncedil;": "Ņ",
  1421. "ncedil;": "ņ",
  1422. "nearhk;": "⤤",
  1423. "nequiv;": "≢",
  1424. "nesear;": "⤨",
  1425. "nexist;": "∄",
  1426. "nltrie;": "⋬",
  1427. "notinE;": "⋹̸",
  1428. "nparsl;": "⫽⃥",
  1429. "nprcue;": "⋠",
  1430. "nrarrc;": "⤳̸",
  1431. "nrarrw;": "↝̸",
  1432. "nrtrie;": "⋭",
  1433. "nsccue;": "⋡",
  1434. "nsimeq;": "≄",
  1435. "Ntilde;": "Ñ",
  1436. "ntilde;": "ñ",
  1437. "numero;": "№",
  1438. "nVDash;": "⊯",
  1439. "nVdash;": "⊮",
  1440. "nvDash;": "⊭",
  1441. "nvdash;": "⊬",
  1442. "nvHarr;": "⤄",
  1443. "nvlArr;": "⤂",
  1444. "nvrArr;": "⤃",
  1445. "nwarhk;": "⤣",
  1446. "nwnear;": "⤧",
  1447. "Oacute;": "Ó",
  1448. "oacute;": "ó",
  1449. "Odblac;": "Ő",
  1450. "odblac;": "ő",
  1451. "odsold;": "⦼",
  1452. "Ograve;": "Ò",
  1453. "ograve;": "ò",
  1454. "ominus;": "⊖",
  1455. "origof;": "⊶",
  1456. "Oslash;": "Ø",
  1457. "oslash;": "ø",
  1458. "Otilde;": "Õ",
  1459. "otilde;": "õ",
  1460. "Otimes;": "⨷",
  1461. "otimes;": "⊗",
  1462. "parsim;": "⫳",
  1463. "percnt;": "%",
  1464. "period;": ".",
  1465. "permil;": "‰",
  1466. "phmmat;": "ℳ",
  1467. "planck;": "ℏ",
  1468. "plankv;": "ℏ",
  1469. "plusdo;": "∔",
  1470. "plusdu;": "⨥",
  1471. "plusmn;": "±",
  1472. "preceq;": "⪯",
  1473. "primes;": "ℙ",
  1474. "prnsim;": "⋨",
  1475. "propto;": "∝",
  1476. "prurel;": "⊰",
  1477. "puncsp;": " ",
  1478. "qprime;": "⁗",
  1479. "Racute;": "Ŕ",
  1480. "racute;": "ŕ",
  1481. "rangle;": "⟩",
  1482. "rarrap;": "⥵",
  1483. "rarrfs;": "⤞",
  1484. "rarrhk;": "↪",
  1485. "rarrlp;": "↬",
  1486. "rarrpl;": "⥅",
  1487. "Rarrtl;": "⤖",
  1488. "rarrtl;": "↣",
  1489. "rAtail;": "⤜",
  1490. "ratail;": "⤚",
  1491. "rbrace;": "}",
  1492. "rbrack;": "]",
  1493. "Rcaron;": "Ř",
  1494. "rcaron;": "ř",
  1495. "Rcedil;": "Ŗ",
  1496. "rcedil;": "ŗ",
  1497. "rdquor;": "”",
  1498. "rfisht;": "⥽",
  1499. "rfloor;": "⌋",
  1500. "rharul;": "⥬",
  1501. "rmoust;": "⎱",
  1502. "roplus;": "⨮",
  1503. "rpargt;": "⦔",
  1504. "rsaquo;": "›",
  1505. "rsquor;": "’",
  1506. "rthree;": "⋌",
  1507. "rtimes;": "⋊",
  1508. "Sacute;": "Ś",
  1509. "sacute;": "ś",
  1510. "Scaron;": "Š",
  1511. "scaron;": "š",
  1512. "Scedil;": "Ş",
  1513. "scedil;": "ş",
  1514. "scnsim;": "⋩",
  1515. "searhk;": "⤥",
  1516. "seswar;": "⤩",
  1517. "sfrown;": "⌢",
  1518. "SHCHcy;": "Щ",
  1519. "shchcy;": "щ",
  1520. "sigmaf;": "ς",
  1521. "sigmav;": "ς",
  1522. "simdot;": "⩪",
  1523. "smashp;": "⨳",
  1524. "SOFTcy;": "Ь",
  1525. "softcy;": "ь",
  1526. "solbar;": "⌿",
  1527. "spades;": "♠",
  1528. "sqcaps;": "⊓︀",
  1529. "sqcups;": "⊔︀",
  1530. "sqsube;": "⊑",
  1531. "sqsupe;": "⊒",
  1532. "Square;": "□",
  1533. "square;": "□",
  1534. "squarf;": "▪",
  1535. "ssetmn;": "∖",
  1536. "ssmile;": "⌣",
  1537. "sstarf;": "⋆",
  1538. "subdot;": "⪽",
  1539. "Subset;": "⋐",
  1540. "subset;": "⊂",
  1541. "subsim;": "⫇",
  1542. "subsub;": "⫕",
  1543. "subsup;": "⫓",
  1544. "succeq;": "⪰",
  1545. "supdot;": "⪾",
  1546. "Supset;": "⋑",
  1547. "supset;": "⊃",
  1548. "supsim;": "⫈",
  1549. "supsub;": "⫔",
  1550. "supsup;": "⫖",
  1551. "swarhk;": "⤦",
  1552. "swnwar;": "⤪",
  1553. "target;": "⌖",
  1554. "Tcaron;": "Ť",
  1555. "tcaron;": "ť",
  1556. "Tcedil;": "Ţ",
  1557. "tcedil;": "ţ",
  1558. "telrec;": "⌕",
  1559. "there4;": "∴",
  1560. "thetav;": "ϑ",
  1561. "thinsp;": " ",
  1562. "thksim;": "∼",
  1563. "timesb;": "⊠",
  1564. "timesd;": "⨰",
  1565. "topbot;": "⌶",
  1566. "topcir;": "⫱",
  1567. "tprime;": "‴",
  1568. "tridot;": "◬",
  1569. "Tstrok;": "Ŧ",
  1570. "tstrok;": "ŧ",
  1571. "Uacute;": "Ú",
  1572. "uacute;": "ú",
  1573. "Ubreve;": "Ŭ",
  1574. "ubreve;": "ŭ",
  1575. "Udblac;": "Ű",
  1576. "udblac;": "ű",
  1577. "ufisht;": "⥾",
  1578. "Ugrave;": "Ù",
  1579. "ugrave;": "ù",
  1580. "ulcorn;": "⌜",
  1581. "ulcrop;": "⌏",
  1582. "urcorn;": "⌝",
  1583. "urcrop;": "⌎",
  1584. "Utilde;": "Ũ",
  1585. "utilde;": "ũ",
  1586. "vangrt;": "⦜",
  1587. "varphi;": "ϕ",
  1588. "varrho;": "ϱ",
  1589. "Vdashl;": "⫦",
  1590. "veebar;": "⊻",
  1591. "vellip;": "⋮",
  1592. "Verbar;": "‖",
  1593. "verbar;": "|",
  1594. "vsubnE;": "⫋︀",
  1595. "vsubne;": "⊊︀",
  1596. "vsupnE;": "⫌︀",
  1597. "vsupne;": "⊋︀",
  1598. "Vvdash;": "⊪",
  1599. "wedbar;": "⩟",
  1600. "wedgeq;": "≙",
  1601. "weierp;": "℘",
  1602. "wreath;": "≀",
  1603. "xoplus;": "⨁",
  1604. "xotime;": "⨂",
  1605. "xsqcup;": "⨆",
  1606. "xuplus;": "⨄",
  1607. "xwedge;": "⋀",
  1608. "Yacute;": "Ý",
  1609. "yacute;": "ý",
  1610. "Zacute;": "Ź",
  1611. "zacute;": "ź",
  1612. "Zcaron;": "Ž",
  1613. "zcaron;": "ž",
  1614. "zeetrf;": "ℨ",
  1615. "alefsym;": "ℵ",
  1616. "angrtvb;": "⊾",
  1617. "angzarr;": "⍼",
  1618. "asympeq;": "≍",
  1619. "backsim;": "∽",
  1620. "Because;": "∵",
  1621. "because;": "∵",
  1622. "bemptyv;": "⦰",
  1623. "between;": "≬",
  1624. "bigcirc;": "◯",
  1625. "bigodot;": "⨀",
  1626. "bigstar;": "★",
  1627. "bnequiv;": "≡⃥",
  1628. "boxplus;": "⊞",
  1629. "Cayleys;": "ℭ",
  1630. "Cconint;": "∰",
  1631. "ccupssm;": "⩐",
  1632. "Cedilla;": "¸",
  1633. "cemptyv;": "⦲",
  1634. "cirscir;": "⧂",
  1635. "coloneq;": "≔",
  1636. "congdot;": "⩭",
  1637. "cudarrl;": "⤸",
  1638. "cudarrr;": "⤵",
  1639. "cularrp;": "⤽",
  1640. "curarrm;": "⤼",
  1641. "dbkarow;": "⤏",
  1642. "ddagger;": "‡",
  1643. "ddotseq;": "⩷",
  1644. "demptyv;": "⦱",
  1645. "Diamond;": "⋄",
  1646. "diamond;": "⋄",
  1647. "digamma;": "ϝ",
  1648. "dotplus;": "∔",
  1649. "DownTee;": "⊤",
  1650. "dwangle;": "⦦",
  1651. "Element;": "∈",
  1652. "Epsilon;": "Ε",
  1653. "epsilon;": "ε",
  1654. "eqcolon;": "≕",
  1655. "equivDD;": "⩸",
  1656. "gesdoto;": "⪂",
  1657. "gtquest;": "⩼",
  1658. "gtrless;": "≷",
  1659. "harrcir;": "⥈",
  1660. "Implies;": "⇒",
  1661. "intprod;": "⨼",
  1662. "isindot;": "⋵",
  1663. "larrbfs;": "⤟",
  1664. "larrsim;": "⥳",
  1665. "lbrksld;": "⦏",
  1666. "lbrkslu;": "⦍",
  1667. "ldrdhar;": "⥧",
  1668. "LeftTee;": "⊣",
  1669. "lesdoto;": "⪁",
  1670. "lessdot;": "⋖",
  1671. "lessgtr;": "≶",
  1672. "lesssim;": "≲",
  1673. "lotimes;": "⨴",
  1674. "lozenge;": "◊",
  1675. "ltquest;": "⩻",
  1676. "luruhar;": "⥦",
  1677. "maltese;": "✠",
  1678. "minusdu;": "⨪",
  1679. "napprox;": "≉",
  1680. "natural;": "♮",
  1681. "nearrow;": "↗",
  1682. "NewLine;": "\n",
  1683. "nexists;": "∄",
  1684. "NoBreak;": "⁠",
  1685. "notinva;": "∉",
  1686. "notinvb;": "⋷",
  1687. "notinvc;": "⋶",
  1688. "NotLess;": "≮",
  1689. "notniva;": "∌",
  1690. "notnivb;": "⋾",
  1691. "notnivc;": "⋽",
  1692. "npolint;": "⨔",
  1693. "npreceq;": "⪯̸",
  1694. "nsqsube;": "⋢",
  1695. "nsqsupe;": "⋣",
  1696. "nsubset;": "⊂⃒",
  1697. "nsucceq;": "⪰̸",
  1698. "nsupset;": "⊃⃒",
  1699. "nvinfin;": "⧞",
  1700. "nvltrie;": "⊴⃒",
  1701. "nvrtrie;": "⊵⃒",
  1702. "nwarrow;": "↖",
  1703. "olcross;": "⦻",
  1704. "Omicron;": "Ο",
  1705. "omicron;": "ο",
  1706. "orderof;": "ℴ",
  1707. "orslope;": "⩗",
  1708. "OverBar;": "‾",
  1709. "pertenk;": "‱",
  1710. "planckh;": "ℎ",
  1711. "pluscir;": "⨢",
  1712. "plussim;": "⨦",
  1713. "plustwo;": "⨧",
  1714. "precsim;": "≾",
  1715. "Product;": "∏",
  1716. "quatint;": "⨖",
  1717. "questeq;": "≟",
  1718. "rarrbfs;": "⤠",
  1719. "rarrsim;": "⥴",
  1720. "rbrksld;": "⦎",
  1721. "rbrkslu;": "⦐",
  1722. "rdldhar;": "⥩",
  1723. "realine;": "ℛ",
  1724. "rotimes;": "⨵",
  1725. "ruluhar;": "⥨",
  1726. "searrow;": "↘",
  1727. "simplus;": "⨤",
  1728. "simrarr;": "⥲",
  1729. "subedot;": "⫃",
  1730. "submult;": "⫁",
  1731. "subplus;": "⪿",
  1732. "subrarr;": "⥹",
  1733. "succsim;": "≿",
  1734. "supdsub;": "⫘",
  1735. "supedot;": "⫄",
  1736. "suphsol;": "⟉",
  1737. "suphsub;": "⫗",
  1738. "suplarr;": "⥻",
  1739. "supmult;": "⫂",
  1740. "supplus;": "⫀",
  1741. "swarrow;": "↙",
  1742. "topfork;": "⫚",
  1743. "triplus;": "⨹",
  1744. "tritime;": "⨻",
  1745. "UpArrow;": "↑",
  1746. "Uparrow;": "⇑",
  1747. "uparrow;": "↑",
  1748. "Upsilon;": "Υ",
  1749. "upsilon;": "υ",
  1750. "uwangle;": "⦧",
  1751. "vzigzag;": "⦚",
  1752. "zigrarr;": "⇝",
  1753. "andslope;": "⩘",
  1754. "angmsdaa;": "⦨",
  1755. "angmsdab;": "⦩",
  1756. "angmsdac;": "⦪",
  1757. "angmsdad;": "⦫",
  1758. "angmsdae;": "⦬",
  1759. "angmsdaf;": "⦭",
  1760. "angmsdag;": "⦮",
  1761. "angmsdah;": "⦯",
  1762. "angrtvbd;": "⦝",
  1763. "approxeq;": "≊",
  1764. "awconint;": "∳",
  1765. "backcong;": "≌",
  1766. "barwedge;": "⌅",
  1767. "bbrktbrk;": "⎶",
  1768. "bigoplus;": "⨁",
  1769. "bigsqcup;": "⨆",
  1770. "biguplus;": "⨄",
  1771. "bigwedge;": "⋀",
  1772. "boxminus;": "⊟",
  1773. "boxtimes;": "⊠",
  1774. "bsolhsub;": "⟈",
  1775. "capbrcup;": "⩉",
  1776. "circledR;": "®",
  1777. "circledS;": "Ⓢ",
  1778. "cirfnint;": "⨐",
  1779. "clubsuit;": "♣",
  1780. "cupbrcap;": "⩈",
  1781. "curlyvee;": "⋎",
  1782. "cwconint;": "∲",
  1783. "DDotrahd;": "⤑",
  1784. "doteqdot;": "≑",
  1785. "DotEqual;": "≐",
  1786. "dotminus;": "∸",
  1787. "drbkarow;": "⤐",
  1788. "dzigrarr;": "⟿",
  1789. "elinters;": "⏧",
  1790. "emptyset;": "∅",
  1791. "eqvparsl;": "⧥",
  1792. "fpartint;": "⨍",
  1793. "geqslant;": "⩾",
  1794. "gesdotol;": "⪄",
  1795. "gnapprox;": "⪊",
  1796. "hksearow;": "⤥",
  1797. "hkswarow;": "⤦",
  1798. "imagline;": "ℐ",
  1799. "imagpart;": "ℑ",
  1800. "infintie;": "⧝",
  1801. "integers;": "ℤ",
  1802. "Integral;": "∫",
  1803. "intercal;": "⊺",
  1804. "intlarhk;": "⨗",
  1805. "laemptyv;": "⦴",
  1806. "ldrushar;": "⥋",
  1807. "leqslant;": "⩽",
  1808. "lesdotor;": "⪃",
  1809. "LessLess;": "⪡",
  1810. "llcorner;": "⌞",
  1811. "lnapprox;": "⪉",
  1812. "lrcorner;": "⌟",
  1813. "lurdshar;": "⥊",
  1814. "mapstoup;": "↥",
  1815. "multimap;": "⊸",
  1816. "naturals;": "ℕ",
  1817. "ncongdot;": "⩭̸",
  1818. "NotEqual;": "≠",
  1819. "notindot;": "⋵̸",
  1820. "NotTilde;": "≁",
  1821. "otimesas;": "⨶",
  1822. "parallel;": "∥",
  1823. "PartialD;": "∂",
  1824. "plusacir;": "⨣",
  1825. "pointint;": "⨕",
  1826. "Precedes;": "≺",
  1827. "precneqq;": "⪵",
  1828. "precnsim;": "⋨",
  1829. "profalar;": "⌮",
  1830. "profline;": "⌒",
  1831. "profsurf;": "⌓",
  1832. "raemptyv;": "⦳",
  1833. "realpart;": "ℜ",
  1834. "RightTee;": "⊢",
  1835. "rppolint;": "⨒",
  1836. "rtriltri;": "⧎",
  1837. "scpolint;": "⨓",
  1838. "setminus;": "∖",
  1839. "shortmid;": "∣",
  1840. "smeparsl;": "⧤",
  1841. "sqsubset;": "⊏",
  1842. "sqsupset;": "⊐",
  1843. "subseteq;": "⊆",
  1844. "Succeeds;": "≻",
  1845. "succneqq;": "⪶",
  1846. "succnsim;": "⋩",
  1847. "SuchThat;": "∋",
  1848. "Superset;": "⊃",
  1849. "supseteq;": "⊇",
  1850. "thetasym;": "ϑ",
  1851. "thicksim;": "∼",
  1852. "timesbar;": "⨱",
  1853. "triangle;": "▵",
  1854. "triminus;": "⨺",
  1855. "trpezium;": "⏢",
  1856. "Uarrocir;": "⥉",
  1857. "ulcorner;": "⌜",
  1858. "UnderBar;": "_",
  1859. "urcorner;": "⌝",
  1860. "varkappa;": "ϰ",
  1861. "varsigma;": "ς",
  1862. "vartheta;": "ϑ",
  1863. "backprime;": "‵",
  1864. "backsimeq;": "⋍",
  1865. "Backslash;": "∖",
  1866. "bigotimes;": "⨂",
  1867. "CenterDot;": "·",
  1868. "centerdot;": "·",
  1869. "checkmark;": "✓",
  1870. "CircleDot;": "⊙",
  1871. "complexes;": "ℂ",
  1872. "Congruent;": "≡",
  1873. "Coproduct;": "∐",
  1874. "dotsquare;": "⊡",
  1875. "DoubleDot;": "¨",
  1876. "DownArrow;": "↓",
  1877. "Downarrow;": "⇓",
  1878. "downarrow;": "↓",
  1879. "DownBreve;": "̑",
  1880. "gtrapprox;": "⪆",
  1881. "gtreqless;": "⋛",
  1882. "gvertneqq;": "≩︀",
  1883. "heartsuit;": "♥",
  1884. "HumpEqual;": "≏",
  1885. "LeftArrow;": "←",
  1886. "Leftarrow;": "⇐",
  1887. "leftarrow;": "←",
  1888. "LeftFloor;": "⌊",
  1889. "lesseqgtr;": "⋚",
  1890. "LessTilde;": "≲",
  1891. "lvertneqq;": "≨︀",
  1892. "Mellintrf;": "ℳ",
  1893. "MinusPlus;": "∓",
  1894. "ngeqslant;": "⩾̸",
  1895. "nleqslant;": "⩽̸",
  1896. "NotCupCap;": "≭",
  1897. "NotExists;": "∄",
  1898. "NotSubset;": "⊂⃒",
  1899. "nparallel;": "∦",
  1900. "nshortmid;": "∤",
  1901. "nsubseteq;": "⊈",
  1902. "nsupseteq;": "⊉",
  1903. "OverBrace;": "⏞",
  1904. "pitchfork;": "⋔",
  1905. "PlusMinus;": "±",
  1906. "rationals;": "ℚ",
  1907. "spadesuit;": "♠",
  1908. "subseteqq;": "⫅",
  1909. "subsetneq;": "⊊",
  1910. "supseteqq;": "⫆",
  1911. "supsetneq;": "⊋",
  1912. "Therefore;": "∴",
  1913. "therefore;": "∴",
  1914. "ThinSpace;": " ",
  1915. "triangleq;": "≜",
  1916. "TripleDot;": "⃛",
  1917. "UnionPlus;": "⊎",
  1918. "varpropto;": "∝",
  1919. "Bernoullis;": "ℬ",
  1920. "circledast;": "⊛",
  1921. "CirclePlus;": "⊕",
  1922. "complement;": "∁",
  1923. "curlywedge;": "⋏",
  1924. "eqslantgtr;": "⪖",
  1925. "EqualTilde;": "≂",
  1926. "Fouriertrf;": "ℱ",
  1927. "gtreqqless;": "⪌",
  1928. "ImaginaryI;": "ⅈ",
  1929. "Laplacetrf;": "ℒ",
  1930. "LeftVector;": "↼",
  1931. "lessapprox;": "⪅",
  1932. "lesseqqgtr;": "⪋",
  1933. "Lleftarrow;": "⇚",
  1934. "lmoustache;": "⎰",
  1935. "longmapsto;": "⟼",
  1936. "mapstodown;": "↧",
  1937. "mapstoleft;": "↤",
  1938. "nLeftarrow;": "⇍",
  1939. "nleftarrow;": "↚",
  1940. "NotElement;": "∉",
  1941. "NotGreater;": "≯",
  1942. "nsubseteqq;": "⫅̸",
  1943. "nsupseteqq;": "⫆̸",
  1944. "precapprox;": "⪷",
  1945. "Proportion;": "∷",
  1946. "RightArrow;": "→",
  1947. "Rightarrow;": "⇒",
  1948. "rightarrow;": "→",
  1949. "RightFloor;": "⌋",
  1950. "rmoustache;": "⎱",
  1951. "sqsubseteq;": "⊑",
  1952. "sqsupseteq;": "⊒",
  1953. "subsetneqq;": "⫋",
  1954. "succapprox;": "⪸",
  1955. "supsetneqq;": "⫌",
  1956. "ThickSpace;": "  ",
  1957. "TildeEqual;": "≃",
  1958. "TildeTilde;": "≈",
  1959. "UnderBrace;": "⏟",
  1960. "UpArrowBar;": "⤒",
  1961. "UpTeeArrow;": "↥",
  1962. "upuparrows;": "⇈",
  1963. "varepsilon;": "ϵ",
  1964. "varnothing;": "∅",
  1965. "backepsilon;": "϶",
  1966. "blacksquare;": "▪",
  1967. "circledcirc;": "⊚",
  1968. "circleddash;": "⊝",
  1969. "CircleMinus;": "⊖",
  1970. "CircleTimes;": "⊗",
  1971. "curlyeqprec;": "⋞",
  1972. "curlyeqsucc;": "⋟",
  1973. "diamondsuit;": "♦",
  1974. "eqslantless;": "⪕",
  1975. "Equilibrium;": "⇌",
  1976. "expectation;": "ℰ",
  1977. "GreaterLess;": "≷",
  1978. "LeftCeiling;": "⌈",
  1979. "LessGreater;": "≶",
  1980. "MediumSpace;": " ",
  1981. "NotLessLess;": "≪̸",
  1982. "NotPrecedes;": "⊀",
  1983. "NotSucceeds;": "⊁",
  1984. "NotSuperset;": "⊃⃒",
  1985. "nRightarrow;": "⇏",
  1986. "nrightarrow;": "↛",
  1987. "OverBracket;": "⎴",
  1988. "preccurlyeq;": "≼",
  1989. "precnapprox;": "⪹",
  1990. "quaternions;": "ℍ",
  1991. "RightVector;": "⇀",
  1992. "Rrightarrow;": "⇛",
  1993. "RuleDelayed;": "⧴",
  1994. "SmallCircle;": "∘",
  1995. "SquareUnion;": "⊔",
  1996. "straightphi;": "ϕ",
  1997. "SubsetEqual;": "⊆",
  1998. "succcurlyeq;": "≽",
  1999. "succnapprox;": "⪺",
  2000. "thickapprox;": "≈",
  2001. "UpDownArrow;": "↕",
  2002. "Updownarrow;": "⇕",
  2003. "updownarrow;": "↕",
  2004. "VerticalBar;": "∣",
  2005. "blacklozenge;": "⧫",
  2006. "DownArrowBar;": "⤓",
  2007. "DownTeeArrow;": "↧",
  2008. "ExponentialE;": "ⅇ",
  2009. "exponentiale;": "ⅇ",
  2010. "GreaterEqual;": "≥",
  2011. "GreaterTilde;": "≳",
  2012. "HilbertSpace;": "ℋ",
  2013. "HumpDownHump;": "≎",
  2014. "Intersection;": "⋂",
  2015. "LeftArrowBar;": "⇤",
  2016. "LeftTeeArrow;": "↤",
  2017. "LeftTriangle;": "⊲",
  2018. "LeftUpVector;": "↿",
  2019. "NotCongruent;": "≢",
  2020. "NotHumpEqual;": "≏̸",
  2021. "NotLessEqual;": "≰",
  2022. "NotLessTilde;": "≴",
  2023. "Proportional;": "∝",
  2024. "RightCeiling;": "⌉",
  2025. "risingdotseq;": "≓",
  2026. "RoundImplies;": "⥰",
  2027. "ShortUpArrow;": "↑",
  2028. "SquareSubset;": "⊏",
  2029. "triangledown;": "▿",
  2030. "triangleleft;": "◃",
  2031. "UnderBracket;": "⎵",
  2032. "varsubsetneq;": "⊊︀",
  2033. "varsupsetneq;": "⊋︀",
  2034. "VerticalLine;": "|",
  2035. "ApplyFunction;": "⁡",
  2036. "bigtriangleup;": "△",
  2037. "blacktriangle;": "▴",
  2038. "DifferentialD;": "ⅆ",
  2039. "divideontimes;": "⋇",
  2040. "DoubleLeftTee;": "⫤",
  2041. "DoubleUpArrow;": "⇑",
  2042. "fallingdotseq;": "≒",
  2043. "hookleftarrow;": "↩",
  2044. "leftarrowtail;": "↢",
  2045. "leftharpoonup;": "↼",
  2046. "LeftTeeVector;": "⥚",
  2047. "LeftVectorBar;": "⥒",
  2048. "LessFullEqual;": "≦",
  2049. "LongLeftArrow;": "⟵",
  2050. "Longleftarrow;": "⟸",
  2051. "longleftarrow;": "⟵",
  2052. "looparrowleft;": "↫",
  2053. "measuredangle;": "∡",
  2054. "NotEqualTilde;": "≂̸",
  2055. "NotTildeEqual;": "≄",
  2056. "NotTildeTilde;": "≉",
  2057. "ntriangleleft;": "⋪",
  2058. "Poincareplane;": "ℌ",
  2059. "PrecedesEqual;": "⪯",
  2060. "PrecedesTilde;": "≾",
  2061. "RightArrowBar;": "⇥",
  2062. "RightTeeArrow;": "↦",
  2063. "RightTriangle;": "⊳",
  2064. "RightUpVector;": "↾",
  2065. "shortparallel;": "∥",
  2066. "smallsetminus;": "∖",
  2067. "SucceedsEqual;": "⪰",
  2068. "SucceedsTilde;": "≿",
  2069. "SupersetEqual;": "⊇",
  2070. "triangleright;": "▹",
  2071. "UpEquilibrium;": "⥮",
  2072. "upharpoonleft;": "↿",
  2073. "varsubsetneqq;": "⫋︀",
  2074. "varsupsetneqq;": "⫌︀",
  2075. "VerticalTilde;": "≀",
  2076. "VeryThinSpace;": " ",
  2077. "curvearrowleft;": "↶",
  2078. "DiacriticalDot;": "˙",
  2079. "doublebarwedge;": "⌆",
  2080. "DoubleRightTee;": "⊨",
  2081. "downdownarrows;": "⇊",
  2082. "DownLeftVector;": "↽",
  2083. "GreaterGreater;": "⪢",
  2084. "hookrightarrow;": "↪",
  2085. "HorizontalLine;": "─",
  2086. "InvisibleComma;": "⁣",
  2087. "InvisibleTimes;": "⁢",
  2088. "LeftDownVector;": "⇃",
  2089. "leftleftarrows;": "⇇",
  2090. "LeftRightArrow;": "↔",
  2091. "Leftrightarrow;": "⇔",
  2092. "leftrightarrow;": "↔",
  2093. "leftthreetimes;": "⋋",
  2094. "LessSlantEqual;": "⩽",
  2095. "LongRightArrow;": "⟶",
  2096. "Longrightarrow;": "⟹",
  2097. "longrightarrow;": "⟶",
  2098. "looparrowright;": "↬",
  2099. "LowerLeftArrow;": "↙",
  2100. "NestedLessLess;": "≪",
  2101. "NotGreaterLess;": "≹",
  2102. "NotLessGreater;": "≸",
  2103. "NotSubsetEqual;": "⊈",
  2104. "NotVerticalBar;": "∤",
  2105. "nshortparallel;": "∦",
  2106. "ntriangleright;": "⋫",
  2107. "OpenCurlyQuote;": "‘",
  2108. "ReverseElement;": "∋",
  2109. "rightarrowtail;": "↣",
  2110. "rightharpoonup;": "⇀",
  2111. "RightTeeVector;": "⥛",
  2112. "RightVectorBar;": "⥓",
  2113. "ShortDownArrow;": "↓",
  2114. "ShortLeftArrow;": "←",
  2115. "SquareSuperset;": "⊐",
  2116. "TildeFullEqual;": "≅",
  2117. "trianglelefteq;": "⊴",
  2118. "upharpoonright;": "↾",
  2119. "UpperLeftArrow;": "↖",
  2120. "ZeroWidthSpace;": "​",
  2121. "bigtriangledown;": "▽",
  2122. "circlearrowleft;": "↺",
  2123. "CloseCurlyQuote;": "’",
  2124. "ContourIntegral;": "∮",
  2125. "curvearrowright;": "↷",
  2126. "DoubleDownArrow;": "⇓",
  2127. "DoubleLeftArrow;": "⇐",
  2128. "downharpoonleft;": "⇃",
  2129. "DownRightVector;": "⇁",
  2130. "leftharpoondown;": "↽",
  2131. "leftrightarrows;": "⇆",
  2132. "LeftRightVector;": "⥎",
  2133. "LeftTriangleBar;": "⧏",
  2134. "LeftUpTeeVector;": "⥠",
  2135. "LeftUpVectorBar;": "⥘",
  2136. "LowerRightArrow;": "↘",
  2137. "nLeftrightarrow;": "⇎",
  2138. "nleftrightarrow;": "↮",
  2139. "NotGreaterEqual;": "≱",
  2140. "NotGreaterTilde;": "≵",
  2141. "NotHumpDownHump;": "≎̸",
  2142. "NotLeftTriangle;": "⋪",
  2143. "NotSquareSubset;": "⊏̸",
  2144. "ntrianglelefteq;": "⋬",
  2145. "OverParenthesis;": "⏜",
  2146. "RightDownVector;": "⇂",
  2147. "rightleftarrows;": "⇄",
  2148. "rightsquigarrow;": "↝",
  2149. "rightthreetimes;": "⋌",
  2150. "ShortRightArrow;": "→",
  2151. "straightepsilon;": "ϵ",
  2152. "trianglerighteq;": "⊵",
  2153. "UpperRightArrow;": "↗",
  2154. "vartriangleleft;": "⊲",
  2155. "circlearrowright;": "↻",
  2156. "DiacriticalAcute;": "´",
  2157. "DiacriticalGrave;": "`",
  2158. "DiacriticalTilde;": "˜",
  2159. "DoubleRightArrow;": "⇒",
  2160. "DownArrowUpArrow;": "⇵",
  2161. "downharpoonright;": "⇂",
  2162. "EmptySmallSquare;": "◻",
  2163. "GreaterEqualLess;": "⋛",
  2164. "GreaterFullEqual;": "≧",
  2165. "LeftAngleBracket;": "⟨",
  2166. "LeftUpDownVector;": "⥑",
  2167. "LessEqualGreater;": "⋚",
  2168. "NonBreakingSpace;": " ",
  2169. "NotPrecedesEqual;": "⪯̸",
  2170. "NotRightTriangle;": "⋫",
  2171. "NotSucceedsEqual;": "⪰̸",
  2172. "NotSucceedsTilde;": "≿̸",
  2173. "NotSupersetEqual;": "⊉",
  2174. "ntrianglerighteq;": "⋭",
  2175. "rightharpoondown;": "⇁",
  2176. "rightrightarrows;": "⇉",
  2177. "RightTriangleBar;": "⧐",
  2178. "RightUpTeeVector;": "⥜",
  2179. "RightUpVectorBar;": "⥔",
  2180. "twoheadleftarrow;": "↞",
  2181. "UnderParenthesis;": "⏝",
  2182. "UpArrowDownArrow;": "⇅",
  2183. "vartriangleright;": "⊳",
  2184. "blacktriangledown;": "▾",
  2185. "blacktriangleleft;": "◂",
  2186. "DoubleUpDownArrow;": "⇕",
  2187. "DoubleVerticalBar;": "∥",
  2188. "DownLeftTeeVector;": "⥞",
  2189. "DownLeftVectorBar;": "⥖",
  2190. "FilledSmallSquare;": "◼",
  2191. "GreaterSlantEqual;": "⩾",
  2192. "LeftDoubleBracket;": "⟦",
  2193. "LeftDownTeeVector;": "⥡",
  2194. "LeftDownVectorBar;": "⥙",
  2195. "leftrightharpoons;": "⇋",
  2196. "LeftTriangleEqual;": "⊴",
  2197. "NegativeThinSpace;": "​",
  2198. "NotGreaterGreater;": "≫̸",
  2199. "NotLessSlantEqual;": "⩽̸",
  2200. "NotNestedLessLess;": "⪡̸",
  2201. "NotReverseElement;": "∌",
  2202. "NotSquareSuperset;": "⊐̸",
  2203. "NotTildeFullEqual;": "≇",
  2204. "RightAngleBracket;": "⟩",
  2205. "rightleftharpoons;": "⇌",
  2206. "RightUpDownVector;": "⥏",
  2207. "SquareSubsetEqual;": "⊑",
  2208. "twoheadrightarrow;": "↠",
  2209. "VerticalSeparator;": "❘",
  2210. "blacktriangleright;": "▸",
  2211. "DownRightTeeVector;": "⥟",
  2212. "DownRightVectorBar;": "⥗",
  2213. "LongLeftRightArrow;": "⟷",
  2214. "Longleftrightarrow;": "⟺",
  2215. "longleftrightarrow;": "⟷",
  2216. "NegativeThickSpace;": "​",
  2217. "NotLeftTriangleBar;": "⧏̸",
  2218. "PrecedesSlantEqual;": "≼",
  2219. "ReverseEquilibrium;": "⇋",
  2220. "RightDoubleBracket;": "⟧",
  2221. "RightDownTeeVector;": "⥝",
  2222. "RightDownVectorBar;": "⥕",
  2223. "RightTriangleEqual;": "⊵",
  2224. "SquareIntersection;": "⊓",
  2225. "SucceedsSlantEqual;": "≽",
  2226. "DoubleLongLeftArrow;": "⟸",
  2227. "DownLeftRightVector;": "⥐",
  2228. "LeftArrowRightArrow;": "⇆",
  2229. "leftrightsquigarrow;": "↭",
  2230. "NegativeMediumSpace;": "​",
  2231. "NotGreaterFullEqual;": "≧̸",
  2232. "NotRightTriangleBar;": "⧐̸",
  2233. "RightArrowLeftArrow;": "⇄",
  2234. "SquareSupersetEqual;": "⊒",
  2235. "CapitalDifferentialD;": "ⅅ",
  2236. "DoubleLeftRightArrow;": "⇔",
  2237. "DoubleLongRightArrow;": "⟹",
  2238. "EmptyVerySmallSquare;": "▫",
  2239. "NestedGreaterGreater;": "≫",
  2240. "NotDoubleVerticalBar;": "∦",
  2241. "NotGreaterSlantEqual;": "⩾̸",
  2242. "NotLeftTriangleEqual;": "⋬",
  2243. "NotSquareSubsetEqual;": "⋢",
  2244. "OpenCurlyDoubleQuote;": "“",
  2245. "ReverseUpEquilibrium;": "⥯",
  2246. "CloseCurlyDoubleQuote;": "”",
  2247. "DoubleContourIntegral;": "∯",
  2248. "FilledVerySmallSquare;": "▪",
  2249. "NegativeVeryThinSpace;": "​",
  2250. "NotPrecedesSlantEqual;": "⋠",
  2251. "NotRightTriangleEqual;": "⋭",
  2252. "NotSucceedsSlantEqual;": "⋡",
  2253. "DiacriticalDoubleAcute;": "˝",
  2254. "NotSquareSupersetEqual;": "⋣",
  2255. "NotNestedGreaterGreater;": "⪢̸",
  2256. "ClockwiseContourIntegral;": "∲",
  2257. "DoubleLongLeftRightArrow;": "⟺",
  2258. "CounterClockwiseContourIntegral;": "∳"
  2259. };
  2260. let maxCRNameLength;
  2261. const decodeHtml = (rawText, asAttr) => {
  2262. let offset = 0;
  2263. const end = rawText.length;
  2264. let decodedText = "";
  2265. function advance(length) {
  2266. offset += length;
  2267. rawText = rawText.slice(length);
  2268. }
  2269. while (offset < end) {
  2270. const head = /&(?:#x?)?/i.exec(rawText);
  2271. if (!head || offset + head.index >= end) {
  2272. const remaining = end - offset;
  2273. decodedText += rawText.slice(0, remaining);
  2274. advance(remaining);
  2275. break;
  2276. }
  2277. decodedText += rawText.slice(0, head.index);
  2278. advance(head.index);
  2279. if (head[0] === "&") {
  2280. let name = "";
  2281. let value = void 0;
  2282. if (/[0-9a-z]/i.test(rawText[1])) {
  2283. if (!maxCRNameLength) {
  2284. maxCRNameLength = Object.keys(namedCharacterReferences).reduce(
  2285. (max, name2) => Math.max(max, name2.length),
  2286. 0
  2287. );
  2288. }
  2289. for (let length = maxCRNameLength; !value && length > 0; --length) {
  2290. name = rawText.slice(1, 1 + length);
  2291. value = namedCharacterReferences[name];
  2292. }
  2293. if (value) {
  2294. const semi = name.endsWith(";");
  2295. if (asAttr && !semi && /[=a-z0-9]/i.test(rawText[name.length + 1] || "")) {
  2296. decodedText += "&" + name;
  2297. advance(1 + name.length);
  2298. } else {
  2299. decodedText += value;
  2300. advance(1 + name.length);
  2301. }
  2302. } else {
  2303. decodedText += "&" + name;
  2304. advance(1 + name.length);
  2305. }
  2306. } else {
  2307. decodedText += "&";
  2308. advance(1);
  2309. }
  2310. } else {
  2311. const hex = head[0] === "&#x";
  2312. const pattern = hex ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/;
  2313. const body = pattern.exec(rawText);
  2314. if (!body) {
  2315. decodedText += head[0];
  2316. advance(head[0].length);
  2317. } else {
  2318. let cp = Number.parseInt(body[1], hex ? 16 : 10);
  2319. if (cp === 0) {
  2320. cp = 65533;
  2321. } else if (cp > 1114111) {
  2322. cp = 65533;
  2323. } else if (cp >= 55296 && cp <= 57343) {
  2324. cp = 65533;
  2325. } else if (cp >= 64976 && cp <= 65007 || (cp & 65534) === 65534) ; else if (cp >= 1 && cp <= 8 || cp === 11 || cp >= 13 && cp <= 31 || cp >= 127 && cp <= 159) {
  2326. cp = CCR_REPLACEMENTS[cp] || cp;
  2327. }
  2328. decodedText += String.fromCodePoint(cp);
  2329. advance(body[0].length);
  2330. }
  2331. }
  2332. }
  2333. return decodedText;
  2334. };
  2335. const CCR_REPLACEMENTS = {
  2336. 128: 8364,
  2337. 130: 8218,
  2338. 131: 402,
  2339. 132: 8222,
  2340. 133: 8230,
  2341. 134: 8224,
  2342. 135: 8225,
  2343. 136: 710,
  2344. 137: 8240,
  2345. 138: 352,
  2346. 139: 8249,
  2347. 140: 338,
  2348. 142: 381,
  2349. 145: 8216,
  2350. 146: 8217,
  2351. 147: 8220,
  2352. 148: 8221,
  2353. 149: 8226,
  2354. 150: 8211,
  2355. 151: 8212,
  2356. 152: 732,
  2357. 153: 8482,
  2358. 154: 353,
  2359. 155: 8250,
  2360. 156: 339,
  2361. 158: 382,
  2362. 159: 376
  2363. };
  2364. const isRawTextContainer = /* @__PURE__ */ shared.makeMap(
  2365. "style,iframe,script,noscript",
  2366. true
  2367. );
  2368. const parserOptions = {
  2369. isVoidTag: shared.isVoidTag,
  2370. isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag),
  2371. isPreTag: (tag) => tag === "pre",
  2372. decodeEntities: decodeHtml,
  2373. isBuiltInComponent: (tag) => {
  2374. if (compilerCore.isBuiltInType(tag, `Transition`)) {
  2375. return TRANSITION;
  2376. } else if (compilerCore.isBuiltInType(tag, `TransitionGroup`)) {
  2377. return TRANSITION_GROUP;
  2378. }
  2379. },
  2380. // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
  2381. getNamespace(tag, parent) {
  2382. let ns = parent ? parent.ns : 0;
  2383. if (parent && ns === 2) {
  2384. if (parent.tag === "annotation-xml") {
  2385. if (tag === "svg") {
  2386. return 1;
  2387. }
  2388. if (parent.props.some(
  2389. (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml")
  2390. )) {
  2391. ns = 0;
  2392. }
  2393. } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") {
  2394. ns = 0;
  2395. }
  2396. } else if (parent && ns === 1) {
  2397. if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") {
  2398. ns = 0;
  2399. }
  2400. }
  2401. if (ns === 0) {
  2402. if (tag === "svg") {
  2403. return 1;
  2404. }
  2405. if (tag === "math") {
  2406. return 2;
  2407. }
  2408. }
  2409. return ns;
  2410. },
  2411. // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
  2412. getTextMode({ tag, ns }) {
  2413. if (ns === 0) {
  2414. if (tag === "textarea" || tag === "title") {
  2415. return 1;
  2416. }
  2417. if (isRawTextContainer(tag)) {
  2418. return 2;
  2419. }
  2420. }
  2421. return 0;
  2422. }
  2423. };
  2424. const transformStyle = (node) => {
  2425. if (node.type === 1) {
  2426. node.props.forEach((p, i) => {
  2427. if (p.type === 6 && p.name === "style" && p.value) {
  2428. node.props[i] = {
  2429. type: 7,
  2430. name: `bind`,
  2431. arg: compilerCore.createSimpleExpression(`style`, true, p.loc),
  2432. exp: parseInlineCSS(p.value.content, p.loc),
  2433. modifiers: [],
  2434. loc: p.loc
  2435. };
  2436. }
  2437. });
  2438. }
  2439. };
  2440. const parseInlineCSS = (cssText, loc) => {
  2441. const normalized = shared.parseStringStyle(cssText);
  2442. return compilerCore.createSimpleExpression(
  2443. JSON.stringify(normalized),
  2444. false,
  2445. loc,
  2446. 3
  2447. );
  2448. };
  2449. function createDOMCompilerError(code, loc) {
  2450. return compilerCore.createCompilerError(
  2451. code,
  2452. loc,
  2453. DOMErrorMessages
  2454. );
  2455. }
  2456. const DOMErrorMessages = {
  2457. [53]: `v-html is missing expression.`,
  2458. [54]: `v-html will override element children.`,
  2459. [55]: `v-text is missing expression.`,
  2460. [56]: `v-text will override element children.`,
  2461. [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
  2462. [58]: `v-model argument is not supported on plain elements.`,
  2463. [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
  2464. [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
  2465. [61]: `v-show is missing expression.`,
  2466. [62]: `<Transition> expects exactly one child element or component.`,
  2467. [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
  2468. };
  2469. const transformVHtml = (dir, node, context) => {
  2470. const { exp, loc } = dir;
  2471. if (!exp) {
  2472. context.onError(
  2473. createDOMCompilerError(53, loc)
  2474. );
  2475. }
  2476. if (node.children.length) {
  2477. context.onError(
  2478. createDOMCompilerError(54, loc)
  2479. );
  2480. node.children.length = 0;
  2481. }
  2482. return {
  2483. props: [
  2484. compilerCore.createObjectProperty(
  2485. compilerCore.createSimpleExpression(`innerHTML`, true, loc),
  2486. exp || compilerCore.createSimpleExpression("", true)
  2487. )
  2488. ]
  2489. };
  2490. };
  2491. const transformVText = (dir, node, context) => {
  2492. const { exp, loc } = dir;
  2493. if (!exp) {
  2494. context.onError(
  2495. createDOMCompilerError(55, loc)
  2496. );
  2497. }
  2498. if (node.children.length) {
  2499. context.onError(
  2500. createDOMCompilerError(56, loc)
  2501. );
  2502. node.children.length = 0;
  2503. }
  2504. return {
  2505. props: [
  2506. compilerCore.createObjectProperty(
  2507. compilerCore.createSimpleExpression(`textContent`, true),
  2508. exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression(
  2509. context.helperString(compilerCore.TO_DISPLAY_STRING),
  2510. [exp],
  2511. loc
  2512. ) : compilerCore.createSimpleExpression("", true)
  2513. )
  2514. ]
  2515. };
  2516. };
  2517. const transformModel = (dir, node, context) => {
  2518. const baseResult = compilerCore.transformModel(dir, node, context);
  2519. if (!baseResult.props.length || node.tagType === 1) {
  2520. return baseResult;
  2521. }
  2522. if (dir.arg) {
  2523. context.onError(
  2524. createDOMCompilerError(
  2525. 58,
  2526. dir.arg.loc
  2527. )
  2528. );
  2529. }
  2530. function checkDuplicatedValue() {
  2531. const value = compilerCore.findProp(node, "value");
  2532. if (value) {
  2533. context.onError(
  2534. createDOMCompilerError(
  2535. 60,
  2536. value.loc
  2537. )
  2538. );
  2539. }
  2540. }
  2541. const { tag } = node;
  2542. const isCustomElement = context.isCustomElement(tag);
  2543. if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) {
  2544. let directiveToUse = V_MODEL_TEXT;
  2545. let isInvalidType = false;
  2546. if (tag === "input" || isCustomElement) {
  2547. const type = compilerCore.findProp(node, `type`);
  2548. if (type) {
  2549. if (type.type === 7) {
  2550. directiveToUse = V_MODEL_DYNAMIC;
  2551. } else if (type.value) {
  2552. switch (type.value.content) {
  2553. case "radio":
  2554. directiveToUse = V_MODEL_RADIO;
  2555. break;
  2556. case "checkbox":
  2557. directiveToUse = V_MODEL_CHECKBOX;
  2558. break;
  2559. case "file":
  2560. isInvalidType = true;
  2561. context.onError(
  2562. createDOMCompilerError(
  2563. 59,
  2564. dir.loc
  2565. )
  2566. );
  2567. break;
  2568. default:
  2569. checkDuplicatedValue();
  2570. break;
  2571. }
  2572. }
  2573. } else if (compilerCore.hasDynamicKeyVBind(node)) {
  2574. directiveToUse = V_MODEL_DYNAMIC;
  2575. } else {
  2576. checkDuplicatedValue();
  2577. }
  2578. } else if (tag === "select") {
  2579. directiveToUse = V_MODEL_SELECT;
  2580. } else {
  2581. checkDuplicatedValue();
  2582. }
  2583. if (!isInvalidType) {
  2584. baseResult.needRuntime = context.helper(directiveToUse);
  2585. }
  2586. } else {
  2587. context.onError(
  2588. createDOMCompilerError(
  2589. 57,
  2590. dir.loc
  2591. )
  2592. );
  2593. }
  2594. baseResult.props = baseResult.props.filter(
  2595. (p) => !(p.key.type === 4 && p.key.content === "modelValue")
  2596. );
  2597. return baseResult;
  2598. };
  2599. const isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`);
  2600. const isNonKeyModifier = /* @__PURE__ */ shared.makeMap(
  2601. // event propagation management
  2602. `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`
  2603. );
  2604. const maybeKeyModifier = /* @__PURE__ */ shared.makeMap("left,right");
  2605. const isKeyboardEvent = /* @__PURE__ */ shared.makeMap(
  2606. `onkeyup,onkeydown,onkeypress`,
  2607. true
  2608. );
  2609. const resolveModifiers = (key, modifiers, context, loc) => {
  2610. const keyModifiers = [];
  2611. const nonKeyModifiers = [];
  2612. const eventOptionModifiers = [];
  2613. for (let i = 0; i < modifiers.length; i++) {
  2614. const modifier = modifiers[i];
  2615. if (modifier === "native" && compilerCore.checkCompatEnabled(
  2616. "COMPILER_V_ON_NATIVE",
  2617. context,
  2618. loc
  2619. )) {
  2620. eventOptionModifiers.push(modifier);
  2621. } else if (isEventOptionModifier(modifier)) {
  2622. eventOptionModifiers.push(modifier);
  2623. } else {
  2624. if (maybeKeyModifier(modifier)) {
  2625. if (compilerCore.isStaticExp(key)) {
  2626. if (isKeyboardEvent(key.content)) {
  2627. keyModifiers.push(modifier);
  2628. } else {
  2629. nonKeyModifiers.push(modifier);
  2630. }
  2631. } else {
  2632. keyModifiers.push(modifier);
  2633. nonKeyModifiers.push(modifier);
  2634. }
  2635. } else {
  2636. if (isNonKeyModifier(modifier)) {
  2637. nonKeyModifiers.push(modifier);
  2638. } else {
  2639. keyModifiers.push(modifier);
  2640. }
  2641. }
  2642. }
  2643. }
  2644. return {
  2645. keyModifiers,
  2646. nonKeyModifiers,
  2647. eventOptionModifiers
  2648. };
  2649. };
  2650. const transformClick = (key, event) => {
  2651. const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === "onclick";
  2652. return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([
  2653. `(`,
  2654. key,
  2655. `) === "onClick" ? "${event}" : (`,
  2656. key,
  2657. `)`
  2658. ]) : key;
  2659. };
  2660. const transformOn = (dir, node, context) => {
  2661. return compilerCore.transformOn(dir, node, context, (baseResult) => {
  2662. const { modifiers } = dir;
  2663. if (!modifiers.length)
  2664. return baseResult;
  2665. let { key, value: handlerExp } = baseResult.props[0];
  2666. const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
  2667. if (nonKeyModifiers.includes("right")) {
  2668. key = transformClick(key, `onContextmenu`);
  2669. }
  2670. if (nonKeyModifiers.includes("middle")) {
  2671. key = transformClick(key, `onMouseup`);
  2672. }
  2673. if (nonKeyModifiers.length) {
  2674. handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [
  2675. handlerExp,
  2676. JSON.stringify(nonKeyModifiers)
  2677. ]);
  2678. }
  2679. if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard
  2680. (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content))) {
  2681. handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [
  2682. handlerExp,
  2683. JSON.stringify(keyModifiers)
  2684. ]);
  2685. }
  2686. if (eventOptionModifiers.length) {
  2687. const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join("");
  2688. key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]);
  2689. }
  2690. return {
  2691. props: [compilerCore.createObjectProperty(key, handlerExp)]
  2692. };
  2693. });
  2694. };
  2695. const transformShow = (dir, node, context) => {
  2696. const { exp, loc } = dir;
  2697. if (!exp) {
  2698. context.onError(
  2699. createDOMCompilerError(61, loc)
  2700. );
  2701. }
  2702. return {
  2703. props: [],
  2704. needRuntime: context.helper(V_SHOW)
  2705. };
  2706. };
  2707. const transformTransition = (node, context) => {
  2708. if (node.type === 1 && node.tagType === 1) {
  2709. const component = context.isBuiltInComponent(node.tag);
  2710. if (component === TRANSITION) {
  2711. return () => {
  2712. if (!node.children.length) {
  2713. return;
  2714. }
  2715. if (hasMultipleChildren(node)) {
  2716. context.onError(
  2717. createDOMCompilerError(
  2718. 62,
  2719. {
  2720. start: node.children[0].loc.start,
  2721. end: node.children[node.children.length - 1].loc.end,
  2722. source: ""
  2723. }
  2724. )
  2725. );
  2726. }
  2727. const child = node.children[0];
  2728. if (child.type === 1) {
  2729. for (const p of child.props) {
  2730. if (p.type === 7 && p.name === "show") {
  2731. node.props.push({
  2732. type: 6,
  2733. name: "persisted",
  2734. value: void 0,
  2735. loc: node.loc
  2736. });
  2737. }
  2738. }
  2739. }
  2740. };
  2741. }
  2742. }
  2743. };
  2744. function hasMultipleChildren(node) {
  2745. const children = node.children = node.children.filter(
  2746. (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())
  2747. );
  2748. const child = children[0];
  2749. return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);
  2750. }
  2751. const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;
  2752. const stringifyStatic = (children, context, parent) => {
  2753. if (context.scopes.vSlot > 0) {
  2754. return;
  2755. }
  2756. let nc = 0;
  2757. let ec = 0;
  2758. const currentChunk = [];
  2759. const stringifyCurrentChunk = (currentIndex) => {
  2760. if (nc >= 20 || ec >= 5) {
  2761. const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [
  2762. JSON.stringify(
  2763. currentChunk.map((node) => stringifyNode(node, context)).join("")
  2764. ).replace(expReplaceRE, `" + $1 + "`),
  2765. // the 2nd argument indicates the number of DOM nodes this static vnode
  2766. // will insert / hydrate
  2767. String(currentChunk.length)
  2768. ]);
  2769. replaceHoist(currentChunk[0], staticCall, context);
  2770. if (currentChunk.length > 1) {
  2771. for (let i2 = 1; i2 < currentChunk.length; i2++) {
  2772. replaceHoist(currentChunk[i2], null, context);
  2773. }
  2774. const deleteCount = currentChunk.length - 1;
  2775. children.splice(currentIndex - currentChunk.length + 1, deleteCount);
  2776. return deleteCount;
  2777. }
  2778. }
  2779. return 0;
  2780. };
  2781. let i = 0;
  2782. for (; i < children.length; i++) {
  2783. const child = children[i];
  2784. const hoisted = getHoistedNode(child);
  2785. if (hoisted) {
  2786. const node = child;
  2787. const result = analyzeNode(node);
  2788. if (result) {
  2789. nc += result[0];
  2790. ec += result[1];
  2791. currentChunk.push(node);
  2792. continue;
  2793. }
  2794. }
  2795. i -= stringifyCurrentChunk(i);
  2796. nc = 0;
  2797. ec = 0;
  2798. currentChunk.length = 0;
  2799. }
  2800. stringifyCurrentChunk(i);
  2801. };
  2802. const getHoistedNode = (node) => (node.type === 1 && node.tagType === 0 || node.type == 12) && node.codegenNode && node.codegenNode.type === 4 && node.codegenNode.hoisted;
  2803. const dataAriaRE = /^(data|aria)-/;
  2804. const isStringifiableAttr = (name, ns) => {
  2805. return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : false) || dataAriaRE.test(name);
  2806. };
  2807. const replaceHoist = (node, replacement, context) => {
  2808. const hoistToReplace = node.codegenNode.hoisted;
  2809. context.hoists[context.hoists.indexOf(hoistToReplace)] = replacement;
  2810. };
  2811. const isNonStringifiable = /* @__PURE__ */ shared.makeMap(
  2812. `caption,thead,tr,th,tbody,td,tfoot,colgroup,col`
  2813. );
  2814. function analyzeNode(node) {
  2815. if (node.type === 1 && isNonStringifiable(node.tag)) {
  2816. return false;
  2817. }
  2818. if (node.type === 12) {
  2819. return [1, 0];
  2820. }
  2821. let nc = 1;
  2822. let ec = node.props.length > 0 ? 1 : 0;
  2823. let bailed = false;
  2824. const bail = () => {
  2825. bailed = true;
  2826. return false;
  2827. };
  2828. function walk(node2) {
  2829. for (let i = 0; i < node2.props.length; i++) {
  2830. const p = node2.props[i];
  2831. if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) {
  2832. return bail();
  2833. }
  2834. if (p.type === 7 && p.name === "bind") {
  2835. if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) {
  2836. return bail();
  2837. }
  2838. if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) {
  2839. return bail();
  2840. }
  2841. }
  2842. }
  2843. for (let i = 0; i < node2.children.length; i++) {
  2844. nc++;
  2845. const child = node2.children[i];
  2846. if (child.type === 1) {
  2847. if (child.props.length > 0) {
  2848. ec++;
  2849. }
  2850. walk(child);
  2851. if (bailed) {
  2852. return false;
  2853. }
  2854. }
  2855. }
  2856. return true;
  2857. }
  2858. return walk(node) ? [nc, ec] : false;
  2859. }
  2860. function stringifyNode(node, context) {
  2861. if (shared.isString(node)) {
  2862. return node;
  2863. }
  2864. if (shared.isSymbol(node)) {
  2865. return ``;
  2866. }
  2867. switch (node.type) {
  2868. case 1:
  2869. return stringifyElement(node, context);
  2870. case 2:
  2871. return shared.escapeHtml(node.content);
  2872. case 3:
  2873. return `<!--${shared.escapeHtml(node.content)}-->`;
  2874. case 5:
  2875. return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content)));
  2876. case 8:
  2877. return shared.escapeHtml(evaluateConstant(node));
  2878. case 12:
  2879. return stringifyNode(node.content, context);
  2880. default:
  2881. return "";
  2882. }
  2883. }
  2884. function stringifyElement(node, context) {
  2885. let res = `<${node.tag}`;
  2886. let innerHTML = "";
  2887. for (let i = 0; i < node.props.length; i++) {
  2888. const p = node.props[i];
  2889. if (p.type === 6) {
  2890. res += ` ${p.name}`;
  2891. if (p.value) {
  2892. res += `="${shared.escapeHtml(p.value.content)}"`;
  2893. }
  2894. } else if (p.type === 7) {
  2895. if (p.name === "bind") {
  2896. const exp = p.exp;
  2897. if (exp.content[0] === "_") {
  2898. res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
  2899. continue;
  2900. }
  2901. if (shared.isBooleanAttr(p.arg.content) && exp.content === "false") {
  2902. continue;
  2903. }
  2904. let evaluated = evaluateConstant(exp);
  2905. if (evaluated != null) {
  2906. const arg = p.arg && p.arg.content;
  2907. if (arg === "class") {
  2908. evaluated = shared.normalizeClass(evaluated);
  2909. } else if (arg === "style") {
  2910. evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated));
  2911. }
  2912. res += ` ${p.arg.content}="${shared.escapeHtml(
  2913. evaluated
  2914. )}"`;
  2915. }
  2916. } else if (p.name === "html") {
  2917. innerHTML = evaluateConstant(p.exp);
  2918. } else if (p.name === "text") {
  2919. innerHTML = shared.escapeHtml(
  2920. shared.toDisplayString(evaluateConstant(p.exp))
  2921. );
  2922. }
  2923. }
  2924. }
  2925. if (context.scopeId) {
  2926. res += ` ${context.scopeId}`;
  2927. }
  2928. res += `>`;
  2929. if (innerHTML) {
  2930. res += innerHTML;
  2931. } else {
  2932. for (let i = 0; i < node.children.length; i++) {
  2933. res += stringifyNode(node.children[i], context);
  2934. }
  2935. }
  2936. if (!shared.isVoidTag(node.tag)) {
  2937. res += `</${node.tag}>`;
  2938. }
  2939. return res;
  2940. }
  2941. function evaluateConstant(exp) {
  2942. if (exp.type === 4) {
  2943. return new Function(`return (${exp.content})`)();
  2944. } else {
  2945. let res = ``;
  2946. exp.children.forEach((c) => {
  2947. if (shared.isString(c) || shared.isSymbol(c)) {
  2948. return;
  2949. }
  2950. if (c.type === 2) {
  2951. res += c.content;
  2952. } else if (c.type === 5) {
  2953. res += shared.toDisplayString(evaluateConstant(c.content));
  2954. } else {
  2955. res += evaluateConstant(c);
  2956. }
  2957. });
  2958. return res;
  2959. }
  2960. }
  2961. const ignoreSideEffectTags = (node, context) => {
  2962. if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) {
  2963. context.onError(
  2964. createDOMCompilerError(
  2965. 63,
  2966. node.loc
  2967. )
  2968. );
  2969. context.removeNode();
  2970. }
  2971. };
  2972. const DOMNodeTransforms = [
  2973. transformStyle,
  2974. ...[transformTransition]
  2975. ];
  2976. const DOMDirectiveTransforms = {
  2977. cloak: compilerCore.noopDirectiveTransform,
  2978. html: transformVHtml,
  2979. text: transformVText,
  2980. model: transformModel,
  2981. // override compiler-core
  2982. on: transformOn,
  2983. // override compiler-core
  2984. show: transformShow
  2985. };
  2986. function compile(template, options = {}) {
  2987. return compilerCore.baseCompile(
  2988. template,
  2989. shared.extend({}, parserOptions, options, {
  2990. nodeTransforms: [
  2991. // ignore <script> and <tag>
  2992. // this is not put inside DOMNodeTransforms because that list is used
  2993. // by compiler-ssr to generate vnode fallback branches
  2994. ignoreSideEffectTags,
  2995. ...DOMNodeTransforms,
  2996. ...options.nodeTransforms || []
  2997. ],
  2998. directiveTransforms: shared.extend(
  2999. {},
  3000. DOMDirectiveTransforms,
  3001. options.directiveTransforms || {}
  3002. ),
  3003. transformHoist: stringifyStatic
  3004. })
  3005. );
  3006. }
  3007. function parse(template, options = {}) {
  3008. return compilerCore.baseParse(template, shared.extend({}, parserOptions, options));
  3009. }
  3010. exports.DOMDirectiveTransforms = DOMDirectiveTransforms;
  3011. exports.DOMNodeTransforms = DOMNodeTransforms;
  3012. exports.TRANSITION = TRANSITION;
  3013. exports.TRANSITION_GROUP = TRANSITION_GROUP;
  3014. exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX;
  3015. exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC;
  3016. exports.V_MODEL_RADIO = V_MODEL_RADIO;
  3017. exports.V_MODEL_SELECT = V_MODEL_SELECT;
  3018. exports.V_MODEL_TEXT = V_MODEL_TEXT;
  3019. exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS;
  3020. exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS;
  3021. exports.V_SHOW = V_SHOW;
  3022. exports.compile = compile;
  3023. exports.createDOMCompilerError = createDOMCompilerError;
  3024. exports.parse = parse;
  3025. exports.parserOptions = parserOptions;
  3026. exports.transformStyle = transformStyle;
  3027. Object.keys(compilerCore).forEach(function (k) {
  3028. if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = compilerCore[k];
  3029. });