diff --git "a/.output/public/assets/markdown-b73q677t.js" "b/.output/public/assets/markdown-b73q677t.js" new file mode 100644--- /dev/null +++ "b/.output/public/assets/markdown-b73q677t.js" @@ -0,0 +1,5816 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./flowchart-elk-definition-170a3958-DwJg_SqN.js","./global-D3BYkvaa.js","./global-BBPDszaw.css","./_commonjs-dynamic-modules-BHR_E30J.js","./timeline-definition-8e5a9bc6-DcRKrR1Y.js","./is_dark-CgVt85wj.js","./mindmap-definition-44684416-BgB0IMap.js"])))=>i.map(i=>d[i]); +import{bm as e,bq as t,bo as n}from"./global-D3BYkvaa.js";var r,i;var a=function(){if(i)return r;function e(e,t){t=t?Array.isArray(t)?t:[t]:[],Object.freeze(t);var n=e.renderer.rules.link_open||this.defaultRender;e.renderer.rules.link_open=function(e,r,i,a,o){var s=function(e,t){var n,r,i=e.attrs[e.attrIndex("href")][1];for(n=0;n=55296&&e<=57343?"���":String.fromCharCode(e),r+=6;continue}}if(240==(248&a)&&r+91114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),r+=9;continue}}t+="�"}}return t}))}l.defaultChars=";/?:@&=+$,#",l.componentChars="";const u={};function d(e,t,n){"string"!=typeof t&&(n=t,t=d.defaultChars),void 0===n&&(n=!0);const r=function(e){let t=u[e];if(t)return t;t=u[e]=[];for(let n=0;n<128;n++){const e=String.fromCharCode(n);/^[0-9a-z]$/i.test(e)?t.push(e):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n=55296&&t<=57343){if(t>=55296&&t<=56319&&a+1=56320&&t<=57343){i+=encodeURIComponent(e[a]+e[a+1]),a++;continue}}i+="%EF%BF%BD"}else i+=encodeURIComponent(e[a])}return i}function p(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function h(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}d.defaultChars=";/?:@&=+$,-_.!~*'()#",d.componentChars="-_.!~*'()";const _=/^([a-z0-9.+-]+:)/i,m=/:[0-9]*$/,g=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,f=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),b=["'"].concat(f),E=["%","/","?",";","#"].concat(b),y=["/","?","#"],S=/^[+a-z0-9A-Z_-]{0,63}$/,T=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},C={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function x(e,t){if(e&&e instanceof h)return e;const n=new h;return n.parse(e,t),n}h.prototype.parse=function(e,t){let n,r,i,a=e;if(a=a.trim(),!t&&1===e.split("#").length){const e=g.exec(a);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let o=_.exec(a);if(o&&(o=o[0],n=o.toLowerCase(),this.protocol=o,a=a.substr(o.length)),(t||o||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===a.substr(0,2),!i||o&&v[o]||(a=a.substr(2),this.slashes=!0)),!v[o]&&(i||o&&!C[o])){let e,t,n=-1;for(let s=0;s127?r+="x":r+=n[e];if(!r.match(S)){const r=e.slice(0,t),i=e.slice(t+1),o=n.match(T);o&&(r.push(o[1]),i.unshift(o[2])),i.length&&(a=i.join(".")+a),this.hostname=r.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),o&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const s=a.indexOf("#");-1!==s&&(this.hash=a.substr(s),a=a.slice(0,s));const l=a.indexOf("?");return-1!==l&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),C[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this},h.prototype.parseHost=function(e){let t=m.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const A=Object.defineProperty({__proto__:null,decode:l,encode:d,format:p,parse:x},Symbol.toStringTag,{value:"Module"}),N=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,O=/[\0-\x1F\x7F-\x9F]/,R=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,w=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,k=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,I=Object.defineProperty({__proto__:null,Any:N,Cc:O,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:R,S:w,Z:k},Symbol.toStringTag,{value:"Module"}),D=new Uint16Array( +// prettier-ignore +'ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛��q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((e=>e.charCodeAt(0)))),M=new Uint16Array( +// prettier-ignore +"Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((e=>e.charCodeAt(0))));var L;const P=new Map([[0,65533], +// C1 Unicode control character reference replacements +[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),F= +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins +null!==(L=String.fromCodePoint)&&void 0!==L?L:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};var B,U;(U=B||(B={}))[U.NUM=35]="NUM",U[U.SEMI=59]="SEMI",U[U.EQUALS=61]="EQUALS",U[U.ZERO=48]="ZERO",U[U.NINE=57]="NINE",U[U.LOWER_A=97]="LOWER_A",U[U.LOWER_F=102]="LOWER_F",U[U.LOWER_X=120]="LOWER_X",U[U.LOWER_Z=122]="LOWER_Z",U[U.UPPER_A=65]="UPPER_A",U[U.UPPER_F=70]="UPPER_F",U[U.UPPER_Z=90]="UPPER_Z";var G,z,$,Y,q,H;function V(e){return e>=B.ZERO&&e<=B.NINE}function j(e){return e===B.EQUALS||function(e){return e>=B.UPPER_A&&e<=B.UPPER_Z||e>=B.LOWER_A&&e<=B.LOWER_Z||V(e)}(e)}(z=G||(G={}))[z.VALUE_LENGTH=49152]="VALUE_LENGTH",z[z.BRANCH_LENGTH=16256]="BRANCH_LENGTH",z[z.JUMP_TABLE=127]="JUMP_TABLE",(Y=$||($={}))[Y.EntityStart=0]="EntityStart",Y[Y.NumericStart=1]="NumericStart",Y[Y.NumericDecimal=2]="NumericDecimal",Y[Y.NumericHex=3]="NumericHex",Y[Y.NamedEntity=4]="NamedEntity",(H=q||(q={}))[H.Legacy=0]="Legacy",H[H.Strict=1]="Strict",H[H.Attribute=2]="Attribute";class W{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=$.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=q.Strict} +/** Resets the instance to make it reusable. */startEntity(e){this.decodeMode=e,this.state=$.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1} +/** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param string The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */write(e,t){switch(this.state){case $.EntityStart:return e.charCodeAt(t)===B.NUM?(this.state=$.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=$.NamedEntity,this.stateNamedEntity(e,t));case $.NumericStart:return this.stateNumericStart(e,t);case $.NumericDecimal:return this.stateNumericDecimal(e,t);case $.NumericHex:return this.stateNumericHex(e,t);case $.NamedEntity:return this.stateNamedEntity(e,t)}} +/** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===B.LOWER_X?(this.state=$.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=$.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){const i=n-t;this.result=this.result*Math.pow(r,i)+parseInt(e.substr(t,i),r),this.consumed+=i}} +/** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */stateNumericHex(e,t){const n=t;for(;t=B.UPPER_A&&r<=B.UPPER_F||r>=B.LOWER_A&&r<=B.LOWER_F)))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(i,3);t+=1}var r;return this.addToNumericResult(e,n,t,16),-1} +/** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */stateNumericDecimal(e,t){const n=t;for(;t=55296&&e<=57343||e>1114111?65533:null!==(t=P.get(e))&&void 0!==t?t:e}(this.result),this.consumed),this.errors&&(e!==B.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed} +/** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */stateNamedEntity(e,t){const{decodeTree:n}=this;let r=n[this.treeIndex],i=(r&G.VALUE_LENGTH)>>14;for(;t>14,0!==i){if(a===B.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==q.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1} +/** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:n}=this,r=(n[t]&G.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed} +/** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */emitNamedEntityData(e,t,n){const{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~G.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n} +/** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */end(){var e;switch(this.state){case $.NamedEntity:return 0===this.result||this.decodeMode===q.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity(); +// Otherwise, emit a numeric entity if we have one. +case $.NumericDecimal:return this.emitNumericEntity(0,2);case $.NumericHex:return this.emitNumericEntity(0,3);case $.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case $.EntityStart:return 0}}}function Q(e){let t="";const n=new W(e,(e=>t+=F(e)));return function(e,r){let i=0,a=0;for(;(a=e.indexOf("&",a))>=0;){t+=e.slice(i,a),n.startEntity(r);const o=n.write(e, +// Skip the "&" +a+1);if(o<0){i=a+n.end();break}i=a+o,a=0===o?i+1:i}const o=t+e.slice(i);return t="",o}}function K(e,t,n,r){const i=(t&G.BRANCH_LENGTH)>>7,a=t&G.JUMP_TABLE;if(0===i)return 0!==a&&r===a?n:-1;if(a){const t=r-a;return t<0||t>=i?-1:e[n+t]-1}let o=n,s=o+i-1;for(;o<=s;){const t=o+s>>>1,n=e[t];if(nr))return e[t+i];s=t-1}}return-1}const X=Q(D);function Z(e,t=q.Legacy){return X(e,t)}function J(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)}Q(M);const ee=Object.prototype.hasOwnProperty;function te(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e}function ne(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function re(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(!!(65535&~e&&65534!=(65535&e))&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function ie(e){if(e>65535){const t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const ae=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,oe=new RegExp(ae.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),se=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function le(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(oe,(function(e,t,n){return t||function(e,t){if(35===t.charCodeAt(0)&&se.test(t)){const n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return re(n)?ie(n):e}const n=Z(e);return n!==e?n:e}(e,n)}))}const ce=/[&<>"]/,ue=/[&<>"]/g,de={"&":"&","<":"<",">":">",'"':"""};function pe(e){return de[e]}function he(e){return ce.test(e)?e.replace(ue,pe):e}const _e=/[.?*+^$[\]\\(){}|-]/g;function me(e){switch(e){case 9:case 32:return!0}return!1}function ge(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9: +// \t +case 10: +// \n +case 11: +// \v +case 12: +// \f +case 13: +// \r +case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function fe(e){return R.test(e)||w.test(e)}function be(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Ee(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const ye={mdurl:A,ucmicro:I},Se=Object.defineProperty({__proto__:null,arrayReplaceAt:ne,assign:te,escapeHtml:he,escapeRE:function(e){return e.replace(_e,"\\$&")},fromCodePoint:ie,has:function(e,t){return ee.call(e,t)},isMdAsciiPunct:be,isPunctChar:fe,isSpace:me,isString:J,isValidEntityCode:re,isWhiteSpace:ge,lib:ye,normalizeReference:Ee,unescapeAll:le,unescapeMd:function(e){return e.indexOf("\\")<0?e:e.replace(ae,"$1")}},Symbol.toStringTag,{value:"Module"});const Te=Object.defineProperty({__proto__:null,parseLinkDestination:function(e,t,n){let r,i=t;const a={ok:!1,pos:0,str:""};if(60===e.charCodeAt(i)){for(i++;i32))return a;if(41===r){if(0===o)break;o--}i++}return t===i||0!==o||(a.str=le(e.slice(t,i)),a.pos=i,a.ok=!0),a},parseLinkLabel:function(e,t,n){let r,i,a,o;const s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos=n)return o;let r=e.charCodeAt(a);if(34!==r&&39!==r&&40!==r)return o;t++,a++,40===r&&(r=41),o.marker=r}for(;a"+he(a.content)+""},ve.code_block=function(e,t,n,r,i){const a=e[t];return""+he(e[t].content)+"\n"},ve.fence=function(e,t,n,r,i){const a=e[t],o=a.info?le(a.info).trim():"";let s,l="",c="";if(o){const e=o.split(/(\s+)/g);l=e[0],c=e.slice(2).join("")}if(s=n.highlight&&n.highlight(a.content,l,c)||he(a.content),0===s.indexOf("${s}\n`}return`
${s}
\n`},ve.image=function(e,t,n,r,i){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=i.renderInlineAsText(a.children,n,r),i.renderToken(e,t,n)},ve.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},ve.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},ve.text=function(e,t){return he(e[t].content)},ve.html_block=function(e,t){return e[t].content},ve.html_inline=function(e,t){return e[t].content},Ce.prototype.renderAttrs=function(e){let t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t\n":">",i},Ce.prototype.renderInline=function(e,t,n){let r="";const i=this.rules;for(let a=0,o=e.length;a=0&&(n=this.attrs[t][1]),n},Ae.prototype.attrJoin=function(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},Ne.prototype.Token=Ae;const Oe=/\r\n?|\n/g,Re=/\0/g;function we(e){return/^<\/a\s*>/i.test(e)}const ke=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,Ie=/\((c|tm|r)\)/i,De=/\((c|tm|r)\)/gi,Me={c:"©",r:"®",tm:"™"};function Le(e,t){return Me[t.toLowerCase()]}function Pe(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||(r.content=r.content.replace(De,Le)),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++}}function Fe(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||ke.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++}}const Be=/['"]/,Ue=/['"]/g;function Ge(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function ze(e,t){let n;const r=[];for(let i=0;i=0&&!(r[n].level<=o);n--);if(r.length=n+1,"text"!==a.type)continue;let s=a.content,l=0,c=s.length;e:for(;l=0)_=s.charCodeAt(u.index-1);else for(n=i-1;n>=0&&("softbreak"!==e[n].type&&"hardbreak"!==e[n].type);n--)if(e[n].content){_=e[n].content.charCodeAt(e[n].content.length-1);break}let m=32;if(l=48&&_<=57&&(p=d=!1),d&&p&&(d=g,p=f),d||p){if(p)for(n=r.length-1;n>=0;n--){let d=r[n];if(r[n].level=0;o--){const s=i[o];if("link_close"!==s.type){if("html_inline"===s.type&&(n=s.content,/^\s]/i.test(n)&&a>0&&a--,we(s.content)&&a++),!(a>0)&&"text"===s.type&&e.md.linkify.test(s.content)){const n=s.content;let a=e.md.linkify.match(n);const l=[];let c=s.level,u=0;a.length>0&&0===a[0].index&&o>0&&"text_special"===i[o-1].type&&(a=a.slice(1));for(let t=0;tu){const t=new e.Token("text","",0);t.content=n.slice(u,s),t.level=c,l.push(t)}const d=new e.Token("link_open","a",1);d.attrs=[["href",i]],d.level=c++,d.markup="linkify",d.info="auto",l.push(d);const p=new e.Token("text","",0);p.content=o,p.level=c,l.push(p);const h=new e.Token("link_close","a",-1);h.level=--c,h.markup="linkify",h.info="auto",l.push(h),u=a[t].lastIndex}if(u=0;t--)"inline"===e.tokens[t].type&&(Ie.test(e.tokens[t].content)&&Pe(e.tokens[t].children),ke.test(e.tokens[t].content)&&Fe(e.tokens[t].children))}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&Be.test(e.tokens[t].content)&&ze(e.tokens[t].children,e)}], +// `text_join` finds `text_special` tokens (for escape sequences) +// and joins them with the rest of the text +["text_join",function(e){let t,n;const r=e.tokens,i=r.length;for(let a=0;a0&&this.level++,this.tokens.push(r),r},qe.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},qe.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;et;)if(!me(this.src.charCodeAt(--e)))return e+1;return e},qe.prototype.skipChars=function(e,t){for(let n=this.src.length;en;)if(t!==this.src.charCodeAt(--e))return e+1;return e},qe.prototype.getLines=function(e,t,n,r){if(e>=t)return"";const i=new Array(t-e);for(let a=0,o=e;on?new Array(e-n+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l)}return i.join("")},qe.prototype.Token=Ae;function He(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function Ve(e){const t=[],n=e.length;let r=0,i=e.charCodeAt(r),a=!1,o=0,s="";for(;r=r)return-1;let a=e.src.charCodeAt(i++);if(a<48||a>57)return-1;for(;;){if(i>=r)return-1;if(a=e.src.charCodeAt(i++),!(a>=48&&a<=57)){if(41===a||46===a)break;return-1}if(i-n>=10)return-1}return i`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Ke="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Xe=new RegExp("^(?:"+Qe+"|"+Ke+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),Ze=new RegExp("^(?:"+Qe+"|"+Ke+")"),Je=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Ze.source+"\\s*$"),/^$/,!1]];const et=[ +// First 2 params - rule name & source. Secondary array - list of rules, +// which can be terminated by this one. +["table",function(e,t,n,r){if(t+2>n)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let a=e.bMarks[i]+e.tShift[i];if(a>=e.eMarks[i])return!1;const o=e.src.charCodeAt(a++);if(124!==o&&45!==o&&58!==o)return!1;if(a>=e.eMarks[i])return!1;const s=e.src.charCodeAt(a++);if(124!==s&&45!==s&&58!==s&&!me(s))return!1;if(45===o&&me(s))return!1;for(;a=4)return!1;c=Ve(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const d=c.length;if(0===d||d!==u.length)return!1;if(r)return!0;const p=e.parentType;e.parentType="table";const h=e.md.block.ruler.getRules("blockquote"),_=[t,0];e.push("table_open","table",1).map=_,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let f=0;f=4)break;if(c=Ve(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),g+=d-c.length,g>65536)break;if(i===t+2){e.push("tbody_open","tbody",1).map=m=[t+2,0]}e.push("tr_open","tr",1).map=[i,i+1];for(let t=0;t=4))break;r++,i=r}e.line=i;const a=e.push("code_block","code",0);return a.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",a.map=[t,e.line],!0}],["fence",function(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(i+3>a)return!1;const o=e.src.charCodeAt(i);if(126!==o&&96!==o)return!1;let s=i;i=e.skipChars(i,o);let l=i-s;if(l<3)return!1;const c=e.src.slice(s,i),u=e.src.slice(i,a);if(96===o&&u.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let d=t,p=!1;for(;(d++,!(d>=n))&&(i=s=e.bMarks[d]+e.tShift[d],a=e.eMarks[d],!(i=4||(i=e.skipChars(i,o),i-s=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(r)return!0;const s=[],l=[],c=[],u=[],d=e.md.block.ruler.getRules("blockquote"),p=e.parentType;e.parentType="blockquote";let h,_=!1;for(h=t;h=a)break;if(62===e.src.charCodeAt(i++)&&!t){let t,n,r=e.sCount[h]+1;32===e.src.charCodeAt(i)?(i++,r++,n=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[h]+r)%4==3?(i++,r++,n=!1):n=!0):t=!1;let o=r;for(s.push(e.bMarks[h]),e.bMarks[h]=i;i=a,l.push(e.bsCount[h]),e.bsCount[h]=e.sCount[h]+1+(t?1:0),c.push(e.sCount[h]),e.sCount[h]=o-r,u.push(e.tShift[h]),e.tShift[h]=i-e.bMarks[h];continue}if(_)break;let r=!1;for(let i=0,a=d.length;i";const f=[t,0];g.map=f,e.md.block.tokenize(e,t,h),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=o,e.parentType=p,f[1]=e.line;for(let b=0;b=4)return!1;let a=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(a++);if(42!==o&&45!==o&&95!==o)return!1;let s=1;for(;a=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(h=!0),(p=We(e,l))>=0){if(u=!0,o=e.bMarks[l]+e.tShift[l],d=Number(e.src.slice(o,p-1)),h&&1!==d)return!1}else{if(!((p=je(e,l))>=0))return!1;u=!1}if(h&&e.skipSpaces(p)>=e.eMarks[l])return!1;if(r)return!0;const _=e.src.charCodeAt(p-1),m=e.tokens.length;u?(s=e.push("ordered_list_open","ol",1),1!==d&&(s.attrs=[["start",d]])):s=e.push("bullet_list_open","ul",1);const g=[l,0];s.map=g,s.markup=String.fromCharCode(_);let f=!1;const b=e.md.block.ruler.getRules("list"),E=e.parentType;for(e.parentType="list";l=i?1:r-t,h>4&&(h=1);const m=t+h;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(_);const g=[l,0];s.map=g,u&&(s.info=e.src.slice(o,p-1));const E=e.tight,y=e.tShift[l],S=e.sCount[l],T=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=m,e.tight=!0,e.tShift[l]=d-e.bMarks[l],e.sCount[l]=r,d>=i&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,!0),e.tight&&!f||(c=!1),f=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=T,e.tShift[l]=y,e.sCount[l]=S,e.tight=E,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(_),l=e.line,g[1]=l,l>=n)break;if(e.sCount[l]=4)break;let v=!1;for(let i=0,a=b.length;i=4)return!1;if(91!==e.src.charCodeAt(i))return!1;function s(t){const n=e.lineMax;if(t>=n||e.isEmpty(t))return null;let r=!1;if(e.sCount[t]-e.blkIndent>3&&(r=!0),e.sCount[t]<0&&(r=!0),!r){const r=e.md.block.ruler.getRules("reference"),i=e.parentType;e.parentType="reference";let a=!1;for(let o=0,s=r.length;o=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let o=e.src.slice(i,a),s=0;for(;s=4)return!1;let o=e.src.charCodeAt(i);if(35!==o||i>=a)return!1;let s=1;for(o=e.src.charCodeAt(++i);35===o&&i6||ii&&me(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(s),1);c.markup="########".slice(0,s),c.map=[t,e.line];const u=e.push("inline","",0);return u.content=e.src.slice(i,a).trim(),u.map=[t,e.line],u.children=[],e.push("heading_close","h"+String(s),-1).markup="########".slice(0,s),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let a,o=0,s=t+1;for(;s3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s];const n=e.eMarks[s];if(t=n))){o=61===a?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,a=r.length;i3)continue;if(e.sCount[a]<0)continue;let t=!1;for(let i=0,o=r.length;i=n))&&!(e.sCount[o]=a){e.line=n;break}const t=e.line;let l=!1;for(let a=0;a=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(i),r},nt.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),i=e>0?this.src.charCodeAt(e-1):32;let a=e;for(;a?@[]^_`{|}~-".split("").forEach((function(e){at[e.charCodeAt(0)]=1}));const st={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return!1;if(126!==r)return!1;const i=e.scanDelims(e.pos,!0);let a=i.length;const o=String.fromCharCode(r);if(a<2)return!1;let s;a%2&&(s=e.push("text","",0),s.content=o,a--);for(let l=0;l=0;n--){const r=t[n];if(95!==r.marker&&42!==r.marker)continue;if(-1===r.end)continue;const i=t[r.end],a=n>0&&t[n-1].end===r.end+1&&// check that first two markers match and adjacent +t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&// check that last two markers are adjacent (we can safely assume they match) +t[r.end+1].token===i.token+1,o=String.fromCharCode(r.marker),s=e.tokens[r.token];s.type=a?"strong_open":"em_open",s.tag=a?"strong":"em",s.nesting=1,s.markup=a?o+o:o,s.content="";const l=e.tokens[i.token];l.type=a?"strong_close":"em_close",l.tag=a?"strong":"em",l.nesting=-1,l.markup=a?o+o:o,l.content="",a&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--)}}const ct={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return!1;if(95!==r&&42!==r)return!1;const i=e.scanDelims(e.pos,42===r);for(let a=0;a\x00-\x20]*)$/;const pt=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,ht=/^&([a-z][a-z0-9]{1,31});/i;function _t(e){const t={},n=e.length;if(!n)return;let r=0,i=-2;const a=[];for(let o=0;os;l-=a[l]+1){const t=e[l];if(t.marker===n.marker&&(t.open&&t.end<0)){let r=!1;if((t.close||n.open)&&(t.length+n.length)%3==0&&(t.length%3==0&&n.length%3==0||(r=!0)),!r){const r=l>0&&!e[l-1].open?a[l-1]+1:0;a[o]=o-l+r,a[l]=r,n.open=!1,t.end=o,t.close=!1,c=-1,i=-2;break}}}-1!==c&&(t[n.marker][(n.open?3:0)+(n.length||0)%3]=c)}}const mt=[["text",function(e,t){let n=e.pos;for(;n0)return!1;const n=e.pos;if(n+3>e.posMax)return!1;if(58!==e.src.charCodeAt(n))return!1;if(47!==e.src.charCodeAt(n+1))return!1;if(47!==e.src.charCodeAt(n+2))return!1;const r=e.pending.match(it);if(!r)return!1;const i=r[1],a=e.md.linkify.matchAtStart(e.src.slice(n-i.length));if(!a)return!1;let o=a.url;if(o.length<=i.length)return!1;o=o.replace(/\*+$/,"");const s=e.md.normalizeLink(o);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",s]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(o);const n=e.push("link_close","a",-1);n.markup="linkify",n.info="auto"}return e.pos+=o.length-i.length,!0}],["newline",function(e,t){let n=e.pos;if(10!==e.src.charCodeAt(n))return!1;const r=e.pending.length-1,i=e.posMax;if(!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){let t=r-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n=r)return!1;let i=e.src.charCodeAt(n);if(10===i){for(t||e.push("hardbreak","br",0),n++;n=55296&&i<=56319&&n+1=56320&&t<=57343&&(a+=e.src[n+1],n++)}const o="\\"+a;if(!t){const t=e.push("text_special","",0);i<256&&0!==at[i]?t.content=a:t.content=o,t.markup=o,t.info="escape"}return e.pos=n+1,!0}],["backticks",function(e,t){let n=e.pos;if(96!==e.src.charCodeAt(n))return!1;const r=n;n++;const i=e.posMax;for(;n=d)return!1;if(l=_,i=e.md.helpers.parseLinkDestination(e.src,_,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?_=i.pos:o="",l=_;_=d||41!==e.src.charCodeAt(_))&&(c=!0),_++}if(c){if(void 0===e.env.references)return!1;if(_=0?r=e.src.slice(l,_++):_=h+1):_=h+1,r||(r=e.src.slice(p,h)),a=e.env.references[Ee(r)],!a)return e.pos=u,!1;o=a.href,s=a.title}if(!t){e.pos=p,e.posMax=h;const t=[["href",o]];e.push("link_open","a",1).attrs=t,s&&t.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=_,e.posMax=d,!0}],["image",function(e,t){let n,r,i,a,o,s,l,c,u="";const d=e.pos,p=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const h=e.pos+2,_=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(_<0)return!1;if(a=_+1,a=p)return!1;for(c=a,s=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),s.ok&&(u=e.md.normalizeLink(s.str),e.md.validateLink(u)?a=s.pos:u=""),c=a;a=p||41!==e.src.charCodeAt(a))return e.pos=d,!1;a++}else{if(void 0===e.env.references)return!1;if(a=0?i=e.src.slice(c,a++):a=_+1):a=_+1,i||(i=e.src.slice(h,_)),o=e.env.references[Ee(i)],!o)return e.pos=d,!1;u=o.href,l=o.title}if(!t){r=e.src.slice(h,_);const t=[];e.md.inline.parse(r,e.md,e.env,t);const n=e.push("image","img",0),i=[["src",u],["alt",""]];n.attrs=i,n.children=t,n.content=r,l&&i.push(["title",l])}return e.pos=a,e.posMax=p,!0}],["autolink",function(e,t){let n=e.pos;if(60!==e.src.charCodeAt(n))return!1;const r=e.pos,i=e.posMax;for(;;){if(++n>=i)return!1;const t=e.src.charCodeAt(n);if(60===t)return!1;if(62===t)break}const a=e.src.slice(r+1,n);if(dt.test(a)){const n=e.md.normalizeLink(a);if(!e.md.validateLink(n))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto"}return e.pos+=a.length+2,!0}if(ut.test(a)){const n=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(n))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto"}return e.pos+=a.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(60!==e.src.charCodeAt(r)||r+2>=n)return!1;const i=e.src.charCodeAt(r+1);if(33!==i&&63!==i&&47!==i&&!function(e){const t=32|e;return t>=97&&t<=122}(i))return!1;const a=e.src.slice(r).match(Xe);if(!a)return!1;if(!t){const t=e.push("html_inline","",0);t.content=a[0],o=t.content,/^\s]/i.test(o)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var o;return e.pos+=a[0].length,!0}],["entity",function(e,t){const n=e.pos,r=e.posMax;if(38!==e.src.charCodeAt(n))return!1;if(n+1>=r)return!1;if(35===e.src.charCodeAt(n+1)){const r=e.src.slice(n).match(pt);if(r){if(!t){const t="x"===r[1][0].toLowerCase()?parseInt(r[1].slice(1),16):parseInt(r[1],10),n=e.push("text_special","",0);n.content=re(t)?ie(t):ie(65533),n.markup=r[0],n.info="entity"}return e.pos+=r[0].length,!0}}else{const r=e.src.slice(n).match(ht);if(r){const n=Z(r[0]);if(n!==r[0]){if(!t){const t=e.push("text_special","",0);t.content=n,t.markup=r[0],t.info="entity"}return e.pos+=r[0].length,!0}}}return!1}]],gt=[["balance_pairs",function(e){const t=e.tokens_meta,n=e.tokens_meta.length;_t(e.delimiters);for(let r=0;r0&&r++,"text"===i[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;o||e.pos++,a[t]=e.pos},ft.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(o){if(e.pos>=r)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},ft.prototype.parse=function(e,t,n,r){const i=new this.State(e,t,n,r);this.tokenize(i);const a=this.ruler2.getRules(""),o=a.length;for(let s=0;s=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Ct="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function xt(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=N.source,t.src_Cc=O.source,t.src_Z=k.source,t.src_P=R.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const n="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+n+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+// allow `,,,` in paths +",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root=// Allow letters & digits (http://test1) +"(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation. +// but can start with > (markdown blockquote) +"(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy=// Fuzzy link can't be prepended with .:/\- and non punctuation. +// but can start with > (markdown blockquote) +"(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),n=e.__tlds__.slice();function r(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),n.push(t.src_xn),t.src_tlds=n.join("|"),t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const i=[];function a(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const n=e.__schemas__[t];if(null===n)return;const r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===Et(n))return!function(e){return"[object RegExp]"===Et(e)}(n.validate)?yt(n.validate)?r.validate=n.validate:a(t,n):r.validate=function(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(yt(n.normalize)?r.normalize=n.normalize:n.normalize?a(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===Et(e)}(n)?a(t,n):i.push(t)})),i.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const o=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(St).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+o+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function At(e,t){const n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function Nt(e,t){const n=new At(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function Ot(e,t){if(!(this instanceof Ot))return new Ot(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||Tt.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=bt({},Tt,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=bt({},vt,e),this.__compiled__={},this.__tlds__=Ct,this.__tlds_replaced__=!1,this.re={},xt(this)}Ot.prototype.add=function(e,t){return this.__schemas__[e]=t,xt(this),this},Ot.prototype.set=function(e){return this.__opts__=bt(this.__opts__,e),this},Ot.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,n,r,i,a,o,s,l,c;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;null!==(t=s.exec(e));)if(i=this.testSchemaAt(e,t[2],s.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(r=e.match(this.re.email_fuzzy))&&(a=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||athis.__last_index__)&&(this.__schema__="mailto:",this.__index__=a,this.__last_index__=o))),this.__index__>=0},Ot.prototype.pretest=function(e){return this.re.pretest.test(e)},Ot.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},Ot.prototype.match=function(e){const t=[];let n=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(Nt(this,n)),n=this.__last_index__);let r=n?e.slice(n):e;for(;this.test(r);)t.push(Nt(this,n)),r=r.slice(this.__last_index__),n+=this.__last_index__;return t.length?t:null},Ot.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);return n?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n,Nt(this,0)):null},Ot.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),xt(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,xt(this),this)},Ot.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},Ot.prototype.onCompile=function(){};const Rt=2147483647,wt=36,kt=/^xn--/,It=/[^\0-\x7F]/,Dt=/[\x2E\u3002\uFF0E\uFF61]/g,Mt={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Lt=Math.floor,Pt=String.fromCharCode;function Ft(e){throw new RangeError(Mt[e])}function Bt(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const i=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(Dt,".")).split("."),t).join(".");return r+i}function Ut(e){const t=[];let n=0;const r=e.length;for(;n=55296&&i<=56319&&n>1,e+=Lt(e/t);e>455;r+=wt)e=Lt(e/35);return Lt(r+36*e/(e+38))},$t=function(e){const t=[],n=e.length;let r=0,i=128,a=72,o=e.lastIndexOf("-");o<0&&(o=0);for(let l=0;l=128&&Ft("not-basic"),t.push(e.charCodeAt(l));for(let l=o>0?o+1:0;l=n&&Ft("invalid-input");const o=(s=e.charCodeAt(l++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:wt;o>=wt&&Ft("invalid-input"),o>Lt((Rt-r)/t)&&Ft("overflow"),r+=o*t;const c=i<=a?1:i>=a+26?26:i-a;if(oLt(Rt/u)&&Ft("overflow"),t*=u}const c=t.length+1;a=zt(r-o,c,0==o),Lt(r/c)>Rt-i&&Ft("overflow"),i+=Lt(r/c),r%=c,t.splice(r++,0,i)}var s;return String.fromCodePoint(...t)},Yt=function(e){const t=[],n=(e=Ut(e)).length;let r=128,i=0,a=72;for(const l of e)l<128&&t.push(Pt(l));const o=t.length;let s=o;for(o&&t.push("-");s=r&&tLt((Rt-i)/l)&&Ft("overflow"),i+=(n-r)*l,r=n;for(const c of e)if(cRt&&Ft("overflow"),c===r){let e=i;for(let n=wt;;n+=wt){const r=n<=a?1:n>=a+26?26:n-a;if(e) +xhtmlOut:!1, +// Convert '\n' in paragraphs into
+breaks:!1, +// CSS language prefix for fenced blocks +langPrefix:"language-", +// autoconvert URL-like texts to links +linkify:!1, +// Enable some language-neutral replacements + quotes beautification +typographer:!1, +// Double + single quotes replacement pairs, when typographer enabled, +// and smartquotes on. Could be either a String or an Array. +// For example, you can use '«»„“' for Russian, '„“‚‘' for German, +// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). +quotes:"“”‘’", +/* “”‘’ */ +// Highlighter function. Should return escaped HTML, +// or '' if the source string is not changed and should be escaped externaly. +// If result starts with ) +xhtmlOut:!1, +// Convert '\n' in paragraphs into
+breaks:!1, +// CSS language prefix for fenced blocks +langPrefix:"language-", +// autoconvert URL-like texts to links +linkify:!1, +// Enable some language-neutral replacements + quotes beautification +typographer:!1, +// Double + single quotes replacement pairs, when typographer enabled, +// and smartquotes on. Could be either a String or an Array. +// For example, you can use '«»„“' for Russian, '„“‚‘' for German, +// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). +quotes:"“”‘’", +/* “”‘’ */ +// Highlighter function. Should return escaped HTML, +// or '' if the source string is not changed and should be escaped externaly. +// If result starts with ) +xhtmlOut:!0, +// Convert '\n' in paragraphs into
+breaks:!1, +// CSS language prefix for fenced blocks +langPrefix:"language-", +// autoconvert URL-like texts to links +linkify:!1, +// Enable some language-neutral replacements + quotes beautification +typographer:!1, +// Double + single quotes replacement pairs, when typographer enabled, +// and smartquotes on. Could be either a String or an Array. +// For example, you can use '«»„“' for Russian, '„“‚‘' for German, +// and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp). +quotes:"“”‘’", +/* “”‘’ */ +// Highlighter function. Should return escaped HTML, +// or '' if the source string is not changed and should be escaped externaly. +// If result starts with =0))try{t.hostname=qt(t.hostname)}catch(n){}return d(p(t))}function Zt(e){const t=x(e,!0);if(t.hostname&&(!t.protocol||Kt.indexOf(t.protocol)>=0))try{t.hostname=Ht(t.hostname)}catch(n){}return l(p(t),l.defaultChars+"%")}function Jt(e,t){if(!(this instanceof Jt))return new Jt(e,t);t||J(e)||(t=e||{},e="default"),this.inline=new ft,this.block=new tt,this.core=new Ye,this.renderer=new Ce,this.linkify=new Ot,this.validateLink=Qt,this.normalizeLink=Xt,this.normalizeLinkText=Zt,this.utils=Se,this.helpers=te({},Te),this.options={},this.configure(e),t&&this.set(t)}Jt.prototype.set=function(e){return te(this.options,e),this},Jt.prototype.configure=function(e){const t=this;if(J(e)){const t=e;if(!(e=Vt[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)})),this},Jt.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},Jt.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},Jt.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},Jt.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},Jt.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},Jt.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},Jt.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var en,tn,nn,rn={exports:{}};function an(){return en?rn.exports:(en=1,"undefined"!=typeof self&&self,e=function(){ +/******/ +return function(){var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){ +/* binding */ +return Hr}});class n{ +// Error start position based on passed-in Token or ParseNode. +// Length of affected text based on passed-in Token or ParseNode. +// The underlying error message without any context added. +constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;let r,i,a="KaTeX parse error: "+e;const o=t&&t.loc;if(o&&o.start<=o.end){const e=o.lexer.input;r=o.start,i=o.end,r===e.length?a+=" at end of input: ":a+=" at position "+(r+1)+": ";const t=e.slice(r,i).replace(/[^]/g,"$&̲");let n,s;n=r>15?"…"+e.slice(r-15,r):e.slice(0,r),s=i+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g,s=function(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?s(e.body[0]):e:"font"===e.type?s(e.body):e};var l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(e=>a[e]))},hyphenate:function(e){return e.replace(i,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){const t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){const t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?":"!==t[2]?null:/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}};const c={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function u(e){if(e.default)return e.default;const t=e.type,n=Array.isArray(t)?t[0]:t;if("string"!=typeof n)return n.enum[0];switch(n){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class d{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(const t in c)if(c.hasOwnProperty(t)){const n=c[t];this[t]=void 0!==e[t]?n.processor?n.processor(e[t]):e[t]:u(n)}} +/** + * Report nonstrict (non-LaTeX-compatible) input. + * Can safely not be called if `this.strict` is false in JavaScript. + */reportNonstrict(e,t,n){let i=this.strict;if("function"==typeof i&&(i=i(e,t,n)),i&&"ignore"!==i&&(!0===i||"error"===i))throw new r("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",n)} +/** + * Check whether to apply strict (LaTeX-adhering) behavior for unusual + * input (like `\\`). Unlike `nonstrict`, will not throw an error; + * instead, "error" translates to a return value of `true`, while "ignore" + * translates to a return value of `false`. May still print a warning: + * "warn" prints a warning and returns `false`. + * This is for the second category of `errorCode`s listed in the README. + */useStrictBehavior(e,t,n){let r=this.strict;if("function"==typeof r)try{r=r(e,t,n)}catch(i){r="error"}return!(!r||"ignore"===r||!0!==r&&"error"!==r)} +/** + * Check whether to test potentially dangerous input, and return + * `true` (trusted) or `false` (untrusted). The sole argument `context` + * should be an object with `command` field specifying the relevant LaTeX + * command (as a string starting with `\`), and any other arguments, etc. + * If `context` has a `url` field, a `protocol` field will automatically + * get added by this function (changing the specified object). + */isTrusted(e){if(e.url&&!e.protocol){const t=l.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}const t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)}}class p{constructor(e,t,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=n} +/** + * Get the style of a superscript given a base in the current style. + */sup(){return h[_[this.id]]} +/** + * Get the style of a subscript given a base in the current style. + */sub(){return h[m[this.id]]} +/** + * Get the style of a fraction numerator given the fraction in the current + * style. + */fracNum(){return h[g[this.id]]} +/** + * Get the style of a fraction denominator given the fraction in the current + * style. + */fracDen(){return h[f[this.id]]} +/** + * Get the cramped version of a style (in particular, cramping a cramped style + * doesn't change the style). + */cramp(){return h[b[this.id]]} +/** + * Get a text or display version of this style. + */text(){return h[E[this.id]]} +/** + * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle) + */isTight(){return this.size>=2}}const h=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],_=[4,5,4,5,6,7,6,7],m=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],f=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],E=[0,1,2,3,2,3,2,3];var y={DISPLAY:h[0],TEXT:h[2],SCRIPT:h[4],SCRIPTSCRIPT:h[6]};const S=[{ +// Latin characters beyond the Latin-1 characters we have metrics for. +// Needed for Czech, Hungarian and Turkish text, for example. +name:"latin",blocks:[[256,591], +// Latin Extended-A and Latin Extended-B +[768,879]]},{ +// The Cyrillic script used by Russian and related languages. +// A Cyrillic subset used to be supported as explicitly defined +// symbols in symbols.js +name:"cyrillic",blocks:[[1024,1279]]},{ +// Armenian +name:"armenian",blocks:[[1328,1423]]},{ +// The Brahmic scripts of South and Southeast Asia +// Devanagari (0900–097F) +// Bengali (0980–09FF) +// Gurmukhi (0A00–0A7F) +// Gujarati (0A80–0AFF) +// Oriya (0B00–0B7F) +// Tamil (0B80–0BFF) +// Telugu (0C00–0C7F) +// Kannada (0C80–0CFF) +// Malayalam (0D00–0D7F) +// Sinhala (0D80–0DFF) +// Thai (0E00–0E7F) +// Lao (0E80–0EFF) +// Tibetan (0F00–0FFF) +// Myanmar (1000–109F) +name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{ +// Chinese and Japanese. +// The "k" in cjk is for Korean, but we've separated Korean out +name:"cjk",blocks:[[12288,12543], +// CJK symbols and punctuation, Hiragana, Katakana +[19968,40879], +// CJK ideograms +[65280,65376]]},{ +// Korean +name:"hangul",blocks:[[44032,55215]]}],T=[];function v(e){for(let t=0;t=T[t]&&e<=T[t+1])return!0;return!1}S.forEach((e=>e.blocks.forEach((e=>T.push(...e)))));const C=80,x={ +// The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main +doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z", +// doublerightarrow is from glyph U+21D2 in font KaTeX Main +doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z", +// leftarrow is from glyph U+2190 in font KaTeX Main +leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z", +// overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular +leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z", +// overgroup is from the MnSymbol package (public domain) +leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z", +// Harpoons are from glyph U+21BD in font KaTeX Main +leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z", +// hook is from glyph U+21A9 in font KaTeX Main +lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z", +// tofrom is from glyph U+21C4 in font KaTeX AMS Regular +leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z", +// twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular +twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z", +// tilde1 is a modified version of a glyph from the MnSymbol package +tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z", +// ditto tilde2, tilde3, & tilde4 +tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z", +// vec is from glyph U+20D7 in font KaTeX Main +vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z", +// widehat1 is a modified version of a glyph from the MnSymbol package +widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z", +// ditto widehat2, widehat3, & widehat4 +widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", +// widecheck paths are all inverted versions of widehat +widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", +// The next ten paths support reaction arrows from the mhchem package. +// Arrows for \ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX +// baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main +baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z", +// rightarrowabovebar is mostly from glyph U+2192, KaTeX Main +rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z", +// The short left harpoon has 0.5em (i.e. 500 units) kern on the left end. +// Ref from mhchem.sty: \rlap{\raisebox{-.22ex}{$\kern0.5em +baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};class A{ +// HtmlDomNode +// Never used; needed for satisfying interface. +constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return l.contains(this.classes,e)} +/** Convert the fragment into a node. */toNode(){const e=document.createDocumentFragment();for(let t=0;te.toText())).join("")}}var N={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}};const O={slant:[.25,.25,.25], +// sigma1 +space:[0,0,0], +// sigma2 +stretch:[0,0,0], +// sigma3 +shrink:[0,0,0], +// sigma4 +xHeight:[.431,.431,.431], +// sigma5 +quad:[1,1.171,1.472], +// sigma6 +extraSpace:[0,0,0], +// sigma7 +num1:[.677,.732,.925], +// sigma8 +num2:[.394,.384,.387], +// sigma9 +num3:[.444,.471,.504], +// sigma10 +denom1:[.686,.752,1.025], +// sigma11 +denom2:[.345,.344,.532], +// sigma12 +sup1:[.413,.503,.504], +// sigma13 +sup2:[.363,.431,.404], +// sigma14 +sup3:[.289,.286,.294], +// sigma15 +sub1:[.15,.143,.2], +// sigma16 +sub2:[.247,.286,.4], +// sigma17 +supDrop:[.386,.353,.494], +// sigma18 +subDrop:[.05,.071,.1], +// sigma19 +delim1:[2.39,1.7,1.98], +// sigma20 +delim2:[1.01,1.157,1.42], +// sigma21 +axisHeight:[.25,.25,.25], +// sigma22 +// These font metrics are extracted from TeX by using tftopl on cmex10.tfm; +// they correspond to the font parameters of the extension fonts (family 3). +// See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to +// match cmex7, we'd use cmex7.tfm values for script and scriptscript +// values. +defaultRuleThickness:[.04,.049,.049], +// xi8; cmex7: 0.049 +bigOpSpacing1:[.111,.111,.111], +// xi9 +bigOpSpacing2:[.166,.166,.166], +// xi10 +bigOpSpacing3:[.2,.2,.2], +// xi11 +bigOpSpacing4:[.6,.611,.611], +// xi12; cmex7: 0.611 +bigOpSpacing5:[.1,.143,.143], +// xi13; cmex7: 0.143 +// The \sqrt rule width is taken from the height of the surd character. +// Since we use the same font at all sizes, this thickness doesn't scale. +sqrtRuleThickness:[.04,.04,.04], +// This value determines how large a pt is, for metrics which are defined +// in terms of pts. +// This value is also used in katex.scss; if you change it make sure the +// values match. +ptPerEm:[10,10,10], +// The space between adjacent `|` columns in an array definition. From +// `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm. +doubleRuleSep:[.2,.2,.2], +// The width of separator lines in {array} environments. From +// `\showthe\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm. +arrayRuleWidth:[.04,.04,.04], +// Two values from LaTeX source2e: +fboxsep:[.3,.3,.3], +// 3 pt / ptPerEm +fboxrule:[.04,.04,.04]},R={ +// Latin-1 +"Å":"A","Ð":"D","Þ":"o","å":"a","ð":"d","þ":"o", +// Cyrillic +"А":"A","Б":"B","В":"B","Г":"F","Д":"A","Е":"E","Ж":"K","З":"3","И":"N","Й":"N","К":"K","Л":"N","М":"M","Н":"H","О":"O","П":"N","Р":"P","С":"C","Т":"T","У":"y","Ф":"O","Х":"X","Ц":"U","Ч":"h","Ш":"W","Щ":"W","Ъ":"B","Ы":"X","Ь":"B","Э":"3","Ю":"X","Я":"R","а":"a","б":"b","в":"a","г":"r","д":"y","е":"e","ж":"m","з":"e","и":"n","й":"n","к":"n","л":"n","м":"m","н":"n","о":"o","п":"n","р":"p","с":"c","т":"o","у":"y","ф":"b","х":"x","ц":"n","ч":"n","ш":"w","щ":"w","ъ":"a","ы":"m","ь":"a","э":"e","ю":"m","я":"r"};function w(e,t,n){if(!N[t])throw new Error("Font metrics not found for font: "+t+".");let r=e.charCodeAt(0),i=N[t][r];if(!i&&e[0]in R&&(r=R[e[0]].charCodeAt(0),i=N[t][r]),i||"text"!==n||v(r)&&(i=N[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}const k={},I=[ +// Each element contains [textsize, scriptsize, scriptscriptsize]. +// The size mappings are taken from TeX with \normalsize=10pt. +[1,1,1], +// size1: [5, 5, 5] \tiny +[2,1,1], +// size2: [6, 5, 5] +[3,1,1], +// size3: [7, 5, 5] \scriptsize +[4,2,1], +// size4: [8, 6, 5] \footnotesize +[5,2,1], +// size5: [9, 6, 5] \small +[6,3,1], +// size6: [10, 7, 5] \normalsize +[7,4,2], +// size7: [12, 8, 6] \large +[8,6,3], +// size8: [14.4, 10, 7] \Large +[9,7,6], +// size9: [17.28, 12, 10] \LARGE +[10,8,7], +// size10: [20.74, 14.4, 12] \huge +[11,10,9]],D=[ +// fontMetrics.js:getGlobalMetrics also uses size indexes, so if +// you change size indexes, change that function. +.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],M=function(e,t){return t.size<2?e:I[e-1][t.size-1]};class L{ +// A font family applies to a group of fonts (i.e. SansSerif), while a font +// represents a specific font (i.e. SansSerif Bold). +// See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm +/** + * The base size index. + */ +constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||L.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=D[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0} +/** + * Returns a new options object with the same properties as "this". Properties + * from "extension" will be copied to the new options object. + */extend(e){const t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(const n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return new L(t)} +/** + * Return an options object with the given style. If `this.style === style`, + * returns `this`. + */havingStyle(e){return this.style===e?this:this.extend({style:e,size:M(this.textSize,e)})} +/** + * Return an options object with a cramped version of the current style. If + * the current style is cramped, returns `this`. + */havingCrampedStyle(){return this.havingStyle(this.style.cramp())} +/** + * Return an options object with the given size and in at least `\textstyle`. + * Returns `this` if appropriate. + */havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:D[e-1]})} +/** + * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted, + * changes to at least `\textstyle`. + */havingBaseStyle(e){e=e||this.style.text();const t=M(L.BASESIZE,e);return this.size===t&&this.textSize===L.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})} +/** + * Remove the effect of sizing changes such as \Huge. + * Keep the effect of the current style, such as \scriptstyle. + */havingBaseSizing(){let e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})} +/** + * Create a new options object with the given color. + */withColor(e){return this.extend({color:e})} +/** + * Create a new options object with "phantom" set to true. + */withPhantom(){return this.extend({phantom:!0})} +/** + * Creates a new options object with the given math font or old text font. + * @type {[type]} + */withFont(e){return this.extend({font:e})} +/** + * Create a new options objects with the given fontFamily. + */withTextFontFamily(e){return this.extend({fontFamily:e,font:""})} +/** + * Creates a new options object with the given font weight + */withTextFontWeight(e){return this.extend({fontWeight:e,font:""})} +/** + * Creates a new options object with the given font weight + */withTextFontShape(e){return this.extend({fontShape:e,font:""})} +/** + * Return the CSS sizing classes required to switch from enclosing options + * `oldOptions` to `this`. Returns an array of classes. + */sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]} +/** + * Return the CSS sizing classes required to switch to the base size. Like + * `this.havingSize(BASESIZE).sizingClasses(this)`. + */baseSizingClasses(){return this.size!==L.BASESIZE?["sizing","reset-size"+this.size,"size"+L.BASESIZE]:[]} +/** + * Return the font metrics for this size. + */fontMetrics(){return this._fontMetrics||(this._fontMetrics=function(e){let t;if(t=e>=5?0:e>=3?1:2,!k[t]){const e=k[t]={cssEmPerMu:O.quad[t]/18};for(const n in O)O.hasOwnProperty(n)&&(e[n]=O[n][t])}return k[t]}(this.size)),this._fontMetrics} +/** + * Gets the CSS color of the current options object + */getColor(){return this.phantom?"transparent":this.color}}L.BASESIZE=6;var P=L;const F={ +// https://en.wikibooks.org/wiki/LaTeX/Lengths and +// https://tex.stackexchange.com/a/8263 +pt:1, +// TeX point +mm:7227/2540, +// millimeter +cm:7227/254, +// centimeter +in:72.27, +// inch +bp:1.00375, +// big (PostScript) points +pc:12, +// pica +dd:1238/1157, +// didot +cc:14856/1157, +// cicero (12 didot) +nd:685/642, +// new didot +nc:1370/107, +// new cicero (12 new didot) +sp:1/65536, +// scaled point (TeX's internal smallest unit) +// https://tex.stackexchange.com/a/41371 +px:1.00375},B={ex:!0,em:!0,mu:!0},U=function(e){return"string"!=typeof e&&(e=e.unit),e in F||e in B||"ex"===e},G=function(e,t){let n;if(e.unit in F)n=F[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)n=t.fontMetrics().cssEmPerMu;else{let i;if(i=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)n=i.fontMetrics().xHeight;else{if("em"!==e.unit)throw new r("Invalid unit: '"+e.unit+"'");n=i.fontMetrics().quad}i!==t&&(n*=i.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*n,t.maxSize)},z=function(e){return+e.toFixed(4)+"em"},$=function(e){return e.filter((e=>e)).join(" ")},Y=function(e,t,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},t){t.style.isTight()&&this.classes.push("mtight");const e=t.getColor();e&&(this.style.color=e)}},q=function(e){const t=document.createElement(e);t.className=$(this.classes);for(const n in this.style)this.style.hasOwnProperty(n)&&(t.style[n]=this.style[n]);for(const n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(let n=0;n/=\x00-\x1f]/,V=function(e){let t="<"+e;this.classes.length&&(t+=' class="'+l.escape($(this.classes))+'"');let n="";for(const r in this.style)this.style.hasOwnProperty(r)&&(n+=l.hyphenate(r)+":"+this.style[r]+";");n&&(t+=' style="'+l.escape(n)+'"');for(const i in this.attributes)if(this.attributes.hasOwnProperty(i)){if(H.test(i))throw new r("Invalid attribute name '"+i+"'");t+=" "+i+'="'+l.escape(this.attributes[i])+'"'}t+=">";for(let r=0;r",t};class j{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Y.call(this,e,n,r),this.children=t||[]} +/** + * Sets an arbitrary attribute on the span. Warning: use this wisely. Not + * all browsers support attributes the same, and having too many custom + * attributes is probably bad. + */setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return q.call(this,"span")}toMarkup(){return V.call(this,"span")}}class W{constructor(e,t,n,r){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Y.call(this,t,r),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return q.call(this,"a")}toMarkup(){return V.call(this,"a")}}class Q{constructor(e,t,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(const t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){let e=''+l.escape(this.alt)+'=r[0]&&e<=r[1])return n.name}}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=K[this.text])}hasClass(e){return l.contains(this.classes,e)} +/** + * Creates a text node or span from a symbol node. Note that a span is only + * created if it is needed. + */toNode(){const e=document.createTextNode(this.text);let t=null;this.italic>0&&(t=document.createElement("span"),t.style.marginRight=z(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=$(this.classes));for(const n in this.style)this.style.hasOwnProperty(n)&&(t=t||document.createElement("span"),t.style[n]=this.style[n]);return t?(t.appendChild(e),t):e} +/** + * Creates markup for a symbol node. + */toMarkup(){let e=!1,t="0&&(n+="margin-right:"+this.italic+"em;");for(const i in this.style)this.style.hasOwnProperty(i)&&(n+=l.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,t+=' style="'+l.escape(n)+'"');const r=l.escape(this.text);return e?(t+=">",t+=r,t+="",t):r}}class Z{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(let t=0;t':''}}class ee{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","line");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){let e="","\\gt",!0),oe(se,ce,Ee,"∈","\\in",!0),oe(se,ce,Ee,"","\\@not"),oe(se,ce,Ee,"⊂","\\subset",!0),oe(se,ce,Ee,"⊃","\\supset",!0),oe(se,ce,Ee,"⊆","\\subseteq",!0),oe(se,ce,Ee,"⊇","\\supseteq",!0),oe(se,ue,Ee,"⊈","\\nsubseteq",!0),oe(se,ue,Ee,"⊉","\\nsupseteq",!0),oe(se,ce,Ee,"⊨","\\models"),oe(se,ce,Ee,"←","\\leftarrow",!0),oe(se,ce,Ee,"≤","\\le"),oe(se,ce,Ee,"≤","\\leq",!0),oe(se,ce,Ee,"<","\\lt",!0),oe(se,ce,Ee,"→","\\rightarrow",!0),oe(se,ce,Ee,"→","\\to"),oe(se,ue,Ee,"≱","\\ngeq",!0),oe(se,ue,Ee,"≰","\\nleq",!0),oe(se,ce,ye," ","\\ "),oe(se,ce,ye," ","\\space"),oe(se,ce,ye," ","\\nobreakspace"),oe(le,ce,ye," ","\\ "),oe(le,ce,ye," "," "),oe(le,ce,ye," ","\\space"),oe(le,ce,ye," ","\\nobreakspace"),oe(se,ce,ye,null,"\\nobreak"),oe(se,ce,ye,null,"\\allowbreak"),oe(se,ce,be,",",","),oe(se,ce,be,";",";"),oe(se,ue,pe,"⊼","\\barwedge",!0),oe(se,ue,pe,"⊻","\\veebar",!0),oe(se,ce,pe,"⊙","\\odot",!0),oe(se,ce,pe,"⊕","\\oplus",!0),oe(se,ce,pe,"⊗","\\otimes",!0),oe(se,ce,Se,"∂","\\partial",!0),oe(se,ce,pe,"⊘","\\oslash",!0),oe(se,ue,pe,"⊚","\\circledcirc",!0),oe(se,ue,pe,"⊡","\\boxdot",!0),oe(se,ce,pe,"△","\\bigtriangleup"),oe(se,ce,pe,"▽","\\bigtriangledown"),oe(se,ce,pe,"†","\\dagger"),oe(se,ce,pe,"⋄","\\diamond"),oe(se,ce,pe,"⋆","\\star"),oe(se,ce,pe,"◃","\\triangleleft"),oe(se,ce,pe,"▹","\\triangleright"),oe(se,ce,fe,"{","\\{"),oe(le,ce,Se,"{","\\{"),oe(le,ce,Se,"{","\\textbraceleft"),oe(se,ce,he,"}","\\}"),oe(le,ce,Se,"}","\\}"),oe(le,ce,Se,"}","\\textbraceright"),oe(se,ce,fe,"{","\\lbrace"),oe(se,ce,he,"}","\\rbrace"),oe(se,ce,fe,"[","\\lbrack",!0),oe(le,ce,Se,"[","\\lbrack",!0),oe(se,ce,he,"]","\\rbrack",!0),oe(le,ce,Se,"]","\\rbrack",!0),oe(se,ce,fe,"(","\\lparen",!0),oe(se,ce,he,")","\\rparen",!0),oe(le,ce,Se,"<","\\textless",!0),oe(le,ce,Se,">","\\textgreater",!0),oe(se,ce,fe,"⌊","\\lfloor",!0),oe(se,ce,he,"⌋","\\rfloor",!0),oe(se,ce,fe,"⌈","\\lceil",!0),oe(se,ce,he,"⌉","\\rceil",!0),oe(se,ce,Se,"\\","\\backslash"),oe(se,ce,Se,"∣","|"),oe(se,ce,Se,"∣","\\vert"),oe(le,ce,Se,"|","\\textbar",!0),oe(se,ce,Se,"∥","\\|"),oe(se,ce,Se,"∥","\\Vert"),oe(le,ce,Se,"∥","\\textbardbl"),oe(le,ce,Se,"~","\\textasciitilde"),oe(le,ce,Se,"\\","\\textbackslash"),oe(le,ce,Se,"^","\\textasciicircum"),oe(se,ce,Ee,"↑","\\uparrow",!0),oe(se,ce,Ee,"⇑","\\Uparrow",!0),oe(se,ce,Ee,"↓","\\downarrow",!0),oe(se,ce,Ee,"⇓","\\Downarrow",!0),oe(se,ce,Ee,"↕","\\updownarrow",!0),oe(se,ce,Ee,"⇕","\\Updownarrow",!0),oe(se,ce,ge,"∐","\\coprod"),oe(se,ce,ge,"⋁","\\bigvee"),oe(se,ce,ge,"⋀","\\bigwedge"),oe(se,ce,ge,"⨄","\\biguplus"),oe(se,ce,ge,"⋂","\\bigcap"),oe(se,ce,ge,"⋃","\\bigcup"),oe(se,ce,ge,"∫","\\int"),oe(se,ce,ge,"∫","\\intop"),oe(se,ce,ge,"∬","\\iint"),oe(se,ce,ge,"∭","\\iiint"),oe(se,ce,ge,"∏","\\prod"),oe(se,ce,ge,"∑","\\sum"),oe(se,ce,ge,"⨂","\\bigotimes"),oe(se,ce,ge,"⨁","\\bigoplus"),oe(se,ce,ge,"⨀","\\bigodot"),oe(se,ce,ge,"∮","\\oint"),oe(se,ce,ge,"∯","\\oiint"),oe(se,ce,ge,"∰","\\oiiint"),oe(se,ce,ge,"⨆","\\bigsqcup"),oe(se,ce,ge,"∫","\\smallint"),oe(le,ce,_e,"…","\\textellipsis"),oe(se,ce,_e,"…","\\mathellipsis"),oe(le,ce,_e,"…","\\ldots",!0),oe(se,ce,_e,"…","\\ldots",!0),oe(se,ce,_e,"⋯","\\@cdots",!0),oe(se,ce,_e,"⋱","\\ddots",!0),oe(se,ce,Se,"⋮","\\varvdots"),oe(le,ce,Se,"⋮","\\varvdots"),oe(se,ce,de,"ˊ","\\acute"),oe(se,ce,de,"ˋ","\\grave"),oe(se,ce,de,"¨","\\ddot"),oe(se,ce,de,"~","\\tilde"),oe(se,ce,de,"ˉ","\\bar"),oe(se,ce,de,"˘","\\breve"),oe(se,ce,de,"ˇ","\\check"),oe(se,ce,de,"^","\\hat"),oe(se,ce,de,"⃗","\\vec"),oe(se,ce,de,"˙","\\dot"),oe(se,ce,de,"˚","\\mathring"),oe(se,ce,me,"","\\@imath"),oe(se,ce,me,"","\\@jmath"),oe(se,ce,Se,"ı","ı"),oe(se,ce,Se,"ȷ","ȷ"),oe(le,ce,Se,"ı","\\i",!0),oe(le,ce,Se,"ȷ","\\j",!0),oe(le,ce,Se,"ß","\\ss",!0),oe(le,ce,Se,"æ","\\ae",!0),oe(le,ce,Se,"œ","\\oe",!0),oe(le,ce,Se,"ø","\\o",!0),oe(le,ce,Se,"Æ","\\AE",!0),oe(le,ce,Se,"Œ","\\OE",!0),oe(le,ce,Se,"Ø","\\O",!0),oe(le,ce,de,"ˊ","\\'"),oe(le,ce,de,"ˋ","\\`"),oe(le,ce,de,"ˆ","\\^"),oe(le,ce,de,"˜","\\~"),oe(le,ce,de,"ˉ","\\="),oe(le,ce,de,"˘","\\u"),oe(le,ce,de,"˙","\\."),oe(le,ce,de,"¸","\\c"),oe(le,ce,de,"˚","\\r"),oe(le,ce,de,"ˇ","\\v"),oe(le,ce,de,"¨",'\\"'),oe(le,ce,de,"˝","\\H"),oe(le,ce,de,"◯","\\textcircled");const Te={"--":!0,"---":!0,"``":!0,"''":!0};oe(le,ce,Se,"–","--",!0),oe(le,ce,Se,"–","\\textendash"),oe(le,ce,Se,"—","---",!0),oe(le,ce,Se,"—","\\textemdash"),oe(le,ce,Se,"‘","`",!0),oe(le,ce,Se,"‘","\\textquoteleft"),oe(le,ce,Se,"’","'",!0),oe(le,ce,Se,"’","\\textquoteright"),oe(le,ce,Se,"“","``",!0),oe(le,ce,Se,"“","\\textquotedblleft"),oe(le,ce,Se,"”","''",!0),oe(le,ce,Se,"”","\\textquotedblright"),oe(se,ce,Se,"°","\\degree",!0),oe(le,ce,Se,"°","\\degree"),oe(le,ce,Se,"°","\\textdegree",!0),oe(se,ce,Se,"£","\\pounds"),oe(se,ce,Se,"£","\\mathsterling",!0),oe(le,ce,Se,"£","\\pounds"),oe(le,ce,Se,"£","\\textsterling",!0),oe(se,ue,Se,"✠","\\maltese"),oe(le,ue,Se,"✠","\\maltese");const ve='0123456789/@."';for(let Vr=0;Vr<14;Vr++){const e=ve.charAt(Vr);oe(se,ce,Se,e,e)}const Ce='0123456789!@*()-=+";:?/.,';for(let Vr=0;Vr<25;Vr++){const e=Ce.charAt(Vr);oe(le,ce,Se,e,e)}const xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let Vr=0;Vr<52;Vr++){const e=xe.charAt(Vr);oe(se,ce,me,e,e),oe(le,ce,Se,e,e)}oe(se,ue,Se,"C","ℂ"),oe(le,ue,Se,"C","ℂ"),oe(se,ue,Se,"H","ℍ"),oe(le,ue,Se,"H","ℍ"),oe(se,ue,Se,"N","ℕ"),oe(le,ue,Se,"N","ℕ"),oe(se,ue,Se,"P","ℙ"),oe(le,ue,Se,"P","ℙ"),oe(se,ue,Se,"Q","ℚ"),oe(le,ue,Se,"Q","ℚ"),oe(se,ue,Se,"R","ℝ"),oe(le,ue,Se,"R","ℝ"),oe(se,ue,Se,"Z","ℤ"),oe(le,ue,Se,"Z","ℤ"),oe(se,ce,me,"h","ℎ"),oe(le,ce,me,"h","ℎ");let Ae="";for(let Vr=0;Vr<52;Vr++){const e=xe.charAt(Vr);Ae=String.fromCharCode(55349,56320+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56372+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56424+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56580+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56684+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56736+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56788+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56840+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56944+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Vr<26&&(Ae=String.fromCharCode(55349,56632+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,56476+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae))}Ae=String.fromCharCode(55349,56668),oe(se,ce,me,"k",Ae),oe(le,ce,Se,"k",Ae);for(let Vr=0;Vr<10;Vr++){const e=Vr.toString();Ae=String.fromCharCode(55349,57294+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,57314+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,57324+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae),Ae=String.fromCharCode(55349,57334+Vr),oe(se,ce,me,e,Ae),oe(le,ce,Se,e,Ae)}const Ne="ÐÞþ";for(let Vr=0;Vr<3;Vr++){const e=Ne.charAt(Vr);oe(se,ce,me,e,e),oe(le,ce,Se,e,e)}const Oe=[["mathbf","textbf","Main-Bold"], +// A-Z bold upright +["mathbf","textbf","Main-Bold"], +// a-z bold upright +["mathnormal","textit","Math-Italic"], +// A-Z italic +["mathnormal","textit","Math-Italic"], +// a-z italic +["boldsymbol","boldsymbol","Main-BoldItalic"], +// A-Z bold italic +["boldsymbol","boldsymbol","Main-BoldItalic"], +// a-z bold italic +// Map fancy A-Z letters to script, not calligraphic. +// This aligns with unicode-math and math fonts (except Cambria Math). +["mathscr","textscr","Script-Regular"], +// A-Z script +["","",""], +// a-z script. No font +["","",""], +// A-Z bold script. No font +["","",""], +// a-z bold script. No font +["mathfrak","textfrak","Fraktur-Regular"], +// A-Z Fraktur +["mathfrak","textfrak","Fraktur-Regular"], +// a-z Fraktur +["mathbb","textbb","AMS-Regular"], +// A-Z double-struck +["mathbb","textbb","AMS-Regular"], +// k double-struck +// Note that we are using a bold font, but font metrics for regular Fraktur. +["mathboldfrak","textboldfrak","Fraktur-Regular"], +// A-Z bold Fraktur +["mathboldfrak","textboldfrak","Fraktur-Regular"], +// a-z bold Fraktur +["mathsf","textsf","SansSerif-Regular"], +// A-Z sans-serif +["mathsf","textsf","SansSerif-Regular"], +// a-z sans-serif +["mathboldsf","textboldsf","SansSerif-Bold"], +// A-Z bold sans-serif +["mathboldsf","textboldsf","SansSerif-Bold"], +// a-z bold sans-serif +["mathitsf","textitsf","SansSerif-Italic"], +// A-Z italic sans-serif +["mathitsf","textitsf","SansSerif-Italic"], +// a-z italic sans-serif +["","",""], +// A-Z bold italic sans. No font +["","",""], +// a-z bold italic sans. No font +["mathtt","texttt","Typewriter-Regular"], +// A-Z monospace +["mathtt","texttt","Typewriter-Regular"]],Re=[["mathbf","textbf","Main-Bold"], +// 0-9 bold +["","",""], +// 0-9 double-struck. No KaTeX font. +["mathsf","textsf","SansSerif-Regular"], +// 0-9 sans-serif +["mathboldsf","textboldsf","SansSerif-Bold"], +// 0-9 bold sans-serif +["mathtt","texttt","Typewriter-Regular"]],we=function(e,t,n){return ae[n][e]&&ae[n][e].replace&&(e=ae[n][e].replace),{value:e,metrics:w(e,t,n)}},ke=function(e,t,n,r,i){const a=we(e,t,n),o=a.metrics;let s;if(e=a.value,o){let t=o.italic;("text"===n||r&&"mathit"===r.font)&&(t=0),s=new X(e,o.height,o.depth,t,o.skew,o.width,i)}else s=new X(e,0,0,0,0,0,i);if(r){s.maxFontSize=r.sizeMultiplier,r.style.isTight()&&s.classes.push("mtight");const e=r.getColor();e&&(s.style.color=e)}return s},Ie=(e,t)=>{if($(e.classes)!==$(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){const t=e.classes[0];if("mbin"===t||"mord"===t)return!1}for(const n in e.style)if(e.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;for(const n in t.style)if(t.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;return!0},De=function(e){let t=0,n=0,r=0;for(let i=0;it&&(t=a.height),a.depth>n&&(n=a.depth),a.maxFontSize>r&&(r=a.maxFontSize)}e.height=t,e.depth=n,e.maxFontSize=r},Me=function(e,t,n,r){const i=new j(e,t,n,r);return De(i),i},Le=(e,t,n,r)=>new j(e,t,n,r),Pe=function(e){const t=new A(e);return De(t),t},Fe=function(e,t,n){let r,i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}return r="textbf"===t&&"textit"===n?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular",i+"-"+r},Be={ +// styles +mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"}, +// "boldsymbol" is missing because they require the use of multiple fonts: +// Math-BoldItalic and Main-Bold. This is handled by a special case in +// makeOrd which ends up calling boldsymbol. +// families +mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ue={ +// path, width, height +vec:["vec",.471,.714], +// values from the font glyph +oiintSize1:["oiintSize1",.957,.499], +// oval to overlay the integrand +oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]};var Ge={fontMap:Be,makeSymbol:ke,mathsym:function(e,t,n,r){return void 0===r&&(r=[]),"boldsymbol"===n.font&&we(e,"Main-Bold",t).metrics?ke(e,"Main-Bold",t,n,r.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?ke(e,"Main-Regular",t,n,r):ke(e,"AMS-Regular",t,n,r.concat(["amsrm"]))},makeSpan:Me,makeSvgSpan:Le,makeLineSpan:function(e,t,n){const r=Me([e],[],t);return r.height=Math.max(n||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),r.style.borderBottomWidth=z(r.height),r.maxFontSize=1,r},makeAnchor:function(e,t,n,r){const i=new W(e,t,n,r);return De(i),i},makeFragment:Pe,wrapFragment:function(e,t){return e instanceof A?Me([],[e],t):e},makeVList:function(e,t){const{children:n,depth:r}=function(e){if("individualShift"===e.positionType){const t=e.children,n=[t[0]],r=-t[0].shift-t[0].elem.depth;let i=r;for(let e=1;e0)return ke(a,c,i,t,o.concat(u));if(l){let e,r;if("boldsymbol"===l){const t=function(e,t,n,r,i){return"textord"!==i&&we(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}}(a,i,0,0,n);e=t.fontName,r=[t.fontClass]}else s?(e=Be[l].fontName,r=[l]):(e=Fe(l,t.fontWeight,t.fontShape),r=[l,t.fontWeight,t.fontShape]);if(we(a,e,i).metrics)return ke(a,e,i,t,o.concat(r));if(Te.hasOwnProperty(a)&&"Typewriter"===e.slice(0,10)){const n=[];for(let s=0;s{const n=Me(["mspace"],[],t),r=G(e,t);return n.style.marginRight=z(r),n},staticSvg:function(e,t){const[n,r,i]=Ue[e],a=new J(n),o=new Z([a],{width:z(r),height:z(i), +// Override CSS rule `.katex svg { width: 100% }` +style:"width:"+z(r),viewBox:"0 0 "+1e3*r+" "+1e3*i,preserveAspectRatio:"xMinYMin"}),s=Le(["overlay"],[o],t);return s.height=i,s.style.height=z(i),s.style.width=z(r),s},svgData:Ue,tryCombineChars:e=>{for(let t=0;t{const n=t.classes[0],r=e.classes[0];"mbin"===n&&l.contains(tt,r)?t.classes[0]="mord":"mbin"===r&&l.contains(et,n)&&(e.classes[0]="mord")}),{node:o},s,c),at(i,((e,t)=>{const n=lt(t),r=lt(e),i=n&&r?e.hasClass("mtight")?He[n][r]:qe[n][r]:null;if(i)return Ge.makeGlue(i,a)}),{node:o},s,c),i},at=function(e,t,n,r,i){r&&e.push(r);let a=0;for(;an=>{e.splice(t+1,0,n),a++})(a)}r&&e.pop()},ot=function(e){return e instanceof A||e instanceof W||e instanceof j&&e.hasClass("enclosing")?e:null},st=function(e,t){const n=ot(e);if(n){const e=n.children;if(e.length){if("right"===t)return st(e[e.length-1],"right");if("left"===t)return st(e[0],"left")}}return e},lt=function(e,t){return e?(t&&(e=st(e,t)),rt[e.classes[0]]||null):null},ct=function(e,t){const n=["nulldelimiter"].concat(e.baseSizingClasses());return Je(t.concat(n))},ut=function(e,t,n){if(!e)return Je();if(je[e.type]){let r=je[e.type](e,t);if(n&&t.size!==n.size){r=Je(t.sizingClasses(n),[r],t);const e=t.sizeMultiplier/n.sizeMultiplier;r.height*=e,r.depth*=e}return r}throw new r("Got group of unknown type: '"+e.type+"'")};function dt(e,t){const n=Je(["base"],e,t),r=Je(["strut"]);return r.style.height=z(n.height+n.depth),n.depth&&(r.style.verticalAlign=z(-n.depth)),n.children.unshift(r),n}function pt(e,t){let n=null;1===e.length&&"tag"===e[0].type&&(n=e[0].tag,e=e[0].body);const r=it(e,t,"root");let i;2===r.length&&r[1].hasClass("tag")&&(i=r.pop());const a=[];let o,s=[];for(let c=0;c0&&(a.push(dt(s,t)),s=[]),a.push(r[c]));s.length>0&&a.push(dt(s,t)),n?(o=dt(it(n,t,!0)),o.classes=["tag"],a.push(o)):i&&a.push(i);const l=Je(["katex-html"],a);if(l.setAttribute("aria-hidden","true"),o){const e=o.children[0];e.style.height=z(l.height+l.depth),l.depth&&(e.style.verticalAlign=z(-l.depth))}return l}function ht(e){return new A(e)}class _t{constructor(e,t,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=n||[]} +/** + * Sets an attribute on a MathML node. MathML depends on attributes to convey a + * semantic content, so this is used heavily. + */setAttribute(e,t){this.attributes[e]=t} +/** + * Gets an attribute on a MathML node. + */getAttribute(e){return this.attributes[e]} +/** + * Converts the math node into a MathML-namespaced DOM element. + */toNode(){const e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=$(this.classes));for(let t=0;t0&&(e+=' class ="'+l.escape($(this.classes))+'"'),e+=">";for(let t=0;t",e} +/** + * Converts the math node into a string, similar to innerText, but escaped. + */toText(){return this.children.map((e=>e.toText())).join("")}}class mt{constructor(e){this.text=void 0,this.text=e} +/** + * Converts the text node into a DOM text node. + */toNode(){return document.createTextNode(this.text)} +/** + * Converts the text node into escaped HTML markup + * (representing the text itself). + */toMarkup(){return l.escape(this.toText())} +/** + * Converts the text node into a string + * (representing the text itself). + */toText(){return this.text}}var gt={MathNode:_t,TextNode:mt,SpaceNode:class{ +/** + * Create a Space node with width given in CSS ems. + */ +constructor(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?" ":e>=.1666&&e<=.1667?" ":e>=.2222&&e<=.2223?" ":e>=.2777&&e<=.2778?"  ":e>=-.05556&&e<=-.05555?" ⁣":e>=-.1667&&e<=-.1666?" ⁣":e>=-.2223&&e<=-.2222?" ⁣":e>=-.2778&&e<=-.2777?" ⁣":null} +/** + * Converts the math node into a MathML-namespaced DOM element. + */toNode(){if(this.character)return document.createTextNode(this.character);{const e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",z(this.width)),e}} +/** + * Converts the math node into an HTML markup string. + */toMarkup(){return this.character?""+this.character+"":''} +/** + * Converts the math node into a string, similar to innerText. + */toText(){return this.character?this.character:" "}},newDocumentFragment:ht};const ft=function(e,t,n){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||Te.hasOwnProperty(e)&&n&&(n.fontFamily&&"tt"===n.fontFamily.slice(4,6)||n.font&&"tt"===n.font.slice(4,6))||(e=ae[t][e].replace),new gt.TextNode(e)},bt=function(e){return 1===e.length?e[0]:new gt.MathNode("mrow",e)},Et=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";const n=t.font;if(!n||"mathnormal"===n)return null;const r=e.mode;if("mathit"===n)return"italic";if("boldsymbol"===n)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===n)return"bold";if("mathbb"===n)return"double-struck";if("mathsfit"===n)return"sans-serif-italic";if("mathfrak"===n)return"fraktur";if("mathscr"===n||"mathcal"===n)return"script";if("mathsf"===n)return"sans-serif";if("mathtt"===n)return"monospace";let i=e.text;return l.contains(["\\imath","\\jmath"],i)?null:(ae[r][i]&&ae[r][i].replace&&(i=ae[r][i].replace),w(i,Ge.fontMap[n].fontName,r)?Ge.fontMap[n].variant:null)};function yt(e){if(!e)return!1;if("mi"===e.type&&1===e.children.length){const t=e.children[0];return t instanceof mt&&"."===t.text}if("mo"===e.type&&1===e.children.length&&"true"===e.getAttribute("separator")&&"0em"===e.getAttribute("lspace")&&"0em"===e.getAttribute("rspace")){const t=e.children[0];return t instanceof mt&&","===t.text}return!1}const St=function(e,t,n){if(1===e.length){const r=vt(e[0],t);return n&&r instanceof _t&&"mo"===r.type&&(r.setAttribute("lspace","0em"),r.setAttribute("rspace","0em")),[r]}const r=[];let i;for(let a=0;a=1&&("mn"===i.type||yt(i))){const e=n.children[0];e instanceof _t&&"mn"===e.type&&(e.children=[...i.children,...e.children],r.pop())}else if("mi"===i.type&&1===i.children.length){const e=i.children[0];if(e instanceof mt&&"̸"===e.text&&("mo"===n.type||"mi"===n.type||"mn"===n.type)){const e=n.children[0];e instanceof mt&&e.text.length>0&&(e.text=e.text.slice(0,1)+"̸"+e.text.slice(1),r.pop())}}}r.push(n),i=n}return r},Tt=function(e,t,n){return bt(St(e,t,n))},vt=function(e,t){if(!e)return new gt.MathNode("mrow");if(We[e.type])return We[e.type](e,t);throw new r("Got group of unknown type: '"+e.type+"'")};function Ct(e,t,n,r,i){const a=St(e,n);let o;o=1===a.length&&a[0]instanceof _t&&l.contains(["mrow","mtable"],a[0].type)?a[0]:new gt.MathNode("mrow",a);const s=new gt.MathNode("annotation",[new gt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");const c=new gt.MathNode("semantics",[o,s]),u=new gt.MathNode("math",[c]);u.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&u.setAttribute("display","block");const d=i?"katex":"katex-mathml";return Ge.makeSpan([d],[u])}const xt=function(e){return new P({style:e.displayMode?y.DISPLAY:y.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},At=function(e,t){if(t.displayMode){const n=["katex-display"];t.leqno&&n.push("leqno"),t.fleqn&&n.push("fleqn"),e=Ge.makeSpan(n,[e])}return e},Nt={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌", +// Not a perfect match. +xleftequilibrium:"⇋", +// None better available. +"\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},Ot={ +// path(s), minWidth, height, align +overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"], +// CD minwwidth2.5pc +xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528], +// The next three arrows are from the mhchem package. +// In mhchem.sty, min-length is 2.0em. But these arrows might appear in the +// document as \xrightarrow or \xrightleftharpoons. Those have +// min-length = 1.75em, so we set min-length on these next three to match. +xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]};var Rt=function(e,t,n,r,i){let a;const o=e.height+e.depth+n+r;if(/fbox|color|angl/.test(t)){if(a=Ge.makeSpan(["stretchy",t],[],i),"fbox"===t){const e=i.color&&i.getColor();e&&(a.style.borderColor=e)}}else{const e=[];/^[bx]cancel$/.test(t)&&e.push(new ee({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&e.push(new ee({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));const n=new Z(e,{width:"100%",height:z(o)});a=Ge.makeSvgSpan([],[n],i)}return a.height=o,a.style.height=z(o),a},wt=function(e){const t=new gt.MathNode("mo",[new gt.TextNode(Nt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},kt=function(e,t){const{span:n,minWidth:r,height:i}=function(){let n=4e5;const r=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],r)){const a="ordgroup"===(i=e.base).type?i.body.length:1;let o,s,l;if(a>5)"widehat"===r||"widecheck"===r?(o=420,n=2364,l=.42,s=r+"4"):(o=312,n=2340,l=.34,s="tilde4");else{const e=[1,1,2,2,3,3][a];"widehat"===r||"widecheck"===r?(n=[0,1062,2364,2364,2364][e],o=[0,239,300,360,420][e],l=[0,.24,.3,.3,.36,.42][e],s=r+e):(n=[0,600,1033,2339,2340][e],o=[0,260,286,306,312][e],l=[0,.26,.286,.3,.306,.34][e],s="tilde"+e)}const c=new J(s),u=new Z([c],{width:"100%",height:z(l),viewBox:"0 0 "+n+" "+o,preserveAspectRatio:"none"});return{span:Ge.makeSvgSpan([],[u],t),minWidth:0,height:l}}{const e=[],i=Ot[r],[a,o,s]=i,l=s/1e3,c=a.length;let u,d;if(1===c)u=["hide-tail"],d=[i[3]];else if(2===c)u=["halfarrow-left","halfarrow-right"],d=["xMinYMin","xMaxYMin"];else{if(3!==c)throw new Error("Correct katexImagesData or update code here to support\n "+c+" children.");u=["brace-left","brace-center","brace-right"],d=["xMinYMin","xMidYMin","xMaxYMin"]}for(let r=0;r0&&(n.style.minWidth=z(r)),n};function It(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Dt(e){const t=Mt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Mt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}const Lt=(e,t)=>{let n,r,i;e&&"supsub"===e.type?(r=It(e.base,"accent"),n=r.base,e.base=n,i=function(e){if(e instanceof j)return e;throw new Error("Expected span but got "+String(e)+".")}(ut(e,t)),e.base=r):(r=It(e,"accent"),n=r.base);const a=ut(n,t.havingCrampedStyle());let o=0;if(r.isShifty&&l.isCharacterBox(n)){const e=l.getBaseElem(n);o=te(ut(e,t.havingCrampedStyle())).skew}const s="\\c"===r.label;let c,u=s?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight);if(r.isStretchy)c=kt(r,t),c=Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:c,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+z(2*o)+")",marginLeft:z(2*o)}:void 0}]},t);else{let e,n;"\\vec"===r.label?(e=Ge.staticSvg("vec",t),n=Ge.svgData.vec[1]):(e=Ge.makeOrd({mode:r.mode,text:r.label},t,"textord"),e=te(e),e.italic=0,n=e.width,s&&(u+=e.depth)),c=Ge.makeSpan(["accent-body"],[e]);const i="\\textcircled"===r.label;i&&(c.classes.push("accent-full"),u=a.height);let l=o;i||(l-=n/2),c.style.left=z(l),"\\textcircled"===r.label&&(c.style.top=".2em"),c=Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-u},{type:"elem",elem:c}]},t)}const d=Ge.makeSpan(["mord","accent"],[c],t);return i?(i.children[0]=d,i.height=Math.max(d.height,i.height),i.classes[0]="mord",i):d},Pt=(e,t)=>{const n=e.isStretchy?wt(e.label):new gt.MathNode("mo",[ft(e.label,e.mode)]),r=new gt.MathNode("mover",[vt(e.base,t),n]);return r.setAttribute("accent","true"),r},Ft=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((e=>"\\"+e)).join("|"));Qe({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{const n=Xe(t[0]),r=!Ft.test(e.funcName),i=!r||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:i,base:n}},htmlBuilder:Lt,mathmlBuilder:Pt}),Qe({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0, +// unless in strict mode +argTypes:["primitive"]},handler:(e,t)=>{const n=t[0];let r=e.parser.mode;return"math"===r&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:Lt,mathmlBuilder:Pt}),Qe({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=t[0];return{type:"accentUnder",mode:n.mode,label:r,base:i}},htmlBuilder:(e,t)=>{const n=ut(e.base,t),r=kt(e,t),i="\\utilde"===e.label?.12:0,a=Ge.makeVList({positionType:"top",positionData:n.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:n}]},t);return Ge.makeSpan(["mord","accentunder"],[a],t)},mathmlBuilder:(e,t)=>{const n=wt(e.label),r=new gt.MathNode("munder",[vt(e.base,t),n]);return r.setAttribute("accentunder","true"),r}});const Bt=e=>{const t=new gt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};Qe({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom", +// The next 3 functions are here to support the mhchem extension. +// Direct use of these functions is discouraged and may break someday. +"\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium", +// The next 3 functions are here only to support the {CD} environment. +"\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){let{parser:r,funcName:i}=e;return{type:"xArrow",mode:r.mode,label:i,body:t[0],below:n[0]}}, +// Flow is unable to correctly infer the type of `group`, even though it's +// unambiguously determined from the passed-in `type` above. +htmlBuilder(e,t){const n=t.style;let r=t.havingStyle(n.sup());const i=Ge.wrapFragment(ut(e.body,r,t),t),a="\\x"===e.label.slice(0,2)?"x":"cd";let o;i.classes.push(a+"-arrow-pad"),e.below&&(r=t.havingStyle(n.sub()),o=Ge.wrapFragment(ut(e.below,r,t),t),o.classes.push(a+"-arrow-pad"));const s=kt(e,t),l=-t.fontMetrics().axisHeight+.5*s.height;let c,u=-t.fontMetrics().axisHeight-.5*s.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(u-=i.depth),o){const e=-t.fontMetrics().axisHeight+o.height+.5*s.height+.111;c=Ge.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:u},{type:"elem",elem:s,shift:l},{type:"elem",elem:o,shift:e}]},t)}else c=Ge.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:u},{type:"elem",elem:s,shift:l}]},t);return c.children[0].children[0].children[1].classes.push("svg-align"),Ge.makeSpan(["mrel","x-arrow"],[c],t)},mathmlBuilder(e,t){const n=wt(e.label);let r;if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){const i=Bt(vt(e.body,t));if(e.below){const a=Bt(vt(e.below,t));r=new gt.MathNode("munderover",[n,a,i])}else r=new gt.MathNode("mover",[n,i])}else if(e.below){const i=Bt(vt(e.below,t));r=new gt.MathNode("munder",[n,i])}else r=Bt(),r=new gt.MathNode("mover",[n,r]);return r}});const Ut=Ge.makeSpan;function Gt(e,t){const n=it(e.body,t,!0);return Ut([e.mclass],n,t)}function zt(e,t){let n;const r=St(e.body,t);return"minner"===e.mclass?n=new gt.MathNode("mpadded",r):"mord"===e.mclass?e.isCharacterBox?(n=r[0],n.type="mi"):n=new gt.MathNode("mi",r):(e.isCharacterBox?(n=r[0],n.type="mo"):n=new gt.MathNode("mo",r),"mbin"===e.mclass?(n.attributes.lspace="0.22em",n.attributes.rspace="0.22em"):"mpunct"===e.mclass?(n.attributes.lspace="0em",n.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(n.attributes.lspace="0em",n.attributes.rspace="0em"):"minner"===e.mclass&&(n.attributes.lspace="0.0556em",n.attributes.width="+0.1111em")),n}Qe({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){let{parser:n,funcName:r}=e;const i=t[0];return{type:"mclass",mode:n.mode,mclass:"m"+r.slice(5), +// TODO(kevinb): don't prefix with 'm' +body:Ze(i),isCharacterBox:l.isCharacterBox(i)}},htmlBuilder:Gt,mathmlBuilder:zt});const $t=e=>{const t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};Qe({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){let{parser:n}=e;return{type:"mclass",mode:n.mode,mclass:$t(t[0]),body:Ze(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),Qe({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){let{parser:n,funcName:r}=e;const i=t[1],a=t[0];let o;o="\\stackrel"!==r?$t(i):"mrel";const s={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==r,body:Ze(i)},c={type:"supsub",mode:a.mode,base:s,sup:"\\underset"===r?null:a,sub:"\\underset"===r?a:null};return{type:"mclass",mode:n.mode,mclass:o,body:[c],isCharacterBox:l.isCharacterBox(c)}},htmlBuilder:Gt,mathmlBuilder:zt}),Qe({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:n}=e;return{type:"pmb",mode:n.mode,mclass:$t(t[0]),body:Ze(t[0])}},htmlBuilder(e,t){const n=it(e.body,t,!0),r=Ge.makeSpan([e.mclass],n,t);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(e,t){const n=St(e.body,t),r=new gt.MathNode("mstyle",n);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});const Yt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},qt=e=>"textord"===e.type&&"@"===e.text;function Ht(e,t,n){const r=Yt[e];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return n.callFunction(r,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{const e={type:"atom",text:r,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[n.callFunction("\\\\cdleft",[t[0]],[]),n.callFunction("\\Big",[e],[]),n.callFunction("\\\\cdright",[t[1]],[])]};return n.callFunction("\\\\cdparent",[i],[])}case"\\\\cdlongequal":return n.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{const e={type:"textord",text:"\\Vert",mode:"math"};return n.callFunction("\\Big",[e],[])}default:return{type:"textord",text:" ",mode:"math"}}}Qe({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){let{parser:n,funcName:r}=e;return{type:"cdlabel",mode:n.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){const n=t.havingStyle(t.style.sup()),r=Ge.wrapFragment(ut(e.label,n,t),t);return r.classes.push("cd-label-"+e.side),r.style.bottom=z(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){let n=new gt.MathNode("mrow",[vt(e.label,t)]);return n=new gt.MathNode("mpadded",[n]),n.setAttribute("width","0"),"left"===e.side&&n.setAttribute("lspace","-1width"),n.setAttribute("voffset","0.7em"),n=new gt.MathNode("mstyle",[n]),n.setAttribute("displaystyle","false"),n.setAttribute("scriptlevel","1"),n}}),Qe({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){let{parser:n}=e;return{type:"cdlabelparent",mode:n.mode,fragment:t[0]}},htmlBuilder(e,t){const n=Ge.wrapFragment(ut(e.fragment,t),t);return n.classes.push("cd-vert-arrow"),n},mathmlBuilder:(e,t)=>new gt.MathNode("mrow",[vt(e.fragment,t)])}),Qe({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:n}=e;const i=It(t[0],"ordgroup").body;let a="";for(let r=0;r=1114111)throw new r("\\@char with invalid code point "+a);return s<=65535?o=String.fromCharCode(s):(s-=65536,o=String.fromCharCode(55296+(s>>10),56320+(1023&s))),{type:"textord",mode:n.mode,text:o}}});const Vt=(e,t)=>{const n=it(e.body,t.withColor(e.color),!1);return Ge.makeFragment(n)},jt=(e,t)=>{const n=St(e.body,t.withColor(e.color)),r=new gt.MathNode("mstyle",n);return r.setAttribute("mathcolor",e.color),r};Qe({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){let{parser:n}=e;const r=It(t[0],"color-token").color,i=t[1];return{type:"color",mode:n.mode,color:r,body:Ze(i)}},htmlBuilder:Vt,mathmlBuilder:jt}),Qe({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){let{parser:n,breakOnTokenText:r}=e;const i=It(t[0],"color-token").color;n.gullet.macros.set("\\current@color",i);const a=n.parseExpression(!0,r);return{type:"color",mode:n.mode,color:i,body:a}},htmlBuilder:Vt,mathmlBuilder:jt}),Qe({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,n){let{parser:r}=e;const i="["===r.gullet.future().text?r.parseSizeGroup(!0):null,a=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:a,size:i&&It(i,"size").value}}, +// The following builders are called only at the top level, +// not within tabular/array environments. +htmlBuilder(e,t){const n=Ge.makeSpan(["mspace"],[],t);return e.newLine&&(n.classes.push("newline"),e.size&&(n.style.marginTop=z(G(e.size,t)))),n},mathmlBuilder(e,t){const n=new gt.MathNode("mspace");return e.newLine&&(n.setAttribute("linebreak","newline"),e.size&&n.setAttribute("height",z(G(e.size,t)))),n}});const Wt={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Qt=e=>{const t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new r("Expected a control sequence",e);return t},Kt=(e,t,n,r)=>{let i=e.gullet.macros.get(n.text);null==i&&(n.noexpand=!0,i={tokens:[n],numArgs:0, +// reproduce the same behavior in expansion +unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,i,r)};Qe({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){let{parser:t,funcName:n}=e;t.consumeSpaces();const i=t.fetch();if(Wt[i.text])return"\\global"!==n&&"\\\\globallong"!==n||(i.text=Wt[i.text]),It(t.parseFunction(),"internal");throw new r("Invalid token after macro prefix",i)}}),Qe({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:n}=e,i=t.gullet.popToken();const a=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(a))throw new r("Expected a control sequence",i);let o,s=0;const l=[[]];for(;"{"!==t.gullet.future().text;)if(i=t.gullet.popToken(),"#"===i.text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(i=t.gullet.popToken(),!/^[1-9]$/.test(i.text))throw new r('Invalid argument number "'+i.text+'"');if(parseInt(i.text)!==s+1)throw new r('Argument number "'+i.text+'" out of order');s++,l.push([])}else{if("EOF"===i.text)throw new r("Expected a macro definition");l[s].push(i.text)}let{tokens:c}=t.gullet.consumeArg();return o&&c.unshift(o),"\\edef"!==n&&"\\xdef"!==n||(c=t.gullet.expandTokens(c),c.reverse()),t.gullet.macros.set(a,{tokens:c,numArgs:s,delimiters:l},n===Wt[n]),{type:"internal",mode:t.mode}}}),Qe({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:n}=e;const r=Qt(t.gullet.popToken());t.gullet.consumeSpaces();const i=(e=>{let t=e.gullet.popToken();return"="===t.text&&(t=e.gullet.popToken()," "===t.text&&(t=e.gullet.popToken())),t})(t);return Kt(t,r,i,"\\\\globallet"===n),{type:"internal",mode:t.mode}}}),Qe({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:n}=e;const r=Qt(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return Kt(t,r,a,"\\\\globalfuture"===n),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:"internal",mode:t.mode}}});const Xt=function(e,t,n){const r=w(ae.math[e]&&ae.math[e].replace||e,t,n);if(!r)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return r},Zt=function(e,t,n,r){const i=n.havingBaseStyle(t),a=Ge.makeSpan(r.concat(i.sizingClasses(n)),[e],n),o=i.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=i.sizeMultiplier,a},Jt=function(e,t,n){const r=t.havingBaseStyle(n),i=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=z(i),e.height-=i,e.depth+=i},en=function(e,t,n,r,i,a){const o=function(e,t,n,r){return Ge.makeSymbol(e,"Size"+t+"-Regular",n,r)}(e,t,i,r),s=Zt(Ge.makeSpan(["delimsizing","size"+t],[o],r),y.TEXT,r,a);return n&&Jt(s,r,y.TEXT),s},tn=function(e,t,n){let r;return r="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ge.makeSpan(["delimsizinginner",r],[Ge.makeSpan([],[Ge.makeSymbol(e,t,n)])])}},nn=function(e,t,n){const r=N["Size4-Regular"][e.charCodeAt(0)]?N["Size4-Regular"][e.charCodeAt(0)][4]:N["Size1-Regular"][e.charCodeAt(0)][4],i=new J("inner",function(e,t){switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),a=new Z([i],{width:z(r),height:z(t), +// Override CSS rule `.katex svg { width: 100% }` +style:"width:"+z(r),viewBox:"0 0 "+1e3*r+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ge.makeSvgSpan([],[a],n);return o.height=t,o.style.height=z(t),o.style.width=z(r),{type:"elem",elem:o}},rn={type:"kern",size:-.008},an=["|","\\lvert","\\rvert","\\vert"],on=["\\|","\\lVert","\\rVert","\\Vert"],sn=function(e,t,n,r,i,a){let o,s,c,u,d="",p=0;o=c=u=e,s=null;let h="Size1-Regular";"\\uparrow"===e?c=u="⏐":"\\Uparrow"===e?c=u="‖":"\\downarrow"===e?o=c="⏐":"\\Downarrow"===e?o=c="‖":"\\updownarrow"===e?(o="\\uparrow",c="⏐",u="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",c="‖",u="\\Downarrow"):l.contains(an,e)?(c="∣",d="vert",p=333):l.contains(on,e)?(c="∥",d="doublevert",p=556):"["===e||"\\lbrack"===e?(o="⎡",c="⎢",u="⎣",h="Size4-Regular",d="lbrack",p=667):"]"===e||"\\rbrack"===e?(o="⎤",c="⎥",u="⎦",h="Size4-Regular",d="rbrack",p=667):"\\lfloor"===e||"⌊"===e?(c=o="⎢",u="⎣",h="Size4-Regular",d="lfloor",p=667):"\\lceil"===e||"⌈"===e?(o="⎡",c=u="⎢",h="Size4-Regular",d="lceil",p=667):"\\rfloor"===e||"⌋"===e?(c=o="⎥",u="⎦",h="Size4-Regular",d="rfloor",p=667):"\\rceil"===e||"⌉"===e?(o="⎤",c=u="⎥",h="Size4-Regular",d="rceil",p=667):"("===e||"\\lparen"===e?(o="⎛",c="⎜",u="⎝",h="Size4-Regular",d="lparen",p=875):")"===e||"\\rparen"===e?(o="⎞",c="⎟",u="⎠",h="Size4-Regular",d="rparen",p=875):"\\{"===e||"\\lbrace"===e?(o="⎧",s="⎨",u="⎩",c="⎪",h="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="⎫",s="⎬",u="⎭",c="⎪",h="Size4-Regular"):"\\lgroup"===e||"⟮"===e?(o="⎧",u="⎩",c="⎪",h="Size4-Regular"):"\\rgroup"===e||"⟯"===e?(o="⎫",u="⎭",c="⎪",h="Size4-Regular"):"\\lmoustache"===e||"⎰"===e?(o="⎧",u="⎭",c="⎪",h="Size4-Regular"):"\\rmoustache"!==e&&"⎱"!==e||(o="⎫",u="⎩",c="⎪",h="Size4-Regular");const _=Xt(o,h,i),m=_.height+_.depth,g=Xt(c,h,i),f=g.height+g.depth,b=Xt(u,h,i),E=b.height+b.depth;let S=0,T=1;if(null!==s){const e=Xt(s,h,i);S=e.height+e.depth,T=2}const v=m+E+S,C=v+Math.max(0,Math.ceil((t-v)/(T*f)))*T*f;let x=r.fontMetrics().axisHeight;n&&(x*=r.sizeMultiplier);const A=C/2-x,N=[];if(d.length>0){const e=C-m-E,t=Math.round(1e3*C),n=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(d,Math.round(1e3*e)),i=new J(d,n),a=(p/1e3).toFixed(3)+"em",o=(t/1e3).toFixed(3)+"em",s=new Z([i],{width:a,height:o,viewBox:"0 0 "+p+" "+t}),l=Ge.makeSvgSpan([],[s],r);l.height=t/1e3,l.style.width=a,l.style.height=o,N.push({type:"elem",elem:l})}else{if(N.push(tn(u,h,i)),N.push(rn),null===s){const e=C-m-E+.016;N.push(nn(c,e,r))}else{const e=(C-m-E-S)/2+.016;N.push(nn(c,e,r)),N.push(rn),N.push(tn(s,h,i)),N.push(rn),N.push(nn(c,e,r))}N.push(rn),N.push(tn(o,h,i))}const O=r.havingBaseStyle(y.TEXT),R=Ge.makeVList({positionType:"bottom",positionData:A,children:N},O);return Zt(Ge.makeSpan(["delimsizing","mult"],[R],O),y.TEXT,r,a)},ln=.08,cn=function(e,t,n,r,i){const a=function(e,t,n){t*=1e3;let r="";switch(e){case"sqrtMain":r=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,C);break;case"sqrtSize1":r=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,C);break;case"sqrtSize2":r=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,C);break;case"sqrtSize3":r=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,C);break;case"sqrtSize4":r=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,C);break;case"sqrtTall":r=function(e,t,n){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(n-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,C,n)}return r}(e,r,n),o=new J(e,a),s=new Z([o],{ +// Note: 1000:1 ratio of viewBox to document em width. +width:"400em",height:z(t),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Ge.makeSvgSpan(["hide-tail"],[s],i)},un=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],dn=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],pn=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],hn=[0,1.2,1.8,2.4,3],_n=[{type:"small",style:y.SCRIPTSCRIPT},{type:"small",style:y.SCRIPT},{type:"small",style:y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],mn=[{type:"small",style:y.SCRIPTSCRIPT},{type:"small",style:y.SCRIPT},{type:"small",style:y.TEXT},{type:"stack"}],gn=[{type:"small",style:y.SCRIPTSCRIPT},{type:"small",style:y.SCRIPT},{type:"small",style:y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],fn=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},bn=function(e,t,n,r){for(let i=Math.min(2,3-r.style.size);it)return n[i]}return n[n.length-1]},En=function(e,t,n,r,i,a){let o;"<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),o=l.contains(pn,e)?_n:l.contains(un,e)?gn:mn;const s=bn(e,t,o,r);return"small"===s.type?function(e,t,n,r,i,a){const o=Ge.makeSymbol(e,"Main-Regular",i,r),s=Zt(o,t,r,a);return n&&Jt(s,r,t),s}(e,s.style,n,r,i,a):"large"===s.type?en(e,s.size,n,r,i,a):sn(e,t,n,r,i,a)};var yn={sqrtImage:function(e,t){const n=t.havingBaseSizing(),r=bn("\\surd",e*n.sizeMultiplier,gn,n);let i=n.sizeMultiplier;const a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness);let o,s,l=0,c=0,u=0;return"small"===r.type?(u=1e3+1e3*a+80,e<1?i=1:e<1.4&&(i=.7),l=(1+a+ln)/i,c=(1+a)/i,o=cn("sqrtMain",l,u,a,t),o.style.minWidth="0.853em",s=.833/i):"large"===r.type?(u=1080*hn[r.size],c=(hn[r.size]+a)/i,l=(hn[r.size]+a+ln)/i,o=cn("sqrtSize"+r.size,l,u,a,t),o.style.minWidth="1.02em",s=1/i):(l=e+a+ln,c=e+a,u=Math.floor(1e3*e+a)+80,o=cn("sqrtTall",l,u,a,t),o.style.minWidth="0.742em",s=1.056),o.height=c,o.style.height=z(l),{span:o,advanceWidth:s, +// Calculate the actual line width. +// This actually should depend on the chosen font -- e.g. \boldmath +// should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and +// have thicker rules. +ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*i}},sizedDelim:function(e,t,n,i,a){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),l.contains(un,e)||l.contains(pn,e))return en(e,t,!1,n,i,a);if(l.contains(dn,e))return sn(e,hn[t],!1,n,i,a);throw new r("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:hn,customSizedDelim:En,leftRightDelim:function(e,t,n,r,i,a){const o=r.fontMetrics().axisHeight*r.sizeMultiplier,s=5/r.fontMetrics().ptPerEm,l=Math.max(t-o,n+o),c=Math.max( +// In real TeX, calculations are done using integral values which are +// 65536 per pt, or 655360 per em. So, the division here truncates in +// TeX but doesn't here, producing different results. If we wanted to +// exactly match TeX's calculation, we could do +// Math.floor(655360 * maxDistFromAxis / 500) * +// delimiterFactor / 655360 +// (To see the difference, compare +// x^{x^{\left(\rule{0.1em}{0.68em}\right)}} +// in TeX and KaTeX) +l/500*901,2*l-s);return En(e,c,!0,r,i,a)}};const Sn={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Tn=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function vn(e,t){const n=Mt(e);if(n&&l.contains(Tn,n.text))return n;throw new r(n?"Invalid delimiter '"+n.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function Cn(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Qe({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{const n=vn(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:Sn[e.funcName].size,mclass:Sn[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>"."===e.delim?Ge.makeSpan([e.mclass]):yn.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{const t=[];"."!==e.delim&&t.push(ft(e.delim,e.mode));const n=new gt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n.setAttribute("stretchy","true");const r=z(yn.sizeToMaxHeight[e.size]);return n.setAttribute("minsize",r),n.setAttribute("maxsize",r),n}}),Qe({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const n=e.parser.gullet.macros.get("\\current@color");if(n&&"string"!=typeof n)throw new r("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:vn(t[0],e).text,color:n}}}),Qe({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const n=vn(t[0],e),r=e.parser;++r.leftrightDepth;const i=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);const a=It(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:i,left:n.text,right:a.delim,rightColor:a.color}},htmlBuilder:(e,t)=>{Cn(e);const n=it(e.body,t,!0,["mopen","mclose"]);let r,i,a=0,o=0,s=!1;for(let l=0;l{Cn(e);const n=St(e.body,t);if("."!==e.left){const t=new gt.MathNode("mo",[ft(e.left,e.mode)]);t.setAttribute("fence","true"),n.unshift(t)}if("."!==e.right){const t=new gt.MathNode("mo",[ft(e.right,e.mode)]);t.setAttribute("fence","true"),e.rightColor&&t.setAttribute("mathcolor",e.rightColor),n.push(t)}return bt(n)}}),Qe({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const n=vn(t[0],e);if(!e.parser.leftrightDepth)throw new r("\\middle without preceding \\left",n);return{type:"middle",mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{let n;if("."===e.delim)n=ct(t,[]);else{n=yn.sizedDelim(e.delim,1,t,e.mode,[]);const r={delim:e.delim,options:t};n.isMiddle=r}return n},mathmlBuilder:(e,t)=>{const n="\\vert"===e.delim||"|"===e.delim?ft("|","text"):ft(e.delim,e.mode),r=new gt.MathNode("mo",[n]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});const xn=(e,t)=>{const n=Ge.wrapFragment(ut(e.body,t),t),r=e.label.slice(1);let i,a=t.sizeMultiplier,o=0;const s=l.isCharacterBox(e.body);if("sout"===r)i=Ge.makeSpan(["stretchy","sout"]),i.height=t.fontMetrics().defaultRuleThickness/a,o=-.5*t.fontMetrics().xHeight;else if("phase"===r){const e=G({number:.6,unit:"pt"},t),r=G({number:.35,unit:"ex"},t);a/=t.havingBaseSizing().sizeMultiplier;const s=n.height+n.depth+e+r;n.style.paddingLeft=z(s/2+e);const l=Math.floor(1e3*s*a),u="M400000 "+(c=l)+" H0 L"+c/2+" 0 l65 45 L145 "+(c-80)+" H400000z",d=new Z([new J("phase",u)],{width:"400em",height:z(l/1e3),viewBox:"0 0 400000 "+l,preserveAspectRatio:"xMinYMin slice"});i=Ge.makeSvgSpan(["hide-tail"],[d],t),i.style.height=z(s),o=n.depth+e+r}else{/cancel/.test(r)?s||n.classes.push("cancel-pad"):"angl"===r?n.classes.push("anglpad"):n.classes.push("boxpad");let a=0,l=0,c=0;/box/.test(r)?(c=Math.max(t.fontMetrics().fboxrule, +// default +t.minRuleThickness),a=t.fontMetrics().fboxsep+("colorbox"===r?0:c),l=a):"angl"===r?(c=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),a=4*c,l=Math.max(0,.25-n.depth)):(a=s?.2:0,l=a),i=Rt(n,r,a,l,t),/fbox|boxed|fcolorbox/.test(r)?(i.style.borderStyle="solid",i.style.borderWidth=z(c)):"angl"===r&&.049!==c&&(i.style.borderTopWidth=z(c),i.style.borderRightWidth=z(c)),o=n.depth+l,e.backgroundColor&&(i.style.backgroundColor=e.backgroundColor,e.borderColor&&(i.style.borderColor=e.borderColor))}var c;let u;if(e.backgroundColor)u=Ge.makeVList({positionType:"individualShift",children:[ +// Put the color background behind inner; +{type:"elem",elem:i,shift:o},{type:"elem",elem:n,shift:0}]},t);else{const e=/cancel|phase/.test(r)?["svg-align"]:[];u=Ge.makeVList({positionType:"individualShift",children:[ +// Write the \cancel stroke on top of inner. +{type:"elem",elem:n,shift:0},{type:"elem",elem:i,shift:o,wrapperClasses:e}]},t)}return/cancel/.test(r)&&(u.height=n.height,u.depth=n.depth),/cancel/.test(r)&&!s?Ge.makeSpan(["mord","cancel-lap"],[u],t):Ge.makeSpan(["mord"],[u],t)},An=(e,t)=>{let n=0;const r=new gt.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[vt(e.body,t)]);switch(e.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),"\\fcolorbox"===e.label){const n=Math.max(t.fontMetrics().fboxrule, +// default +t.minRuleThickness);r.setAttribute("style","border: "+n+"em solid "+String(e.borderColor))}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r};Qe({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,n){let{parser:r,funcName:i}=e;const a=It(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:r.mode,label:i,backgroundColor:a,body:o}},htmlBuilder:xn,mathmlBuilder:An}),Qe({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,n){let{parser:r,funcName:i}=e;const a=It(t[0],"color-token").color,o=It(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:r.mode,label:i,backgroundColor:o,borderColor:a,body:s}},htmlBuilder:xn,mathmlBuilder:An}),Qe({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){let{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\fbox",body:t[0]}}}),Qe({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){let{parser:n,funcName:r}=e;const i=t[0];return{type:"enclose",mode:n.mode,label:r,body:i}},htmlBuilder:xn,mathmlBuilder:An}),Qe({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){let{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\angl",body:t[0]}}});const Nn={};function On(e){let{type:t,names:n,props:r,handler:i,htmlBuilder:a,mathmlBuilder:o}=e;const s={type:t,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i};for(let l=0;l{if(!e.parser.settings.displayMode)throw new r("{"+e.envName+"} can be used only in display mode.")};function Ln(e){if(-1===e.indexOf("ed"))return-1===e.indexOf("*")}function Pn(e,t,n){let{hskipBeforeAndAfter:i,addJot:a,cols:o,arraystretch:s,colSeparationType:l,autoTag:c,singleRow:u,emptySingleRow:d,maxNumCols:p,leqno:h}=t;if(e.gullet.beginGroup(),u||e.gullet.macros.set("\\cr","\\\\\\relax"),!s){const t=e.gullet.expandMacroAsText("\\arraystretch");if(null==t)s=1;else if(s=parseFloat(t),!s||s<0)throw new r("Invalid \\arraystretch: "+t)}e.gullet.beginGroup();let _=[];const m=[_],g=[],f=[],b=null!=c?[]:void 0;function E(){c&&e.gullet.macros.set("\\@eqnsw","1",!0)}function y(){b&&(e.gullet.macros.get("\\df@tag")?(b.push(e.subparse([new In("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):b.push(Boolean(c)&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(E(),f.push(Dn(e));;){let t=e.parseExpression(!1,u?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),t={type:"ordgroup",mode:e.mode,body:t},n&&(t={type:"styling",mode:e.mode,style:n,body:[t]}),_.push(t);const i=e.fetch().text;if("&"===i){if(p&&_.length===p){if(u||l)throw new r("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else{if("\\end"===i){y(),1===_.length&&"styling"===t.type&&0===t.body[0].body.length&&(m.length>1||!d)&&m.pop(),f.length0&&(E+=.25),u.push({pos:E,isDashed:e[t]})}for(S(o[0]),n=0;n0&&(p+=b,le)))for(n=0;n=s)continue;(i>0||e.hskipBeforeAndAfter)&&(o=l.deflt(u.pregap,h),0!==o&&(x=Ge.makeSpan(["arraycolsep"],[]),x.style.width=z(o),C.push(x)));let _=[];for(n=0;n0){const e=Ge.makeLineSpan("hline",t,d),n=Ge.makeLineSpan("hdashline",t,d),r=[{type:"elem",elem:c,shift:0}];for(;u.length>0;){const t=u.pop(),i=t.pos-T;t.isDashed?r.push({type:"elem",elem:n,shift:i}):r.push({type:"elem",elem:e,shift:i})}c=Ge.makeVList({positionType:"individualShift",children:r},t)}if(0===N.length)return Ge.makeSpan(["mord"],[c],t);{let e=Ge.makeVList({positionType:"individualShift",children:N},t);return e=Ge.makeSpan(["tag"],[e],t),Ge.makeFragment([c,e])}},Un={c:"center ",l:"left ",r:"right "},Gn=function(e,t){const n=[],r=new gt.MathNode("mtd",[],["mtr-glue"]),i=new gt.MathNode("mtd",[],["mml-eqn-num"]);for(let d=0;d0){const t=e.cols;let n="",r=!1,i=0,o=t.length;"separator"===t[0].type&&(s+="top ",i=1),"separator"===t[t.length-1].type&&(s+="bottom ",o-=1);for(let e=i;e0?"left ":"",s+=u[u.length-1].length>0?"right ":"";for(let d=1;d-1?"alignat":"align",a="split"===e.envName,o=Pn(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:Ln(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display");let s,l=0;const c={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){let e="";for(let n=0;n0&&u&&(t=1),n[r]={type:"align",align:e,pregap:t,postgap:0}}return o.colSeparationType=u?"align":"alignat",o};On({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){const n=(Mt(t[0])?[t[0]]:It(t[0],"ordgroup").body).map((function(e){const t=Dt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new r("Unknown column alignment: "+t,e)})),i={cols:n,hskipBeforeAndAfter:!0, +// \@preamble in lttab.dtx +maxNumCols:n.length};return Pn(e.parser,i,Fn(e.envName))},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){const t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")];let n="c";const i={hskipBeforeAndAfter:!1,cols:[{type:"align",align:n}]};if("*"===e.envName.charAt(e.envName.length-1)){const t=e.parser;if(t.consumeSpaces(),"["===t.fetch().text){if(t.consume(),t.consumeSpaces(),n=t.fetch().text,-1==="lcr".indexOf(n))throw new r("Expected l or c or r",t.nextToken);t.consume(),t.consumeSpaces(),t.expect("]"),t.consume(),i.cols=[{type:"align",align:n}]}}const a=Pn(e.parser,i,Fn(e.envName)),o=Math.max(0,...a.body.map((e=>e.length)));return a.cols=new Array(o).fill({type:"align",align:n}),t?{type:"leftright",mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){const t=Pn(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){const n=(Mt(t[0])?[t[0]]:It(t[0],"ordgroup").body).map((function(e){const t=Dt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new r("Unknown column alignment: "+t,e)}));if(n.length>1)throw new r("{subarray} can contain only one column");let i={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(i=Pn(e.parser,i,"script"),i.body.length>0&&i.body[0].length>1)throw new r("{subarray} can contain only one column");return i},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){const t=Pn(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0, +// TODO(kevinb) get the current style. +// For now we use the metrics for TEXT style which is what we were +// doing before. Before attempting to get the current style we +// should look at TeX's behavior especially for \over and matrices. +postgap:1 +/* 1em quad */},{type:"align",align:"l",pregap:0,postgap:0}]},Fn(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:zn,htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){l.contains(["gather","gather*"],e.envName)&&Mn(e);const t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Ln(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Pn(e.parser,t,"display")},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:zn,htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){Mn(e);const t={autoTag:Ln(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Pn(e.parser,t,"display")},htmlBuilder:Bn,mathmlBuilder:Gn}),On({type:"array",names:["CD"],props:{numArgs:0},handler:e=>(Mn(e),function(e){const t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();const n=e.fetch().text;if("&"!==n&&"\\\\"!==n){if("\\end"===n){0===t[t.length-1].length&&t.pop();break}throw new r("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}let n=[];const i=[n];for(let s=0;s-1);else{if(!("<>AV".indexOf(i)>-1))throw new r('Expected one of "<>AV=|." after @',l[t]);for(let e=0;e<2;e++){let n=!0;for(let c=t+1;c{const n=e.font,r=t.withFont(n);return ut(e.body,r)},qn=(e,t)=>{const n=e.font,r=t.withFont(n);return vt(e.body,r)},Hn={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Qe({type:"font",names:[ +// styles, except \boldsymbol defined below +"\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit", +// families +"\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt", +// aliases, except \bm defined below +"\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=Xe(t[0]);let a=r;return a in Hn&&(a=Hn[a]),{type:"font",mode:n.mode,font:a.slice(1),body:i}},htmlBuilder:Yn,mathmlBuilder:qn}),Qe({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{let{parser:n}=e;const r=t[0],i=l.isCharacterBox(r);return{type:"mclass",mode:n.mode,mclass:$t(r),body:[{type:"font",mode:n.mode,font:"boldsymbol",body:r}],isCharacterBox:i}}}),Qe({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{parser:n,funcName:r,breakOnTokenText:i}=e;const{mode:a}=n,o=n.parseExpression(!0,i);return{type:"font",mode:a,font:"math"+r.slice(1),body:{type:"ordgroup",mode:n.mode,body:o}}},htmlBuilder:Yn,mathmlBuilder:qn});const Vn=(e,t)=>{let n=t;return"display"===e?n=n.id>=y.SCRIPT.id?n.text():y.DISPLAY:"text"===e&&n.size===y.DISPLAY.size?n=y.TEXT:"script"===e?n=y.SCRIPT:"scriptscript"===e&&(n=y.SCRIPTSCRIPT),n},jn=(e,t)=>{const n=Vn(e.size,t.style),r=n.fracNum(),i=n.fracDen();let a;a=t.havingStyle(r);const o=ut(e.numer,a,t);if(e.continued){const e=8.5/t.fontMetrics().ptPerEm,n=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*u:7*u,h=t.fontMetrics().denom1):(c>0?(d=t.fontMetrics().num2,p=u):(d=t.fontMetrics().num3,p=3*u),h=t.fontMetrics().denom2),l){const e=t.fontMetrics().axisHeight;d-o.depth-(e+.5*c){let n=new gt.MathNode("mfrac",[vt(e.numer,t),vt(e.denom,t)]);if(e.hasBarLine){if(e.barSize){const r=G(e.barSize,t);n.setAttribute("linethickness",z(r))}}else n.setAttribute("linethickness","0px");const r=Vn(e.size,t.style);if(r.size!==t.style.size){n=new gt.MathNode("mstyle",[n]);const e=r.size===y.DISPLAY.size?"true":"false";n.setAttribute("displaystyle",e),n.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){const t=[];if(null!=e.leftDelim){const n=new gt.MathNode("mo",[new gt.TextNode(e.leftDelim.replace("\\",""))]);n.setAttribute("fence","true"),t.push(n)}if(t.push(n),null!=e.rightDelim){const n=new gt.MathNode("mo",[new gt.TextNode(e.rightDelim.replace("\\",""))]);n.setAttribute("fence","true"),t.push(n)}return bt(t)}return n};Qe({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac", +// can’t be entered directly +"\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=t[0],a=t[1];let o,s=null,l=null,c="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":o=!0;break;case"\\\\atopfrac":o=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":o=!1,s="(",l=")";break;case"\\\\bracefrac":o=!1,s="\\{",l="\\}";break;case"\\\\brackfrac":o=!1,s="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":c="display";break;case"\\tfrac":case"\\tbinom":c="text"}return{type:"genfrac",mode:n.mode,continued:!1,numer:i,denom:a,hasBarLine:o,leftDelim:s,rightDelim:l,size:c,barSize:null}},htmlBuilder:jn,mathmlBuilder:Wn}),Qe({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=t[0],a=t[1];return{type:"genfrac",mode:n.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),Qe({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){let t,{parser:n,funcName:r,token:i}=e;switch(r){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:n.mode,replaceWith:t,token:i}}});const Qn=["display","text","script","scriptscript"],Kn=function(e){let t=null;return e.length>0&&(t=e,t="."===t?null:t),t};Qe({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){let{parser:n}=e;const r=t[4],i=t[5],a=Xe(t[0]),o="atom"===a.type&&"open"===a.family?Kn(a.text):null,s=Xe(t[1]),l="atom"===s.type&&"close"===s.family?Kn(s.text):null,c=It(t[2],"size");let u,d=null;c.isBlank?u=!0:(d=c.value,u=d.number>0);let p="auto",h=t[3];if("ordgroup"===h.type){if(h.body.length>0){const e=It(h.body[0],"textord");p=Qn[Number(e.text)]}}else h=It(h,"textord"),p=Qn[Number(h.text)];return{type:"genfrac",mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:u,barSize:d,leftDelim:o,rightDelim:l,size:p}},htmlBuilder:jn,mathmlBuilder:Wn}),Qe({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){let{parser:n,funcName:r,token:i}=e;return{type:"infix",mode:n.mode,replaceWith:"\\\\abovefrac",size:It(t[0],"size").value,token:i}}}),Qe({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=t[0],a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(It(t[1],"infix").size),o=t[2],s=a.number>0;return{type:"genfrac",mode:n.mode,numer:i,denom:o,continued:!1,hasBarLine:s,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:jn,mathmlBuilder:Wn});const Xn=(e,t)=>{const n=t.style;let r,i;"supsub"===e.type?(r=e.sup?ut(e.sup,t.havingStyle(n.sup()),t):ut(e.sub,t.havingStyle(n.sub()),t),i=It(e.base,"horizBrace")):i=It(e,"horizBrace");const a=ut(i.base,t.havingBaseStyle(y.DISPLAY)),o=kt(i,t);let s;if(i.isOver?(s=Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:o}]},t),s.children[0].children[0].children[1].classes.push("svg-align")):(s=Ge.makeVList({positionType:"bottom",positionData:a.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:a}]},t),s.children[0].children[0].children[0].classes.push("svg-align")),r){const e=Ge.makeSpan(["mord",i.isOver?"mover":"munder"],[s],t);s=i.isOver?Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ge.makeVList({positionType:"bottom",positionData:e.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:e}]},t)}return Ge.makeSpan(["mord",i.isOver?"mover":"munder"],[s],t)};Qe({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){let{parser:n,funcName:r}=e;return{type:"horizBrace",mode:n.mode,label:r,isOver:/^\\over/.test(r),base:t[0]}},htmlBuilder:Xn,mathmlBuilder:(e,t)=>{const n=wt(e.label);return new gt.MathNode(e.isOver?"mover":"munder",[vt(e.base,t),n])}}),Qe({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;const r=t[1],i=It(t[0],"url").url;return n.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:n.mode,href:i,body:Ze(r)}:n.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{const n=it(e.body,t,!1);return Ge.makeAnchor(e.href,[],n,t)},mathmlBuilder:(e,t)=>{let n=Tt(e.body,t);return n instanceof _t||(n=new _t("mrow",[n])),n.setAttribute("href",e.href),n}}),Qe({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;const r=It(t[0],"url").url;if(!n.settings.isTrusted({command:"\\url",url:r}))return n.formatUnsupportedCmd("\\url");const i=[];for(let o=0;onew gt.MathNode("mrow",St(e.body,t))}),Qe({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:(e,t)=>{let{parser:n,funcName:i,token:a}=e;const o=It(t[0],"raw").string,s=t[1];let l;n.settings.strict&&n.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");const c={};switch(i){case"\\htmlClass":c.class=o,l={command:"\\htmlClass",class:o};break;case"\\htmlId":c.id=o,l={command:"\\htmlId",id:o};break;case"\\htmlStyle":c.style=o,l={command:"\\htmlStyle",style:o};break;case"\\htmlData":{const e=o.split(",");for(let t=0;t{const n=it(e.body,t,!1),r=["enclosing"];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));const i=Ge.makeSpan(r,n,t);for(const a in e.attributes)"class"!==a&&e.attributes.hasOwnProperty(a)&&i.setAttribute(a,e.attributes[a]);return i},mathmlBuilder:(e,t)=>Tt(e.body,t)}),Qe({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;return{type:"htmlmathml",mode:n.mode,html:Ze(t[0]),mathml:Ze(t[1])}},htmlBuilder:(e,t)=>{const n=it(e.html,t,!1);return Ge.makeFragment(n)},mathmlBuilder:(e,t)=>Tt(e.mathml,t)});const Zn=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};{const t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new r("Invalid size: '"+e+"' in \\includegraphics");const n={number:+(t[1]+t[2]), +// sign + magnitude, cast to number +unit:t[3]};if(!U(n))throw new r("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n}};Qe({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,n)=>{let{parser:i}=e,a={number:0,unit:"em"},o={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(n[0]){const e=It(n[0],"raw").string.split(",");for(let t=0;t{const n=G(e.height,t);let r=0;e.totalheight.number>0&&(r=G(e.totalheight,t)-n);let i=0;e.width.number>0&&(i=G(e.width,t));const a={height:z(n+r)};i>0&&(a.width=z(i)),r>0&&(a.verticalAlign=z(-r));const o=new Q(e.src,e.alt,a);return o.height=n,o.depth=r,o},mathmlBuilder:(e,t)=>{const n=new gt.MathNode("mglyph",[]);n.setAttribute("alt",e.alt);const r=G(e.height,t);let i=0;if(e.totalheight.number>0&&(i=G(e.totalheight,t)-r,n.setAttribute("valign",z(-i))),n.setAttribute("height",z(r+i)),e.width.number>0){const r=G(e.width,t);n.setAttribute("width",z(r))}return n.setAttribute("src",e.src),n}}),Qe({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){let{parser:n,funcName:r}=e;const i=It(t[0],"size");if(n.settings.strict){const e="m"===r[1],t="mu"===i.value.unit;e?(t||n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, not "+i.value.unit+" units"),"math"!==n.mode&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):t&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:n.mode,dimension:i.value}},htmlBuilder:(e,t)=>Ge.makeGlue(e.dimension,t),mathmlBuilder(e,t){const n=G(e.dimension,t);return new gt.SpaceNode(n)}}),Qe({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:n,funcName:r}=e;const i=t[0];return{type:"lap",mode:n.mode,alignment:r.slice(5),body:i}},htmlBuilder:(e,t)=>{let n;"clap"===e.alignment?(n=Ge.makeSpan([],[ut(e.body,t)]),n=Ge.makeSpan(["inner"],[n],t)):n=Ge.makeSpan(["inner"],[ut(e.body,t)]);const r=Ge.makeSpan(["fix"],[]);let i=Ge.makeSpan([e.alignment],[n,r],t);const a=Ge.makeSpan(["strut"]);return a.style.height=z(i.height+i.depth),i.depth&&(a.style.verticalAlign=z(-i.depth)),i.children.unshift(a),i=Ge.makeSpan(["thinbox"],[i],t),Ge.makeSpan(["mord","vbox"],[i],t)},mathmlBuilder:(e,t)=>{const n=new gt.MathNode("mpadded",[vt(e.body,t)]);if("rlap"!==e.alignment){const t="llap"===e.alignment?"-1":"-0.5";n.setAttribute("lspace",t+"width")}return n.setAttribute("width","0px"),n}}),Qe({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){let{funcName:n,parser:r}=e;const i=r.mode;r.switchMode("math");const a="\\("===n?"\\)":"$",o=r.parseExpression(!1,a);return r.expect(a),r.switchMode(i),{type:"styling",mode:r.mode,style:"text",body:o}}}),Qe({type:"text", +// Doesn't matter what this is. +names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new r("Mismatched "+e.funcName)}});const Jn=(e,t)=>{switch(t.style.size){case y.DISPLAY.size:return e.display;case y.TEXT.size:return e.text;case y.SCRIPT.size:return e.script;case y.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};Qe({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{let{parser:n}=e;return{type:"mathchoice",mode:n.mode,display:Ze(t[0]),text:Ze(t[1]),script:Ze(t[2]),scriptscript:Ze(t[3])}},htmlBuilder:(e,t)=>{const n=Jn(e,t),r=it(n,t,!1);return Ge.makeFragment(r)},mathmlBuilder:(e,t)=>{const n=Jn(e,t);return Tt(n,t)}});const er=(e,t,n,r,i,a,o)=>{e=Ge.makeSpan([],[e]);const s=n&&l.isCharacterBox(n);let c,u,d;if(t){const e=ut(t,r.havingStyle(i.sup()),r);u={elem:e,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-e.depth)}}if(n){const e=ut(n,r.havingStyle(i.sub()),r);c={elem:e,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-e.height)}}if(u&&c){const t=r.fontMetrics().bigOpSpacing5+c.elem.height+c.elem.depth+c.kern+e.depth+o;d=Ge.makeVList({positionType:"bottom",positionData:t,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:z(-a)},{type:"kern",size:c.kern},{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:z(a)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else if(c){const t=e.height-o;d=Ge.makeVList({positionType:"top",positionData:t,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:c.elem,marginLeft:z(-a)},{type:"kern",size:c.kern},{type:"elem",elem:e}]},r)}else{if(!u)return e;{const t=e.depth+o;d=Ge.makeVList({positionType:"bottom",positionData:t,children:[{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:z(a)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}}const p=[d];if(c&&0!==a&&!s){const e=Ge.makeSpan(["mspace"],[],r);e.style.marginRight=z(a),p.unshift(e)}return Ge.makeSpan(["mop","op-limits"],p,r)},tr=["\\smallint"],nr=(e,t)=>{let n,r,i,a=!1;"supsub"===e.type?(n=e.sup,r=e.sub,i=It(e.base,"op"),a=!0):i=It(e,"op");const o=t.style;let s,c=!1;if(o.size===y.DISPLAY.size&&i.symbol&&!l.contains(tr,i.name)&&(c=!0),i.symbol){const e=c?"Size2-Regular":"Size1-Regular";let n="";if("\\oiint"!==i.name&&"\\oiiint"!==i.name||(n=i.name.slice(1),i.name="oiint"===n?"\\iint":"\\iiint"),s=Ge.makeSymbol(i.name,e,"math",t,["mop","op-symbol",c?"large-op":"small-op"]),n.length>0){const e=s.italic,r=Ge.staticSvg(n+"Size"+(c?"2":"1"),t);s=Ge.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:0},{type:"elem",elem:r,shift:c?.08:0}]},t),i.name="\\"+n,s.classes.unshift("mop"),s.italic=e}}else if(i.body){const e=it(i.body,t,!0);1===e.length&&e[0]instanceof X?(s=e[0],s.classes[0]="mop"):s=Ge.makeSpan(["mop"],e,t)}else{const e=[];for(let n=1;n{let n;if(e.symbol)n=new _t("mo",[ft(e.name,e.mode)]),l.contains(tr,e.name)&&n.setAttribute("largeop","false");else if(e.body)n=new _t("mo",St(e.body,t));else{n=new _t("mi",[new mt(e.name.slice(1))]);const t=new _t("mo",[ft("⁡","text")]);n=e.parentIsSupSub?new _t("mrow",[n,t]):ht([n,t])}return n},ir={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};Qe({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{let{parser:n,funcName:r}=e,i=r;return 1===i.length&&(i=ir[i]),{type:"op",mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:nr,mathmlBuilder:rr}),Qe({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{let{parser:n}=e;const r=t[0];return{type:"op",mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Ze(r)}},htmlBuilder:nr,mathmlBuilder:rr});const ar={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};Qe({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){let{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:nr,mathmlBuilder:rr}),Qe({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){let{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:nr,mathmlBuilder:rr}),Qe({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){let{parser:t,funcName:n}=e,r=n;return 1===r.length&&(r=ar[r]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:nr,mathmlBuilder:rr});const or=(e,t)=>{let n,r,i,a,o=!1;if("supsub"===e.type?(n=e.sup,r=e.sub,i=It(e.base,"operatorname"),o=!0):i=It(e,"operatorname"),i.body.length>0){const e=i.body.map((e=>{const t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),n=it(e,t.withFont("mathrm"),!0);for(let t=0;t{let{parser:n,funcName:r}=e;const i=t[0];return{type:"operatorname",mode:n.mode,body:Ze(i),alwaysHandleSupSub:"\\operatornamewithlimits"===r,limits:!1,parentIsSupSub:!1}},htmlBuilder:or,mathmlBuilder:(e,t)=>{let n=St(e.body,t.withFont("mathrm")),r=!0;for(let o=0;oe.toText())).join("");n=[new gt.TextNode(e)]}const i=new gt.MathNode("mi",n);i.setAttribute("mathvariant","normal");const a=new gt.MathNode("mo",[ft("⁡","text")]);return e.parentIsSupSub?new gt.MathNode("mrow",[i,a]):gt.newDocumentFragment([i,a])}}),wn("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),Ke({type:"ordgroup",htmlBuilder:(e,t)=>e.semisimple?Ge.makeFragment(it(e.body,t,!1)):Ge.makeSpan(["mord"],it(e.body,t,!0),t),mathmlBuilder:(e,t)=>Tt(e.body,t,!0)}),Qe({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){let{parser:n}=e;const r=t[0];return{type:"overline",mode:n.mode,body:r}},htmlBuilder(e,t){const n=ut(e.body,t.havingCrampedStyle()),r=Ge.makeLineSpan("overline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r},{type:"kern",size:i}]},t);return Ge.makeSpan(["mord","overline"],[a],t)},mathmlBuilder(e,t){const n=new gt.MathNode("mo",[new gt.TextNode("‾")]);n.setAttribute("stretchy","true");const r=new gt.MathNode("mover",[vt(e.body,t),n]);return r.setAttribute("accent","true"),r}}),Qe({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;const r=t[0];return{type:"phantom",mode:n.mode,body:Ze(r)}},htmlBuilder:(e,t)=>{const n=it(e.body,t.withPhantom(),!1);return Ge.makeFragment(n)},mathmlBuilder:(e,t)=>{const n=St(e.body,t);return new gt.MathNode("mphantom",n)}}),Qe({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;const r=t[0];return{type:"hphantom",mode:n.mode,body:r}},htmlBuilder:(e,t)=>{let n=Ge.makeSpan([],[ut(e.body,t.withPhantom())]);if(n.height=0,n.depth=0,n.children)for(let r=0;r{const n=St(Ze(e.body),t),r=new gt.MathNode("mphantom",n),i=new gt.MathNode("mpadded",[r]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i}}),Qe({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:n}=e;const r=t[0];return{type:"vphantom",mode:n.mode,body:r}},htmlBuilder:(e,t)=>{const n=Ge.makeSpan(["inner"],[ut(e.body,t.withPhantom())]),r=Ge.makeSpan(["fix"],[]);return Ge.makeSpan(["mord","rlap"],[n,r],t)},mathmlBuilder:(e,t)=>{const n=St(Ze(e.body),t),r=new gt.MathNode("mphantom",n),i=new gt.MathNode("mpadded",[r]);return i.setAttribute("width","0px"),i}}),Qe({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){let{parser:n}=e;const r=It(t[0],"size").value,i=t[1];return{type:"raisebox",mode:n.mode,dy:r,body:i}},htmlBuilder(e,t){const n=ut(e.body,t),r=G(e.dy,t);return Ge.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:n}]},t)},mathmlBuilder(e,t){const n=new gt.MathNode("mpadded",[vt(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute("voffset",r),n}}),Qe({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){let{parser:t}=e;return{type:"internal",mode:t.mode}}}),Qe({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,n){let{parser:r}=e;const i=n[0],a=It(t[0],"size"),o=It(t[1],"size");return{type:"rule",mode:r.mode,shift:i&&It(i,"size").value,width:a.value,height:o.value}},htmlBuilder(e,t){const n=Ge.makeSpan(["mord","rule"],[],t),r=G(e.width,t),i=G(e.height,t),a=e.shift?G(e.shift,t):0;return n.style.borderRightWidth=z(r),n.style.borderTopWidth=z(i),n.style.bottom=z(a),n.width=r,n.height=i+a,n.depth=-a,n.maxFontSize=1.125*i*t.sizeMultiplier,n},mathmlBuilder(e,t){const n=G(e.width,t),r=G(e.height,t),i=e.shift?G(e.shift,t):0,a=t.color&&t.getColor()||"black",o=new gt.MathNode("mspace");o.setAttribute("mathbackground",a),o.setAttribute("width",z(n)),o.setAttribute("height",z(r));const s=new gt.MathNode("mpadded",[o]);return i>=0?s.setAttribute("height",z(i)):(s.setAttribute("height",z(i)),s.setAttribute("depth",z(-i))),s.setAttribute("voffset",z(i)),s}});const lr=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];Qe({type:"sizing",names:lr,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{breakOnTokenText:n,funcName:r,parser:i}=e;const a=i.parseExpression(!1,n);return{type:"sizing",mode:i.mode, +// Figure out what size to use based on the list of functions above +size:lr.indexOf(r)+1,body:a}},htmlBuilder:(e,t)=>{const n=t.havingSize(e.size);return sr(e.body,n,t)},mathmlBuilder:(e,t)=>{const n=t.havingSize(e.size),r=St(e.body,n),i=new gt.MathNode("mstyle",r);return i.setAttribute("mathsize",z(n.sizeMultiplier)),i}}),Qe({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,n)=>{let{parser:r}=e,i=!1,a=!1;const o=n[0]&&It(n[0],"ordgroup");if(o){let e="";for(let t=0;t{const n=Ge.makeSpan([],[ut(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0,n.children))for(let i=0;i{const n=new gt.MathNode("mpadded",[vt(e.body,t)]);return e.smashHeight&&n.setAttribute("height","0px"),e.smashDepth&&n.setAttribute("depth","0px"),n}}),Qe({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){let{parser:r}=e;const i=n[0],a=t[0];return{type:"sqrt",mode:r.mode,body:a,index:i}},htmlBuilder(e,t){let n=ut(e.body,t.havingCrampedStyle());0===n.height&&(n.height=t.fontMetrics().xHeight),n=Ge.wrapFragment(n,t);const r=t.fontMetrics().defaultRuleThickness;let i=r;t.style.idn.height+n.depth+a&&(a=(a+u-n.height-n.depth)/2);const d=s.height-n.height-a-l;n.style.paddingLeft=z(c);const p=Ge.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+d)},{type:"elem",elem:s},{type:"kern",size:l}]},t);if(e.index){const n=t.havingStyle(y.SCRIPTSCRIPT),r=ut(e.index,n,t),i=.6*(p.height-p.depth),a=Ge.makeVList({positionType:"shift",positionData:-i,children:[{type:"elem",elem:r}]},t),o=Ge.makeSpan(["root"],[a]);return Ge.makeSpan(["mord","sqrt"],[o,p],t)}return Ge.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder(e,t){const{body:n,index:r}=e;return r?new gt.MathNode("mroot",[vt(n,t),vt(r,t)]):new gt.MathNode("msqrt",[vt(n,t)])}});const cr={display:y.DISPLAY,text:y.TEXT,script:y.SCRIPT,scriptscript:y.SCRIPTSCRIPT};Qe({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){let{breakOnTokenText:n,funcName:r,parser:i}=e;const a=i.parseExpression(!0,n),o=r.slice(1,r.length-5);return{type:"styling",mode:i.mode, +// Figure out what style to use by pulling out the style from +// the function name +style:o,body:a}},htmlBuilder(e,t){const n=cr[e.style],r=t.havingStyle(n).withFont("");return sr(e.body,r,t)},mathmlBuilder(e,t){const n=cr[e.style],r=t.havingStyle(n),i=St(e.body,r),a=new gt.MathNode("mstyle",i),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return a.setAttribute("scriptlevel",o[0]),a.setAttribute("displaystyle",o[1]),a}}),Ke({type:"supsub",htmlBuilder(e,t){const n=function(e,t){const n=e.base;return n?"op"===n.type?n.limits&&(t.style.size===y.DISPLAY.size||n.alwaysHandleSupSub)?nr:null:"operatorname"===n.type?n.alwaysHandleSupSub&&(t.style.size===y.DISPLAY.size||n.limits)?or:null:"accent"===n.type?l.isCharacterBox(n.base)?Lt:null:"horizBrace"===n.type&&!e.sub===n.isOver?Xn:null:null}(e,t);if(n)return n(e,t);const{base:r,sup:i,sub:a}=e,o=ut(r,t);let s,c;const u=t.fontMetrics();let d=0,p=0;const h=r&&l.isCharacterBox(r);if(i){const e=t.havingStyle(t.style.sup());s=ut(i,e,t),h||(d=o.height-e.fontMetrics().supDrop*e.sizeMultiplier/t.sizeMultiplier)}if(a){const e=t.havingStyle(t.style.sub());c=ut(a,e,t),h||(p=o.depth+e.fontMetrics().subDrop*e.sizeMultiplier/t.sizeMultiplier)}let _;_=t.style===y.DISPLAY?u.sup1:t.style.cramped?u.sup3:u.sup2;const m=t.sizeMultiplier,g=z(.5/u.ptPerEm/m);let f,b=null;if(c){const t=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(o instanceof X||t)&&(b=z(-o.italic))}if(s&&c){d=Math.max(d,_,s.depth+.25*u.xHeight),p=Math.max(p,u.sub2);const e=4*u.defaultRuleThickness;if(d-s.depth-(c.height-p)0&&(d+=t,p-=t)}const n=[{type:"elem",elem:c,shift:p,marginRight:g,marginLeft:b},{type:"elem",elem:s,shift:-d,marginRight:g}];f=Ge.makeVList({positionType:"individualShift",children:n},t)}else if(c){p=Math.max(p,u.sub1,c.height-.8*u.xHeight);const e=[{type:"elem",elem:c,marginLeft:b,marginRight:g}];f=Ge.makeVList({positionType:"shift",positionData:p,children:e},t)}else{if(!s)throw new Error("supsub must have either sup or sub.");d=Math.max(d,_,s.depth+.25*u.xHeight),f=Ge.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:s,marginRight:g}]},t)}const E=lt(o,"right")||"mord";return Ge.makeSpan([E],[o,Ge.makeSpan(["msupsub"],[f])],t)},mathmlBuilder(e,t){let n,r,i=!1;e.base&&"horizBrace"===e.base.type&&(r=!!e.sup,r===e.base.isOver&&(i=!0,n=e.base.isOver)),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);const a=[vt(e.base,t)];let o;if(e.sub&&a.push(vt(e.sub,t)),e.sup&&a.push(vt(e.sup,t)),i)o=n?"mover":"munder";else if(e.sub)if(e.sup){const n=e.base;o=n&&"op"===n.type&&n.limits&&t.style===y.DISPLAY||n&&"operatorname"===n.type&&n.alwaysHandleSupSub&&(t.style===y.DISPLAY||n.limits)?"munderover":"msubsup"}else{const n=e.base;o=n&&"op"===n.type&&n.limits&&(t.style===y.DISPLAY||n.alwaysHandleSupSub)||n&&"operatorname"===n.type&&n.alwaysHandleSupSub&&(n.limits||t.style===y.DISPLAY)?"munder":"msub"}else{const n=e.base;o=n&&"op"===n.type&&n.limits&&(t.style===y.DISPLAY||n.alwaysHandleSupSub)||n&&"operatorname"===n.type&&n.alwaysHandleSupSub&&(n.limits||t.style===y.DISPLAY)?"mover":"msup"}return new gt.MathNode(o,a)}}),Ke({type:"atom",htmlBuilder:(e,t)=>Ge.mathsym(e.text,e.mode,t,["m"+e.family]),mathmlBuilder(e,t){const n=new gt.MathNode("mo",[ft(e.text,e.mode)]);if("bin"===e.family){const r=Et(e,t);"bold-italic"===r&&n.setAttribute("mathvariant",r)}else"punct"===e.family?n.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||n.setAttribute("stretchy","false");return n}});const ur={mi:"italic",mn:"normal",mtext:"normal"};Ke({type:"mathord",htmlBuilder:(e,t)=>Ge.makeOrd(e,t,"mathord"),mathmlBuilder(e,t){const n=new gt.MathNode("mi",[ft(e.text,e.mode,t)]),r=Et(e,t)||"italic";return r!==ur[n.type]&&n.setAttribute("mathvariant",r),n}}),Ke({type:"textord",htmlBuilder:(e,t)=>Ge.makeOrd(e,t,"textord"),mathmlBuilder(e,t){const n=ft(e.text,e.mode,t),r=Et(e,t)||"normal";let i;return i="text"===e.mode?new gt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new gt.MathNode("mn",[n]):"\\prime"===e.text?new gt.MathNode("mo",[n]):new gt.MathNode("mi",[n]),r!==ur[i.type]&&i.setAttribute("mathvariant",r),i}});const dr={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},pr={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Ke({type:"spacing",htmlBuilder(e,t){if(pr.hasOwnProperty(e.text)){const n=pr[e.text].className||"";if("text"===e.mode){const r=Ge.makeOrd(e,t,"textord");return r.classes.push(n),r}return Ge.makeSpan(["mspace",n],[Ge.mathsym(e.text,e.mode,t)],t)}if(dr.hasOwnProperty(e.text))return Ge.makeSpan(["mspace",dr[e.text]],[],t);throw new r('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){let n;if(!pr.hasOwnProperty(e.text)){if(dr.hasOwnProperty(e.text))return new gt.MathNode("mspace");throw new r('Unknown type of space "'+e.text+'"')}return n=new gt.MathNode("mtext",[new gt.TextNode(" ")]),n}});const hr=()=>{const e=new gt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};Ke({type:"tag",mathmlBuilder(e,t){const n=new gt.MathNode("mtable",[new gt.MathNode("mtr",[hr(),new gt.MathNode("mtd",[Tt(e.body,t)]),hr(),new gt.MathNode("mtd",[Tt(e.tag,t)])])]);return n.setAttribute("width","100%"),n}});const _r={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},mr={"\\textbf":"textbf","\\textmd":"textmd"},gr={"\\textit":"textit","\\textup":"textup"},fr=(e,t)=>{const n=e.font;return n?_r[n]?t.withTextFontFamily(_r[n]):mr[n]?t.withTextFontWeight(mr[n]):"\\emph"===n?"textit"===t.fontShape?t.withTextFontShape("textup"):t.withTextFontShape("textit"):t.withTextFontShape(gr[n]):t};Qe({type:"text",names:[ +// Font families +"\\text","\\textrm","\\textsf","\\texttt","\\textnormal", +// Font weights +"\\textbf","\\textmd", +// Font Shapes +"\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){let{parser:n,funcName:r}=e;const i=t[0];return{type:"text",mode:n.mode,body:Ze(i),font:r}},htmlBuilder(e,t){const n=fr(e,t),r=it(e.body,n,!0);return Ge.makeSpan(["mord","text"],r,n)},mathmlBuilder(e,t){const n=fr(e,t);return Tt(e.body,n)}}),Qe({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:n}=e;return{type:"underline",mode:n.mode,body:t[0]}},htmlBuilder(e,t){const n=ut(e.body,t),r=Ge.makeLineSpan("underline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Ge.makeVList({positionType:"top",positionData:n.height,children:[{type:"kern",size:i},{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n}]},t);return Ge.makeSpan(["mord","underline"],[a],t)},mathmlBuilder(e,t){const n=new gt.MathNode("mo",[new gt.TextNode("‾")]);n.setAttribute("stretchy","true");const r=new gt.MathNode("munder",[vt(e.body,t),n]);return r.setAttribute("accentunder","true"),r}}),Qe({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"], +// In LaTeX, \vcenter can act only on a box. +allowedInText:!1},handler(e,t){let{parser:n}=e;return{type:"vcenter",mode:n.mode,body:t[0]}},htmlBuilder(e,t){const n=ut(e.body,t),r=t.fontMetrics().axisHeight,i=.5*(n.height-r-(n.depth+r));return Ge.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:n}]},t)},mathmlBuilder:(e,t)=>new gt.MathNode("mpadded",[vt(e.body,t)],["vcenter"])}),Qe({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,n){throw new r("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){const n=br(e),r=[],i=t.havingStyle(t.style.text());for(let a=0;ae.body.replace(/ /g,e.star?"␣":" ");var Er=Ve;const yr="[ \r\n\t]",Sr="(\\\\[a-zA-Z@]+)"+yr+"*",Tr="[̀-ͯ]",vr=new RegExp(Tr+"+$"),Cr="("+yr+"+)|\\\\(\n|[ \r\t]+\n?)[ \r\t]*|([!-\\[\\]-‧‪-퟿豈-￿]"+// single codepoint +Tr+"*|[\ud800-\udbff][\udc00-\udfff]"+// surrogate pair +Tr+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|"+Sr+// \macroName + spaces +"|\\\\[^\ud800-\udfff])";class xr{ +// Category codes. The lexer only supports comment characters (14) for now. +// MacroExpander additionally distinguishes active (13). +constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(Cr,"g"),this.catcodes={"%":14, +// comment character +"~":13}}setCatcode(e,t){this.catcodes[e]=t} +/** + * This function lexes a single token. + */lex(){const e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new In("EOF",new kn(this,t,t));const n=this.tokenRegex.exec(e);if(null===n||n.index!==t)throw new r("Unexpected character: '"+e[t]+"'",new In(e[t],new kn(this,t,t+1)));const i=n[6]||n[3]||(n[2]?"\\ ":" ");if(14===this.catcodes[i]){const t=e.indexOf("\n",this.tokenRegex.lastIndex);return-1===t?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=t+1,this.lex()}return new In(i,new kn(this,t,this.tokenRegex.lastIndex))}}class Ar{ +/** + * Both arguments are optional. The first argument is an object of + * built-in mappings which never change. The second argument is an object + * of initial (global-level) mappings, which will constantly change + * according to any global/top-level `set`s done. + */ +constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]} +/** + * Start a new nested group, affecting future local `set`s. + */beginGroup(){this.undefStack.push({})} +/** + * End current nested group, restoring values before the group began. + */endGroup(){if(0===this.undefStack.length)throw new r("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");const e=this.undefStack.pop();for(const t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])} +/** + * Ends all currently nested groups (if any), restoring values before the + * groups began. Useful in case of an error in the middle of parsing. + */endGroups(){for(;this.undefStack.length>0;)this.endGroup()} +/** + * Detect whether `name` has a definition. Equivalent to + * `get(name) != null`. + */has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)} +/** + * Get the current value of a name, or `undefined` if there is no value. + * + * Note: Do not use `if (namespace.get(...))` to detect whether a macro + * is defined, as the definition may be the empty string which evaluates + * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or + * `if (namespace.has(...))`. + */get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]} +/** + * Set the current value of a name, and optionally set it globally too. + * Local set() sets the current value and (when appropriate) adds an undo + * operation to the undo stack. Global set() may change the undo + * operation at every level, so takes time linear in their number. + * A value of undefined means to delete existing definitions. + */set(e,t,n){if(void 0===n&&(n=!1),n){for(let t=0;t0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{const t=this.undefStack[this.undefStack.length-1];t&&!t.hasOwnProperty(e)&&(t[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}var Nr=Rn;wn("\\noexpand",(function(e){const t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),wn("\\expandafter",(function(e){const t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),wn("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),wn("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),wn("\\@ifnextchar",(function(e){const t=e.consumeArgs(3);e.consumeSpaces();const n=e.future();return 1===t[0].length&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),wn("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),wn("\\TextOrMath",(function(e){const t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));const Or={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};wn("\\char",(function(e){let t,n=e.popToken(),i="";if("'"===n.text)t=8,n=e.popToken();else if('"'===n.text)t=16,n=e.popToken();else if("`"===n.text)if(n=e.popToken(),"\\"===n.text[0])i=n.text.charCodeAt(1);else{if("EOF"===n.text)throw new r("\\char` missing argument");i=n.text.charCodeAt(0)}else t=10;if(t){if(i=Or[n.text],null==i||i>=t)throw new r("Invalid base-"+t+" digit "+n.text);let a;for(;null!=(a=Or[e.future().text])&&a{let a=e.consumeArg().tokens;if(1!==a.length)throw new r("\\newcommand's first argument must be a macro name");const o=a[0].text,s=e.isDefined(o);if(s&&!t)throw new r("\\newcommand{"+o+"} attempting to redefine "+o+"; use \\renewcommand");if(!s&&!n)throw new r("\\renewcommand{"+o+"} when command "+o+" does not yet exist; use \\newcommand");let l=0;if(a=e.consumeArg().tokens,1===a.length&&"["===a[0].text){let t="",n=e.expandNextToken();for(;"]"!==n.text&&"EOF"!==n.text;)t+=n.text,n=e.expandNextToken();if(!t.match(/^\s*[0-9]+\s*$/))throw new r("Invalid number of arguments: "+t);l=parseInt(t),a=e.consumeArg().tokens}return s&&i||e.macros.set(o,{tokens:a,numArgs:l}),""};wn("\\newcommand",(e=>Rr(e,!1,!0,!1))),wn("\\renewcommand",(e=>Rr(e,!0,!1,!1))),wn("\\providecommand",(e=>Rr(e,!0,!0,!0))),wn("\\message",(e=>(e.consumeArgs(1)[0],""))),wn("\\errmessage",(e=>(e.consumeArgs(1)[0],""))),wn("\\show",(e=>(e.popToken().text,""))),wn("\\bgroup","{"),wn("\\egroup","}"),wn("~","\\nobreakspace"),wn("\\lq","`"),wn("\\rq","'"),wn("\\aa","\\r a"),wn("\\AA","\\r A"),wn("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}"),wn("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),wn("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),wn("ℬ","\\mathscr{B}"),wn("ℰ","\\mathscr{E}"),wn("ℱ","\\mathscr{F}"),wn("ℋ","\\mathscr{H}"),wn("ℐ","\\mathscr{I}"),wn("ℒ","\\mathscr{L}"),wn("ℳ","\\mathscr{M}"),wn("ℛ","\\mathscr{R}"),wn("ℭ","\\mathfrak{C}"),wn("ℌ","\\mathfrak{H}"),wn("ℨ","\\mathfrak{Z}"),wn("\\Bbbk","\\Bbb{k}"),wn("·","\\cdotp"),wn("\\llap","\\mathllap{\\textrm{#1}}"),wn("\\rlap","\\mathrlap{\\textrm{#1}}"),wn("\\clap","\\mathclap{\\textrm{#1}}"),wn("\\mathstrut","\\vphantom{(}"),wn("\\underbar","\\underline{\\text{#1}}"),wn("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),wn("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),wn("\\ne","\\neq"),wn("≠","\\neq"),wn("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),wn("∉","\\notin"),wn("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),wn("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),wn("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),wn("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),wn("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),wn("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),wn("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),wn("⟂","\\perp"),wn("‼","\\mathclose{!\\mkern-0.8mu!}"),wn("∌","\\notni"),wn("⌜","\\ulcorner"),wn("⌝","\\urcorner"),wn("⌞","\\llcorner"),wn("⌟","\\lrcorner"),wn("©","\\copyright"),wn("®","\\textregistered"),wn("️","\\textregistered"),wn("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),wn("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),wn("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),wn("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),wn("\\vdots","{\\varvdots\\rule{0pt}{15pt}}"),wn("⋮","\\vdots"),wn("\\varGamma","\\mathit{\\Gamma}"),wn("\\varDelta","\\mathit{\\Delta}"),wn("\\varTheta","\\mathit{\\Theta}"),wn("\\varLambda","\\mathit{\\Lambda}"),wn("\\varXi","\\mathit{\\Xi}"),wn("\\varPi","\\mathit{\\Pi}"),wn("\\varSigma","\\mathit{\\Sigma}"),wn("\\varUpsilon","\\mathit{\\Upsilon}"),wn("\\varPhi","\\mathit{\\Phi}"),wn("\\varPsi","\\mathit{\\Psi}"),wn("\\varOmega","\\mathit{\\Omega}"),wn("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),wn("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),wn("\\boxed","\\fbox{$\\displaystyle{#1}$}"),wn("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),wn("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),wn("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;"),wn("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}"),wn("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");const wr={",":"\\dotsc","\\not":"\\dotsb", +// \keybin@ checks for the following: +"+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb", +// Symbols whose definition starts with \DOTSB: +"\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb", +// Symbols whose definition starts with \mathbin: +"\\mathbin":"\\dotsb", +// Symbols whose definition starts with \mathrel: +"\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb", +// Symbols whose definition starts with \DOTSI: +"\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi", +// Symbols whose definition starts with \DOTSX: +"\\DOTSX":"\\dotsx"};wn("\\dots",(function(e){let t="\\dotso";const n=e.expandAfterFuture().text;return n in wr?t=wr[n]:("\\not"===n.slice(0,4)||n in ae.math&&l.contains(["bin","rel"],ae.math[n].group))&&(t="\\dotsb"),t}));const kr={ +// \rightdelim@ checks for the following: +")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0, +// \extra@ also tests for the following: +$:!0, +// \extrap@ checks for the following: +";":!0,".":!0,",":!0};wn("\\dotso",(function(e){return e.future().text in kr?"\\ldots\\,":"\\ldots"})),wn("\\dotsc",(function(e){const t=e.future().text;return t in kr&&","!==t?"\\ldots\\,":"\\ldots"})),wn("\\cdots",(function(e){return e.future().text in kr?"\\@cdots\\,":"\\@cdots"})),wn("\\dotsb","\\cdots"),wn("\\dotsm","\\cdots"),wn("\\dotsi","\\!\\cdots"),wn("\\dotsx","\\ldots\\,"),wn("\\DOTSI","\\relax"),wn("\\DOTSB","\\relax"),wn("\\DOTSX","\\relax"),wn("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),wn("\\,","\\tmspace+{3mu}{.1667em}"),wn("\\thinspace","\\,"),wn("\\>","\\mskip{4mu}"),wn("\\:","\\tmspace+{4mu}{.2222em}"),wn("\\medspace","\\:"),wn("\\;","\\tmspace+{5mu}{.2777em}"),wn("\\thickspace","\\;"),wn("\\!","\\tmspace-{3mu}{.1667em}"),wn("\\negthinspace","\\!"),wn("\\negmedspace","\\tmspace-{4mu}{.2222em}"),wn("\\negthickspace","\\tmspace-{5mu}{.277em}"),wn("\\enspace","\\kern.5em "),wn("\\enskip","\\hskip.5em\\relax"),wn("\\quad","\\hskip1em\\relax"),wn("\\qquad","\\hskip2em\\relax"),wn("\\tag","\\@ifstar\\tag@literal\\tag@paren"),wn("\\tag@paren","\\tag@literal{({#1})}"),wn("\\tag@literal",(e=>{if(e.macros.get("\\df@tag"))throw new r("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),wn("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),wn("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),wn("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),wn("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),wn("\\newline","\\\\\\relax"),wn("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");const Ir=z(N["Main-Regular"]["T".charCodeAt(0)][1]-.7*N["Main-Regular"]["A".charCodeAt(0)][1]);wn("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Ir+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),wn("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Ir+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),wn("\\hspace","\\@ifstar\\@hspacer\\@hspace"),wn("\\@hspace","\\hskip #1\\relax"),wn("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),wn("\\ordinarycolon",":"),wn("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),wn("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),wn("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),wn("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),wn("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),wn("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),wn("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),wn("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),wn("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),wn("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),wn("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),wn("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),wn("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),wn("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),wn("∷","\\dblcolon"),wn("∹","\\eqcolon"),wn("≔","\\coloneqq"),wn("≕","\\eqqcolon"),wn("⩴","\\Coloneqq"),wn("\\ratio","\\vcentcolon"),wn("\\coloncolon","\\dblcolon"),wn("\\colonequals","\\coloneqq"),wn("\\coloncolonequals","\\Coloneqq"),wn("\\equalscolon","\\eqqcolon"),wn("\\equalscoloncolon","\\Eqqcolon"),wn("\\colonminus","\\coloneq"),wn("\\coloncolonminus","\\Coloneq"),wn("\\minuscolon","\\eqcolon"),wn("\\minuscoloncolon","\\Eqcolon"),wn("\\coloncolonapprox","\\Colonapprox"),wn("\\coloncolonsim","\\Colonsim"),wn("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),wn("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),wn("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),wn("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),wn("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),wn("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),wn("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),wn("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),wn("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),wn("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),wn("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),wn("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),wn("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),wn("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),wn("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),wn("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),wn("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),wn("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),wn("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),wn("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),wn("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),wn("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),wn("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),wn("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),wn("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),wn("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),wn("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),wn("\\imath","\\html@mathml{\\@imath}{ı}"),wn("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),wn("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),wn("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),wn("⟦","\\llbracket"),wn("⟧","\\rrbracket"),wn("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),wn("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),wn("⦃","\\lBrace"),wn("⦄","\\rBrace"),wn("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),wn("⦵","\\minuso"),wn("\\darr","\\downarrow"),wn("\\dArr","\\Downarrow"),wn("\\Darr","\\Downarrow"),wn("\\lang","\\langle"),wn("\\rang","\\rangle"),wn("\\uarr","\\uparrow"),wn("\\uArr","\\Uparrow"),wn("\\Uarr","\\Uparrow"),wn("\\N","\\mathbb{N}"),wn("\\R","\\mathbb{R}"),wn("\\Z","\\mathbb{Z}"),wn("\\alef","\\aleph"),wn("\\alefsym","\\aleph"),wn("\\Alpha","\\mathrm{A}"),wn("\\Beta","\\mathrm{B}"),wn("\\bull","\\bullet"),wn("\\Chi","\\mathrm{X}"),wn("\\clubs","\\clubsuit"),wn("\\cnums","\\mathbb{C}"),wn("\\Complex","\\mathbb{C}"),wn("\\Dagger","\\ddagger"),wn("\\diamonds","\\diamondsuit"),wn("\\empty","\\emptyset"),wn("\\Epsilon","\\mathrm{E}"),wn("\\Eta","\\mathrm{H}"),wn("\\exist","\\exists"),wn("\\harr","\\leftrightarrow"),wn("\\hArr","\\Leftrightarrow"),wn("\\Harr","\\Leftrightarrow"),wn("\\hearts","\\heartsuit"),wn("\\image","\\Im"),wn("\\infin","\\infty"),wn("\\Iota","\\mathrm{I}"),wn("\\isin","\\in"),wn("\\Kappa","\\mathrm{K}"),wn("\\larr","\\leftarrow"),wn("\\lArr","\\Leftarrow"),wn("\\Larr","\\Leftarrow"),wn("\\lrarr","\\leftrightarrow"),wn("\\lrArr","\\Leftrightarrow"),wn("\\Lrarr","\\Leftrightarrow"),wn("\\Mu","\\mathrm{M}"),wn("\\natnums","\\mathbb{N}"),wn("\\Nu","\\mathrm{N}"),wn("\\Omicron","\\mathrm{O}"),wn("\\plusmn","\\pm"),wn("\\rarr","\\rightarrow"),wn("\\rArr","\\Rightarrow"),wn("\\Rarr","\\Rightarrow"),wn("\\real","\\Re"),wn("\\reals","\\mathbb{R}"),wn("\\Reals","\\mathbb{R}"),wn("\\Rho","\\mathrm{P}"),wn("\\sdot","\\cdot"),wn("\\sect","\\S"),wn("\\spades","\\spadesuit"),wn("\\sub","\\subset"),wn("\\sube","\\subseteq"),wn("\\supe","\\supseteq"),wn("\\Tau","\\mathrm{T}"),wn("\\thetasym","\\vartheta"),wn("\\weierp","\\wp"),wn("\\Zeta","\\mathrm{Z}"),wn("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),wn("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),wn("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),wn("\\bra","\\mathinner{\\langle{#1}|}"),wn("\\ket","\\mathinner{|{#1}\\rangle}"),wn("\\braket","\\mathinner{\\langle{#1}\\rangle}"),wn("\\Bra","\\left\\langle#1\\right|"),wn("\\Ket","\\left|#1\\right\\rangle");const Dr=e=>t=>{const n=t.consumeArg().tokens,r=t.consumeArg().tokens,i=t.consumeArg().tokens,a=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();const l=t=>n=>{e&&(n.macros.set("|",o),i.length&&n.macros.set("\\|",s));let a=t;return!t&&i.length&&"|"===n.future().text&&(n.popToken(),a=!0),{tokens:a?i:r,numArgs:0}};t.macros.set("|",l(!1)),i.length&&t.macros.set("\\|",l(!0));const c=t.consumeArg().tokens,u=t.expandTokens([...a,...c,...n]);return t.macros.endGroup(),{tokens:u.reverse(),numArgs:0}};wn("\\bra@ket",Dr(!1)),wn("\\bra@set",Dr(!0)),wn("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),wn("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),wn("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),wn("\\angln","{\\angl n}"),wn("\\blue","\\textcolor{##6495ed}{#1}"),wn("\\orange","\\textcolor{##ffa500}{#1}"),wn("\\pink","\\textcolor{##ff00af}{#1}"),wn("\\red","\\textcolor{##df0030}{#1}"),wn("\\green","\\textcolor{##28ae7b}{#1}"),wn("\\gray","\\textcolor{gray}{#1}"),wn("\\purple","\\textcolor{##9d38bd}{#1}"),wn("\\blueA","\\textcolor{##ccfaff}{#1}"),wn("\\blueB","\\textcolor{##80f6ff}{#1}"),wn("\\blueC","\\textcolor{##63d9ea}{#1}"),wn("\\blueD","\\textcolor{##11accd}{#1}"),wn("\\blueE","\\textcolor{##0c7f99}{#1}"),wn("\\tealA","\\textcolor{##94fff5}{#1}"),wn("\\tealB","\\textcolor{##26edd5}{#1}"),wn("\\tealC","\\textcolor{##01d1c1}{#1}"),wn("\\tealD","\\textcolor{##01a995}{#1}"),wn("\\tealE","\\textcolor{##208170}{#1}"),wn("\\greenA","\\textcolor{##b6ffb0}{#1}"),wn("\\greenB","\\textcolor{##8af281}{#1}"),wn("\\greenC","\\textcolor{##74cf70}{#1}"),wn("\\greenD","\\textcolor{##1fab54}{#1}"),wn("\\greenE","\\textcolor{##0d923f}{#1}"),wn("\\goldA","\\textcolor{##ffd0a9}{#1}"),wn("\\goldB","\\textcolor{##ffbb71}{#1}"),wn("\\goldC","\\textcolor{##ff9c39}{#1}"),wn("\\goldD","\\textcolor{##e07d10}{#1}"),wn("\\goldE","\\textcolor{##a75a05}{#1}"),wn("\\redA","\\textcolor{##fca9a9}{#1}"),wn("\\redB","\\textcolor{##ff8482}{#1}"),wn("\\redC","\\textcolor{##f9685d}{#1}"),wn("\\redD","\\textcolor{##e84d39}{#1}"),wn("\\redE","\\textcolor{##bc2612}{#1}"),wn("\\maroonA","\\textcolor{##ffbde0}{#1}"),wn("\\maroonB","\\textcolor{##ff92c6}{#1}"),wn("\\maroonC","\\textcolor{##ed5fa6}{#1}"),wn("\\maroonD","\\textcolor{##ca337c}{#1}"),wn("\\maroonE","\\textcolor{##9e034e}{#1}"),wn("\\purpleA","\\textcolor{##ddd7ff}{#1}"),wn("\\purpleB","\\textcolor{##c6b9fc}{#1}"),wn("\\purpleC","\\textcolor{##aa87ff}{#1}"),wn("\\purpleD","\\textcolor{##7854ab}{#1}"),wn("\\purpleE","\\textcolor{##543b78}{#1}"),wn("\\mintA","\\textcolor{##f5f9e8}{#1}"),wn("\\mintB","\\textcolor{##edf2df}{#1}"),wn("\\mintC","\\textcolor{##e0e5cc}{#1}"),wn("\\grayA","\\textcolor{##f6f7f7}{#1}"),wn("\\grayB","\\textcolor{##f0f1f2}{#1}"),wn("\\grayC","\\textcolor{##e3e5e6}{#1}"),wn("\\grayD","\\textcolor{##d6d8da}{#1}"),wn("\\grayE","\\textcolor{##babec2}{#1}"),wn("\\grayF","\\textcolor{##888d93}{#1}"),wn("\\grayG","\\textcolor{##626569}{#1}"),wn("\\grayH","\\textcolor{##3b3e40}{#1}"),wn("\\grayI","\\textcolor{##21242c}{#1}"),wn("\\kaBlue","\\textcolor{##314453}{#1}"),wn("\\kaGreen","\\textcolor{##71B307}{#1}");const Mr={"^":!0, +// Parser.js +_:!0, +// Parser.js +"\\limits":!0, +// Parser.js +"\\nolimits":!0};class Lr{constructor(e,t,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Ar(Nr,t.macros),this.mode=n,this.stack=[]} +/** + * Feed a new input string to the same MacroExpander + * (with existing macros etc.). + */feed(e){this.lexer=new xr(e,this.settings)} +/** + * Switches between "text" and "math" modes. + */switchMode(e){this.mode=e} +/** + * Start a new group nesting within all namespaces. + */beginGroup(){this.macros.beginGroup()} +/** + * End current group nesting within all namespaces. + */endGroup(){this.macros.endGroup()} +/** + * Ends all currently nested groups (if any), restoring values before the + * groups began. Useful in case of an error in the middle of parsing. + */endGroups(){this.macros.endGroups()} +/** + * Returns the topmost token on the stack, without expanding it. + * Similar in behavior to TeX's `\futurelet`. + */future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]} +/** + * Remove and return the next unexpanded token. + */popToken(){return this.future(),this.stack.pop()} +/** + * Add a given token to the token stack. In particular, this get be used + * to put back a token returned from one of the other methods. + */pushToken(e){this.stack.push(e)} +/** + * Append an array of tokens to the token stack. + */pushTokens(e){this.stack.push(...e)} +/** + * Find an macro argument without expanding tokens and append the array of + * tokens to the token stack. Uses Token as a container for the result. + */scanArgument(e){let t,n,r;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),({tokens:r,end:n}=this.consumeArg(["]"]))}else({tokens:r,start:t,end:n}=this.consumeArg());return this.pushToken(new In("EOF",n.loc)),this.pushTokens(r),t.range(n,"")} +/** + * Consume all following space tokens, without expansion. + */consumeSpaces(){for(;" "===this.future().text;)this.stack.pop()} +/** + * Consume an argument from the token stream, and return the resulting array + * of tokens and start/end token. + */consumeArg(e){const t=[],n=e&&e.length>0;n||this.consumeSpaces();const i=this.future();let a,o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(--o,-1===o)throw new r("Extra }",a)}else if("EOF"===a.text)throw new r("Unexpected end of input in a macro argument, expected '"+(e&&n?e[s]:"}")+"'",a);if(e&&n)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s,s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||n);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}} +/** + * Consume the specified number of (delimited) arguments from the token + * stream and return the resulting array of arguments. + */consumeArgs(e,t){if(t){if(t.length!==e+1)throw new r("The length of delimiters doesn't match the number of args!");const n=t[0];for(let e=0;ethis.settings.maxExpand)throw new r("Too many expansions: infinite loop or need to increase maxExpand setting")} +/** + * Expand the next token only once if possible. + * + * If the token is expanded, the resulting tokens will be pushed onto + * the stack in reverse order, and the number of such tokens will be + * returned. This number might be zero or positive. + * + * If not, the return value is `false`, and the next token remains at the + * top of the stack. + * + * In either case, the next token will be on the top of the stack, + * or the stack will be empty (in case of empty expansion + * and no other tokens). + * + * Used to implement `expandAfterFuture` and `expandNextToken`. + * + * If expandableOnly, only expandable tokens are expanded and + * an undefined control sequence results in an error. + */expandOnce(e){const t=this.popToken(),n=t.text,i=t.noexpand?null:this._getExpansion(n);if(null==i||e&&i.unexpandable){if(e&&null==i&&"\\"===n[0]&&!this.isDefined(n))throw new r("Undefined control sequence: "+n);return this.pushToken(t),!1}this.countExpansion(1);let a=i.tokens;const o=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(let e=a.length-1;e>=0;--e){let t=a[e];if("#"===t.text){if(0===e)throw new r("Incomplete placeholder at end of macro body",t);if(t=a[--e],"#"===t.text)a.splice(e+1,1);else{if(!/^[1-9]$/.test(t.text))throw new r("Not a valid argument number",t);a.splice(e,2,...o[+t.text-1])}}}}return this.pushTokens(a),a.length} +/** + * Expand the next token only once (if possible), and return the resulting + * top token on the stack (without removing anything from the stack). + * Similar in behavior to TeX's `\expandafter\futurelet`. + * Equivalent to expandOnce() followed by future(). + */expandAfterFuture(){return this.expandOnce(),this.future()} +/** + * Recursively expand first token, then return first non-expandable token. + */expandNextToken(){for(;;)if(!1===this.expandOnce()){const e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error} +/** + * Fully expand the given macro name and return the resulting list of + * tokens, or return `undefined` if no such macro is defined. + */expandMacro(e){return this.macros.has(e)?this.expandTokens([new In(e)]):void 0} +/** + * Fully expand the given token stream and return the resulting list of + * tokens. Note that the input tokens are in reverse order, but the + * output tokens are in forward order. + */expandTokens(e){const t=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(!1===this.expandOnce(!0)){const e=this.stack.pop();e.treatAsRelax&&(e.noexpand=!1,e.treatAsRelax=!1),t.push(e)}return this.countExpansion(t.length),t} +/** + * Fully expand the given macro name and return the result as a string, + * or return `undefined` if no such macro is defined. + */expandMacroAsText(e){const t=this.expandMacro(e);return t?t.map((e=>e.text)).join(""):t} +/** + * Returns the expanded macro as a reversed array of tokens and a macro + * argument count. Or returns `null` if no such macro. + */_getExpansion(e){const t=this.macros.get(e);if(null==t)return t;if(1===e.length){const t=this.lexer.catcodes[e];if(null!=t&&13!==t)return}const n="function"==typeof t?t(this):t;if("string"==typeof n){let e=0;if(-1!==n.indexOf("#")){const t=n.replace(/##/g,"");for(;-1!==t.indexOf("#"+(e+1));)++e}const t=new xr(n,this.settings),r=[];let i=t.lex();for(;"EOF"!==i.text;)r.push(i),i=t.lex();return r.reverse(),{tokens:r,numArgs:e}}return n} +/** + * Determine whether a command is currently "defined" (has some + * functionality), meaning that it's a macro (in the current group), + * a function, a symbol, or one of the special commands listed in + * `implicitCommands`. + */isDefined(e){return this.macros.has(e)||Er.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Mr.hasOwnProperty(e)} +/** + * Determine whether a command is expandable. + */isExpandable(e){const t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Er.hasOwnProperty(e)&&!Er[e].primitive}}const Pr=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Fr=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),Br={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Ur={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"};class Gr{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Lr(e,t,this.mode),this.settings=t,this.leftrightDepth=0} +/** + * Checks a result to make sure it has the right type, and throws an + * appropriate error otherwise. + */expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new r("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()} +/** + * Discards the current lookahead token, considering it consumed. + */consume(){this.nextToken=null} +/** + * Return the current lookahead token, or if there isn't one (at the + * beginning, or if the previous lookahead token was consume()d), + * fetch the next token as the new lookahead token and return it. + */fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken} +/** + * Switches between "text" and "math" modes. + */switchMode(e){this.mode=e,this.gullet.switchMode(e)} +/** + * Main parsing function, which parses an entire input. + */parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{const e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}} +/** + * Fully parse a separate sequence of tokens as a separate job. + * Tokens should be specified in reverse order, as in a MacroDefinition. + */subparse(e){const t=this.nextToken;this.consume(),this.gullet.pushToken(new In("}")),this.gullet.pushTokens(e);const n=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,n} +/** + * Parses an "expression", which is a list of atoms. + * + * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This + * happens when functions have higher precedence han infix + * nodes in implicit parses. + * + * `breakOnTokenText`: The text of the token that the expression should end + * with, or `null` if something else should end the + * expression. + */parseExpression(e,t){const n=[];for(;;){"math"===this.mode&&this.consumeSpaces();const r=this.fetch();if(-1!==Gr.endOfExpression.indexOf(r.text))break;if(t&&r.text===t)break;if(e&&Er[r.text]&&Er[r.text].infix)break;const i=this.parseAtom(t);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)} +/** + * Rewrites infix operators such as \over with corresponding commands such + * as \frac. + * + * There can only be one infix operator per group. If there's more than one + * then the expression is ambiguous. This can be resolved by adding {}. + */handleInfixNodes(e){let t,n=-1;for(let i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);const n=ae[this.mode][t].group,r=kn.range(e);let a;if(ne.hasOwnProperty(n)){const e=n;a={type:"atom",mode:this.mode,family:e,loc:r,text:t}}else a={type:n,mode:this.mode,loc:r,text:t};i=a}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(v(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:kn.range(e),text:t}}if(this.consume(),n)for(let a=0;a0?e.src.charCodeAt(t-1):-1,r=t+1<=i?e.src.charCodeAt(t+1):-1,(32===n||9===n||r>=48&&r<=57)&&(o=!1),32!==r&&9!==r||(a=!1),{can_open:a,can_close:o}}function n(e,n){var r,i,a,o;if("$"!==e.src[e.pos])return!1;if(!t(e,e.pos).can_open)return n||(e.pending+="$"),e.pos+=1,!0;for(i=r=e.pos+1;-1!==(i=e.src.indexOf("$",i));){for(o=i-1;"\\"===e.src[o];)o-=1;if((i-o)%2==1)break;i+=1}return-1===i?(n||(e.pending+="$"),e.pos=r,!0):i-r==0?(n||(e.pending+="$$"),e.pos=r+1,!0):t(e,i).can_close?(n||((a=e.push("math_inline","math",0)).markup="$",a.content=e.src.slice(r,i)),e.pos=i+1,!0):(n||(e.pending+="$"),e.pos=r,!0)}function r(e,t,n,r){var i,a,o,s,l,c=!1,u=e.bMarks[t]+e.tShift[t],d=e.eMarks[t];if(u+2>d)return!1;if("$$"!==e.src.slice(u,u+2))return!1;if(u+=2,i=e.src.slice(u,d),r)return!0;for("$$"===i.trim().slice(-2)&&(i=i.trim().slice(0,-2),c=!0),o=t;!c&&!(++o>=n)&&!((u=e.bMarks[o]+e.tShift[o])<(d=e.eMarks[o])&&e.tShift[o]/g,">").replace(/"/g,""").replace(/'/g,"'")}return tn=function(t,a){(a=a||{}).katex&&(e=a.katex),a.blockClass||(a.blockClass="");t.inline.ruler.after("escape","math_inline",n),t.block.ruler.after("blockquote","math_block",r,{alt:["paragraph","reference","blockquote","list"]}),t.renderer.rules.math_inline=function(t,n){return function(t){a.displayMode=!1;try{return e.renderToString(t,a)}catch(n){return a.throwOnError,`${i(t)}`}}(t[n].content)},t.renderer.rules.math_block=function(t,n){return function(t){a.displayMode=!0;try{return`

`+e.renderToString(t,a)+"

"}catch(n){return a.throwOnError,`

${i(t)}

`}}(t[n].content)+"\n"}}}());var sn,ln,cn,un,dn,pn,hn,_n,mn,gn,fn,bn,En,yn,Sn,Tn,vn,Cn,xn,An,Nn,On,Rn,wn,kn,In,Dn,Mn,Ln,Pn,Fn,Bn,Un,Gn,zn,$n,Yn,qn,Hn,Vn,jn,Wn,Qn,Kn,Xn,Zn,Jn,er,tr,nr,rr,ir,ar,or,sr,lr,cr,ur,dr,pr,hr,_r,mr,gr,fr,br,Er,yr,Sr,Tr,vr,Cr,xr,Ar,Nr,Or,Rr,wr,kr,Ir,Dr,Mr,Lr,Pr,Fr,Br,Ur,Gr,zr,$r,Yr,qr,Hr,Vr,jr,Wr,Qr,Kr,Xr,Zr,Jr,ei,ti,ni,ri,ii,ai,oi,si,li,ci,ui,di,pi,hi,_i,mi,gi,fi,bi,Ei,yi,Si,Ti,vi,Ci,xi,Ai,Ni,Oi,Ri,wi,ki,Ii,Di,Mi,Li,Pi,Fi,Bi,Ui,Gi,zi,$i,Yi,qi,Hi,Vi,ji,Wi,Qi,Ki,Xi,Zi,Ji,ea,ta,na,ra,ia,aa,oa,sa,la,ca,ua,da,pa,ha,_a,ma,ga,fa,ba,Ea,ya,Sa,Ta,va,Ca,xa,Aa,Na,Oa,Ra,wa,ka,Ia,Da,Ma,La,Pa,Fa,Ba,Ua,Ga,za,$a,Ya,qa,Ha,Va,ja,Wa,Qa,Ka,Xa,Za,Ja,eo,to,no,ro,io,ao,oo,so,lo,co,uo,po,ho,_o,mo,go,fo,bo,Eo,yo,So,To,vo,Co,xo,Ao,No,Oo,Ro,wo,ko,Io,Do,Mo,Lo,Po,Fo,Bo,Uo,Go,zo,$o,Yo,qo,Ho,Vo,jo,Wo,Qo,Ko,Xo,Zo,Jo,es,ts,ns,rs,is,as,os,ss,ls,cs,us,ds,ps,hs,_s,ms,gs,fs,bs,Es,ys,Ss,Ts,vs,Cs,xs,As,Ns,Os,Rs,ws,ks,Is,Ds,Ms,Ls,Ps,Fs,Bs,Us,Gs,zs,$s,Ys,qs,Hs,Vs,js,Ws,Qs,Ks,Xs,Zs,Js,el,tl,nl,rl,il,al,ol,sl,ll,cl,ul,dl,pl,hl,_l,ml,gl,fl,bl,El,yl,Sl,Tl,vl,Cl,xl,Al,Nl,Ol,Rl,wl,kl,Il,Dl,Ml,Ll,Pl,Fl,Bl,Ul,Gl,zl,$l,Yl,ql,Hl,Vl,jl,Wl,Ql,Kl,Xl,Zl,Jl,ec,tc,nc,rc,ic,ac,oc,sc,lc,cc,uc,dc,pc,hc,_c,mc,gc,fc,bc,Ec,yc,Sc,Tc,vc;function Cc(){if(ln)return sn;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{const r=t[n],i=typeof r;"object"!==i&&"function"!==i||Object.isFrozen(r)||e(r)})),t}ln=1;class t{ +/** + * @param {CompiledMode} mode + */ +constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach((function(e){for(const t in e)n[t]=e[t]})), +/** @type {T} */n}const i=e=>!!e.scope;class a{ +/** + * Creates a new HTMLRenderer + * + * @param {Tree} parseTree - the parse tree (must support `walk` API) + * @param {{classPrefix: string}} options + */ +constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)} +/** + * Adds texts to the output stream + * + * @param {string} text */addText(e){this.buffer+=n(e)} +/** + * Adds a node open to the output stream (if needed) + * + * @param {Node} node */openNode(e){if(!i(e))return;const t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)} +/** + * Adds a node close to the output stream (if needed) + * + * @param {Node} node */closeNode(e){i(e)&&(this.buffer+="")} +/** + * returns the accumulated buffer + */value(){return this.buffer} +// helpers +/** + * Builds a span element + * + * @param {string} className */ +span(e){this.buffer+=``}}const o=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class s{constructor(){this.rootNode=o(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode} +/** @param {Node} node */add(e){this.top.children.push(e)} +/** @param {string} scope */openNode(e){const t=o({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +/** + * @typedef { import("./html_renderer").Renderer } Renderer + * @param {Renderer} builder + */walk(e){return this.constructor._walk(e,this.rootNode)} +/** + * @param {Renderer} builder + * @param {Node} node + */static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e} +/** + * @param {Node} node + */static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{s._collapse(e)})))}}class l extends s{ +/** + * @param {*} options + */ +constructor(e){super(),this.options=e} +/** + * @param {string} text + */addText(e){""!==e&&this.add(e)} +/** @param {string} scope */startScope(e){this.openNode(e)}endScope(){this.closeNode()} +/** + * @param {Emitter & {root: DataNode}} emitter + * @param {string} name + */__addSublanguage(e,t){const n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new a(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function c(e){return e?"string"==typeof e?e:e.source:null}function u(e){return h("(?=",e,")")}function d(e){return h("(?:",e,")*")}function p(e){return h("(?:",e,")?")}function h(...e){return e.map((e=>c(e))).join("")}function _(...e){const t=function(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}function m(e){return new RegExp(e.toString()+"|").exec("").length-1}const g=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function f(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n;let r=c(e),i="";for(;r.length>0;){const e=g.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&n++)}return i})).map((e=>`(${e})`)).join(t)}const b="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",S="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",T="\\b(0b[01]+)",v={begin:"\\\\[\\s\\S]",relevance:0},C={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[v]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[v]},A=function(e,t,n={}){const i=r({scope:"comment",begin:e,end:t,contains:[]},n);i.contains.push({scope:"doctag", +// hack to avoid the space from being included. the space is necessary to +// match here to prevent the plain text rule below from gobbling up doctags +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=_( +// list of common 1 and 2 letter words in English +"I","a","is","so","us","to","at","if","in","it","on", +// note: this is not an exhaustive list of contractions, just popular ones +/[A-Za-z]+['](d|ve|re|ll|t|s|n)/, +// contractions - can't we'd they're let's, etc +/[A-Za-z]+[-][a-z]+/, +// `no-way`, etc. +/[A-Za-z][a-z]{2,}/);return i.contains.push({ +// TODO: how to include ", (, ) without breaking grammars that use these for +// comment delimiters? +// begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ +// --- +// this tries to find sequences of 3 english words in a row (without any +// "programming" type syntax) this gives us a strong signal that we've +// TRULY found a comment - vs perhaps scanning with the wrong language. +// It's possible to find something that LOOKS like the start of the +// comment - but then if there is no readable text - good chance it is a +// false match and not a comment. +// for a visual example please see: +// https://github.com/highlightjs/highlight.js/issues/2827 +begin:h(/[ ]+/, +// necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ +"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},N=A("//","$"),O=A("/\\*","\\*/"),R=A("#","$"),w={scope:"number",begin:y,relevance:0},k={scope:"number",begin:S,relevance:0},I={scope:"number",begin:T,relevance:0},D={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]},M={scope:"title",begin:b,relevance:0},L={scope:"title",begin:E,relevance:0},P={ +// excludes method names from keyword processing +begin:"\\.\\s*"+E,relevance:0};var F=Object.freeze({__proto__:null,APOS_STRING_MODE:C,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:I,BINARY_NUMBER_RE:T,COMMENT:A,C_BLOCK_COMMENT_MODE:O,C_LINE_COMMENT_MODE:N,C_NUMBER_MODE:k,C_NUMBER_RE:S,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{ +/** @type {ModeCallback} */ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]}, +/** @type {ModeCallback} */ +"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:R,IDENT_RE:b,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:P,NUMBER_MODE:w,NUMBER_RE:y,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:x,REGEXP_MODE:D,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t,end:/$/,relevance:0, +/** @type {ModeCallback} */ +"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},TITLE_MODE:M,UNDERSCORE_IDENT_RE:E,UNDERSCORE_TITLE_MODE:L});function B(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function U(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function G(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=B,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function z(e,t){Array.isArray(e.illegal)&&(e.illegal=_(...e.illegal))}function $(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Y(e,t){void 0===e.relevance&&(e.relevance=1)}const q=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]})),e.keywords=n.keywords,e.begin=h(n.beforeMatch,u(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},H=["of","and","for","in","not","or","if","then","parent", +// common variable name +"list", +// common variable name +"value"];function V(e,t,n="keyword"){const r=Object.create(null);return"string"==typeof e?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach((function(n){Object.assign(r,V(e[n],t,n))})),r;function i(e,n){t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((function(t){const n=t.split("|");r[n[0]]=[e,j(n[0],n[1])]}))}}function j(e,t){return t?Number(t):function(e){return H.includes(e.toLowerCase())}(e)?0:1}const W={},Q=(e,t)=>{W[`${e}/${t}`]||(W[`${e}/${t}`]=!0)},K=new Error;function X(e,t,{key:n}){let r=0;const i=e[n],a={},o={};for(let s=1;s<=t.length;s++)o[s+r]=i[s],a[s+r]=!0,r+=m(t[s-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function Z(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw K;if("object"!=typeof e.beginScope||null===e.beginScope)throw K;X(e,e.begin,{key:"beginScope"}),e.begin=f(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw K;if("object"!=typeof e.endScope||null===e.endScope)throw K;X(e,e.end,{key:"endScope"}),e.end=f(e.end,{joinWith:""})}}(e)}function J(e){function t(t,n){return new RegExp(c(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +// @ts-ignore +addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=m(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map((e=>e[1]));this.matcherRe=t(f(e,{joinWith:"|"}),!0),this.lastIndex=0} +/** @param {string} s */exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0} +// @ts-ignore +getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0} +// @ts-ignore +addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++} +/** @param {string} s */exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=r(e.classNameAliases||{}),function n(a,o){const s= +/** @type CompiledMode */a;if(a.isCompiled)return s;[U, +// do this early so compiler extensions generally don't have to worry about +// the distinction between match/begin +$,Z,q].forEach((e=>e(a,o))),e.compilerExtensions.forEach((e=>e(a,o))),a.__beforeBegin=null,[G, +// do this later so compiler extensions that come earlier have access to the +// raw array if they wanted to perhaps manipulate it, etc. +z, +// default to 1 relevance if not specified +Y].forEach((e=>e(a,o))),a.isCompiled=!0;let l=null;return"object"==typeof a.keywords&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),l=a.keywords.$pattern,delete a.keywords.$pattern),l=l||/\w+/,a.keywords&&(a.keywords=V(a.keywords,e.case_insensitive)),s.keywordPatternRe=t(l,!0),o&&(a.begin||(a.begin=/\B|\b/),s.beginRe=t(s.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(s.endRe=t(s.end)),s.terminatorEnd=c(s.end)||"",a.endsWithParent&&o.terminatorEnd&&(s.terminatorEnd+=(a.end?"|":"")+o.terminatorEnd)),a.illegal&&(s.illegalRe=t( +/** @type {RegExp | string} */ +a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map((function(e){return function(e){e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return r(e,{variants:null},t)})));if(e.cachedVariants)return e.cachedVariants;if(ee(e))return r(e,{starts:e.starts?r(e.starts):null});if(Object.isFrozen(e))return r(e);return e}("self"===e?a:e)}))),a.contains.forEach((function(e){n( +/** @type Mode */ +e,s)})),a.starts&&n(a.starts,o),s.matcher=function(e){const t=new i;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(s),s}( +/** @type Mode */ +e)}function ee(e){return!!e&&(e.endsWithParent||ee(e.starts))}class te extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const ne=n,re=r,ie=Symbol("nomatch"),ae=function(n){const r=Object.create(null),i=Object.create(null),a=[];let o=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let m={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null, +// beta configuration options, subject to change, welcome to discuss +// https://github.com/highlightjs/highlight.js/issues/1086 +__emitter:l};function g(e){return m.noHighlightRe.test(e)}function f(e,t,n){let r="",i="";"object"==typeof t?(r=e,n=t.ignoreIllegals,i=t.language):(Q("10.7.0","highlight(lang, code, ...args) has been deprecated."),Q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,r=t),void 0===n&&(n=!0);const a={code:r,language:i};A("before:highlight",a);const o=a.result?a.result:b(a.language,a.code,n);return o.code=a.code,A("after:highlight",o),o}function b(e,n,i,a){const l=Object.create(null);function c(){if(!A.keywords)return void O.addText(R);let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(R),n="";for(;t;){n+=R.substring(e,t.index);const i=T.case_insensitive?t[0].toLowerCase():t[0],a=(r=i,A.keywords[r]);if(a){const[e,r]=a;if(O.addText(n),n="",l[i]=(l[i]||0)+1,l[i]<=7&&(w+=r),e.startsWith("_"))n+=t[0];else{const n=T.classNameAliases[e]||e;d(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(R)}var r;n+=R.substring(e),O.addText(n)}function u(){null!=A.subLanguage?function(){if(""===R)return;let e=null;if("string"==typeof A.subLanguage){if(!r[A.subLanguage])return void O.addText(R);e=b(A.subLanguage,R,!0,N[A.subLanguage]),N[A.subLanguage]=/** @type {CompiledMode} */ +e._top}else e=E(R,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(w+=e.relevance),O.__addSublanguage(e._emitter,e.language)}():c(),R=""}function d(e,t){""!==e&&(O.startScope(t),O.addText(e),O.endScope())}function p(e,t){let n=1;const r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}const r=T.classNameAliases[e[n]]||e[n],i=t[n];r?d(i,r):(R=i,c(),R=""),n++}}function h(e,t){return e.scope&&"string"==typeof e.scope&&O.openNode(T.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(d(R,T.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),R=""):e.beginScope._multi&&(p(e.beginScope,t),R="")),A=Object.create(e,{parent:{value:A}}),A}function _(e,n,r){let i=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(e.endRe,r);if(i){if(e["on:end"]){const r=new t(e);e["on:end"](n,r),r.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,n,r)}function g(e){return 0===A.matcher.regexIndex?(R+=e[0],1):(D=!0,0)}function f(e){const t=e[0],r=n.substring(e.index),i=_(A,e,r);if(!i)return ie;const a=A;A.endScope&&A.endScope._wrap?(u(),d(t,A.endScope._wrap)):A.endScope&&A.endScope._multi?(u(),p(A.endScope,e)):a.skip?R+=t:(a.returnEnd||a.excludeEnd||(R+=t),u(),a.excludeEnd&&(R=t));do{A.scope&&O.closeNode(),A.skip||A.subLanguage||(w+=A.relevance),A=A.parent}while(A!==i.parent);return i.starts&&h(i.starts,e),a.returnEnd?0:t.length}let y={};function S(r,a){const s=a&&a[0];if(R+=r,null==s)return u(),0;if("begin"===y.type&&"end"===a.type&&y.index===a.index&&""===s){if(R+=n.slice(a.index,a.index+1),!o){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=y.rule,t}return 1}if(y=a,"begin"===a.type)return function(e){const n=e[0],r=e.rule,i=new t(r),a=[r.__beforeBegin,r["on:begin"]];for(const t of a)if(t&&(t(e,i),i.isMatchIgnored))return g(n);return r.skip?R+=n:(r.excludeBegin&&(R+=n),u(),r.returnBegin||r.excludeBegin||(R=n)),h(r,e),r.returnBegin?0:n.length}(a);if("illegal"===a.type&&!i){const e=new Error('Illegal lexeme "'+s+'" for mode "'+(A.scope||"")+'"');throw e.mode=A,e}if("end"===a.type){const e=f(a);if(e!==ie)return e}if("illegal"===a.type&&""===s)return R+="\n",1;if(I>1e5&&I>3*a.index){throw new Error("potential infinite loop, way more iterations than matches")}return R+=s,s.length}const T=v(e);if(!T)throw s.replace("{}",e),new Error('Unknown language: "'+e+'"');const C=J(T);let x="",A=a||C;const N={},O=new m.__emitter(m);!function(){const e=[];for(let t=A;t!==T;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach((e=>O.openNode(e)))}();let R="",w=0,k=0,I=0,D=!1;try{if(T.__emitTokens)T.__emitTokens(n,O);else{for(A.matcher.considerAll();;){I++,D?D=!1:A.matcher.considerAll(),A.matcher.lastIndex=k;const e=A.matcher.exec(n);if(!e)break;const t=S(n.substring(k,e.index),e);k=e.index+t}S(n.substring(k))}return O.finalize(),x=O.toHTML(),{language:e,value:x,relevance:w,illegal:!1,_emitter:O,_top:A}}catch(M){if(M.message&&M.message.includes("Illegal"))return{language:e,value:ne(n),illegal:!0,relevance:0,_illegalBy:{message:M.message,index:k,context:n.slice(k-100,k+100),mode:M.mode,resultSoFar:x},_emitter:O};if(o)return{language:e,value:ne(n),illegal:!1,relevance:0,errorRaised:M,_emitter:O,_top:A};throw M}}function E(e,t){t=t||m.languages||Object.keys(r);const n=function(e){const t={value:ne(e),illegal:!1,relevance:0,_top:c,_emitter:new m.__emitter(m)};return t._emitter.addText(e),t}(e),i=t.filter(v).filter(x).map((t=>b(t,e,!1)));i.unshift(n);const a=i.sort(((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(v(e.language).supersetOf===t.language)return 1;if(v(t.language).supersetOf===e.language)return-1}return 0})),[o,s]=a,l=o;return l.secondBest=s,l}function y(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=m.languageDetectRe.exec(t);if(n){const e=v(n[1]);return e||s.replace("{}",n[1]),e?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>g(e)||v(e)))}(e);if(g(n))return;if(A("before:highlightElement",{el:e,language:n}),e.dataset.highlighted)return;if(e.children.length>0&&(m.ignoreUnescapedHTML,m.throwUnescapedHTML)){throw new te("One of your code blocks includes unescaped HTML.",e.innerHTML)}t=e;const r=t.textContent,a=n?f(r,{language:n,ignoreIllegals:!0}):E(r);e.innerHTML=a.value,e.dataset.highlighted="yes",function(e,t,n){const r=t&&i[t]||n;e.classList.add("hljs"),e.classList.add(`language-${r}`)}(e,n,a.language),e.result={language:a.language, +// TODO: remove with version 11.0 +re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),A("after:highlightElement",{el:e,result:a,text:r})}let S=!1;function T(){if("loading"===document.readyState)return S||window.addEventListener("DOMContentLoaded",(function(){T()}),!1),void(S=!0);document.querySelectorAll(m.cssSelector).forEach(y)}function v(e){return e=(e||"").toLowerCase(),r[e]||r[i[e]]}function C(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{i[e.toLowerCase()]=t}))}function x(e){const t=v(e);return t&&!t.disableAutodetect}function A(e,t){const n=e;a.forEach((function(e){e[n]&&e[n](t)}))}Object.assign(n,{highlight:f,highlightAuto:E,highlightAll:T,highlightElement:y, +// TODO: Remove with v12 API +highlightBlock:function(e){return Q("10.7.0","highlightBlock will be removed entirely in v12.0"),Q("10.7.0","Please use highlightElement now."),y(e)},configure:function(e){m=re(m,e)},initHighlighting:()=>{T(),Q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){T(),Q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(e,t){let i=null;try{i=t(n)}catch(a){if("Language definition for '{}' could not be registered.".replace("{}",e),!o)throw a;i=c}i.name||(i.name=e),r[e]=i,i.rawDefinition=t.bind(null,n),i.aliases&&C(i.aliases,{languageName:e})},unregisterLanguage:function(e){delete r[e];for(const t of Object.keys(i))i[t]===e&&delete i[t]},listLanguages:function(){return Object.keys(r)},getLanguage:v,registerAliases:C,autoDetection:x,inherit:re,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t))})}(e),a.push(e)},removePlugin:function(e){const t=a.indexOf(e);-1!==t&&a.splice(t,1)}}),n.debugMode=function(){o=!1},n.safeMode=function(){o=!0},n.versionString="11.11.1",n.regex={concat:h,lookahead:u,either:_,optional:p,anyNumberOfTimes:d};for(const t in F)"object"==typeof F[t]&&e(F[t]);return Object.assign(n,F),n},oe=ae({});return oe.newInstance=()=>ae({}),sn=oe,oe.HighlightJS=oe,oe.default=oe,sn}function xc(){if(un)return cn;return un=1,cn=function(e){const t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",r="null истина ложь неопределено",i=e.inherit(e.NUMBER_MODE),a={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},o={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},s=e.inherit(e.C_LINE_COMMENT_MODE);return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновить��умерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокд��аграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:r},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"загрузитьизфайла вебклиент вмест�� внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[s]},{className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"знач",literal:r},contains:[i,a,o]},s]},e.inherit(e.TITLE_MODE,{begin:t})]},s,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},i,a,o,{match:/[;()+\-:=,]/,className:"punctuation",relevance:0}]}}}function Ac(){if(pn)return dn;return pn=1,dn=function(e){const t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}}function Nc(){if(_n)return hn;return _n=1,hn=function(e){const t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[ +// IP +{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5}, +// Other numbers +{className:"number",begin:/\b\d+\b/,relevance:0}, +// Requests +{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]}, +// Dates +{className:"string", +// dates must have a certain length, this prevents matching +// simple array accesses a[123] and [] and other common patterns +// found in other languages +begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0}, +// User agent / relevance boost +{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3}, +// Strings +{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}}function Oc(){if(gn)return mn;return gn=1,mn=function(e){const t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,r=t.concat(n,t.concat("(\\.",n,")*")),i={className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}}function Rc(){if(bn)return fn;return bn=1,fn=function(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,r="\\b("+(t+"#\\w+(\\.\\w+)?#("+n+")?")+"|"+(t+"(\\."+t+")?("+n+")?")+")",i="[A-Za-z](_?[A-Za-z0-9.])*",a="[]\\{\\}%#'\"",o=e.COMMENT("--","$"),s={ +// TODO: These spaces are not required by the Ada syntax +// however, I have yet to see handwritten Ada code where +// someone does not put spaces around : +begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)", +// endsWithParent: true, +// returnBegin: true, +illegal:a,contains:[{ +// workaround to avoid highlighting +// named loops and declare blocks +beginKeywords:"loop for declare others",endsParent:!0},{ +// properly highlight all modifiers +className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:i,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[o, +// strings "foobar" +{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]}, +// characters '' +{ +// character literals always contain one char +className:"string",begin:/'.'/},{ +// number literals +className:"number",begin:r,relevance:0},{ +// Attributes +className:"symbol",begin:"'"+i},{ +// package definition, maybe inside generic +className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:a},{ +// function/procedure declaration/definition +// maybe inside generic +begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return", +// we need to re-match the 'function' keyword, so that +// the title mode below matches only exactly once +returnBegin:!0,contains:[o,{ +// name of the function/procedure +className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:a}, +// 'self' +// // parameter types +s,{ +// return type +className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0, +// we are done with functions +endsParent:!0,illegal:a}]},{ +// new type declarations +// maybe inside generic +className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:a}, +// see comment above the definition +s]}}}function wc(){if(yn)return En;return yn=1,En=function(e){const t={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},r={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[r],n.contains=[r],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"], +// avoid close detection with C# and JS +illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{ +// 'strings' +className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0}, +// """heredoc strings""" +{className:"string",begin:'"""',end:'"""'},{ +// "strings" +className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE, +// single-line comments +e.C_BLOCK_COMMENT_MODE, +// comment blocks +{ +// metadata +className:"string",begin:"^\\s*\\[",end:"\\]"},{ +// interface or namespace declaration +beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{ +// interface or namespace name +className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{ +// class declaration +beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{ +// class name +className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t, +// built-in types +n, +// object handles +{ +// literals +className:"literal",begin:"\\b(null|true|false)"},{ +// numbers +className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}}function kc(){if(Tn)return Sn;return Tn=1,Sn=function(e){const t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/}, +// low relevance prevents us from claming XML/HTML where this rule would +// match strings inside of XML tags +e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0, +// keywords aren’t needed for highlighting per se, they only boost relevance +// for a very generally defined mode (starts with a word, ends with line-end +keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{scope:"punctuation",match:/\\\n/},{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}function Ic(){if(Cn)return vn;return Cn=1,vn=function(e){const t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),r={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},i=e.COMMENT(/--/,/$/),a=[i,e.COMMENT(/\(\*/,/\*\)/,{contains:["self", +// allow nesting +i]}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,r]},...a],illegal:/\/\/|->|=>|\[\[/}}}function Dc(){if(An)return xn;return An=1,xn=function(e){const t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:["break","case","catch","continue","debugger","do","else","export","for","function","if","import","in","new","of","return","switch","try","var","void","while"],literal:["BackSlash","DoubleQuote","ForwardSlash","Infinity","NaN","NewLine","PI","SingleQuote","Tab","TextFormatting","false","null","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","ChangeTimeZone","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","ConvexHull","Cos","Count","Crosses","Cut","Date|0","DateAdd","DateDiff","DateOnly","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","DistanceToCoordinate","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureInFilter","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipClass","FeatureSetByRelationshipName","Filter","FilterBySubtypeCode","Find","First|0","Floor","FromCharCode","FromCodePoint","FromJSON","Front","GdbVersion","Generalize","Geometry","GetEnvironment","GetFeatureSet","GetFeatureSetInfo","GetUser","GroupBy","Guid","HasKey","HasValue","Hash","Hour","IIf","ISOMonth","ISOWeek","ISOWeekday","ISOYear","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","IsSelfIntersecting","IsSimple","KnowledgeGraphByPortalItem","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","MeasureToCoordinate","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NearestCoordinate","NearestVertex","NextSequenceValue","None","Now","Number","Offset","OrderBy","Overlaps","Point","PointToCoordinate","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","QueryGraph","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","StandardizeFilename","StandardizeGuid","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Time","TimeZone","TimeZoneOffset","Timestamp","ToCharCode","ToCodePoint","ToHex","ToLocal","ToUTC","Today","Top|0","Touches","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When|0","Within","Year|0"]},r={className:"symbol",begin:"\\$"+e.regex.either("aggregatedFeatures","analytic","config","datapoint","datastore","editcontext","feature","featureSet","feedfeature","fencefeature","fencenotificationtype","graph","join","layer","locationupdate","map","measure","measure","originalFeature","record","reference","rowindex","sourcedatastore","sourcefeature","sourcelayer","target","targetdatastore","targetfeature","targetlayer","userInput","value","variables","view")},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},a={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,a]};a.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,i,e.REGEXP_MODE];const s=a.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,i,{ +// object attr container +begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{ +// "value" container +begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:s}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}}function Mc(){if(On)return Nn;return On=1,Nn=function(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=function(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[ +// Floating-point literal. +{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"}, +// Integer literal. +{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},u={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},d=t.optional(i)+e.IDENT_RE+"\\s*\\(",p={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},h={className:"function.dispatch",relevance:0,keywords:{ +// Only for relevance, not highlighting. +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[h,c,o,n,e.C_BLOCK_COMMENT_MODE,l,s],m={ +// This mode covers expression context where we can't expect a function +// definition and shouldn't highlight anything that looks like one: +// `return some()`, `else if()`, `(x*sum(1, 2))` +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:p,contains:_.concat([{begin:/\(/,end:/\)/,keywords:p,contains:_.concat(["self"]),relevance:0}]),relevance:0},g={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:p,illegal:/[^\w\s\*&:<>.]/,contains:[{ +// to prevent it from being confused as the function title +begin:r,keywords:p,relevance:0},{begin:d,returnBegin:!0,contains:[u],relevance:0}, +// needed because we do not have look-behind on the below rule +// to prevent it from grabbing the final : in a :: pair +{begin:/::/,relevance:0}, +// initializers +{begin:/:/,endsWithParent:!0,contains:[s,l]}, +// allow for multiple declarations, e.g.: +// extern void f(int), g(char); +{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,s,l,o, +// Count matching parentheses. +{begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,s,l,o]}]},o,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:p,illegal:" rooms (9);` +begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:p,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:p},{match:[ +// extra complexity to deal with `enum class` and `enum struct` +/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),r= +/** @type {Record} */n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}}function Lc(){if(wn)return Rn;return wn=1,Rn=function(e){const t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta: +// GNU preprocs +".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{ +// hex +begin:"[#$=]?0x[0-9a-f]+"},{ +// bin +begin:"[#$=]?0b[01]+"},{ +// literal +begin:"[#$=]\\d+"},{ +// bare number +begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{ +// GNU ARM syntax +begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{ +// ARM syntax +begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{ +// label reference +begin:"[=#]\\w+"}],relevance:0}]}}}function Pc(){if(In)return kn;return In=1,kn=function(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(i,{begin:/\(/,end:/\)/}),o=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,s,o,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,a,s,o]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},r, +// xml processing instructions +{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +/* + The lookahead pattern (?=...) ensures that 'begin' only matches + ')/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +// See the comment in the