diff --git a/web/comfy_shared.js b/web/comfy_shared.js
index 60902cb..f679353 100644
--- a/web/comfy_shared.js
+++ b/web/comfy_shared.js
@@ -9,6 +9,36 @@
import { app } from '../../scripts/app.js'
+// - crude uuid
+export function makeUUID() {
+ let dt = new Date().getTime()
+ const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
+ const r = (dt + Math.random() * 16) % 16 | 0
+ dt = Math.floor(dt / 16)
+ return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)
+ })
+ return uuid
+}
+
+// - log utilities
+
+function createLogger(emoji, color, consoleMethod = 'log') {
+ return function (message, ...args) {
+ if (window.MTB?.DEBUG) {
+ console[consoleMethod](
+ `%c${emoji} ${message}`,
+ `color: ${color};`,
+ ...args
+ )
+ }
+ }
+}
+
+export const infoLogger = createLogger('โน๏ธ', 'yellow')
+export const warnLogger = createLogger('โ ๏ธ', 'orange', 'warn')
+export const errorLogger = createLogger('๐ฅ', 'red', 'error')
+export const successLogger = createLogger('โ ', 'green')
+
export const log = (...args) => {
if (window.MTB?.DEBUG) {
console.debug(...args)
@@ -159,6 +189,25 @@ export const dynamic_connection = (
}
}
+export function calculateTotalChildrenHeight(parentElement) {
+ let totalHeight = 0
+
+ for (const child of parentElement.children) {
+ const style = window.getComputedStyle(child)
+
+ // Get height as an integer (without 'px')
+ const height = parseInt(style.height, 10)
+
+ // Get vertical margin as integers
+ const marginTop = parseInt(style.marginTop, 10)
+ const marginBottom = parseInt(style.marginBottom, 10)
+
+ // Sum up height and vertical margins
+ totalHeight += height + marginTop + marginBottom
+ }
+
+ return totalHeight
+}
/**
* Appends a callback to the extra menu options of a given node type.
* @param {*} nodeType
diff --git a/web/extern/dom-purify.js b/web/extern/dom-purify.js
new file mode 100644
index 0000000..9b16c5a
--- /dev/null
+++ b/web/extern/dom-purify.js
@@ -0,0 +1,3 @@
+/*! @license DOMPurify 3.0.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.6/LICENSE */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=N(Array.prototype.forEach),m=N(Array.prototype.pop),f=N(Array.prototype.push),p=N(String.prototype.toLowerCase),d=N(String.prototype.toString),h=N(String.prototype.match),g=N(String.prototype.replace),T=N(String.prototype.indexOf),y=N(String.prototype.trim),E=N(RegExp.prototype.test),A=(_=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:p;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function S(t){const n=l(null);for(const[o,i]of e(t))void 0!==r(t,o)&&(n[o]=i);return n}function R(e,t){for(;null!==e;){const n=r(e,t);if(n){if(n.get)return N(n.get);if("function"==typeof n.value)return N(n.value)}e=o(e)}return function(e){return console.warn("fallback value for",e),null}}const w=i(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),D=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),L=i(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),v=i(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),x=i(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),k=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),C=i(["#text"]),O=i(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),I=i(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),M=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),U=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),P=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),F=a(/<%[\w\W]*|[\w\W]*%>/gm),H=a(/\${[\w\W]*}/gm),z=a(/^data-[\-\w.\u00B7-\uFFFF]/),B=a(/^aria-[\-\w]+$/),W=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),G=a(/^(?:\w+script|data):/i),Y=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),j=a(/^html$/i);var q=Object.freeze({__proto__:null,MUSTACHE_EXPR:P,ERB_EXPR:F,TMPLIT_EXPR:H,DATA_ATTR:z,ARIA_ATTR:B,IS_ALLOWED_URI:W,IS_SCRIPT_OR_DATA:G,ATTR_WHITESPACE:Y,DOCTYPE_NAME:j});const X=function(){return"undefined"==typeof window?null:window};var K=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:X();const o=e=>t(e);if(o.version="3.0.6",o.removed=[],!n||!n.document||9!==n.document.nodeType)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:_,Node:N,Element:P,NodeFilter:F,NamedNodeMap:H=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:z,DOMParser:B,trustedTypes:G}=n,Y=P.prototype,K=R(Y,"cloneNode"),V=R(Y,"nextSibling"),$=R(Y,"childNodes"),Z=R(Y,"parentNode");if("function"==typeof _){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let J,Q="";const{implementation:ee,createNodeIterator:te,createDocumentFragment:ne,getElementsByTagName:oe}=r,{importNode:re}=a;let ie={};o.isSupported="function"==typeof e&&"function"==typeof Z&&ee&&void 0!==ee.createHTMLDocument;const{MUSTACHE_EXPR:ae,ERB_EXPR:le,TMPLIT_EXPR:ce,DATA_ATTR:se,ARIA_ATTR:ue,IS_SCRIPT_OR_DATA:me,ATTR_WHITESPACE:fe}=q;let{IS_ALLOWED_URI:pe}=q,de=null;const he=b({},[...w,...D,...L,...x,...C]);let ge=null;const Te=b({},[...O,...I,...M,...U]);let ye=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ee=null,Ae=null,_e=!0,Ne=!0,be=!1,Se=!0,Re=!1,we=!1,De=!1,Le=!1,ve=!1,xe=!1,ke=!1,Ce=!0,Oe=!1,Ie=!0,Me=!1,Ue={},Pe=null;const Fe=b({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let He=null;const ze=b({},["audio","video","img","source","image","track"]);let Be=null;const We=b({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ge="http://www.w3.org/1998/Math/MathML",Ye="http://www.w3.org/2000/svg",je="http://www.w3.org/1999/xhtml";let qe=je,Xe=!1,Ke=null;const Ve=b({},[Ge,Ye,je],d);let $e=null;const Ze=["application/xhtml+xml","text/html"];let Je=null,Qe=null;const et=r.createElement("form"),tt=function(e){return e instanceof RegExp||e instanceof Function},nt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Qe||Qe!==e){if(e&&"object"==typeof e||(e={}),e=S(e),$e=-1===Ze.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,Je="application/xhtml+xml"===$e?d:p,de="ALLOWED_TAGS"in e?b({},e.ALLOWED_TAGS,Je):he,ge="ALLOWED_ATTR"in e?b({},e.ALLOWED_ATTR,Je):Te,Ke="ALLOWED_NAMESPACES"in e?b({},e.ALLOWED_NAMESPACES,d):Ve,Be="ADD_URI_SAFE_ATTR"in e?b(S(We),e.ADD_URI_SAFE_ATTR,Je):We,He="ADD_DATA_URI_TAGS"in e?b(S(ze),e.ADD_DATA_URI_TAGS,Je):ze,Pe="FORBID_CONTENTS"in e?b({},e.FORBID_CONTENTS,Je):Fe,Ee="FORBID_TAGS"in e?b({},e.FORBID_TAGS,Je):{},Ae="FORBID_ATTR"in e?b({},e.FORBID_ATTR,Je):{},Ue="USE_PROFILES"in e&&e.USE_PROFILES,_e=!1!==e.ALLOW_ARIA_ATTR,Ne=!1!==e.ALLOW_DATA_ATTR,be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Se=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Re=e.SAFE_FOR_TEMPLATES||!1,we=e.WHOLE_DOCUMENT||!1,ve=e.RETURN_DOM||!1,xe=e.RETURN_DOM_FRAGMENT||!1,ke=e.RETURN_TRUSTED_TYPE||!1,Le=e.FORCE_BODY||!1,Ce=!1!==e.SANITIZE_DOM,Oe=e.SANITIZE_NAMED_PROPS||!1,Ie=!1!==e.KEEP_CONTENT,Me=e.IN_PLACE||!1,pe=e.ALLOWED_URI_REGEXP||W,qe=e.NAMESPACE||je,ye=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&tt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ye.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&tt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ye.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ye.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Re&&(Ne=!1),xe&&(ve=!0),Ue&&(de=b({},C),ge=[],!0===Ue.html&&(b(de,w),b(ge,O)),!0===Ue.svg&&(b(de,D),b(ge,I),b(ge,U)),!0===Ue.svgFilters&&(b(de,L),b(ge,I),b(ge,U)),!0===Ue.mathMl&&(b(de,x),b(ge,M),b(ge,U))),e.ADD_TAGS&&(de===he&&(de=S(de)),b(de,e.ADD_TAGS,Je)),e.ADD_ATTR&&(ge===Te&&(ge=S(ge)),b(ge,e.ADD_ATTR,Je)),e.ADD_URI_SAFE_ATTR&&b(Be,e.ADD_URI_SAFE_ATTR,Je),e.FORBID_CONTENTS&&(Pe===Fe&&(Pe=S(Pe)),b(Pe,e.FORBID_CONTENTS,Je)),Ie&&(de["#text"]=!0),we&&b(de,["html","head","body"]),de.table&&(b(de,["tbody"]),delete Ee.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');J=e.TRUSTED_TYPES_POLICY,Q=J.createHTML("")}else void 0===J&&(J=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==J&&"string"==typeof Q&&(Q=J.createHTML(""));i&&i(e),Qe=e}},ot=b({},["mi","mo","mn","ms","mtext"]),rt=b({},["foreignobject","desc","title","annotation-xml"]),it=b({},["title","style","font","a","script"]),at=b({},[...D,...L,...v]),lt=b({},[...x,...k]),ct=function(e){f(o.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},st=function(e,t){try{f(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){f(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!ge[e])if(ve||xe)try{ct(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},ut=function(e){let t=null,n=null;if(Le)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===$e&&qe===je&&(e=''+e+"");const o=J?J.createHTML(e):e;if(qe===je)try{t=(new B).parseFromString(o,$e)}catch(e){}if(!t||!t.documentElement){t=ee.createDocument(qe,"template",null);try{t.documentElement.innerHTML=Xe?Q:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),qe===je?oe.call(t,we?"html":"body")[0]:we?t.documentElement:i},mt=function(e){return te.call(e.ownerDocument||e,e,F.SHOW_ELEMENT|F.SHOW_COMMENT|F.SHOW_TEXT,null)},ft=function(e){return"function"==typeof N&&e instanceof N},pt=function(e,t,n){ie[e]&&u(ie[e],(e=>{e.call(o,t,n,Qe)}))},dt=function(e){let t=null;if(pt("beforeSanitizeElements",e,null),(n=e)instanceof z&&("string"!=typeof n.nodeName||"string"!=typeof n.textContent||"function"!=typeof n.removeChild||!(n.attributes instanceof H)||"function"!=typeof n.removeAttribute||"function"!=typeof n.setAttribute||"string"!=typeof n.namespaceURI||"function"!=typeof n.insertBefore||"function"!=typeof n.hasChildNodes))return ct(e),!0;var n;const r=Je(e.nodeName);if(pt("uponSanitizeElement",e,{tagName:r,allowedTags:de}),e.hasChildNodes()&&!ft(e.firstElementChild)&&E(/<[/\w]/g,e.innerHTML)&&E(/<[/\w]/g,e.textContent))return ct(e),!0;if(!de[r]||Ee[r]){if(!Ee[r]&>(r)){if(ye.tagNameCheck instanceof RegExp&&E(ye.tagNameCheck,r))return!1;if(ye.tagNameCheck instanceof Function&&ye.tagNameCheck(r))return!1}if(Ie&&!Pe[r]){const t=Z(e)||e.parentNode,n=$(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o)t.insertBefore(K(n[o],!0),V(e))}}return ct(e),!0}return e instanceof P&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:qe,tagName:"template"});const n=p(e.tagName),o=p(t.tagName);return!!Ke[e.namespaceURI]&&(e.namespaceURI===Ye?t.namespaceURI===je?"svg"===n:t.namespaceURI===Ge?"svg"===n&&("annotation-xml"===o||ot[o]):Boolean(at[n]):e.namespaceURI===Ge?t.namespaceURI===je?"math"===n:t.namespaceURI===Ye?"math"===n&&rt[o]:Boolean(lt[n]):e.namespaceURI===je?!(t.namespaceURI===Ye&&!rt[o])&&!(t.namespaceURI===Ge&&!ot[o])&&!lt[n]&&(it[n]||!at[n]):!("application/xhtml+xml"!==$e||!Ke[e.namespaceURI]))}(e)?(ct(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!E(/<\/no(script|embed|frames)/i,e.innerHTML)?(Re&&3===e.nodeType&&(t=e.textContent,u([ae,le,ce],(e=>{t=g(t,e," ")})),e.textContent!==t&&(f(o.removed,{element:e.cloneNode()}),e.textContent=t)),pt("afterSanitizeElements",e,null),!1):(ct(e),!0)},ht=function(e,t,n){if(Ce&&("id"===t||"name"===t)&&(n in r||n in et))return!1;if(Ne&&!Ae[t]&&E(se,t));else if(_e&&E(ue,t));else if(!ge[t]||Ae[t]){if(!(gt(e)&&(ye.tagNameCheck instanceof RegExp&&E(ye.tagNameCheck,e)||ye.tagNameCheck instanceof Function&&ye.tagNameCheck(e))&&(ye.attributeNameCheck instanceof RegExp&&E(ye.attributeNameCheck,t)||ye.attributeNameCheck instanceof Function&&ye.attributeNameCheck(t))||"is"===t&&ye.allowCustomizedBuiltInElements&&(ye.tagNameCheck instanceof RegExp&&E(ye.tagNameCheck,n)||ye.tagNameCheck instanceof Function&&ye.tagNameCheck(n))))return!1}else if(Be[t]);else if(E(pe,g(n,fe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!He[e]){if(be&&!E(me,g(n,fe,"")));else if(n)return!1}else;return!0},gt=function(e){return e.indexOf("-")>0},Tt=function(e){pt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ge};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=Je(a);let f="value"===a?c:y(c);if(n.attrName=s,n.attrValue=f,n.keepAttr=!0,n.forceKeepAttr=void 0,pt("uponSanitizeAttribute",e,n),f=n.attrValue,n.forceKeepAttr)continue;if(st(a,e),!n.keepAttr)continue;if(!Se&&E(/\/>/i,f)){st(a,e);continue}Re&&u([ae,le,ce],(e=>{f=g(f,e," ")}));const p=Je(e.nodeName);if(ht(p,s,f)){if(!Oe||"id"!==s&&"name"!==s||(st(a,e),f="user-content-"+f),J&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(p,s)){case"TrustedHTML":f=J.createHTML(f);break;case"TrustedScriptURL":f=J.createScriptURL(f)}try{l?e.setAttributeNS(l,a,f):e.setAttribute(a,f),m(o.removed)}catch(e){}}}pt("afterSanitizeAttributes",e,null)},yt=function e(t){let n=null;const o=mt(t);for(pt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)pt("uponSanitizeShadowNode",n,null),dt(n)||(n.content instanceof s&&e(n.content),Tt(n));pt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(Xe=!e,Xe&&(e="\x3c!--\x3e"),"string"!=typeof e&&!ft(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(De||nt(t),o.removed=[],"string"==typeof e&&(Me=!1),Me){if(e.nodeName){const t=Je(e.nodeName);if(!de[t]||Ee[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof N)n=ut("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!ve&&!Re&&!we&&-1===e.indexOf("<"))return J&&ke?J.createHTML(e):e;if(n=ut(e),!n)return ve?null:ke?Q:""}n&&Le&&ct(n.firstChild);const c=mt(Me?e:n);for(;i=c.nextNode();)dt(i)||(i.content instanceof s&&yt(i.content),Tt(i));if(Me)return e;if(ve){if(xe)for(l=ne.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(ge.shadowroot||ge.shadowrootmode)&&(l=re.call(a,l,!0)),l}let m=we?n.outerHTML:n.innerHTML;return we&&de["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&E(j,n.ownerDocument.doctype.name)&&(m="\n"+m),Re&&u([ae,le,ce],(e=>{m=g(m,e," ")})),J&&ke?J.createHTML(m):m},o.setConfig=function(){nt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),De=!0},o.clearConfig=function(){Qe=null,De=!1},o.isValidAttribute=function(e,t,n){Qe||nt({});const o=Je(e),r=Je(t);return ht(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(ie[e]=ie[e]||[],f(ie[e],t))},o.removeHook=function(e){if(ie[e])return m(ie[e])},o.removeHooks=function(e){ie[e]&&(ie[e]=[])},o.removeAllHooks=function(){ie={}},o}();return K}));
+//# sourceMappingURL=purify.min.js.map
\ No newline at end of file
diff --git a/web/extern/shodown.min.js b/web/extern/shodown.min.js
new file mode 100644
index 0000000..c523dc1
--- /dev/null
+++ b/web/extern/shodown.min.js
@@ -0,0 +1,3 @@
+/*! showdown v 2.1.0 - 21-04-2022 */
+!function(){function a(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `ยซยซยซ` and `ยปยปยป` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t,a={};for(t in r)r.hasOwnProperty(t)&&(a[t]=r[t].defaultValue);return a}var x={},t={},d={},p=a(!0),h="vanilla",_={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:a(!0),allOn:function(){"use strict";var e,r=a(!0),t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=!0);return t}()};function g(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",a={valid:!0,error:""};x.helper.isArray(e)||(e=[e]);for(var n=0;n").replace(/&/g,"&")};function u(e,r,t,a){"use strict";var n,s,o,i=-1<(a=a||"").indexOf("g"),l=new RegExp(r+"|"+t,"g"+a.replace(/g/g,"")),c=new RegExp(r,a.replace(/g/g,"")),u=[];do{for(n=0;p=l.exec(e);)if(c.test(p[0]))n++||(o=(s=l.lastIndex)-p[0].length);else if(n&&!--n){var d=p.index+p[0].length,p={left:{start:o,end:s},match:{start:s,end:p.index},right:{start:p.index,end:d},wholeMatch:{start:o,end:d}};if(u.push(p),!i)return u}}while(n&&(l.lastIndex=s));return u}function s(u){"use strict";return function(e,r,t,a,n,s,o){var i=t=t.replace(x.helper.regexes.asteriskDashAndColon,x.helper.escapeCharactersCallback),l="",c="",r=r||"",o=o||"";return/^www\./i.test(t)&&(t=t.replace(/^www\./i,"http://www.")),u.excludeTrailingPunctuationFromURLs&&s&&(l=s),r+'"+i+""+l+o}}function o(n,s){"use strict";return function(e,r,t){var a="mailto:";return r=r||"",t=x.subParser("unescapeSpecialChars")(t,n,s),n.encodeEmails?(a=x.helper.encodeEmailAddress(a+t),t=x.helper.encodeEmailAddress(t)):a+=t,r+''+t+""}}x.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=u(e,r,t,a),s=[],o=0;o>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),x.helper.regexes={asteriskDashAndColon:/([*_:~])/g},x.helper.emojis={"+1":"๐","-1":"๐",100:"๐ฏ",1234:"๐ข","1st_place_medal":"๐ฅ","2nd_place_medal":"๐ฅ","3rd_place_medal":"๐ฅ","8ball":"๐ฑ",a:"๐ ฐ๏ธ",ab:"๐",abc:"๐ค",abcd:"๐ก",accept:"๐",aerial_tramway:"๐ก",airplane:"โ๏ธ",alarm_clock:"โฐ",alembic:"โ๏ธ",alien:"๐ฝ",ambulance:"๐",amphora:"๐บ",anchor:"โ๏ธ",angel:"๐ผ",anger:"๐ข",angry:"๐ ",anguished:"๐ง",ant:"๐",apple:"๐",aquarius:"โ๏ธ",aries:"โ๏ธ",arrow_backward:"โ๏ธ",arrow_double_down:"โฌ",arrow_double_up:"โซ",arrow_down:"โฌ๏ธ",arrow_down_small:"๐ฝ",arrow_forward:"โถ๏ธ",arrow_heading_down:"โคต๏ธ",arrow_heading_up:"โคด๏ธ",arrow_left:"โฌ ๏ธ",arrow_lower_left:"โ๏ธ",arrow_lower_right:"โ๏ธ",arrow_right:"โก๏ธ",arrow_right_hook:"โช๏ธ",arrow_up:"โฌ๏ธ",arrow_up_down:"โ๏ธ",arrow_up_small:"๐ผ",arrow_upper_left:"โ๏ธ",arrow_upper_right:"โ๏ธ",arrows_clockwise:"๐",arrows_counterclockwise:"๐",art:"๐จ",articulated_lorry:"๐",artificial_satellite:"๐ฐ",astonished:"๐ฒ",athletic_shoe:"๐",atm:"๐ง",atom_symbol:"โ๏ธ",avocado:"๐ฅ",b:"๐ ฑ๏ธ",baby:"๐ถ",baby_bottle:"๐ผ",baby_chick:"๐ค",baby_symbol:"๐ผ",back:"๐",bacon:"๐ฅ",badminton:"๐ธ",baggage_claim:"๐",baguette_bread:"๐ฅ",balance_scale:"โ๏ธ",balloon:"๐",ballot_box:"๐ณ",ballot_box_with_check:"โ๏ธ",bamboo:"๐",banana:"๐",bangbang:"โผ๏ธ",bank:"๐ฆ",bar_chart:"๐",barber:"๐",baseball:"โพ๏ธ",basketball:"๐",basketball_man:"โน๏ธ",basketball_woman:"โน๏ธโ๏ธ",bat:"๐ฆ",bath:"๐",bathtub:"๐",battery:"๐",beach_umbrella:"๐",bear:"๐ป",bed:"๐",bee:"๐",beer:"๐บ",beers:"๐ป",beetle:"๐",beginner:"๐ฐ",bell:"๐",bellhop_bell:"๐",bento:"๐ฑ",biking_man:"๐ด",bike:"๐ฒ",biking_woman:"๐ดโ๏ธ",bikini:"๐",biohazard:"โฃ๏ธ",bird:"๐ฆ",birthday:"๐",black_circle:"โซ๏ธ",black_flag:"๐ด",black_heart:"๐ค",black_joker:"๐",black_large_square:"โฌ๏ธ",black_medium_small_square:"โพ๏ธ",black_medium_square:"โผ๏ธ",black_nib:"โ๏ธ",black_small_square:"โช๏ธ",black_square_button:"๐ฒ",blonde_man:"๐ฑ",blonde_woman:"๐ฑโ๏ธ",blossom:"๐ผ",blowfish:"๐ก",blue_book:"๐",blue_car:"๐",blue_heart:"๐",blush:"๐",boar:"๐",boat:"โต๏ธ",bomb:"๐ฃ",book:"๐",bookmark:"๐",bookmark_tabs:"๐",books:"๐",boom:"๐ฅ",boot:"๐ข",bouquet:"๐",bowing_man:"๐",bow_and_arrow:"๐น",bowing_woman:"๐โ๏ธ",bowling:"๐ณ",boxing_glove:"๐ฅ",boy:"๐ฆ",bread:"๐",bride_with_veil:"๐ฐ",bridge_at_night:"๐",briefcase:"๐ผ",broken_heart:"๐",bug:"๐",building_construction:"๐",bulb:"๐ก",bullettrain_front:"๐ ",bullettrain_side:"๐",burrito:"๐ฏ",bus:"๐",business_suit_levitating:"๐ด",busstop:"๐",bust_in_silhouette:"๐ค",busts_in_silhouette:"๐ฅ",butterfly:"๐ฆ",cactus:"๐ต",cake:"๐ฐ",calendar:"๐",call_me_hand:"๐ค",calling:"๐ฒ",camel:"๐ซ",camera:"๐ท",camera_flash:"๐ธ",camping:"๐",cancer:"โ๏ธ",candle:"๐ฏ",candy:"๐ฌ",canoe:"๐ถ",capital_abcd:"๐ ",capricorn:"โ๏ธ",car:"๐",card_file_box:"๐",card_index:"๐",card_index_dividers:"๐",carousel_horse:"๐ ",carrot:"๐ฅ",cat:"๐ฑ",cat2:"๐",cd:"๐ฟ",chains:"โ",champagne:"๐พ",chart:"๐น",chart_with_downwards_trend:"๐",chart_with_upwards_trend:"๐",checkered_flag:"๐",cheese:"๐ง",cherries:"๐",cherry_blossom:"๐ธ",chestnut:"๐ฐ",chicken:"๐",children_crossing:"๐ธ",chipmunk:"๐ฟ",chocolate_bar:"๐ซ",christmas_tree:"๐",church:"โช๏ธ",cinema:"๐ฆ",circus_tent:"๐ช",city_sunrise:"๐",city_sunset:"๐",cityscape:"๐",cl:"๐",clamp:"๐",clap:"๐",clapper:"๐ฌ",classical_building:"๐",clinking_glasses:"๐ฅ",clipboard:"๐",clock1:"๐",clock10:"๐",clock1030:"๐ฅ",clock11:"๐",clock1130:"๐ฆ",clock12:"๐",clock1230:"๐ง",clock130:"๐",clock2:"๐",clock230:"๐",clock3:"๐",clock330:"๐",clock4:"๐",clock430:"๐",clock5:"๐",clock530:"๐ ",clock6:"๐",clock630:"๐ก",clock7:"๐",clock730:"๐ข",clock8:"๐",clock830:"๐ฃ",clock9:"๐",clock930:"๐ค",closed_book:"๐",closed_lock_with_key:"๐",closed_umbrella:"๐",cloud:"โ๏ธ",cloud_with_lightning:"๐ฉ",cloud_with_lightning_and_rain:"โ",cloud_with_rain:"๐ง",cloud_with_snow:"๐จ",clown_face:"๐คก",clubs:"โฃ๏ธ",cocktail:"๐ธ",coffee:"โ๏ธ",coffin:"โฐ๏ธ",cold_sweat:"๐ฐ",comet:"โ๏ธ",computer:"๐ป",computer_mouse:"๐ฑ",confetti_ball:"๐",confounded:"๐",confused:"๐",congratulations:"ใ๏ธ",construction:"๐ง",construction_worker_man:"๐ท",construction_worker_woman:"๐ทโ๏ธ",control_knobs:"๐",convenience_store:"๐ช",cookie:"๐ช",cool:"๐",policeman:"๐ฎ",copyright:"ยฉ๏ธ",corn:"๐ฝ",couch_and_lamp:"๐",couple:"๐ซ",couple_with_heart_woman_man:"๐",couple_with_heart_man_man:"๐จโค๏ธ๐จ",couple_with_heart_woman_woman:"๐ฉโค๏ธ๐ฉ",couplekiss_man_man:"๐จโค๏ธ๐๐จ",couplekiss_man_woman:"๐",couplekiss_woman_woman:"๐ฉโค๏ธ๐๐ฉ",cow:"๐ฎ",cow2:"๐",cowboy_hat_face:"๐ค ",crab:"๐ฆ",crayon:"๐",credit_card:"๐ณ",crescent_moon:"๐",cricket:"๐",crocodile:"๐",croissant:"๐ฅ",crossed_fingers:"๐ค",crossed_flags:"๐",crossed_swords:"โ๏ธ",crown:"๐",cry:"๐ข",crying_cat_face:"๐ฟ",crystal_ball:"๐ฎ",cucumber:"๐ฅ",cupid:"๐",curly_loop:"โฐ",currency_exchange:"๐ฑ",curry:"๐",custard:"๐ฎ",customs:"๐",cyclone:"๐",dagger:"๐ก",dancer:"๐",dancing_women:"๐ฏ",dancing_men:"๐ฏโ๏ธ",dango:"๐ก",dark_sunglasses:"๐ถ",dart:"๐ฏ",dash:"๐จ",date:"๐ ",deciduous_tree:"๐ณ",deer:"๐ฆ",department_store:"๐ฌ",derelict_house:"๐",desert:"๐",desert_island:"๐",desktop_computer:"๐ฅ",male_detective:"๐ต๏ธ",diamond_shape_with_a_dot_inside:"๐ ",diamonds:"โฆ๏ธ",disappointed:"๐",disappointed_relieved:"๐ฅ",dizzy:"๐ซ",dizzy_face:"๐ต",do_not_litter:"๐ฏ",dog:"๐ถ",dog2:"๐",dollar:"๐ต",dolls:"๐",dolphin:"๐ฌ",door:"๐ช",doughnut:"๐ฉ",dove:"๐",dragon:"๐",dragon_face:"๐ฒ",dress:"๐",dromedary_camel:"๐ช",drooling_face:"๐คค",droplet:"๐ง",drum:"๐ฅ",duck:"๐ฆ",dvd:"๐","e-mail":"๐ง",eagle:"๐ฆ ",ear:"๐",ear_of_rice:"๐พ",earth_africa:"๐",earth_americas:"๐",earth_asia:"๐",egg:"๐ฅ",eggplant:"๐",eight_pointed_black_star:"โด๏ธ",eight_spoked_asterisk:"โณ๏ธ",electric_plug:"๐",elephant:"๐",email:"โ๏ธ",end:"๐",envelope_with_arrow:"๐ฉ",euro:"๐ถ",european_castle:"๐ฐ",european_post_office:"๐ค",evergreen_tree:"๐ฒ",exclamation:"โ๏ธ",expressionless:"๐",eye:"๐",eye_speech_bubble:"๐๐จ",eyeglasses:"๐",eyes:"๐",face_with_head_bandage:"๐ค",face_with_thermometer:"๐ค",fist_oncoming:"๐",factory:"๐ญ",fallen_leaf:"๐",family_man_woman_boy:"๐ช",family_man_boy:"๐จ๐ฆ",family_man_boy_boy:"๐จ๐ฆ๐ฆ",family_man_girl:"๐จ๐ง",family_man_girl_boy:"๐จ๐ง๐ฆ",family_man_girl_girl:"๐จ๐ง๐ง",family_man_man_boy:"๐จ๐จ๐ฆ",family_man_man_boy_boy:"๐จ๐จ๐ฆ๐ฆ",family_man_man_girl:"๐จ๐จ๐ง",family_man_man_girl_boy:"๐จ๐จ๐ง๐ฆ",family_man_man_girl_girl:"๐จ๐จ๐ง๐ง",family_man_woman_boy_boy:"๐จ๐ฉ๐ฆ๐ฆ",family_man_woman_girl:"๐จ๐ฉ๐ง",family_man_woman_girl_boy:"๐จ๐ฉ๐ง๐ฆ",family_man_woman_girl_girl:"๐จ๐ฉ๐ง๐ง",family_woman_boy:"๐ฉ๐ฆ",family_woman_boy_boy:"๐ฉ๐ฆ๐ฆ",family_woman_girl:"๐ฉ๐ง",family_woman_girl_boy:"๐ฉ๐ง๐ฆ",family_woman_girl_girl:"๐ฉ๐ง๐ง",family_woman_woman_boy:"๐ฉ๐ฉ๐ฆ",family_woman_woman_boy_boy:"๐ฉ๐ฉ๐ฆ๐ฆ",family_woman_woman_girl:"๐ฉ๐ฉ๐ง",family_woman_woman_girl_boy:"๐ฉ๐ฉ๐ง๐ฆ",family_woman_woman_girl_girl:"๐ฉ๐ฉ๐ง๐ง",fast_forward:"โฉ",fax:"๐ ",fearful:"๐จ",feet:"๐พ",female_detective:"๐ต๏ธโ๏ธ",ferris_wheel:"๐ก",ferry:"โด",field_hockey:"๐",file_cabinet:"๐",file_folder:"๐",film_projector:"๐ฝ",film_strip:"๐",fire:"๐ฅ",fire_engine:"๐",fireworks:"๐",first_quarter_moon:"๐",first_quarter_moon_with_face:"๐",fish:"๐",fish_cake:"๐ฅ",fishing_pole_and_fish:"๐ฃ",fist_raised:"โ",fist_left:"๐ค",fist_right:"๐ค",flags:"๐",flashlight:"๐ฆ",fleur_de_lis:"โ๏ธ",flight_arrival:"๐ฌ",flight_departure:"๐ซ",floppy_disk:"๐พ",flower_playing_cards:"๐ด",flushed:"๐ณ",fog:"๐ซ",foggy:"๐",football:"๐",footprints:"๐ฃ",fork_and_knife:"๐ด",fountain:"โฒ๏ธ",fountain_pen:"๐",four_leaf_clover:"๐",fox_face:"๐ฆ",framed_picture:"๐ผ",free:"๐",fried_egg:"๐ณ",fried_shrimp:"๐ค",fries:"๐",frog:"๐ธ",frowning:"๐ฆ",frowning_face:"โน๏ธ",frowning_man:"๐โ๏ธ",frowning_woman:"๐",middle_finger:"๐",fuelpump:"โฝ๏ธ",full_moon:"๐",full_moon_with_face:"๐",funeral_urn:"โฑ๏ธ",game_die:"๐ฒ",gear:"โ๏ธ",gem:"๐",gemini:"โ๏ธ",ghost:"๐ป",gift:"๐",gift_heart:"๐",girl:"๐ง",globe_with_meridians:"๐",goal_net:"๐ฅ ",goat:"๐",golf:"โณ๏ธ",golfing_man:"๐๏ธ",golfing_woman:"๐๏ธโ๏ธ",gorilla:"๐ฆ",grapes:"๐",green_apple:"๐",green_book:"๐",green_heart:"๐",green_salad:"๐ฅ",grey_exclamation:"โ",grey_question:"โ",grimacing:"๐ฌ",grin:"๐",grinning:"๐",guardsman:"๐",guardswoman:"๐โ๏ธ",guitar:"๐ธ",gun:"๐ซ",haircut_woman:"๐",haircut_man:"๐โ๏ธ",hamburger:"๐",hammer:"๐จ",hammer_and_pick:"โ",hammer_and_wrench:"๐ ",hamster:"๐น",hand:"โ",handbag:"๐",handshake:"๐ค",hankey:"๐ฉ",hatched_chick:"๐ฅ",hatching_chick:"๐ฃ",headphones:"๐ง",hear_no_evil:"๐",heart:"โค๏ธ",heart_decoration:"๐",heart_eyes:"๐",heart_eyes_cat:"๐ป",heartbeat:"๐",heartpulse:"๐",hearts:"โฅ๏ธ",heavy_check_mark:"โ๏ธ",heavy_division_sign:"โ",heavy_dollar_sign:"๐ฒ",heavy_heart_exclamation:"โฃ๏ธ",heavy_minus_sign:"โ",heavy_multiplication_x:"โ๏ธ",heavy_plus_sign:"โ",helicopter:"๐",herb:"๐ฟ",hibiscus:"๐บ",high_brightness:"๐",high_heel:"๐ ",hocho:"๐ช",hole:"๐ณ",honey_pot:"๐ฏ",horse:"๐ด",horse_racing:"๐",hospital:"๐ฅ",hot_pepper:"๐ถ",hotdog:"๐ญ",hotel:"๐จ",hotsprings:"โจ๏ธ",hourglass:"โ๏ธ",hourglass_flowing_sand:"โณ",house:"๐ ",house_with_garden:"๐ก",houses:"๐",hugs:"๐ค",hushed:"๐ฏ",ice_cream:"๐จ",ice_hockey:"๐",ice_skate:"โธ",icecream:"๐ฆ",id:"๐",ideograph_advantage:"๐",imp:"๐ฟ",inbox_tray:"๐ฅ",incoming_envelope:"๐จ",tipping_hand_woman:"๐",information_source:"โน๏ธ",innocent:"๐",interrobang:"โ๏ธ",iphone:"๐ฑ",izakaya_lantern:"๐ฎ",jack_o_lantern:"๐",japan:"๐พ",japanese_castle:"๐ฏ",japanese_goblin:"๐บ",japanese_ogre:"๐น",jeans:"๐",joy:"๐",joy_cat:"๐น",joystick:"๐น",kaaba:"๐",key:"๐",keyboard:"โจ๏ธ",keycap_ten:"๐",kick_scooter:"๐ด",kimono:"๐",kiss:"๐",kissing:"๐",kissing_cat:"๐ฝ",kissing_closed_eyes:"๐",kissing_heart:"๐",kissing_smiling_eyes:"๐",kiwi_fruit:"๐ฅ",koala:"๐จ",koko:"๐",label:"๐ท",large_blue_circle:"๐ต",large_blue_diamond:"๐ท",large_orange_diamond:"๐ถ",last_quarter_moon:"๐",last_quarter_moon_with_face:"๐",latin_cross:"โ๏ธ",laughing:"๐",leaves:"๐",ledger:"๐",left_luggage:"๐ ",left_right_arrow:"โ๏ธ",leftwards_arrow_with_hook:"โฉ๏ธ",lemon:"๐",leo:"โ๏ธ",leopard:"๐",level_slider:"๐",libra:"โ๏ธ",light_rail:"๐",link:"๐",lion:"๐ฆ",lips:"๐",lipstick:"๐",lizard:"๐ฆ",lock:"๐",lock_with_ink_pen:"๐",lollipop:"๐ญ",loop:"โฟ",loud_sound:"๐",loudspeaker:"๐ข",love_hotel:"๐ฉ",love_letter:"๐",low_brightness:"๐ ",lying_face:"๐คฅ",m:"โ๏ธ",mag:"๐",mag_right:"๐",mahjong:"๐๏ธ",mailbox:"๐ซ",mailbox_closed:"๐ช",mailbox_with_mail:"๐ฌ",mailbox_with_no_mail:"๐ญ",man:"๐จ",man_artist:"๐จ๐จ",man_astronaut:"๐จ๐",man_cartwheeling:"๐คธโ๏ธ",man_cook:"๐จ๐ณ",man_dancing:"๐บ",man_facepalming:"๐คฆโ๏ธ",man_factory_worker:"๐จ๐ญ",man_farmer:"๐จ๐พ",man_firefighter:"๐จ๐",man_health_worker:"๐จโ๏ธ",man_in_tuxedo:"๐คต",man_judge:"๐จโ๏ธ",man_juggling:"๐คนโ๏ธ",man_mechanic:"๐จ๐ง",man_office_worker:"๐จ๐ผ",man_pilot:"๐จโ๏ธ",man_playing_handball:"๐คพโ๏ธ",man_playing_water_polo:"๐คฝโ๏ธ",man_scientist:"๐จ๐ฌ",man_shrugging:"๐คทโ๏ธ",man_singer:"๐จ๐ค",man_student:"๐จ๐",man_teacher:"๐จ๐ซ",man_technologist:"๐จ๐ป",man_with_gua_pi_mao:"๐ฒ",man_with_turban:"๐ณ",tangerine:"๐",mans_shoe:"๐",mantelpiece_clock:"๐ฐ",maple_leaf:"๐",martial_arts_uniform:"๐ฅ",mask:"๐ท",massage_woman:"๐",massage_man:"๐โ๏ธ",meat_on_bone:"๐",medal_military:"๐",medal_sports:"๐ ",mega:"๐ฃ",melon:"๐",memo:"๐",men_wrestling:"๐คผโ๏ธ",menorah:"๐",mens:"๐น",metal:"๐ค",metro:"๐",microphone:"๐ค",microscope:"๐ฌ",milk_glass:"๐ฅ",milky_way:"๐",minibus:"๐",minidisc:"๐ฝ",mobile_phone_off:"๐ด",money_mouth_face:"๐ค",money_with_wings:"๐ธ",moneybag:"๐ฐ",monkey:"๐",monkey_face:"๐ต",monorail:"๐",moon:"๐",mortar_board:"๐",mosque:"๐",motor_boat:"๐ฅ",motor_scooter:"๐ต",motorcycle:"๐",motorway:"๐ฃ",mount_fuji:"๐ป",mountain:"โฐ",mountain_biking_man:"๐ต",mountain_biking_woman:"๐ตโ๏ธ",mountain_cableway:"๐ ",mountain_railway:"๐",mountain_snow:"๐",mouse:"๐ญ",mouse2:"๐",movie_camera:"๐ฅ",moyai:"๐ฟ",mrs_claus:"๐คถ",muscle:"๐ช",mushroom:"๐",musical_keyboard:"๐น",musical_note:"๐ต",musical_score:"๐ผ",mute:"๐",nail_care:"๐ ",name_badge:"๐",national_park:"๐",nauseated_face:"๐คข",necktie:"๐",negative_squared_cross_mark:"โ",nerd_face:"๐ค",neutral_face:"๐",new:"๐",new_moon:"๐",new_moon_with_face:"๐",newspaper:"๐ฐ",newspaper_roll:"๐",next_track_button:"โญ",ng:"๐",no_good_man:"๐ โ๏ธ",no_good_woman:"๐ ",night_with_stars:"๐",no_bell:"๐",no_bicycles:"๐ณ",no_entry:"โ๏ธ",no_entry_sign:"๐ซ",no_mobile_phones:"๐ต",no_mouth:"๐ถ",no_pedestrians:"๐ท",no_smoking:"๐ญ","non-potable_water":"๐ฑ",nose:"๐",notebook:"๐",notebook_with_decorative_cover:"๐",notes:"๐ถ",nut_and_bolt:"๐ฉ",o:"โญ๏ธ",o2:"๐ พ๏ธ",ocean:"๐",octopus:"๐",oden:"๐ข",office:"๐ข",oil_drum:"๐ข",ok:"๐",ok_hand:"๐",ok_man:"๐โ๏ธ",ok_woman:"๐",old_key:"๐",older_man:"๐ด",older_woman:"๐ต",om:"๐",on:"๐",oncoming_automobile:"๐",oncoming_bus:"๐",oncoming_police_car:"๐",oncoming_taxi:"๐",open_file_folder:"๐",open_hands:"๐",open_mouth:"๐ฎ",open_umbrella:"โ๏ธ",ophiuchus:"โ",orange_book:"๐",orthodox_cross:"โฆ๏ธ",outbox_tray:"๐ค",owl:"๐ฆ",ox:"๐",package:"๐ฆ",page_facing_up:"๐",page_with_curl:"๐",pager:"๐",paintbrush:"๐",palm_tree:"๐ด",pancakes:"๐ฅ",panda_face:"๐ผ",paperclip:"๐",paperclips:"๐",parasol_on_ground:"โฑ",parking:"๐ ฟ๏ธ",part_alternation_mark:"ใฝ๏ธ",partly_sunny:"โ ๏ธ",passenger_ship:"๐ณ",passport_control:"๐",pause_button:"โธ",peace_symbol:"โฎ๏ธ",peach:"๐",peanuts:"๐ฅ",pear:"๐",pen:"๐",pencil2:"โ๏ธ",penguin:"๐ง",pensive:"๐",performing_arts:"๐ญ",persevere:"๐ฃ",person_fencing:"๐คบ",pouting_woman:"๐",phone:"โ๏ธ",pick:"โ",pig:"๐ท",pig2:"๐",pig_nose:"๐ฝ",pill:"๐",pineapple:"๐",ping_pong:"๐",pisces:"โ๏ธ",pizza:"๐",place_of_worship:"๐",plate_with_cutlery:"๐ฝ",play_or_pause_button:"โฏ",point_down:"๐",point_left:"๐",point_right:"๐",point_up:"โ๏ธ",point_up_2:"๐",police_car:"๐",policewoman:"๐ฎโ๏ธ",poodle:"๐ฉ",popcorn:"๐ฟ",post_office:"๐ฃ",postal_horn:"๐ฏ",postbox:"๐ฎ",potable_water:"๐ฐ",potato:"๐ฅ",pouch:"๐",poultry_leg:"๐",pound:"๐ท",rage:"๐ก",pouting_cat:"๐พ",pouting_man:"๐โ๏ธ",pray:"๐",prayer_beads:"๐ฟ",pregnant_woman:"๐คฐ",previous_track_button:"โฎ",prince:"๐คด",princess:"๐ธ",printer:"๐จ",purple_heart:"๐",purse:"๐",pushpin:"๐",put_litter_in_its_place:"๐ฎ",question:"โ",rabbit:"๐ฐ",rabbit2:"๐",racehorse:"๐",racing_car:"๐",radio:"๐ป",radio_button:"๐",radioactive:"โข๏ธ",railway_car:"๐",railway_track:"๐ค",rainbow:"๐",rainbow_flag:"๐ณ๏ธ๐",raised_back_of_hand:"๐ค",raised_hand_with_fingers_splayed:"๐",raised_hands:"๐",raising_hand_woman:"๐",raising_hand_man:"๐โ๏ธ",ram:"๐",ramen:"๐",rat:"๐",record_button:"โบ",recycle:"โป๏ธ",red_circle:"๐ด",registered:"ยฎ๏ธ",relaxed:"โบ๏ธ",relieved:"๐",reminder_ribbon:"๐",repeat:"๐",repeat_one:"๐",rescue_worker_helmet:"โ",restroom:"๐ป",revolving_hearts:"๐",rewind:"โช",rhinoceros:"๐ฆ",ribbon:"๐",rice:"๐",rice_ball:"๐",rice_cracker:"๐",rice_scene:"๐",right_anger_bubble:"๐ฏ",ring:"๐",robot:"๐ค",rocket:"๐",rofl:"๐คฃ",roll_eyes:"๐",roller_coaster:"๐ข",rooster:"๐",rose:"๐น",rosette:"๐ต",rotating_light:"๐จ",round_pushpin:"๐",rowing_man:"๐ฃ",rowing_woman:"๐ฃโ๏ธ",rugby_football:"๐",running_man:"๐",running_shirt_with_sash:"๐ฝ",running_woman:"๐โ๏ธ",sa:"๐๏ธ",sagittarius:"โ๏ธ",sake:"๐ถ",sandal:"๐ก",santa:"๐ ",satellite:"๐ก",saxophone:"๐ท",school:"๐ซ",school_satchel:"๐",scissors:"โ๏ธ",scorpion:"๐ฆ",scorpius:"โ๏ธ",scream:"๐ฑ",scream_cat:"๐",scroll:"๐",seat:"๐บ",secret:"ใ๏ธ",see_no_evil:"๐",seedling:"๐ฑ",selfie:"๐คณ",shallow_pan_of_food:"๐ฅ",shamrock:"โ๏ธ",shark:"๐ฆ",shaved_ice:"๐ง",sheep:"๐",shell:"๐",shield:"๐ก",shinto_shrine:"โฉ",ship:"๐ข",shirt:"๐",shopping:"๐",shopping_cart:"๐",shower:"๐ฟ",shrimp:"๐ฆ",signal_strength:"๐ถ",six_pointed_star:"๐ฏ",ski:"๐ฟ",skier:"โท",skull:"๐",skull_and_crossbones:"โ ๏ธ",sleeping:"๐ด",sleeping_bed:"๐",sleepy:"๐ช",slightly_frowning_face:"๐",slightly_smiling_face:"๐",slot_machine:"๐ฐ",small_airplane:"๐ฉ",small_blue_diamond:"๐น",small_orange_diamond:"๐ธ",small_red_triangle:"๐บ",small_red_triangle_down:"๐ป",smile:"๐",smile_cat:"๐ธ",smiley:"๐",smiley_cat:"๐บ",smiling_imp:"๐",smirk:"๐",smirk_cat:"๐ผ",smoking:"๐ฌ",snail:"๐",snake:"๐",sneezing_face:"๐คง",snowboarder:"๐",snowflake:"โ๏ธ",snowman:"โ๏ธ",snowman_with_snow:"โ๏ธ",sob:"๐ญ",soccer:"โฝ๏ธ",soon:"๐",sos:"๐",sound:"๐",space_invader:"๐พ",spades:"โ ๏ธ",spaghetti:"๐",sparkle:"โ๏ธ",sparkler:"๐",sparkles:"โจ",sparkling_heart:"๐",speak_no_evil:"๐",speaker:"๐",speaking_head:"๐ฃ",speech_balloon:"๐ฌ",speedboat:"๐ค",spider:"๐ท",spider_web:"๐ธ",spiral_calendar:"๐",spiral_notepad:"๐",spoon:"๐ฅ",squid:"๐ฆ",stadium:"๐",star:"โญ๏ธ",star2:"๐",star_and_crescent:"โช๏ธ",star_of_david:"โก๏ธ",stars:"๐ ",station:"๐",statue_of_liberty:"๐ฝ",steam_locomotive:"๐",stew:"๐ฒ",stop_button:"โน",stop_sign:"๐",stopwatch:"โฑ",straight_ruler:"๐",strawberry:"๐",stuck_out_tongue:"๐",stuck_out_tongue_closed_eyes:"๐",stuck_out_tongue_winking_eye:"๐",studio_microphone:"๐",stuffed_flatbread:"๐ฅ",sun_behind_large_cloud:"๐ฅ",sun_behind_rain_cloud:"๐ฆ",sun_behind_small_cloud:"๐ค",sun_with_face:"๐",sunflower:"๐ป",sunglasses:"๐",sunny:"โ๏ธ",sunrise:"๐ ",sunrise_over_mountains:"๐",surfing_man:"๐",surfing_woman:"๐โ๏ธ",sushi:"๐ฃ",suspension_railway:"๐",sweat:"๐",sweat_drops:"๐ฆ",sweat_smile:"๐ ",sweet_potato:"๐ ",swimming_man:"๐",swimming_woman:"๐โ๏ธ",symbols:"๐ฃ",synagogue:"๐",syringe:"๐",taco:"๐ฎ",tada:"๐",tanabata_tree:"๐",taurus:"โ๏ธ",taxi:"๐",tea:"๐ต",telephone_receiver:"๐",telescope:"๐ญ",tennis:"๐พ",tent:"โบ๏ธ",thermometer:"๐ก",thinking:"๐ค",thought_balloon:"๐ญ",ticket:"๐ซ",tickets:"๐",tiger:"๐ฏ",tiger2:"๐ ",timer_clock:"โฒ",tipping_hand_man:"๐โ๏ธ",tired_face:"๐ซ",tm:"โข๏ธ",toilet:"๐ฝ",tokyo_tower:"๐ผ",tomato:"๐ ",tongue:"๐ ",top:"๐",tophat:"๐ฉ",tornado:"๐ช",trackball:"๐ฒ",tractor:"๐",traffic_light:"๐ฅ",train:"๐",train2:"๐",tram:"๐",triangular_flag_on_post:"๐ฉ",triangular_ruler:"๐",trident:"๐ฑ",triumph:"๐ค",trolleybus:"๐",trophy:"๐",tropical_drink:"๐น",tropical_fish:"๐ ",truck:"๐",trumpet:"๐บ",tulip:"๐ท",tumbler_glass:"๐ฅ",turkey:"๐ฆ",turtle:"๐ข",tv:"๐บ",twisted_rightwards_arrows:"๐",two_hearts:"๐",two_men_holding_hands:"๐ฌ",two_women_holding_hands:"๐ญ",u5272:"๐น",u5408:"๐ด",u55b6:"๐บ",u6307:"๐ฏ๏ธ",u6708:"๐ท๏ธ",u6709:"๐ถ",u6e80:"๐ต",u7121:"๐๏ธ",u7533:"๐ธ",u7981:"๐ฒ",u7a7a:"๐ณ",umbrella:"โ๏ธ",unamused:"๐",underage:"๐",unicorn:"๐ฆ",unlock:"๐",up:"๐",upside_down_face:"๐",v:"โ๏ธ",vertical_traffic_light:"๐ฆ",vhs:"๐ผ",vibration_mode:"๐ณ",video_camera:"๐น",video_game:"๐ฎ",violin:"๐ป",virgo:"โ๏ธ",volcano:"๐",volleyball:"๐",vs:"๐",vulcan_salute:"๐",walking_man:"๐ถ",walking_woman:"๐ถโ๏ธ",waning_crescent_moon:"๐",waning_gibbous_moon:"๐",warning:"โ ๏ธ",wastebasket:"๐",watch:"โ๏ธ",water_buffalo:"๐",watermelon:"๐",wave:"๐",wavy_dash:"ใฐ๏ธ",waxing_crescent_moon:"๐",wc:"๐พ",weary:"๐ฉ",wedding:"๐",weight_lifting_man:"๐๏ธ",weight_lifting_woman:"๐๏ธโ๏ธ",whale:"๐ณ",whale2:"๐",wheel_of_dharma:"โธ๏ธ",wheelchair:"โฟ๏ธ",white_check_mark:"โ ",white_circle:"โช๏ธ",white_flag:"๐ณ๏ธ",white_flower:"๐ฎ",white_large_square:"โฌ๏ธ",white_medium_small_square:"โฝ๏ธ",white_medium_square:"โป๏ธ",white_small_square:"โซ๏ธ",white_square_button:"๐ณ",wilted_flower:"๐ฅ",wind_chime:"๐",wind_face:"๐ฌ",wine_glass:"๐ท",wink:"๐",wolf:"๐บ",woman:"๐ฉ",woman_artist:"๐ฉ๐จ",woman_astronaut:"๐ฉ๐",woman_cartwheeling:"๐คธโ๏ธ",woman_cook:"๐ฉ๐ณ",woman_facepalming:"๐คฆโ๏ธ",woman_factory_worker:"๐ฉ๐ญ",woman_farmer:"๐ฉ๐พ",woman_firefighter:"๐ฉ๐",woman_health_worker:"๐ฉโ๏ธ",woman_judge:"๐ฉโ๏ธ",woman_juggling:"๐คนโ๏ธ",woman_mechanic:"๐ฉ๐ง",woman_office_worker:"๐ฉ๐ผ",woman_pilot:"๐ฉโ๏ธ",woman_playing_handball:"๐คพโ๏ธ",woman_playing_water_polo:"๐คฝโ๏ธ",woman_scientist:"๐ฉ๐ฌ",woman_shrugging:"๐คทโ๏ธ",woman_singer:"๐ฉ๐ค",woman_student:"๐ฉ๐",woman_teacher:"๐ฉ๐ซ",woman_technologist:"๐ฉ๐ป",woman_with_turban:"๐ณโ๏ธ",womans_clothes:"๐",womans_hat:"๐",women_wrestling:"๐คผโ๏ธ",womens:"๐บ",world_map:"๐บ",worried:"๐",wrench:"๐ง",writing_hand:"โ๏ธ",x:"โ",yellow_heart:"๐",yen:"๐ด",yin_yang:"โฏ๏ธ",yum:"๐",zap:"โก๏ธ",zipper_mouth_face:"๐ค",zzz:"๐ค",octocat:'',showdown:"S"},x.Converter=function(e){"use strict";var r,t,n={},i=[],l=[],o={},a=h,s={parsed:{},raw:"",format:""};for(r in e=e||{},p)p.hasOwnProperty(r)&&(n[r]=p[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);function c(e,r){if(r=r||null,x.helper.isString(e)){if(r=e=x.helper.stdExtName(e),x.extensions[e]){console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!");var t=x.extensions[e],a=e;if("function"==typeof t&&(t=t(new x.Converter)),x.helper.isArray(t)||(t=[t]),!(a=g(t,a)).valid)throw Error(a.error);for(var n=0;n[ \t]+,">ยจNBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}for(var r=r.createElement("div"),t=(r.innerHTML=e,{preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],a=0;a'}else t.push(r[a].innerHTML),r[a].innerHTML="",r[a].setAttribute("prenum",a.toString());return t}(r)}),a=(!function e(r){for(var t=0;t? ?(['"].*['"])?\)$/m))a="";else if(!a){if(a="#"+(t=t||r.toLowerCase().replace(/ ?\n/g," ")),x.helper.isUndefined(l.gUrls[t]))return e;a=l.gUrls[t],x.helper.isUndefined(l.gTitles[t])||(o=l.gTitles[t])}return e='"+r+""}return e=(e=(e=(e=(e=l.converter._dispatch("anchors.before",e,i,l)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[([^\[\]]+)]()()()()()/g,r),i.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,r,t,a,n){if("\\"===t)return r+a;if(!x.helper.isString(i.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");t="";return r+'"+a+""})),e=l.converter._dispatch("anchors.after",e,i,l)});var i=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,l=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,c=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,m=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,f=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;x.subParser("autoLinks",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("autoLinks.before",e,r,t)).replace(c,s(r))).replace(f,o(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),x.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=(e=r.excludeTrailingPunctuationFromURLs?e.replace(l,s(r)):e.replace(i,s(r))).replace(m,o(r,t)),t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),x.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=x.subParser("blockQuotes")(e,r,t),e=x.subParser("headers")(e,r,t),e=x.subParser("horizontalRule")(e,r,t),e=x.subParser("lists")(e,r,t),e=x.subParser("codeBlocks")(e,r,t),e=x.subParser("tables")(e,r,t),e=x.subParser("hashHTMLBlocks")(e,r,t),e=x.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),x.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t);var a=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(a=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=(e+="\n\n").replace(a,function(e){return e=(e=(e=e.replace(/^[ \t]*>[ \t]?/gm,"")).replace(/ยจ0/g,"")).replace(/^[ \t]+$/gm,""),e=x.subParser("githubCodeBlocks")(e,r,t),e=(e=(e=x.subParser("blockGamut")(e,r,t)).replace(/(^|\n)/g,"$1 ")).replace(/(\s*