(function(){functiona(a){"use strict";varb={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:"Specify a prefix to generated header ids",type:"string"},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"},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,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"}};if(a===!1)returnJSON.parse(JSON.stringify(b));varc={};for(vardinb)b.hasOwnProperty(d)&&(c[d]=b[d].defaultValue);returnc}functionb(){"use strict";varb=a(!0),c={};for(vardinb)b.hasOwnProperty(d)&&(c[d]=!0);returnc}functionc(a,b){"use strict";varc=b?"Error in "+b+" extension->":"Error in unnamed extension",d={valid:!0,error:""};e.helper.isArray(a)||(a=[a]);for(varf=0;f<a.length;++f){varg=c+" sub-extension "+f+": ",h=a[f];if("object"!=typeofh)returnd.valid=!1,d.error=g+"must be an object, but "+typeofh+" given",d;if(!e.helper.isString(h.type))returnd.valid=!1,d.error=g+'property "type" must be a string, but '+typeofh.type+" given",d;vari=h.type=h.type.toLowerCase();if("language"===i&&(i=h.type="lang"),"html"===i&&(i=h.type="output"),"lang"!==i&&"output"!==i&&"listener"!==i)returnd.valid=!1,d.error=g+"type "+i+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',d;if("listener"===i){if(e.helper.isUndefined(h.listeners))returnd.valid=!1,d.error=g+'. Extensions of type "listener" must have a property called "listeners"',d}elseif(e.helper.isUndefined(h.filter)&&e.helper.isUndefined(h.regex))returnd.valid=!1,d.error=g+i+' extensions must define either a "regex" property or a "filter" method',d;if(h.listeners){if("object"!=typeofh.listeners)returnd.valid=!1,d.error=g+'"listeners" property must be an object but '+typeofh.listeners+" given",d;for(varjinh.listeners)if(h.listeners.hasOwnProperty(j)&&"function"!=typeofh.listeners[j])returnd.valid=!1,d.error=g+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+j+" must be a function but "+typeofh.listeners[j]+" given",d}if(h.filter){if("function"!=typeofh.filter)returnd.valid=!1,d.error=g+'"filter" must be a function, but '+typeofh.filter+" given",d}elseif(h.regex){if(e.helper.isString(h.regex)&&(h.regex=newRegExp(h.regex,"g")),!h.regexinstanceofRegExp)returnd.valid=!1,d.error=g+'"regex" property must either be a string or a RegExp object, but '+typeofh.regex+" given",d;if(e.helper.isUndefined(h.replace))returnd.valid=!1,d.e