{"version":3,"sources":["../src/options.js","../src/showdown.js","../src/helpers.js","../src/converter.js","../src/subParsers/anchors.js","../src/subParsers/autoLinks.js","../src/subParsers/blockGamut.js","../src/subParsers/blockQuotes.js","../src/subParsers/codeBlocks.js","../src/subParsers/codeSpans.js","../src/subParsers/completeHTMLDocument.js","../src/subParsers/detab.js","../src/subParsers/ellipsis.js","../src/subParsers/emoji.js","../src/subParsers/encodeCode.js","../src/subParsers/escapeSpecialCharsWithinTagAttributes.js","../src/subParsers/githubCodeBlocks.js","../src/subParsers/encodeAmpsAndAngles.js","../src/subParsers/encodeBackslashEscapes.js","../src/subParsers/hashBlock.js","../src/subParsers/hashCodeTags.js","../src/subParsers/hashElement.js","../src/subParsers/hashHTMLBlocks.js","../src/subParsers/hashHTMLSpans.js","../src/subParsers/hashPreCodeTags.js","../src/subParsers/headers.js","../src/subParsers/horizontalRule.js","../src/subParsers/images.js","../src/subParsers/italicsAndBold.js","../src/subParsers/lists.js","../src/subParsers/metadata.js","../src/subParsers/outdent.js","../src/subParsers/paragraphs.js","../src/subParsers/runExtension.js","../src/subParsers/spanGamut.js","../src/subParsers/strikethrough.js","../src/subParsers/stripLinkDefinitions.js","../src/subParsers/tables.js","../src/subParsers/underline.js","../src/subParsers/makeMarkdown/blockquote.js","../src/subParsers/unescapeSpecialChars.js","../src/subParsers/makeMarkdown/codeSpan.js","../src/subParsers/makeMarkdown/codeBlock.js","../src/subParsers/makeMarkdown/emphasis.js","../src/subParsers/makeMarkdown/header.js","../src/subParsers/makeMarkdown/hr.js","../src/subParsers/makeMarkdown/image.js","../src/subParsers/makeMarkdown/links.js","../src/subParsers/makeMarkdown/list.js","../src/subParsers/makeMarkdown/listItem.js","../src/subParsers/makeMarkdown/node.js","../src/subParsers/makeMarkdown/paragraph.js","../src/subParsers/makeMarkdown/pre.js","../src/subParsers/makeMarkdown/strikethrough.js","../src/subParsers/makeMarkdown/strong.js","../src/subParsers/makeMarkdown/table.js","../src/subParsers/makeMarkdown/tableCell.js","../src/subParsers/makeMarkdown/txt.js","../src/loader.js"],"names":["loader","define","requireModule","require","requirejs","global","dict","obj","Object","create","undefined","oldGlobals","id","pending","mod","findModule","i","length","exports","module","noConflict","aliases","oldName","newName","hasOwnProperty","makeDefaultExport","registry","uuid","defaultDeps","Module","deps","callback","alias","this","hasExportsAsDep","isAlias","reified","Array","state","noop","Alias","referrer","Error","missingModule","findDeps","push","resolve","child","charAt","parts","split","parentBase","slice","l","part","pop","join","has","prototype","isExtensible","wrapModules","reify","result","apply","unsee","_reify","dep","entry","makeRequire","r","moduleId","arguments","unsupportedModule","isArray","name","defaultExport","target","entries","_eak_seen","clear","e","t","n","s","o","u","a","f","code","call","1","_dereq_","_babelPolyfill","DEFINE_PROPERTY","O","key","value","writable","configurable","String","padStart","padEnd","forEach","Function","bind","self","window","2","327","328","RegExp","escape","130","23","3","it","TypeError","4","cof","msg","18","5","UNSCOPABLES","ArrayProto","128","42","6","Constructor","forbiddenField","7","isObject","51","8","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","from","end","count","Math","min","inc","114","118","119","9","aLen","index","endPos","10","forOf","iter","ITERATOR","39","11","toIObject","IS_INCLUDES","$this","el","fromIndex","117","12","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","15","25","47","13","aFunction","memo","isRight","14","SPECIES","original","C","49","speciesConstructor","16","invoke","arraySlice","factories","fn","partArgs","bound","args","concat","F","construct","46","17","TAG","ARG","T","B","tryGet","callee","toString","19","dP","redefineAll","anInstance","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_i","_f","k","getConstructor","wrapper","NAME","ADDER","iterable","_t","_l","data","p","delete","next","prev","v","get","def","setStrong","iterated","kind","_k","100","125","29","55","57","66","71","72","93","20","classof","21","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","splice","ufstore","41","22","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","b","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","constructor","NEED","G","W","101","33","35","40","45","56","94","core","version","__e","24","$defineProperty","createDesc","object","92","c","26","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","d","y","getUTCFullYear","m","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","27","toPrimitive","hint","120","28","defineProperty","30","document","is","createElement","31","32","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","78","81","82","hide","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","S","IS_PROTO","P","IS_BIND","expProto","U","R","34","MATCH","re","exec","36","defined","wks","SYMBOL","fns","strfn","rxfn","string","arg","37","ignoreCase","multiline","unicode","sticky","38","IS_CONCAT_SPREADABLE","flattenIntoArray","sourceLen","depth","mapper","thisArg","element","spreadable","targetIndex","sourceIndex","mapFn","isArrayIter","getIterFn","BREAK","RETURN","iterator","iterFn","done","129","48","53","__g","43","documentElement","44","setPrototypeOf","99","un","propertyIsEnumerable","Iterators","58","50","floor","52","isRegExp","ret","54","descriptor","IteratorPrototype","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","60","79","SAFE_CLOSING","riter","skipClosing","safe","arr","59","61","$expm1","expm1","x","62","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","Infinity","65","63","log1p","log","64","scale","inLow","inHigh","outLow","outHigh","META","setDesc","FREEZE","preventExtensions","setMeta","w","onFreeze","124","67","Map","shared","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","map","MetadataKey","metadataMap","MetadataValue","_","103","160","266","68","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","Promise","isNode","head","last","notify","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","promise","then","task","113","69","PromiseCapability","reject","$$resolve","$$reject","70","$assign","assign","A","Symbol","K","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","102","73","IE8_DOM_DEFINE","Attributes","defineProperties","74","random","__defineSetter__","75","gOPD","getOwnPropertyDescriptor","76","gOPN","windowNames","getOwnPropertyNames","getWindowNames","77","$keys","hiddenKeys","80","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","83","84","isEntries","85","Reflect","ownKeys","86","$parseFloat","parseFloat","$trim","trim","str","111","112","87","$parseInt","parseInt","ws","hex","radix","test","88","path","pargs","holder","89","90","91","newPromiseCapability","promiseCapability","bitmap","enumerable","SRC","$toString","TPL","inspectSource","isFunction","95","regExp","replace","replacer","96","97","COLLECTION","mapping","cb","nextItem","98","of","check","buggy","__proto__","tag","stat","uid","104","D","105","method","106","toInteger","TO_STRING","pos","charCodeAt","116","107","searchString","108","quot","createHTML","attribute","p1","toLowerCase","109","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","110","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","setTimeout","max","115","number","isNaN","valueOf","121","$typed","$buffer","propertyDesc","toIndex","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","_d","$from","mapfn","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","indexOf","searchElement","includes","separator","reverse","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","getter","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","122","123","141","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","wksExt","$Symbol","127","USE_SYMBOL","getIteratorMethod","$re","131","132","$every","133","134","$filter","filter","135","$find","forced","136","137","$forEach","STRICT","138","createProperty","139","$indexOf","NEGATIVE_ZERO","140","addToUnscopables","Arguments","142","143","144","145","146","$reduce","147","148","upTo","size","cloned","149","$some","150","$sort","151","152","153","154","toJSON","pv","155","TO_PRIMITIVE","156","DateProto","157","158","HAS_INSTANCE","FunctionProto","159","FProto","nameRE","match","strong","161","sqrt","$acosh","acosh","Number","MAX_VALUE","162","$asinh","asinh","163","$atanh","atanh","164","cbrt","165","clz32","LOG2E","166","cosh","167","168","169","hypot","value1","value2","div","sum","larg","170","$imul","imul","xn","yn","xl","yl","171","log10","LOG10E","172","173","log2","174","175","sinh","E","176","tanh","177","trunc","178","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","digits","179","180","_isFinite","181","isInteger","182","183","isSafeInteger","184","MAX_SAFE_INTEGER","185","MIN_SAFE_INTEGER","186","187","188","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","acc","fractionDigits","z","x2","numToString","189","$fails","$toPrecision","toPrecision","precision","190","191","192","193","194","$freeze","195","$getOwnPropertyDescriptor","196","197","$getPrototypeOf","198","$isExtensible","199","$isFrozen","200","$isSealed","201","202","203","$preventExtensions","204","$seal","205","206","207","208","209","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","sameConstructor","isThenable","isReject","_n","chain","_c","_v","ok","_s","handler","reaction","fail","_h","onHandleUnhandled","onUnhandled","console","unhandled","isUnhandled","emit","onunhandledrejection","reason","error","_a","onrejectionhandled","$reject","_w","$resolve","executor","err","onFulfilled","onRejected","catch","capability","all","remaining","$index","alreadyCalled","race","210","rApply","fApply","thisArgument","argumentsList","L","211","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","212","propertyKey","attributes","213","214","Enumerate","enumerate","215","216","getProto","217","receiver","218","219","220","222","setProto","223","V","existingDescriptor","ownDesc","224","$flags","$RegExp"],"mappings":"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","file":"vendor.js","sourcesContent":["/**\n * Created by Tivie on 13-07-2015.\n */\n\nfunction getDefaultOpts (simple) {\n  'use strict';\n\n  var defaultOptions = {\n    omitExtraWLInCodeBlocks: {\n      defaultValue: false,\n      describe: 'Omit the default extra whiteline added to code blocks',\n      type: 'boolean'\n    },\n    noHeaderId: {\n      defaultValue: false,\n      describe: 'Turn on/off generated header id',\n      type: 'boolean'\n    },\n    prefixHeaderId: {\n      defaultValue: false,\n      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',\n      type: 'string'\n    },\n    rawPrefixHeaderId: {\n      defaultValue: false,\n      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)',\n      type: 'boolean'\n    },\n    ghCompatibleHeaderId: {\n      defaultValue: false,\n      describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',\n      type: 'boolean'\n    },\n    rawHeaderId: {\n      defaultValue: false,\n      describe: 'Remove only spaces, \\' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',\n      type: 'boolean'\n    },\n    headerLevelStart: {\n      defaultValue: false,\n      describe: 'The header blocks level start',\n      type: 'integer'\n    },\n    parseImgDimensions: {\n      defaultValue: false,\n      describe: 'Turn on/off image dimension parsing',\n      type: 'boolean'\n    },\n    simplifiedAutoLink: {\n      defaultValue: false,\n      describe: 'Turn on/off GFM autolink style',\n      type: 'boolean'\n    },\n    excludeTrailingPunctuationFromURLs: {\n      defaultValue: false,\n      describe: 'Excludes trailing punctuation from links generated with autoLinking',\n      type: 'boolean'\n    },\n    literalMidWordUnderscores: {\n      defaultValue: false,\n      describe: 'Parse midword underscores as literal underscores',\n      type: 'boolean'\n    },\n    literalMidWordAsterisks: {\n      defaultValue: false,\n      describe: 'Parse midword asterisks as literal asterisks',\n      type: 'boolean'\n    },\n    strikethrough: {\n      defaultValue: false,\n      describe: 'Turn on/off strikethrough support',\n      type: 'boolean'\n    },\n    tables: {\n      defaultValue: false,\n      describe: 'Turn on/off tables support',\n      type: 'boolean'\n    },\n    tablesHeaderId: {\n      defaultValue: false,\n      describe: 'Add an id to table headers',\n      type: 'boolean'\n    },\n    ghCodeBlocks: {\n      defaultValue: true,\n      describe: 'Turn on/off GFM fenced code blocks support',\n      type: 'boolean'\n    },\n    tasklists: {\n      defaultValue: false,\n      describe: 'Turn on/off GFM tasklist support',\n      type: 'boolean'\n    },\n    smoothLivePreview: {\n      defaultValue: false,\n      describe: 'Prevents weird effects in live previews due to incomplete input',\n      type: 'boolean'\n    },\n    smartIndentationFix: {\n      defaultValue: false,\n      description: 'Tries to smartly fix indentation in es6 strings',\n      type: 'boolean'\n    },\n    disableForced4SpacesIndentedSublists: {\n      defaultValue: false,\n      description: 'Disables the requirement of indenting nested sublists by 4 spaces',\n      type: 'boolean'\n    },\n    simpleLineBreaks: {\n      defaultValue: false,\n      description: 'Parses simple line breaks as <br> (GFM Style)',\n      type: 'boolean'\n    },\n    requireSpaceBeforeHeadingText: {\n      defaultValue: false,\n      description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',\n      type: 'boolean'\n    },\n    ghMentions: {\n      defaultValue: false,\n      description: 'Enables github @mentions',\n      type: 'boolean'\n    },\n    ghMentionsLink: {\n      defaultValue: 'https://github.com/{u}',\n      description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',\n      type: 'string'\n    },\n    encodeEmails: {\n      defaultValue: true,\n      description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',\n      type: 'boolean'\n    },\n    openLinksInNewWindow: {\n      defaultValue: false,\n      description: 'Open all links in new windows',\n      type: 'boolean'\n    },\n    backslashEscapesHTMLTags: {\n      defaultValue: false,\n      description: 'Support for HTML Tag escaping. ex: \\<div>foo\\</div>',\n      type: 'boolean'\n    },\n    emoji: {\n      defaultValue: false,\n      description: 'Enable emoji support. Ex: `this is a :smile: emoji`',\n      type: 'boolean'\n    },\n    underline: {\n      defaultValue: false,\n      description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`',\n      type: 'boolean'\n    },\n    completeHTMLDocument: {\n      defaultValue: false,\n      description: 'Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags',\n      type: 'boolean'\n    },\n    metadata: {\n      defaultValue: false,\n      description: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',\n      type: 'boolean'\n    },\n    splitAdjacentBlockquotes: {\n      defaultValue: false,\n      description: 'Split adjacent blockquote blocks',\n      type: 'boolean'\n    }\n  };\n  if (simple === false) {\n    return JSON.parse(JSON.stringify(defaultOptions));\n  }\n  var ret = {};\n  for (var opt in defaultOptions) {\n    if (defaultOptions.hasOwnProperty(opt)) {\n      ret[opt] = defaultOptions[opt].defaultValue;\n    }\n  }\n  return ret;\n}\n\nfunction allOptionsOn () {\n  'use strict';\n  var options = getDefaultOpts(true),\n      ret = {};\n  for (var opt in options) {\n    if (options.hasOwnProperty(opt)) {\n      ret[opt] = true;\n    }\n  }\n  return ret;\n}\n","/**\n * Created by Tivie on 06-01-2015.\n */\n\n// Private properties\nvar showdown = {},\n    parsers = {},\n    extensions = {},\n    globalOptions = getDefaultOpts(true),\n    setFlavor = 'vanilla',\n    flavor = {\n      github: {\n        omitExtraWLInCodeBlocks:              true,\n        simplifiedAutoLink:                   true,\n        excludeTrailingPunctuationFromURLs:   true,\n        literalMidWordUnderscores:            true,\n        strikethrough:                        true,\n        tables:                               true,\n        tablesHeaderId:                       true,\n        ghCodeBlocks:                         true,\n        tasklists:                            true,\n        disableForced4SpacesIndentedSublists: true,\n        simpleLineBreaks:                     true,\n        requireSpaceBeforeHeadingText:        true,\n        ghCompatibleHeaderId:                 true,\n        ghMentions:                           true,\n        backslashEscapesHTMLTags:             true,\n        emoji:                                true,\n        splitAdjacentBlockquotes:             true\n      },\n      original: {\n        noHeaderId:                           true,\n        ghCodeBlocks:                         false\n      },\n      ghost: {\n        omitExtraWLInCodeBlocks:              true,\n        parseImgDimensions:                   true,\n        simplifiedAutoLink:                   true,\n        excludeTrailingPunctuationFromURLs:   true,\n        literalMidWordUnderscores:            true,\n        strikethrough:                        true,\n        tables:                               true,\n        tablesHeaderId:                       true,\n        ghCodeBlocks:                         true,\n        tasklists:                            true,\n        smoothLivePreview:                    true,\n        simpleLineBreaks:                     true,\n        requireSpaceBeforeHeadingText:        true,\n        ghMentions:                           false,\n        encodeEmails:                         true\n      },\n      vanilla: getDefaultOpts(true),\n      allOn: allOptionsOn()\n    };\n\n/**\n * helper namespace\n * @type {{}}\n */\nshowdown.helper = {};\n\n/**\n * TODO LEGACY SUPPORT CODE\n * @type {{}}\n */\nshowdown.extensions = {};\n\n/**\n * Set a global option\n * @static\n * @param {string} key\n * @param {*} value\n * @returns {showdown}\n */\nshowdown.setOption = function (key, value) {\n  'use strict';\n  globalOptions[key] = value;\n  return this;\n};\n\n/**\n * Get a global option\n * @static\n * @param {string} key\n * @returns {*}\n */\nshowdown.getOption = function (key) {\n  'use strict';\n  return globalOptions[key];\n};\n\n/**\n * Get the global options\n * @static\n * @returns {{}}\n */\nshowdown.getOptions = function () {\n  'use strict';\n  return globalOptions;\n};\n\n/**\n * Reset global options to the default values\n * @static\n */\nshowdown.resetOptions = function () {\n  'use strict';\n  globalOptions = getDefaultOpts(true);\n};\n\n/**\n * Set the flavor showdown should use as default\n * @param {string} name\n */\nshowdown.setFlavor = function (name) {\n  'use strict';\n  if (!flavor.hasOwnProperty(name)) {\n    throw Error(name + ' flavor was not found');\n  }\n  showdown.resetOptions();\n  var preset = flavor[name];\n  setFlavor = name;\n  for (var option in preset) {\n    if (preset.hasOwnProperty(option)) {\n      globalOptions[option] = preset[option];\n    }\n  }\n};\n\n/**\n * Get the currently set flavor\n * @returns {string}\n */\nshowdown.getFlavor = function () {\n  'use strict';\n  return setFlavor;\n};\n\n/**\n * Get the options of a specified flavor. Returns undefined if the flavor was not found\n * @param {string} name Name of the flavor\n * @returns {{}|undefined}\n */\nshowdown.getFlavorOptions = function (name) {\n  'use strict';\n  if (flavor.hasOwnProperty(name)) {\n    return flavor[name];\n  }\n};\n\n/**\n * Get the default options\n * @static\n * @param {boolean} [simple=true]\n * @returns {{}}\n */\nshowdown.getDefaultOptions = function (simple) {\n  'use strict';\n  return getDefaultOpts(simple);\n};\n\n/**\n * Get or set a subParser\n *\n * subParser(name)       - Get a registered subParser\n * subParser(name, func) - Register a subParser\n * @static\n * @param {string} name\n * @param {function} [func]\n * @returns {*}\n */\nshowdown.subParser = function (name, func) {\n  'use strict';\n  if (showdown.helper.isString(name)) {\n    if (typeof func !== 'undefined') {\n      parsers[name] = func;\n    } else {\n      if (parsers.hasOwnProperty(name)) {\n        return parsers[name];\n      } else {\n        throw Error('SubParser named ' + name + ' not registered!');\n      }\n    }\n  }\n};\n\n/**\n * Gets or registers an extension\n * @static\n * @param {string} name\n * @param {object|function=} ext\n * @returns {*}\n */\nshowdown.extension = function (name, ext) {\n  'use strict';\n\n  if (!showdown.helper.isString(name)) {\n    throw Error('Extension \\'name\\' must be a string');\n  }\n\n  name = showdown.helper.stdExtName(name);\n\n  // Getter\n  if (showdown.helper.isUndefined(ext)) {\n    if (!extensions.hasOwnProperty(name)) {\n      throw Error('Extension named ' + name + ' is not registered!');\n    }\n    return extensions[name];\n\n    // Setter\n  } else {\n    // Expand extension if it's wrapped in a function\n    if (typeof ext === 'function') {\n      ext = ext();\n    }\n\n    // Ensure extension is an array\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n\n    var validExtension = validate(ext, name);\n\n    if (validExtension.valid) {\n      extensions[name] = ext;\n    } else {\n      throw Error(validExtension.error);\n    }\n  }\n};\n\n/**\n * Gets all extensions registered\n * @returns {{}}\n */\nshowdown.getAllExtensions = function () {\n  'use strict';\n  return extensions;\n};\n\n/**\n * Remove an extension\n * @param {string} name\n */\nshowdown.removeExtension = function (name) {\n  'use strict';\n  delete extensions[name];\n};\n\n/**\n * Removes all extensions\n */\nshowdown.resetExtensions = function () {\n  'use strict';\n  extensions = {};\n};\n\n/**\n * Validate extension\n * @param {array} extension\n * @param {string} name\n * @returns {{valid: boolean, error: string}}\n */\nfunction validate (extension, name) {\n  'use strict';\n\n  var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',\n      ret = {\n        valid: true,\n        error: ''\n      };\n\n  if (!showdown.helper.isArray(extension)) {\n    extension = [extension];\n  }\n\n  for (var i = 0; i < extension.length; ++i) {\n    var baseMsg = errMsg + ' sub-extension ' + i + ': ',\n        ext = extension[i];\n    if (typeof ext !== 'object') {\n      ret.valid = false;\n      ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';\n      return ret;\n    }\n\n    if (!showdown.helper.isString(ext.type)) {\n      ret.valid = false;\n      ret.error = baseMsg + 'property \"type\" must be a string, but ' + typeof ext.type + ' given';\n      return ret;\n    }\n\n    var type = ext.type = ext.type.toLowerCase();\n\n    // normalize extension type\n    if (type === 'language') {\n      type = ext.type = 'lang';\n    }\n\n    if (type === 'html') {\n      type = ext.type = 'output';\n    }\n\n    if (type !== 'lang' && type !== 'output' && type !== 'listener') {\n      ret.valid = false;\n      ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"';\n      return ret;\n    }\n\n    if (type === 'listener') {\n      if (showdown.helper.isUndefined(ext.listeners)) {\n        ret.valid = false;\n        ret.error = baseMsg + '. Extensions of type \"listener\" must have a property called \"listeners\"';\n        return ret;\n      }\n    } else {\n      if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {\n        ret.valid = false;\n        ret.error = baseMsg + type + ' extensions must define either a \"regex\" property or a \"filter\" method';\n        return ret;\n      }\n    }\n\n    if (ext.listeners) {\n      if (typeof ext.listeners !== 'object') {\n        ret.valid = false;\n        ret.error = baseMsg + '\"listeners\" property must be an object but ' + typeof ext.listeners + ' given';\n        return ret;\n      }\n      for (var ln in ext.listeners) {\n        if (ext.listeners.hasOwnProperty(ln)) {\n          if (typeof ext.listeners[ln] !== 'function') {\n            ret.valid = false;\n            ret.error = baseMsg + '\"listeners\" property must be an hash of [event name]: [callback]. listeners.' + ln +\n              ' must be a function but ' + typeof ext.listeners[ln] + ' given';\n            return ret;\n          }\n        }\n      }\n    }\n\n    if (ext.filter) {\n      if (typeof ext.filter !== 'function') {\n        ret.valid = false;\n        ret.error = baseMsg + '\"filter\" must be a function, but ' + typeof ext.filter + ' given';\n        return ret;\n      }\n    } else if (ext.regex) {\n      if (showdown.helper.isString(ext.regex)) {\n        ext.regex = new RegExp(ext.regex, 'g');\n      }\n      if (!(ext.regex instanceof RegExp)) {\n        ret.valid = false;\n        ret.error = baseMsg + '\"regex\" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';\n        return ret;\n      }\n      if (showdown.helper.isUndefined(ext.replace)) {\n        ret.valid = false;\n        ret.error = baseMsg + '\"regex\" extensions must implement a replace string or function';\n        return ret;\n      }\n    }\n  }\n  return ret;\n}\n\n/**\n * Validate extension\n * @param {object} ext\n * @returns {boolean}\n */\nshowdown.validateExtension = function (ext) {\n  'use strict';\n\n  var validateExtension = validate(ext, null);\n  if (!validateExtension.valid) {\n    console.warn(validateExtension.error);\n    return false;\n  }\n  return true;\n};\n","/**\n * showdownjs helper functions\n */\n\nif (!showdown.hasOwnProperty('helper')) {\n  showdown.helper = {};\n}\n\n/**\n * Check if var is string\n * @static\n * @param {string} a\n * @returns {boolean}\n */\nshowdown.helper.isString = function (a) {\n  'use strict';\n  return (typeof a === 'string' || a instanceof String);\n};\n\n/**\n * Check if var is a function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isFunction = function (a) {\n  'use strict';\n  var getType = {};\n  return a && getType.toString.call(a) === '[object Function]';\n};\n\n/**\n * isArray helper function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isArray = function (a) {\n  'use strict';\n  return Array.isArray(a);\n};\n\n/**\n * Check if value is undefined\n * @static\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n */\nshowdown.helper.isUndefined = function (value) {\n  'use strict';\n  return typeof value === 'undefined';\n};\n\n/**\n * ForEach helper function\n * Iterates over Arrays and Objects (own properties only)\n * @static\n * @param {*} obj\n * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object\n */\nshowdown.helper.forEach = function (obj, callback) {\n  'use strict';\n  // check if obj is defined\n  if (showdown.helper.isUndefined(obj)) {\n    throw new Error('obj param is required');\n  }\n\n  if (showdown.helper.isUndefined(callback)) {\n    throw new Error('callback param is required');\n  }\n\n  if (!showdown.helper.isFunction(callback)) {\n    throw new Error('callback param must be a function/closure');\n  }\n\n  if (typeof obj.forEach === 'function') {\n    obj.forEach(callback);\n  } else if (showdown.helper.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      callback(obj[i], i, obj);\n    }\n  } else if (typeof (obj) === 'object') {\n    for (var prop in obj) {\n      if (obj.hasOwnProperty(prop)) {\n        callback(obj[prop], prop, obj);\n      }\n    }\n  } else {\n    throw new Error('obj does not seem to be an array or an iterable object');\n  }\n};\n\n/**\n * Standardidize extension name\n * @static\n * @param {string} s extension name\n * @returns {string}\n */\nshowdown.helper.stdExtName = function (s) {\n  'use strict';\n  return s.replace(/[_?*+\\/\\\\.^-]/g, '').replace(/\\s/g, '').toLowerCase();\n};\n\nfunction escapeCharactersCallback (wholeMatch, m1) {\n  'use strict';\n  var charCodeToEscape = m1.charCodeAt(0);\n  return '¨E' + charCodeToEscape + 'E';\n}\n\n/**\n * Callback used to escape characters when passing through String.replace\n * @static\n * @param {string} wholeMatch\n * @param {string} m1\n * @returns {string}\n */\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\n\n/**\n * Escape characters in a string\n * @static\n * @param {string} text\n * @param {string} charsToEscape\n * @param {boolean} afterBackslash\n * @returns {XML|string|void|*}\n */\nshowdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {\n  'use strict';\n  // First we have to escape the escape characters so that\n  // we can build a character class out of them\n  var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\n\n  if (afterBackslash) {\n    regexString = '\\\\\\\\' + regexString;\n  }\n\n  var regex = new RegExp(regexString, 'g');\n  text = text.replace(regex, escapeCharactersCallback);\n\n  return text;\n};\n\n/**\n * Unescape HTML entities\n * @param txt\n * @returns {string}\n */\nshowdown.helper.unescapeHTMLEntities = function (txt) {\n  'use strict';\n\n  return txt\n    .replace(/&quot;/g, '\"')\n    .replace(/&lt;/g, '<')\n    .replace(/&gt;/g, '>')\n    .replace(/&amp;/g, '&');\n};\n\nvar rgxFindMatchPos = function (str, left, right, flags) {\n  'use strict';\n  var f = flags || '',\n      g = f.indexOf('g') > -1,\n      x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),\n      l = new RegExp(left, f.replace(/g/g, '')),\n      pos = [],\n      t, s, m, start, end;\n\n  do {\n    t = 0;\n    while ((m = x.exec(str))) {\n      if (l.test(m[0])) {\n        if (!(t++)) {\n          s = x.lastIndex;\n          start = s - m[0].length;\n        }\n      } else if (t) {\n        if (!--t) {\n          end = m.index + m[0].length;\n          var obj = {\n            left: {start: start, end: s},\n            match: {start: s, end: m.index},\n            right: {start: m.index, end: end},\n            wholeMatch: {start: start, end: end}\n          };\n          pos.push(obj);\n          if (!g) {\n            return pos;\n          }\n        }\n      }\n    }\n  } while (t && (x.lastIndex = s));\n\n  return pos;\n};\n\n/**\n * matchRecursiveRegExp\n *\n * (c) 2007 Steven Levithan <stevenlevithan.com>\n * MIT License\n *\n * Accepts a string to search, a left and right format delimiter\n * as regex patterns, and optional regex flags. Returns an array\n * of matches, allowing nested instances of left/right delimiters.\n * Use the \"g\" flag to return all matches, otherwise only the\n * first is returned. Be careful to ensure that the left and\n * right format delimiters produce mutually exclusive matches.\n * Backreferences are not supported within the right delimiter\n * due to how it is internally combined with the left delimiter.\n * When matching strings whose format delimiters are unbalanced\n * to the left or right, the output is intentionally as a\n * conventional regex library with recursion support would\n * produce, e.g. \"<<x>\" and \"<x>>\" both produce [\"x\"] when using\n * \"<\" and \">\" as the delimiters (both strings contain a single,\n * balanced instance of \"<x>\").\n *\n * examples:\n * matchRecursiveRegExp(\"test\", \"\\\\(\", \"\\\\)\")\n * returns: []\n * matchRecursiveRegExp(\"<t<<e>><s>>t<>\", \"<\", \">\", \"g\")\n * returns: [\"t<<e>><s>\", \"\"]\n * matchRecursiveRegExp(\"<div id=\\\"x\\\">test</div>\", \"<div\\\\b[^>]*>\", \"</div>\", \"gi\")\n * returns: [\"test\"]\n */\nshowdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {\n  'use strict';\n\n  var matchPos = rgxFindMatchPos (str, left, right, flags),\n      results = [];\n\n  for (var i = 0; i < matchPos.length; ++i) {\n    results.push([\n      str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n      str.slice(matchPos[i].match.start, matchPos[i].match.end),\n      str.slice(matchPos[i].left.start, matchPos[i].left.end),\n      str.slice(matchPos[i].right.start, matchPos[i].right.end)\n    ]);\n  }\n  return results;\n};\n\n/**\n *\n * @param {string} str\n * @param {string|function} replacement\n * @param {string} left\n * @param {string} right\n * @param {string} flags\n * @returns {string}\n */\nshowdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {\n  'use strict';\n\n  if (!showdown.helper.isFunction(replacement)) {\n    var repStr = replacement;\n    replacement = function () {\n      return repStr;\n    };\n  }\n\n  var matchPos = rgxFindMatchPos(str, left, right, flags),\n      finalStr = str,\n      lng = matchPos.length;\n\n  if (lng > 0) {\n    var bits = [];\n    if (matchPos[0].wholeMatch.start !== 0) {\n      bits.push(str.slice(0, matchPos[0].wholeMatch.start));\n    }\n    for (var i = 0; i < lng; ++i) {\n      bits.push(\n        replacement(\n          str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n          str.slice(matchPos[i].match.start, matchPos[i].match.end),\n          str.slice(matchPos[i].left.start, matchPos[i].left.end),\n          str.slice(matchPos[i].right.start, matchPos[i].right.end)\n        )\n      );\n      if (i < lng - 1) {\n        bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));\n      }\n    }\n    if (matchPos[lng - 1].wholeMatch.end < str.length) {\n      bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));\n    }\n    finalStr = bits.join('');\n  }\n  return finalStr;\n};\n\n/**\n * Returns the index within the passed String object of the first occurrence of the specified regex,\n * starting the search at fromIndex. Returns -1 if the value is not found.\n *\n * @param {string} str string to search\n * @param {RegExp} regex Regular expression to search\n * @param {int} [fromIndex = 0] Index to start the search\n * @returns {Number}\n * @throws InvalidArgumentError\n */\nshowdown.helper.regexIndexOf = function (str, regex, fromIndex) {\n  'use strict';\n  if (!showdown.helper.isString(str)) {\n    throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n  }\n  if (regex instanceof RegExp === false) {\n    throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';\n  }\n  var indexOf = str.substring(fromIndex || 0).search(regex);\n  return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;\n};\n\n/**\n * Splits the passed string object at the defined index, and returns an array composed of the two substrings\n * @param {string} str string to split\n * @param {int} index index to split string at\n * @returns {[string,string]}\n * @throws InvalidArgumentError\n */\nshowdown.helper.splitAtIndex = function (str, index) {\n  'use strict';\n  if (!showdown.helper.isString(str)) {\n    throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n  }\n  return [str.substring(0, index), str.substring(index)];\n};\n\n/**\n * Obfuscate an e-mail address through the use of Character Entities,\n * transforming ASCII characters into their equivalent decimal or hex entities.\n *\n * Since it has a random component, subsequent calls to this function produce different results\n *\n * @param {string} mail\n * @returns {string}\n */\nshowdown.helper.encodeEmailAddress = function (mail) {\n  'use strict';\n  var encode = [\n    function (ch) {\n      return '&#' + ch.charCodeAt(0) + ';';\n    },\n    function (ch) {\n      return '&#x' + ch.charCodeAt(0).toString(16) + ';';\n    },\n    function (ch) {\n      return ch;\n    }\n  ];\n\n  mail = mail.replace(/./g, function (ch) {\n    if (ch === '@') {\n      // this *must* be encoded. I insist.\n      ch = encode[Math.floor(Math.random() * 2)](ch);\n    } else {\n      var r = Math.random();\n      // roughly 10% raw, 45% hex, 45% dec\n      ch = (\n        r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)\n      );\n    }\n    return ch;\n  });\n\n  return mail;\n};\n\n/**\n *\n * @param str\n * @param targetLength\n * @param padString\n * @returns {string}\n */\nshowdown.helper.padEnd = function padEnd (str, targetLength, padString) {\n  'use strict';\n  /*jshint bitwise: false*/\n  // eslint-disable-next-line space-infix-ops\n  targetLength = targetLength>>0; //floor if number or convert non-number to 0;\n  /*jshint bitwise: true*/\n  padString = String(padString || ' ');\n  if (str.length > targetLength) {\n    return String(str);\n  } else {\n    targetLength = targetLength - str.length;\n    if (targetLength > padString.length) {\n      padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\n    }\n    return String(str) + padString.slice(0,targetLength);\n  }\n};\n\n/**\n * POLYFILLS\n */\n// use this instead of builtin is undefined for IE8 compatibility\nif (typeof console === 'undefined') {\n  console = {\n    warn: function (msg) {\n      'use strict';\n      alert(msg);\n    },\n    log: function (msg) {\n      'use strict';\n      alert(msg);\n    },\n    error: function (msg) {\n      'use strict';\n      throw msg;\n    }\n  };\n}\n\n/**\n * Common regexes.\n * We declare some common regexes to improve performance\n */\nshowdown.helper.regexes = {\n  asteriskDashAndColon: /([*_:~])/g\n};\n\n/**\n * EMOJIS LIST\n */\nshowdown.helper.emojis = {\n  '+1':'\\ud83d\\udc4d',\n  '-1':'\\ud83d\\udc4e',\n  '100':'\\ud83d\\udcaf',\n  '1234':'\\ud83d\\udd22',\n  '1st_place_medal':'\\ud83e\\udd47',\n  '2nd_place_medal':'\\ud83e\\udd48',\n  '3rd_place_medal':'\\ud83e\\udd49',\n  '8ball':'\\ud83c\\udfb1',\n  'a':'\\ud83c\\udd70\\ufe0f',\n  'ab':'\\ud83c\\udd8e',\n  'abc':'\\ud83d\\udd24',\n  'abcd':'\\ud83d\\udd21',\n  'accept':'\\ud83c\\ude51',\n  'aerial_tramway':'\\ud83d\\udea1',\n  'airplane':'\\u2708\\ufe0f',\n  'alarm_clock':'\\u23f0',\n  'alembic':'\\u2697\\ufe0f',\n  'alien':'\\ud83d\\udc7d',\n  'ambulance':'\\ud83d\\ude91',\n  'amphora':'\\ud83c\\udffa',\n  'anchor':'\\u2693\\ufe0f',\n  'angel':'\\ud83d\\udc7c',\n  'anger':'\\ud83d\\udca2',\n  'angry':'\\ud83d\\ude20',\n  'anguished':'\\ud83d\\ude27',\n  'ant':'\\ud83d\\udc1c',\n  'apple':'\\ud83c\\udf4e',\n  'aquarius':'\\u2652\\ufe0f',\n  'aries':'\\u2648\\ufe0f',\n  'arrow_backward':'\\u25c0\\ufe0f',\n  'arrow_double_down':'\\u23ec',\n  'arrow_double_up':'\\u23eb',\n  'arrow_down':'\\u2b07\\ufe0f',\n  'arrow_down_small':'\\ud83d\\udd3d',\n  'arrow_forward':'\\u25b6\\ufe0f',\n  'arrow_heading_down':'\\u2935\\ufe0f',\n  'arrow_heading_up':'\\u2934\\ufe0f',\n  'arrow_left':'\\u2b05\\ufe0f',\n  'arrow_lower_left':'\\u2199\\ufe0f',\n  'arrow_lower_right':'\\u2198\\ufe0f',\n  'arrow_right':'\\u27a1\\ufe0f',\n  'arrow_right_hook':'\\u21aa\\ufe0f',\n  'arrow_up':'\\u2b06\\ufe0f',\n  'arrow_up_down':'\\u2195\\ufe0f',\n  'arrow_up_small':'\\ud83d\\udd3c',\n  'arrow_upper_left':'\\u2196\\ufe0f',\n  'arrow_upper_right':'\\u2197\\ufe0f',\n  'arrows_clockwise':'\\ud83d\\udd03',\n  'arrows_counterclockwise':'\\ud83d\\udd04',\n  'art':'\\ud83c\\udfa8',\n  'articulated_lorry':'\\ud83d\\ude9b',\n  'artificial_satellite':'\\ud83d\\udef0',\n  'astonished':'\\ud83d\\ude32',\n  'athletic_shoe':'\\ud83d\\udc5f',\n  'atm':'\\ud83c\\udfe7',\n  'atom_symbol':'\\u269b\\ufe0f',\n  'avocado':'\\ud83e\\udd51',\n  'b':'\\ud83c\\udd71\\ufe0f',\n  'baby':'\\ud83d\\udc76',\n  'baby_bottle':'\\ud83c\\udf7c',\n  'baby_chick':'\\ud83d\\udc24',\n  'baby_symbol':'\\ud83d\\udebc',\n  'back':'\\ud83d\\udd19',\n  'bacon':'\\ud83e\\udd53',\n  'badminton':'\\ud83c\\udff8',\n  'baggage_claim':'\\ud83d\\udec4',\n  'baguette_bread':'\\ud83e\\udd56',\n  'balance_scale':'\\u2696\\ufe0f',\n  'balloon':'\\ud83c\\udf88',\n  'ballot_box':'\\ud83d\\uddf3',\n  'ballot_box_with_check':'\\u2611\\ufe0f',\n  'bamboo':'\\ud83c\\udf8d',\n  'banana':'\\ud83c\\udf4c',\n  'bangbang':'\\u203c\\ufe0f',\n  'bank':'\\ud83c\\udfe6',\n  'bar_chart':'\\ud83d\\udcca',\n  'barber':'\\ud83d\\udc88',\n  'baseball':'\\u26be\\ufe0f',\n  'basketball':'\\ud83c\\udfc0',\n  'basketball_man':'\\u26f9\\ufe0f',\n  'basketball_woman':'\\u26f9\\ufe0f&zwj;\\u2640\\ufe0f',\n  'bat':'\\ud83e\\udd87',\n  'bath':'\\ud83d\\udec0',\n  'bathtub':'\\ud83d\\udec1',\n  'battery':'\\ud83d\\udd0b',\n  'beach_umbrella':'\\ud83c\\udfd6',\n  'bear':'\\ud83d\\udc3b',\n  'bed':'\\ud83d\\udecf',\n  'bee':'\\ud83d\\udc1d',\n  'beer':'\\ud83c\\udf7a',\n  'beers':'\\ud83c\\udf7b',\n  'beetle':'\\ud83d\\udc1e',\n  'beginner':'\\ud83d\\udd30',\n  'bell':'\\ud83d\\udd14',\n  'bellhop_bell':'\\ud83d\\udece',\n  'bento':'\\ud83c\\udf71',\n  'biking_man':'\\ud83d\\udeb4',\n  'bike':'\\ud83d\\udeb2',\n  'biking_woman':'\\ud83d\\udeb4&zwj;\\u2640\\ufe0f',\n  'bikini':'\\ud83d\\udc59',\n  'biohazard':'\\u2623\\ufe0f',\n  'bird':'\\ud83d\\udc26',\n  'birthday':'\\ud83c\\udf82',\n  'black_circle':'\\u26ab\\ufe0f',\n  'black_flag':'\\ud83c\\udff4',\n  'black_heart':'\\ud83d\\udda4',\n  'black_joker':'\\ud83c\\udccf',\n  'black_large_square':'\\u2b1b\\ufe0f',\n  'black_medium_small_square':'\\u25fe\\ufe0f',\n  'black_medium_square':'\\u25fc\\ufe0f',\n  'black_nib':'\\u2712\\ufe0f',\n  'black_small_square':'\\u25aa\\ufe0f',\n  'black_square_button':'\\ud83d\\udd32',\n  'blonde_man':'\\ud83d\\udc71',\n  'blonde_woman':'\\ud83d\\udc71&zwj;\\u2640\\ufe0f',\n  'blossom':'\\ud83c\\udf3c',\n  'blowfish':'\\ud83d\\udc21',\n  'blue_book':'\\ud83d\\udcd8',\n  'blue_car':'\\ud83d\\ude99',\n  'blue_heart':'\\ud83d\\udc99',\n  'blush':'\\ud83d\\ude0a',\n  'boar':'\\ud83d\\udc17',\n  'boat':'\\u26f5\\ufe0f',\n  'bomb':'\\ud83d\\udca3',\n  'book':'\\ud83d\\udcd6',\n  'bookmark':'\\ud83d\\udd16',\n  'bookmark_tabs':'\\ud83d\\udcd1',\n  'books':'\\ud83d\\udcda',\n  'boom':'\\ud83d\\udca5',\n  'boot':'\\ud83d\\udc62',\n  'bouquet':'\\ud83d\\udc90',\n  'bowing_man':'\\ud83d\\ude47',\n  'bow_and_arrow':'\\ud83c\\udff9',\n  'bowing_woman':'\\ud83d\\ude47&zwj;\\u2640\\ufe0f',\n  'bowling':'\\ud83c\\udfb3',\n  'boxing_glove':'\\ud83e\\udd4a',\n  'boy':'\\ud83d\\udc66',\n  'bread':'\\ud83c\\udf5e',\n  'bride_with_veil':'\\ud83d\\udc70',\n  'bridge_at_night':'\\ud83c\\udf09',\n  'briefcase':'\\ud83d\\udcbc',\n  'broken_heart':'\\ud83d\\udc94',\n  'bug':'\\ud83d\\udc1b',\n  'building_construction':'\\ud83c\\udfd7',\n  'bulb':'\\ud83d\\udca1',\n  'bullettrain_front':'\\ud83d\\ude85',\n  'bullettrain_side':'\\ud83d\\ude84',\n  'burrito':'\\ud83c\\udf2f',\n  'bus':'\\ud83d\\ude8c',\n  'business_suit_levitating':'\\ud83d\\udd74',\n  'busstop':'\\ud83d\\ude8f',\n  'bust_in_silhouette':'\\ud83d\\udc64',\n  'busts_in_silhouette':'\\ud83d\\udc65',\n  'butterfly':'\\ud83e\\udd8b',\n  'cactus':'\\ud83c\\udf35',\n  'cake':'\\ud83c\\udf70',\n  'calendar':'\\ud83d\\udcc6',\n  'call_me_hand':'\\ud83e\\udd19',\n  'calling':'\\ud83d\\udcf2',\n  'camel':'\\ud83d\\udc2b',\n  'camera':'\\ud83d\\udcf7',\n  'camera_flash':'\\ud83d\\udcf8',\n  'camping':'\\ud83c\\udfd5',\n  'cancer':'\\u264b\\ufe0f',\n  'candle':'\\ud83d\\udd6f',\n  'candy':'\\ud83c\\udf6c',\n  'canoe':'\\ud83d\\udef6',\n  'capital_abcd':'\\ud83d\\udd20',\n  'capricorn':'\\u2651\\ufe0f',\n  'car':'\\ud83d\\ude97',\n  'card_file_box':'\\ud83d\\uddc3',\n  'card_index':'\\ud83d\\udcc7',\n  'card_index_dividers':'\\ud83d\\uddc2',\n  'carousel_horse':'\\ud83c\\udfa0',\n  'carrot':'\\ud83e\\udd55',\n  'cat':'\\ud83d\\udc31',\n  'cat2':'\\ud83d\\udc08',\n  'cd':'\\ud83d\\udcbf',\n  'chains':'\\u26d3',\n  'champagne':'\\ud83c\\udf7e',\n  'chart':'\\ud83d\\udcb9',\n  'chart_with_downwards_trend':'\\ud83d\\udcc9',\n  'chart_with_upwards_trend':'\\ud83d\\udcc8',\n  'checkered_flag':'\\ud83c\\udfc1',\n  'cheese':'\\ud83e\\uddc0',\n  'cherries':'\\ud83c\\udf52',\n  'cherry_blossom':'\\ud83c\\udf38',\n  'chestnut':'\\ud83c\\udf30',\n  'chicken':'\\ud83d\\udc14',\n  'children_crossing':'\\ud83d\\udeb8',\n  'chipmunk':'\\ud83d\\udc3f',\n  'chocolate_bar':'\\ud83c\\udf6b',\n  'christmas_tree':'\\ud83c\\udf84',\n  'church':'\\u26ea\\ufe0f',\n  'cinema':'\\ud83c\\udfa6',\n  'circus_tent':'\\ud83c\\udfaa',\n  'city_sunrise':'\\ud83c\\udf07',\n  'city_sunset':'\\ud83c\\udf06',\n  'cityscape':'\\ud83c\\udfd9',\n  'cl':'\\ud83c\\udd91',\n  'clamp':'\\ud83d\\udddc',\n  'clap':'\\ud83d\\udc4f',\n  'clapper':'\\ud83c\\udfac',\n  'classical_building':'\\ud83c\\udfdb',\n  'clinking_glasses':'\\ud83e\\udd42',\n  'clipboard':'\\ud83d\\udccb',\n  'clock1':'\\ud83d\\udd50',\n  'clock10':'\\ud83d\\udd59',\n  'clock1030':'\\ud83d\\udd65',\n  'clock11':'\\ud83d\\udd5a',\n  'clock1130':'\\ud83d\\udd66',\n  'clock12':'\\ud83d\\udd5b',\n  'clock1230':'\\ud83d\\udd67',\n  'clock130':'\\ud83d\\udd5c',\n  'clock2':'\\ud83d\\udd51',\n  'clock230':'\\ud83d\\udd5d',\n  'clock3':'\\ud83d\\udd52',\n  'clock330':'\\ud83d\\udd5e',\n  'clock4':'\\ud83d\\udd53',\n  'clock430':'\\ud83d\\udd5f',\n  'clock5':'\\ud83d\\udd54',\n  'clock530':'\\ud83d\\udd60',\n  'clock6':'\\ud83d\\udd55',\n  'clock630':'\\ud83d\\udd61',\n  'clock7':'\\ud83d\\udd56',\n  'clock730':'\\ud83d\\udd62',\n  'clock8':'\\ud83d\\udd57',\n  'clock830':'\\ud83d\\udd63',\n  'clock9':'\\ud83d\\udd58',\n  'clock930':'\\ud83d\\udd64',\n  'closed_book':'\\ud83d\\udcd5',\n  'closed_lock_with_key':'\\ud83d\\udd10',\n  'closed_umbrella':'\\ud83c\\udf02',\n  'cloud':'\\u2601\\ufe0f',\n  'cloud_with_lightning':'\\ud83c\\udf29',\n  'cloud_with_lightning_and_rain':'\\u26c8',\n  'cloud_with_rain':'\\ud83c\\udf27',\n  'cloud_with_snow':'\\ud83c\\udf28',\n  'clown_face':'\\ud83e\\udd21',\n  'clubs':'\\u2663\\ufe0f',\n  'cocktail':'\\ud83c\\udf78',\n  'coffee':'\\u2615\\ufe0f',\n  'coffin':'\\u26b0\\ufe0f',\n  'cold_sweat':'\\ud83d\\ude30',\n  'comet':'\\u2604\\ufe0f',\n  'computer':'\\ud83d\\udcbb',\n  'computer_mouse':'\\ud83d\\uddb1',\n  'confetti_ball':'\\ud83c\\udf8a',\n  'confounded':'\\ud83d\\ude16',\n  'confused':'\\ud83d\\ude15',\n  'congratulations':'\\u3297\\ufe0f',\n  'construction':'\\ud83d\\udea7',\n  'construction_worker_man':'\\ud83d\\udc77',\n  'construction_worker_woman':'\\ud83d\\udc77&zwj;\\u2640\\ufe0f',\n  'control_knobs':'\\ud83c\\udf9b',\n  'convenience_store':'\\ud83c\\udfea',\n  'cookie':'\\ud83c\\udf6a',\n  'cool':'\\ud83c\\udd92',\n  'policeman':'\\ud83d\\udc6e',\n  'copyright':'\\u00a9\\ufe0f',\n  'corn':'\\ud83c\\udf3d',\n  'couch_and_lamp':'\\ud83d\\udecb',\n  'couple':'\\ud83d\\udc6b',\n  'couple_with_heart_woman_man':'\\ud83d\\udc91',\n  'couple_with_heart_man_man':'\\ud83d\\udc68&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc68',\n  'couple_with_heart_woman_woman':'\\ud83d\\udc69&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc69',\n  'couplekiss_man_man':'\\ud83d\\udc68&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc8b&zwj;\\ud83d\\udc68',\n  'couplekiss_man_woman':'\\ud83d\\udc8f',\n  'couplekiss_woman_woman':'\\ud83d\\udc69&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc8b&zwj;\\ud83d\\udc69',\n  'cow':'\\ud83d\\udc2e',\n  'cow2':'\\ud83d\\udc04',\n  'cowboy_hat_face':'\\ud83e\\udd20',\n  'crab':'\\ud83e\\udd80',\n  'crayon':'\\ud83d\\udd8d',\n  'credit_card':'\\ud83d\\udcb3',\n  'crescent_moon':'\\ud83c\\udf19',\n  'cricket':'\\ud83c\\udfcf',\n  'crocodile':'\\ud83d\\udc0a',\n  'croissant':'\\ud83e\\udd50',\n  'crossed_fingers':'\\ud83e\\udd1e',\n  'crossed_flags':'\\ud83c\\udf8c',\n  'crossed_swords':'\\u2694\\ufe0f',\n  'crown':'\\ud83d\\udc51',\n  'cry':'\\ud83d\\ude22',\n  'crying_cat_face':'\\ud83d\\ude3f',\n  'crystal_ball':'\\ud83d\\udd2e',\n  'cucumber':'\\ud83e\\udd52',\n  'cupid':'\\ud83d\\udc98',\n  'curly_loop':'\\u27b0',\n  'currency_exchange':'\\ud83d\\udcb1',\n  'curry':'\\ud83c\\udf5b',\n  'custard':'\\ud83c\\udf6e',\n  'customs':'\\ud83d\\udec3',\n  'cyclone':'\\ud83c\\udf00',\n  'dagger':'\\ud83d\\udde1',\n  'dancer':'\\ud83d\\udc83',\n  'dancing_women':'\\ud83d\\udc6f',\n  'dancing_men':'\\ud83d\\udc6f&zwj;\\u2642\\ufe0f',\n  'dango':'\\ud83c\\udf61',\n  'dark_sunglasses':'\\ud83d\\udd76',\n  'dart':'\\ud83c\\udfaf',\n  'dash':'\\ud83d\\udca8',\n  'date':'\\ud83d\\udcc5',\n  'deciduous_tree':'\\ud83c\\udf33',\n  'deer':'\\ud83e\\udd8c',\n  'department_store':'\\ud83c\\udfec',\n  'derelict_house':'\\ud83c\\udfda',\n  'desert':'\\ud83c\\udfdc',\n  'desert_island':'\\ud83c\\udfdd',\n  'desktop_computer':'\\ud83d\\udda5',\n  'male_detective':'\\ud83d\\udd75\\ufe0f',\n  'diamond_shape_with_a_dot_inside':'\\ud83d\\udca0',\n  'diamonds':'\\u2666\\ufe0f',\n  'disappointed':'\\ud83d\\ude1e',\n  'disappointed_relieved':'\\ud83d\\ude25',\n  'dizzy':'\\ud83d\\udcab',\n  'dizzy_face':'\\ud83d\\ude35',\n  'do_not_litter':'\\ud83d\\udeaf',\n  'dog':'\\ud83d\\udc36',\n  'dog2':'\\ud83d\\udc15',\n  'dollar':'\\ud83d\\udcb5',\n  'dolls':'\\ud83c\\udf8e',\n  'dolphin':'\\ud83d\\udc2c',\n  'door':'\\ud83d\\udeaa',\n  'doughnut':'\\ud83c\\udf69',\n  'dove':'\\ud83d\\udd4a',\n  'dragon':'\\ud83d\\udc09',\n  'dragon_face':'\\ud83d\\udc32',\n  'dress':'\\ud83d\\udc57',\n  'dromedary_camel':'\\ud83d\\udc2a',\n  'drooling_face':'\\ud83e\\udd24',\n  'droplet':'\\ud83d\\udca7',\n  'drum':'\\ud83e\\udd41',\n  'duck':'\\ud83e\\udd86',\n  'dvd':'\\ud83d\\udcc0',\n  'e-mail':'\\ud83d\\udce7',\n  'eagle':'\\ud83e\\udd85',\n  'ear':'\\ud83d\\udc42',\n  'ear_of_rice':'\\ud83c\\udf3e',\n  'earth_africa':'\\ud83c\\udf0d',\n  'earth_americas':'\\ud83c\\udf0e',\n  'earth_asia':'\\ud83c\\udf0f',\n  'egg':'\\ud83e\\udd5a',\n  'eggplant':'\\ud83c\\udf46',\n  'eight_pointed_black_star':'\\u2734\\ufe0f',\n  'eight_spoked_asterisk':'\\u2733\\ufe0f',\n  'electric_plug':'\\ud83d\\udd0c',\n  'elephant':'\\ud83d\\udc18',\n  'email':'\\u2709\\ufe0f',\n  'end':'\\ud83d\\udd1a',\n  'envelope_with_arrow':'\\ud83d\\udce9',\n  'euro':'\\ud83d\\udcb6',\n  'european_castle':'\\ud83c\\udff0',\n  'european_post_office':'\\ud83c\\udfe4',\n  'evergreen_tree':'\\ud83c\\udf32',\n  'exclamation':'\\u2757\\ufe0f',\n  'expressionless':'\\ud83d\\ude11',\n  'eye':'\\ud83d\\udc41',\n  'eye_speech_bubble':'\\ud83d\\udc41&zwj;\\ud83d\\udde8',\n  'eyeglasses':'\\ud83d\\udc53',\n  'eyes':'\\ud83d\\udc40',\n  'face_with_head_bandage':'\\ud83e\\udd15',\n  'face_with_thermometer':'\\ud83e\\udd12',\n  'fist_oncoming':'\\ud83d\\udc4a',\n  'factory':'\\ud83c\\udfed',\n  'fallen_leaf':'\\ud83c\\udf42',\n  'family_man_woman_boy':'\\ud83d\\udc6a',\n  'family_man_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc66',\n  'family_man_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc67',\n  'family_man_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_man_man_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc66',\n  'family_man_man_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_man_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67',\n  'family_man_man_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_man_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_man_woman_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_woman_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_man_woman_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_woman_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_woman_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc66',\n  'family_woman_boy_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_woman_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_woman_girl_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_woman_girl_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_woman_woman_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66',\n  'family_woman_woman_boy_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_woman_woman_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_woman_woman_girl_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_woman_woman_girl_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'fast_forward':'\\u23e9',\n  'fax':'\\ud83d\\udce0',\n  'fearful':'\\ud83d\\ude28',\n  'feet':'\\ud83d\\udc3e',\n  'female_detective':'\\ud83d\\udd75\\ufe0f&zwj;\\u2640\\ufe0f',\n  'ferris_wheel':'\\ud83c\\udfa1',\n  'ferry':'\\u26f4',\n  'field_hockey':'\\ud83c\\udfd1',\n  'file_cabinet':'\\ud83d\\uddc4',\n  'file_folder':'\\ud83d\\udcc1',\n  'film_projector':'\\ud83d\\udcfd',\n  'film_strip':'\\ud83c\\udf9e',\n  'fire':'\\ud83d\\udd25',\n  'fire_engine':'\\ud83d\\ude92',\n  'fireworks':'\\ud83c\\udf86',\n  'first_quarter_moon':'\\ud83c\\udf13',\n  'first_quarter_moon_with_face':'\\ud83c\\udf1b',\n  'fish':'\\ud83d\\udc1f',\n  'fish_cake':'\\ud83c\\udf65',\n  'fishing_pole_and_fish':'\\ud83c\\udfa3',\n  'fist_raised':'\\u270a',\n  'fist_left':'\\ud83e\\udd1b',\n  'fist_right':'\\ud83e\\udd1c',\n  'flags':'\\ud83c\\udf8f',\n  'flashlight':'\\ud83d\\udd26',\n  'fleur_de_lis':'\\u269c\\ufe0f',\n  'flight_arrival':'\\ud83d\\udeec',\n  'flight_departure':'\\ud83d\\udeeb',\n  'floppy_disk':'\\ud83d\\udcbe',\n  'flower_playing_cards':'\\ud83c\\udfb4',\n  'flushed':'\\ud83d\\ude33',\n  'fog':'\\ud83c\\udf2b',\n  'foggy':'\\ud83c\\udf01',\n  'football':'\\ud83c\\udfc8',\n  'footprints':'\\ud83d\\udc63',\n  'fork_and_knife':'\\ud83c\\udf74',\n  'fountain':'\\u26f2\\ufe0f',\n  'fountain_pen':'\\ud83d\\udd8b',\n  'four_leaf_clover':'\\ud83c\\udf40',\n  'fox_face':'\\ud83e\\udd8a',\n  'framed_picture':'\\ud83d\\uddbc',\n  'free':'\\ud83c\\udd93',\n  'fried_egg':'\\ud83c\\udf73',\n  'fried_shrimp':'\\ud83c\\udf64',\n  'fries':'\\ud83c\\udf5f',\n  'frog':'\\ud83d\\udc38',\n  'frowning':'\\ud83d\\ude26',\n  'frowning_face':'\\u2639\\ufe0f',\n  'frowning_man':'\\ud83d\\ude4d&zwj;\\u2642\\ufe0f',\n  'frowning_woman':'\\ud83d\\ude4d',\n  'middle_finger':'\\ud83d\\udd95',\n  'fuelpump':'\\u26fd\\ufe0f',\n  'full_moon':'\\ud83c\\udf15',\n  'full_moon_with_face':'\\ud83c\\udf1d',\n  'funeral_urn':'\\u26b1\\ufe0f',\n  'game_die':'\\ud83c\\udfb2',\n  'gear':'\\u2699\\ufe0f',\n  'gem':'\\ud83d\\udc8e',\n  'gemini':'\\u264a\\ufe0f',\n  'ghost':'\\ud83d\\udc7b',\n  'gift':'\\ud83c\\udf81',\n  'gift_heart':'\\ud83d\\udc9d',\n  'girl':'\\ud83d\\udc67',\n  'globe_with_meridians':'\\ud83c\\udf10',\n  'goal_net':'\\ud83e\\udd45',\n  'goat':'\\ud83d\\udc10',\n  'golf':'\\u26f3\\ufe0f',\n  'golfing_man':'\\ud83c\\udfcc\\ufe0f',\n  'golfing_woman':'\\ud83c\\udfcc\\ufe0f&zwj;\\u2640\\ufe0f',\n  'gorilla':'\\ud83e\\udd8d',\n  'grapes':'\\ud83c\\udf47',\n  'green_apple':'\\ud83c\\udf4f',\n  'green_book':'\\ud83d\\udcd7',\n  'green_heart':'\\ud83d\\udc9a',\n  'green_salad':'\\ud83e\\udd57',\n  'grey_exclamation':'\\u2755',\n  'grey_question':'\\u2754',\n  'grimacing':'\\ud83d\\ude2c',\n  'grin':'\\ud83d\\ude01',\n  'grinning':'\\ud83d\\ude00',\n  'guardsman':'\\ud83d\\udc82',\n  'guardswoman':'\\ud83d\\udc82&zwj;\\u2640\\ufe0f',\n  'guitar':'\\ud83c\\udfb8',\n  'gun':'\\ud83d\\udd2b',\n  'haircut_woman':'\\ud83d\\udc87',\n  'haircut_man':'\\ud83d\\udc87&zwj;\\u2642\\ufe0f',\n  'hamburger':'\\ud83c\\udf54',\n  'hammer':'\\ud83d\\udd28',\n  'hammer_and_pick':'\\u2692',\n  'hammer_and_wrench':'\\ud83d\\udee0',\n  'hamster':'\\ud83d\\udc39',\n  'hand':'\\u270b',\n  'handbag':'\\ud83d\\udc5c',\n  'handshake':'\\ud83e\\udd1d',\n  'hankey':'\\ud83d\\udca9',\n  'hatched_chick':'\\ud83d\\udc25',\n  'hatching_chick':'\\ud83d\\udc23',\n  'headphones':'\\ud83c\\udfa7',\n  'hear_no_evil':'\\ud83d\\ude49',\n  'heart':'\\u2764\\ufe0f',\n  'heart_decoration':'\\ud83d\\udc9f',\n  'heart_eyes':'\\ud83d\\ude0d',\n  'heart_eyes_cat':'\\ud83d\\ude3b',\n  'heartbeat':'\\ud83d\\udc93',\n  'heartpulse':'\\ud83d\\udc97',\n  'hearts':'\\u2665\\ufe0f',\n  'heavy_check_mark':'\\u2714\\ufe0f',\n  'heavy_division_sign':'\\u2797',\n  'heavy_dollar_sign':'\\ud83d\\udcb2',\n  'heavy_heart_exclamation':'\\u2763\\ufe0f',\n  'heavy_minus_sign':'\\u2796',\n  'heavy_multiplication_x':'\\u2716\\ufe0f',\n  'heavy_plus_sign':'\\u2795',\n  'helicopter':'\\ud83d\\ude81',\n  'herb':'\\ud83c\\udf3f',\n  'hibiscus':'\\ud83c\\udf3a',\n  'high_brightness':'\\ud83d\\udd06',\n  'high_heel':'\\ud83d\\udc60',\n  'hocho':'\\ud83d\\udd2a',\n  'hole':'\\ud83d\\udd73',\n  'honey_pot':'\\ud83c\\udf6f',\n  'horse':'\\ud83d\\udc34',\n  'horse_racing':'\\ud83c\\udfc7',\n  'hospital':'\\ud83c\\udfe5',\n  'hot_pepper':'\\ud83c\\udf36',\n  'hotdog':'\\ud83c\\udf2d',\n  'hotel':'\\ud83c\\udfe8',\n  'hotsprings':'\\u2668\\ufe0f',\n  'hourglass':'\\u231b\\ufe0f',\n  'hourglass_flowing_sand':'\\u23f3',\n  'house':'\\ud83c\\udfe0',\n  'house_with_garden':'\\ud83c\\udfe1',\n  'houses':'\\ud83c\\udfd8',\n  'hugs':'\\ud83e\\udd17',\n  'hushed':'\\ud83d\\ude2f',\n  'ice_cream':'\\ud83c\\udf68',\n  'ice_hockey':'\\ud83c\\udfd2',\n  'ice_skate':'\\u26f8',\n  'icecream':'\\ud83c\\udf66',\n  'id':'\\ud83c\\udd94',\n  'ideograph_advantage':'\\ud83c\\ude50',\n  'imp':'\\ud83d\\udc7f',\n  'inbox_tray':'\\ud83d\\udce5',\n  'incoming_envelope':'\\ud83d\\udce8',\n  'tipping_hand_woman':'\\ud83d\\udc81',\n  'information_source':'\\u2139\\ufe0f',\n  'innocent':'\\ud83d\\ude07',\n  'interrobang':'\\u2049\\ufe0f',\n  'iphone':'\\ud83d\\udcf1',\n  'izakaya_lantern':'\\ud83c\\udfee',\n  'jack_o_lantern':'\\ud83c\\udf83',\n  'japan':'\\ud83d\\uddfe',\n  'japanese_castle':'\\ud83c\\udfef',\n  'japanese_goblin':'\\ud83d\\udc7a',\n  'japanese_ogre':'\\ud83d\\udc79',\n  'jeans':'\\ud83d\\udc56',\n  'joy':'\\ud83d\\ude02',\n  'joy_cat':'\\ud83d\\ude39',\n  'joystick':'\\ud83d\\udd79',\n  'kaaba':'\\ud83d\\udd4b',\n  'key':'\\ud83d\\udd11',\n  'keyboard':'\\u2328\\ufe0f',\n  'keycap_ten':'\\ud83d\\udd1f',\n  'kick_scooter':'\\ud83d\\udef4',\n  'kimono':'\\ud83d\\udc58',\n  'kiss':'\\ud83d\\udc8b',\n  'kissing':'\\ud83d\\ude17',\n  'kissing_cat':'\\ud83d\\ude3d',\n  'kissing_closed_eyes':'\\ud83d\\ude1a',\n  'kissing_heart':'\\ud83d\\ude18',\n  'kissing_smiling_eyes':'\\ud83d\\ude19',\n  'kiwi_fruit':'\\ud83e\\udd5d',\n  'koala':'\\ud83d\\udc28',\n  'koko':'\\ud83c\\ude01',\n  'label':'\\ud83c\\udff7',\n  'large_blue_circle':'\\ud83d\\udd35',\n  'large_blue_diamond':'\\ud83d\\udd37',\n  'large_orange_diamond':'\\ud83d\\udd36',\n  'last_quarter_moon':'\\ud83c\\udf17',\n  'last_quarter_moon_with_face':'\\ud83c\\udf1c',\n  'latin_cross':'\\u271d\\ufe0f',\n  'laughing':'\\ud83d\\ude06',\n  'leaves':'\\ud83c\\udf43',\n  'ledger':'\\ud83d\\udcd2',\n  'left_luggage':'\\ud83d\\udec5',\n  'left_right_arrow':'\\u2194\\ufe0f',\n  'leftwards_arrow_with_hook':'\\u21a9\\ufe0f',\n  'lemon':'\\ud83c\\udf4b',\n  'leo':'\\u264c\\ufe0f',\n  'leopard':'\\ud83d\\udc06',\n  'level_slider':'\\ud83c\\udf9a',\n  'libra':'\\u264e\\ufe0f',\n  'light_rail':'\\ud83d\\ude88',\n  'link':'\\ud83d\\udd17',\n  'lion':'\\ud83e\\udd81',\n  'lips':'\\ud83d\\udc44',\n  'lipstick':'\\ud83d\\udc84',\n  'lizard':'\\ud83e\\udd8e',\n  'lock':'\\ud83d\\udd12',\n  'lock_with_ink_pen':'\\ud83d\\udd0f',\n  'lollipop':'\\ud83c\\udf6d',\n  'loop':'\\u27bf',\n  'loud_sound':'\\ud83d\\udd0a',\n  'loudspeaker':'\\ud83d\\udce2',\n  'love_hotel':'\\ud83c\\udfe9',\n  'love_letter':'\\ud83d\\udc8c',\n  'low_brightness':'\\ud83d\\udd05',\n  'lying_face':'\\ud83e\\udd25',\n  'm':'\\u24c2\\ufe0f',\n  'mag':'\\ud83d\\udd0d',\n  'mag_right':'\\ud83d\\udd0e',\n  'mahjong':'\\ud83c\\udc04\\ufe0f',\n  'mailbox':'\\ud83d\\udceb',\n  'mailbox_closed':'\\ud83d\\udcea',\n  'mailbox_with_mail':'\\ud83d\\udcec',\n  'mailbox_with_no_mail':'\\ud83d\\udced',\n  'man':'\\ud83d\\udc68',\n  'man_artist':'\\ud83d\\udc68&zwj;\\ud83c\\udfa8',\n  'man_astronaut':'\\ud83d\\udc68&zwj;\\ud83d\\ude80',\n  'man_cartwheeling':'\\ud83e\\udd38&zwj;\\u2642\\ufe0f',\n  'man_cook':'\\ud83d\\udc68&zwj;\\ud83c\\udf73',\n  'man_dancing':'\\ud83d\\udd7a',\n  'man_facepalming':'\\ud83e\\udd26&zwj;\\u2642\\ufe0f',\n  'man_factory_worker':'\\ud83d\\udc68&zwj;\\ud83c\\udfed',\n  'man_farmer':'\\ud83d\\udc68&zwj;\\ud83c\\udf3e',\n  'man_firefighter':'\\ud83d\\udc68&zwj;\\ud83d\\ude92',\n  'man_health_worker':'\\ud83d\\udc68&zwj;\\u2695\\ufe0f',\n  'man_in_tuxedo':'\\ud83e\\udd35',\n  'man_judge':'\\ud83d\\udc68&zwj;\\u2696\\ufe0f',\n  'man_juggling':'\\ud83e\\udd39&zwj;\\u2642\\ufe0f',\n  'man_mechanic':'\\ud83d\\udc68&zwj;\\ud83d\\udd27',\n  'man_office_worker':'\\ud83d\\udc68&zwj;\\ud83d\\udcbc',\n  'man_pilot':'\\ud83d\\udc68&zwj;\\u2708\\ufe0f',\n  'man_playing_handball':'\\ud83e\\udd3e&zwj;\\u2642\\ufe0f',\n  'man_playing_water_polo':'\\ud83e\\udd3d&zwj;\\u2642\\ufe0f',\n  'man_scientist':'\\ud83d\\udc68&zwj;\\ud83d\\udd2c',\n  'man_shrugging':'\\ud83e\\udd37&zwj;\\u2642\\ufe0f',\n  'man_singer':'\\ud83d\\udc68&zwj;\\ud83c\\udfa4',\n  'man_student':'\\ud83d\\udc68&zwj;\\ud83c\\udf93',\n  'man_teacher':'\\ud83d\\udc68&zwj;\\ud83c\\udfeb',\n  'man_technologist':'\\ud83d\\udc68&zwj;\\ud83d\\udcbb',\n  'man_with_gua_pi_mao':'\\ud83d\\udc72',\n  'man_with_turban':'\\ud83d\\udc73',\n  'tangerine':'\\ud83c\\udf4a',\n  'mans_shoe':'\\ud83d\\udc5e',\n  'mantelpiece_clock':'\\ud83d\\udd70',\n  'maple_leaf':'\\ud83c\\udf41',\n  'martial_arts_uniform':'\\ud83e\\udd4b',\n  'mask':'\\ud83d\\ude37',\n  'massage_woman':'\\ud83d\\udc86',\n  'massage_man':'\\ud83d\\udc86&zwj;\\u2642\\ufe0f',\n  'meat_on_bone':'\\ud83c\\udf56',\n  'medal_military':'\\ud83c\\udf96',\n  'medal_sports':'\\ud83c\\udfc5',\n  'mega':'\\ud83d\\udce3',\n  'melon':'\\ud83c\\udf48',\n  'memo':'\\ud83d\\udcdd',\n  'men_wrestling':'\\ud83e\\udd3c&zwj;\\u2642\\ufe0f',\n  'menorah':'\\ud83d\\udd4e',\n  'mens':'\\ud83d\\udeb9',\n  'metal':'\\ud83e\\udd18',\n  'metro':'\\ud83d\\ude87',\n  'microphone':'\\ud83c\\udfa4',\n  'microscope':'\\ud83d\\udd2c',\n  'milk_glass':'\\ud83e\\udd5b',\n  'milky_way':'\\ud83c\\udf0c',\n  'minibus':'\\ud83d\\ude90',\n  'minidisc':'\\ud83d\\udcbd',\n  'mobile_phone_off':'\\ud83d\\udcf4',\n  'money_mouth_face':'\\ud83e\\udd11',\n  'money_with_wings':'\\ud83d\\udcb8',\n  'moneybag':'\\ud83d\\udcb0',\n  'monkey':'\\ud83d\\udc12',\n  'monkey_face':'\\ud83d\\udc35',\n  'monorail':'\\ud83d\\ude9d',\n  'moon':'\\ud83c\\udf14',\n  'mortar_board':'\\ud83c\\udf93',\n  'mosque':'\\ud83d\\udd4c',\n  'motor_boat':'\\ud83d\\udee5',\n  'motor_scooter':'\\ud83d\\udef5',\n  'motorcycle':'\\ud83c\\udfcd',\n  'motorway':'\\ud83d\\udee3',\n  'mount_fuji':'\\ud83d\\uddfb',\n  'mountain':'\\u26f0',\n  'mountain_biking_man':'\\ud83d\\udeb5',\n  'mountain_biking_woman':'\\ud83d\\udeb5&zwj;\\u2640\\ufe0f',\n  'mountain_cableway':'\\ud83d\\udea0',\n  'mountain_railway':'\\ud83d\\ude9e',\n  'mountain_snow':'\\ud83c\\udfd4',\n  'mouse':'\\ud83d\\udc2d',\n  'mouse2':'\\ud83d\\udc01',\n  'movie_camera':'\\ud83c\\udfa5',\n  'moyai':'\\ud83d\\uddff',\n  'mrs_claus':'\\ud83e\\udd36',\n  'muscle':'\\ud83d\\udcaa',\n  'mushroom':'\\ud83c\\udf44',\n  'musical_keyboard':'\\ud83c\\udfb9',\n  'musical_note':'\\ud83c\\udfb5',\n  'musical_score':'\\ud83c\\udfbc',\n  'mute':'\\ud83d\\udd07',\n  'nail_care':'\\ud83d\\udc85',\n  'name_badge':'\\ud83d\\udcdb',\n  'national_park':'\\ud83c\\udfde',\n  'nauseated_face':'\\ud83e\\udd22',\n  'necktie':'\\ud83d\\udc54',\n  'negative_squared_cross_mark':'\\u274e',\n  'nerd_face':'\\ud83e\\udd13',\n  'neutral_face':'\\ud83d\\ude10',\n  'new':'\\ud83c\\udd95',\n  'new_moon':'\\ud83c\\udf11',\n  'new_moon_with_face':'\\ud83c\\udf1a',\n  'newspaper':'\\ud83d\\udcf0',\n  'newspaper_roll':'\\ud83d\\uddde',\n  'next_track_button':'\\u23ed',\n  'ng':'\\ud83c\\udd96',\n  'no_good_man':'\\ud83d\\ude45&zwj;\\u2642\\ufe0f',\n  'no_good_woman':'\\ud83d\\ude45',\n  'night_with_stars':'\\ud83c\\udf03',\n  'no_bell':'\\ud83d\\udd15',\n  'no_bicycles':'\\ud83d\\udeb3',\n  'no_entry':'\\u26d4\\ufe0f',\n  'no_entry_sign':'\\ud83d\\udeab',\n  'no_mobile_phones':'\\ud83d\\udcf5',\n  'no_mouth':'\\ud83d\\ude36',\n  'no_pedestrians':'\\ud83d\\udeb7',\n  'no_smoking':'\\ud83d\\udead',\n  'non-potable_water':'\\ud83d\\udeb1',\n  'nose':'\\ud83d\\udc43',\n  'notebook':'\\ud83d\\udcd3',\n  'notebook_with_decorative_cover':'\\ud83d\\udcd4',\n  'notes':'\\ud83c\\udfb6',\n  'nut_and_bolt':'\\ud83d\\udd29',\n  'o':'\\u2b55\\ufe0f',\n  'o2':'\\ud83c\\udd7e\\ufe0f',\n  'ocean':'\\ud83c\\udf0a',\n  'octopus':'\\ud83d\\udc19',\n  'oden':'\\ud83c\\udf62',\n  'office':'\\ud83c\\udfe2',\n  'oil_drum':'\\ud83d\\udee2',\n  'ok':'\\ud83c\\udd97',\n  'ok_hand':'\\ud83d\\udc4c',\n  'ok_man':'\\ud83d\\ude46&zwj;\\u2642\\ufe0f',\n  'ok_woman':'\\ud83d\\ude46',\n  'old_key':'\\ud83d\\udddd',\n  'older_man':'\\ud83d\\udc74',\n  'older_woman':'\\ud83d\\udc75',\n  'om':'\\ud83d\\udd49',\n  'on':'\\ud83d\\udd1b',\n  'oncoming_automobile':'\\ud83d\\ude98',\n  'oncoming_bus':'\\ud83d\\ude8d',\n  'oncoming_police_car':'\\ud83d\\ude94',\n  'oncoming_taxi':'\\ud83d\\ude96',\n  'open_file_folder':'\\ud83d\\udcc2',\n  'open_hands':'\\ud83d\\udc50',\n  'open_mouth':'\\ud83d\\ude2e',\n  'open_umbrella':'\\u2602\\ufe0f',\n  'ophiuchus':'\\u26ce',\n  'orange_book':'\\ud83d\\udcd9',\n  'orthodox_cross':'\\u2626\\ufe0f',\n  'outbox_tray':'\\ud83d\\udce4',\n  'owl':'\\ud83e\\udd89',\n  'ox':'\\ud83d\\udc02',\n  'package':'\\ud83d\\udce6',\n  'page_facing_up':'\\ud83d\\udcc4',\n  'page_with_curl':'\\ud83d\\udcc3',\n  'pager':'\\ud83d\\udcdf',\n  'paintbrush':'\\ud83d\\udd8c',\n  'palm_tree':'\\ud83c\\udf34',\n  'pancakes':'\\ud83e\\udd5e',\n  'panda_face':'\\ud83d\\udc3c',\n  'paperclip':'\\ud83d\\udcce',\n  'paperclips':'\\ud83d\\udd87',\n  'parasol_on_ground':'\\u26f1',\n  'parking':'\\ud83c\\udd7f\\ufe0f',\n  'part_alternation_mark':'\\u303d\\ufe0f',\n  'partly_sunny':'\\u26c5\\ufe0f',\n  'passenger_ship':'\\ud83d\\udef3',\n  'passport_control':'\\ud83d\\udec2',\n  'pause_button':'\\u23f8',\n  'peace_symbol':'\\u262e\\ufe0f',\n  'peach':'\\ud83c\\udf51',\n  'peanuts':'\\ud83e\\udd5c',\n  'pear':'\\ud83c\\udf50',\n  'pen':'\\ud83d\\udd8a',\n  'pencil2':'\\u270f\\ufe0f',\n  'penguin':'\\ud83d\\udc27',\n  'pensive':'\\ud83d\\ude14',\n  'performing_arts':'\\ud83c\\udfad',\n  'persevere':'\\ud83d\\ude23',\n  'person_fencing':'\\ud83e\\udd3a',\n  'pouting_woman':'\\ud83d\\ude4e',\n  'phone':'\\u260e\\ufe0f',\n  'pick':'\\u26cf',\n  'pig':'\\ud83d\\udc37',\n  'pig2':'\\ud83d\\udc16',\n  'pig_nose':'\\ud83d\\udc3d',\n  'pill':'\\ud83d\\udc8a',\n  'pineapple':'\\ud83c\\udf4d',\n  'ping_pong':'\\ud83c\\udfd3',\n  'pisces':'\\u2653\\ufe0f',\n  'pizza':'\\ud83c\\udf55',\n  'place_of_worship':'\\ud83d\\uded0',\n  'plate_with_cutlery':'\\ud83c\\udf7d',\n  'play_or_pause_button':'\\u23ef',\n  'point_down':'\\ud83d\\udc47',\n  'point_left':'\\ud83d\\udc48',\n  'point_right':'\\ud83d\\udc49',\n  'point_up':'\\u261d\\ufe0f',\n  'point_up_2':'\\ud83d\\udc46',\n  'police_car':'\\ud83d\\ude93',\n  'policewoman':'\\ud83d\\udc6e&zwj;\\u2640\\ufe0f',\n  'poodle':'\\ud83d\\udc29',\n  'popcorn':'\\ud83c\\udf7f',\n  'post_office':'\\ud83c\\udfe3',\n  'postal_horn':'\\ud83d\\udcef',\n  'postbox':'\\ud83d\\udcee',\n  'potable_water':'\\ud83d\\udeb0',\n  'potato':'\\ud83e\\udd54',\n  'pouch':'\\ud83d\\udc5d',\n  'poultry_leg':'\\ud83c\\udf57',\n  'pound':'\\ud83d\\udcb7',\n  'rage':'\\ud83d\\ude21',\n  'pouting_cat':'\\ud83d\\ude3e',\n  'pouting_man':'\\ud83d\\ude4e&zwj;\\u2642\\ufe0f',\n  'pray':'\\ud83d\\ude4f',\n  'prayer_beads':'\\ud83d\\udcff',\n  'pregnant_woman':'\\ud83e\\udd30',\n  'previous_track_button':'\\u23ee',\n  'prince':'\\ud83e\\udd34',\n  'princess':'\\ud83d\\udc78',\n  'printer':'\\ud83d\\udda8',\n  'purple_heart':'\\ud83d\\udc9c',\n  'purse':'\\ud83d\\udc5b',\n  'pushpin':'\\ud83d\\udccc',\n  'put_litter_in_its_place':'\\ud83d\\udeae',\n  'question':'\\u2753',\n  'rabbit':'\\ud83d\\udc30',\n  'rabbit2':'\\ud83d\\udc07',\n  'racehorse':'\\ud83d\\udc0e',\n  'racing_car':'\\ud83c\\udfce',\n  'radio':'\\ud83d\\udcfb',\n  'radio_button':'\\ud83d\\udd18',\n  'radioactive':'\\u2622\\ufe0f',\n  'railway_car':'\\ud83d\\ude83',\n  'railway_track':'\\ud83d\\udee4',\n  'rainbow':'\\ud83c\\udf08',\n  'rainbow_flag':'\\ud83c\\udff3\\ufe0f&zwj;\\ud83c\\udf08',\n  'raised_back_of_hand':'\\ud83e\\udd1a',\n  'raised_hand_with_fingers_splayed':'\\ud83d\\udd90',\n  'raised_hands':'\\ud83d\\ude4c',\n  'raising_hand_woman':'\\ud83d\\ude4b',\n  'raising_hand_man':'\\ud83d\\ude4b&zwj;\\u2642\\ufe0f',\n  'ram':'\\ud83d\\udc0f',\n  'ramen':'\\ud83c\\udf5c',\n  'rat':'\\ud83d\\udc00',\n  'record_button':'\\u23fa',\n  'recycle':'\\u267b\\ufe0f',\n  'red_circle':'\\ud83d\\udd34',\n  'registered':'\\u00ae\\ufe0f',\n  'relaxed':'\\u263a\\ufe0f',\n  'relieved':'\\ud83d\\ude0c',\n  'reminder_ribbon':'\\ud83c\\udf97',\n  'repeat':'\\ud83d\\udd01',\n  'repeat_one':'\\ud83d\\udd02',\n  'rescue_worker_helmet':'\\u26d1',\n  'restroom':'\\ud83d\\udebb',\n  'revolving_hearts':'\\ud83d\\udc9e',\n  'rewind':'\\u23ea',\n  'rhinoceros':'\\ud83e\\udd8f',\n  'ribbon':'\\ud83c\\udf80',\n  'rice':'\\ud83c\\udf5a',\n  'rice_ball':'\\ud83c\\udf59',\n  'rice_cracker':'\\ud83c\\udf58',\n  'rice_scene':'\\ud83c\\udf91',\n  'right_anger_bubble':'\\ud83d\\uddef',\n  'ring':'\\ud83d\\udc8d',\n  'robot':'\\ud83e\\udd16',\n  'rocket':'\\ud83d\\ude80',\n  'rofl':'\\ud83e\\udd23',\n  'roll_eyes':'\\ud83d\\ude44',\n  'roller_coaster':'\\ud83c\\udfa2',\n  'rooster':'\\ud83d\\udc13',\n  'rose':'\\ud83c\\udf39',\n  'rosette':'\\ud83c\\udff5',\n  'rotating_light':'\\ud83d\\udea8',\n  'round_pushpin':'\\ud83d\\udccd',\n  'rowing_man':'\\ud83d\\udea3',\n  'rowing_woman':'\\ud83d\\udea3&zwj;\\u2640\\ufe0f',\n  'rugby_football':'\\ud83c\\udfc9',\n  'running_man':'\\ud83c\\udfc3',\n  'running_shirt_with_sash':'\\ud83c\\udfbd',\n  'running_woman':'\\ud83c\\udfc3&zwj;\\u2640\\ufe0f',\n  'sa':'\\ud83c\\ude02\\ufe0f',\n  'sagittarius':'\\u2650\\ufe0f',\n  'sake':'\\ud83c\\udf76',\n  'sandal':'\\ud83d\\udc61',\n  'santa':'\\ud83c\\udf85',\n  'satellite':'\\ud83d\\udce1',\n  'saxophone':'\\ud83c\\udfb7',\n  'school':'\\ud83c\\udfeb',\n  'school_satchel':'\\ud83c\\udf92',\n  'scissors':'\\u2702\\ufe0f',\n  'scorpion':'\\ud83e\\udd82',\n  'scorpius':'\\u264f\\ufe0f',\n  'scream':'\\ud83d\\ude31',\n  'scream_cat':'\\ud83d\\ude40',\n  'scroll':'\\ud83d\\udcdc',\n  'seat':'\\ud83d\\udcba',\n  'secret':'\\u3299\\ufe0f',\n  'see_no_evil':'\\ud83d\\ude48',\n  'seedling':'\\ud83c\\udf31',\n  'selfie':'\\ud83e\\udd33',\n  'shallow_pan_of_food':'\\ud83e\\udd58',\n  'shamrock':'\\u2618\\ufe0f',\n  'shark':'\\ud83e\\udd88',\n  'shaved_ice':'\\ud83c\\udf67',\n  'sheep':'\\ud83d\\udc11',\n  'shell':'\\ud83d\\udc1a',\n  'shield':'\\ud83d\\udee1',\n  'shinto_shrine':'\\u26e9',\n  'ship':'\\ud83d\\udea2',\n  'shirt':'\\ud83d\\udc55',\n  'shopping':'\\ud83d\\udecd',\n  'shopping_cart':'\\ud83d\\uded2',\n  'shower':'\\ud83d\\udebf',\n  'shrimp':'\\ud83e\\udd90',\n  'signal_strength':'\\ud83d\\udcf6',\n  'six_pointed_star':'\\ud83d\\udd2f',\n  'ski':'\\ud83c\\udfbf',\n  'skier':'\\u26f7',\n  'skull':'\\ud83d\\udc80',\n  'skull_and_crossbones':'\\u2620\\ufe0f',\n  'sleeping':'\\ud83d\\ude34',\n  'sleeping_bed':'\\ud83d\\udecc',\n  'sleepy':'\\ud83d\\ude2a',\n  'slightly_frowning_face':'\\ud83d\\ude41',\n  'slightly_smiling_face':'\\ud83d\\ude42',\n  'slot_machine':'\\ud83c\\udfb0',\n  'small_airplane':'\\ud83d\\udee9',\n  'small_blue_diamond':'\\ud83d\\udd39',\n  'small_orange_diamond':'\\ud83d\\udd38',\n  'small_red_triangle':'\\ud83d\\udd3a',\n  'small_red_triangle_down':'\\ud83d\\udd3b',\n  'smile':'\\ud83d\\ude04',\n  'smile_cat':'\\ud83d\\ude38',\n  'smiley':'\\ud83d\\ude03',\n  'smiley_cat':'\\ud83d\\ude3a',\n  'smiling_imp':'\\ud83d\\ude08',\n  'smirk':'\\ud83d\\ude0f',\n  'smirk_cat':'\\ud83d\\ude3c',\n  'smoking':'\\ud83d\\udeac',\n  'snail':'\\ud83d\\udc0c',\n  'snake':'\\ud83d\\udc0d',\n  'sneezing_face':'\\ud83e\\udd27',\n  'snowboarder':'\\ud83c\\udfc2',\n  'snowflake':'\\u2744\\ufe0f',\n  'snowman':'\\u26c4\\ufe0f',\n  'snowman_with_snow':'\\u2603\\ufe0f',\n  'sob':'\\ud83d\\ude2d',\n  'soccer':'\\u26bd\\ufe0f',\n  'soon':'\\ud83d\\udd1c',\n  'sos':'\\ud83c\\udd98',\n  'sound':'\\ud83d\\udd09',\n  'space_invader':'\\ud83d\\udc7e',\n  'spades':'\\u2660\\ufe0f',\n  'spaghetti':'\\ud83c\\udf5d',\n  'sparkle':'\\u2747\\ufe0f',\n  'sparkler':'\\ud83c\\udf87',\n  'sparkles':'\\u2728',\n  'sparkling_heart':'\\ud83d\\udc96',\n  'speak_no_evil':'\\ud83d\\ude4a',\n  'speaker':'\\ud83d\\udd08',\n  'speaking_head':'\\ud83d\\udde3',\n  'speech_balloon':'\\ud83d\\udcac',\n  'speedboat':'\\ud83d\\udea4',\n  'spider':'\\ud83d\\udd77',\n  'spider_web':'\\ud83d\\udd78',\n  'spiral_calendar':'\\ud83d\\uddd3',\n  'spiral_notepad':'\\ud83d\\uddd2',\n  'spoon':'\\ud83e\\udd44',\n  'squid':'\\ud83e\\udd91',\n  'stadium':'\\ud83c\\udfdf',\n  'star':'\\u2b50\\ufe0f',\n  'star2':'\\ud83c\\udf1f',\n  'star_and_crescent':'\\u262a\\ufe0f',\n  'star_of_david':'\\u2721\\ufe0f',\n  'stars':'\\ud83c\\udf20',\n  'station':'\\ud83d\\ude89',\n  'statue_of_liberty':'\\ud83d\\uddfd',\n  'steam_locomotive':'\\ud83d\\ude82',\n  'stew':'\\ud83c\\udf72',\n  'stop_button':'\\u23f9',\n  'stop_sign':'\\ud83d\\uded1',\n  'stopwatch':'\\u23f1',\n  'straight_ruler':'\\ud83d\\udccf',\n  'strawberry':'\\ud83c\\udf53',\n  'stuck_out_tongue':'\\ud83d\\ude1b',\n  'stuck_out_tongue_closed_eyes':'\\ud83d\\ude1d',\n  'stuck_out_tongue_winking_eye':'\\ud83d\\ude1c',\n  'studio_microphone':'\\ud83c\\udf99',\n  'stuffed_flatbread':'\\ud83e\\udd59',\n  'sun_behind_large_cloud':'\\ud83c\\udf25',\n  'sun_behind_rain_cloud':'\\ud83c\\udf26',\n  'sun_behind_small_cloud':'\\ud83c\\udf24',\n  'sun_with_face':'\\ud83c\\udf1e',\n  'sunflower':'\\ud83c\\udf3b',\n  'sunglasses':'\\ud83d\\ude0e',\n  'sunny':'\\u2600\\ufe0f',\n  'sunrise':'\\ud83c\\udf05',\n  'sunrise_over_mountains':'\\ud83c\\udf04',\n  'surfing_man':'\\ud83c\\udfc4',\n  'surfing_woman':'\\ud83c\\udfc4&zwj;\\u2640\\ufe0f',\n  'sushi':'\\ud83c\\udf63',\n  'suspension_railway':'\\ud83d\\ude9f',\n  'sweat':'\\ud83d\\ude13',\n  'sweat_drops':'\\ud83d\\udca6',\n  'sweat_smile':'\\ud83d\\ude05',\n  'sweet_potato':'\\ud83c\\udf60',\n  'swimming_man':'\\ud83c\\udfca',\n  'swimming_woman':'\\ud83c\\udfca&zwj;\\u2640\\ufe0f',\n  'symbols':'\\ud83d\\udd23',\n  'synagogue':'\\ud83d\\udd4d',\n  'syringe':'\\ud83d\\udc89',\n  'taco':'\\ud83c\\udf2e',\n  'tada':'\\ud83c\\udf89',\n  'tanabata_tree':'\\ud83c\\udf8b',\n  'taurus':'\\u2649\\ufe0f',\n  'taxi':'\\ud83d\\ude95',\n  'tea':'\\ud83c\\udf75',\n  'telephone_receiver':'\\ud83d\\udcde',\n  'telescope':'\\ud83d\\udd2d',\n  'tennis':'\\ud83c\\udfbe',\n  'tent':'\\u26fa\\ufe0f',\n  'thermometer':'\\ud83c\\udf21',\n  'thinking':'\\ud83e\\udd14',\n  'thought_balloon':'\\ud83d\\udcad',\n  'ticket':'\\ud83c\\udfab',\n  'tickets':'\\ud83c\\udf9f',\n  'tiger':'\\ud83d\\udc2f',\n  'tiger2':'\\ud83d\\udc05',\n  'timer_clock':'\\u23f2',\n  'tipping_hand_man':'\\ud83d\\udc81&zwj;\\u2642\\ufe0f',\n  'tired_face':'\\ud83d\\ude2b',\n  'tm':'\\u2122\\ufe0f',\n  'toilet':'\\ud83d\\udebd',\n  'tokyo_tower':'\\ud83d\\uddfc',\n  'tomato':'\\ud83c\\udf45',\n  'tongue':'\\ud83d\\udc45',\n  'top':'\\ud83d\\udd1d',\n  'tophat':'\\ud83c\\udfa9',\n  'tornado':'\\ud83c\\udf2a',\n  'trackball':'\\ud83d\\uddb2',\n  'tractor':'\\ud83d\\ude9c',\n  'traffic_light':'\\ud83d\\udea5',\n  'train':'\\ud83d\\ude8b',\n  'train2':'\\ud83d\\ude86',\n  'tram':'\\ud83d\\ude8a',\n  'triangular_flag_on_post':'\\ud83d\\udea9',\n  'triangular_ruler':'\\ud83d\\udcd0',\n  'trident':'\\ud83d\\udd31',\n  'triumph':'\\ud83d\\ude24',\n  'trolleybus':'\\ud83d\\ude8e',\n  'trophy':'\\ud83c\\udfc6',\n  'tropical_drink':'\\ud83c\\udf79',\n  'tropical_fish':'\\ud83d\\udc20',\n  'truck':'\\ud83d\\ude9a',\n  'trumpet':'\\ud83c\\udfba',\n  'tulip':'\\ud83c\\udf37',\n  'tumbler_glass':'\\ud83e\\udd43',\n  'turkey':'\\ud83e\\udd83',\n  'turtle':'\\ud83d\\udc22',\n  'tv':'\\ud83d\\udcfa',\n  'twisted_rightwards_arrows':'\\ud83d\\udd00',\n  'two_hearts':'\\ud83d\\udc95',\n  'two_men_holding_hands':'\\ud83d\\udc6c',\n  'two_women_holding_hands':'\\ud83d\\udc6d',\n  'u5272':'\\ud83c\\ude39',\n  'u5408':'\\ud83c\\ude34',\n  'u55b6':'\\ud83c\\ude3a',\n  'u6307':'\\ud83c\\ude2f\\ufe0f',\n  'u6708':'\\ud83c\\ude37\\ufe0f',\n  'u6709':'\\ud83c\\ude36',\n  'u6e80':'\\ud83c\\ude35',\n  'u7121':'\\ud83c\\ude1a\\ufe0f',\n  'u7533':'\\ud83c\\ude38',\n  'u7981':'\\ud83c\\ude32',\n  'u7a7a':'\\ud83c\\ude33',\n  'umbrella':'\\u2614\\ufe0f',\n  'unamused':'\\ud83d\\ude12',\n  'underage':'\\ud83d\\udd1e',\n  'unicorn':'\\ud83e\\udd84',\n  'unlock':'\\ud83d\\udd13',\n  'up':'\\ud83c\\udd99',\n  'upside_down_face':'\\ud83d\\ude43',\n  'v':'\\u270c\\ufe0f',\n  'vertical_traffic_light':'\\ud83d\\udea6',\n  'vhs':'\\ud83d\\udcfc',\n  'vibration_mode':'\\ud83d\\udcf3',\n  'video_camera':'\\ud83d\\udcf9',\n  'video_game':'\\ud83c\\udfae',\n  'violin':'\\ud83c\\udfbb',\n  'virgo':'\\u264d\\ufe0f',\n  'volcano':'\\ud83c\\udf0b',\n  'volleyball':'\\ud83c\\udfd0',\n  'vs':'\\ud83c\\udd9a',\n  'vulcan_salute':'\\ud83d\\udd96',\n  'walking_man':'\\ud83d\\udeb6',\n  'walking_woman':'\\ud83d\\udeb6&zwj;\\u2640\\ufe0f',\n  'waning_crescent_moon':'\\ud83c\\udf18',\n  'waning_gibbous_moon':'\\ud83c\\udf16',\n  'warning':'\\u26a0\\ufe0f',\n  'wastebasket':'\\ud83d\\uddd1',\n  'watch':'\\u231a\\ufe0f',\n  'water_buffalo':'\\ud83d\\udc03',\n  'watermelon':'\\ud83c\\udf49',\n  'wave':'\\ud83d\\udc4b',\n  'wavy_dash':'\\u3030\\ufe0f',\n  'waxing_crescent_moon':'\\ud83c\\udf12',\n  'wc':'\\ud83d\\udebe',\n  'weary':'\\ud83d\\ude29',\n  'wedding':'\\ud83d\\udc92',\n  'weight_lifting_man':'\\ud83c\\udfcb\\ufe0f',\n  'weight_lifting_woman':'\\ud83c\\udfcb\\ufe0f&zwj;\\u2640\\ufe0f',\n  'whale':'\\ud83d\\udc33',\n  'whale2':'\\ud83d\\udc0b',\n  'wheel_of_dharma':'\\u2638\\ufe0f',\n  'wheelchair':'\\u267f\\ufe0f',\n  'white_check_mark':'\\u2705',\n  'white_circle':'\\u26aa\\ufe0f',\n  'white_flag':'\\ud83c\\udff3\\ufe0f',\n  'white_flower':'\\ud83d\\udcae',\n  'white_large_square':'\\u2b1c\\ufe0f',\n  'white_medium_small_square':'\\u25fd\\ufe0f',\n  'white_medium_square':'\\u25fb\\ufe0f',\n  'white_small_square':'\\u25ab\\ufe0f',\n  'white_square_button':'\\ud83d\\udd33',\n  'wilted_flower':'\\ud83e\\udd40',\n  'wind_chime':'\\ud83c\\udf90',\n  'wind_face':'\\ud83c\\udf2c',\n  'wine_glass':'\\ud83c\\udf77',\n  'wink':'\\ud83d\\ude09',\n  'wolf':'\\ud83d\\udc3a',\n  'woman':'\\ud83d\\udc69',\n  'woman_artist':'\\ud83d\\udc69&zwj;\\ud83c\\udfa8',\n  'woman_astronaut':'\\ud83d\\udc69&zwj;\\ud83d\\ude80',\n  'woman_cartwheeling':'\\ud83e\\udd38&zwj;\\u2640\\ufe0f',\n  'woman_cook':'\\ud83d\\udc69&zwj;\\ud83c\\udf73',\n  'woman_facepalming':'\\ud83e\\udd26&zwj;\\u2640\\ufe0f',\n  'woman_factory_worker':'\\ud83d\\udc69&zwj;\\ud83c\\udfed',\n  'woman_farmer':'\\ud83d\\udc69&zwj;\\ud83c\\udf3e',\n  'woman_firefighter':'\\ud83d\\udc69&zwj;\\ud83d\\ude92',\n  'woman_health_worker':'\\ud83d\\udc69&zwj;\\u2695\\ufe0f',\n  'woman_judge':'\\ud83d\\udc69&zwj;\\u2696\\ufe0f',\n  'woman_juggling':'\\ud83e\\udd39&zwj;\\u2640\\ufe0f',\n  'woman_mechanic':'\\ud83d\\udc69&zwj;\\ud83d\\udd27',\n  'woman_office_worker':'\\ud83d\\udc69&zwj;\\ud83d\\udcbc',\n  'woman_pilot':'\\ud83d\\udc69&zwj;\\u2708\\ufe0f',\n  'woman_playing_handball':'\\ud83e\\udd3e&zwj;\\u2640\\ufe0f',\n  'woman_playing_water_polo':'\\ud83e\\udd3d&zwj;\\u2640\\ufe0f',\n  'woman_scientist':'\\ud83d\\udc69&zwj;\\ud83d\\udd2c',\n  'woman_shrugging':'\\ud83e\\udd37&zwj;\\u2640\\ufe0f',\n  'woman_singer':'\\ud83d\\udc69&zwj;\\ud83c\\udfa4',\n  'woman_student':'\\ud83d\\udc69&zwj;\\ud83c\\udf93',\n  'woman_teacher':'\\ud83d\\udc69&zwj;\\ud83c\\udfeb',\n  'woman_technologist':'\\ud83d\\udc69&zwj;\\ud83d\\udcbb',\n  'woman_with_turban':'\\ud83d\\udc73&zwj;\\u2640\\ufe0f',\n  'womans_clothes':'\\ud83d\\udc5a',\n  'womans_hat':'\\ud83d\\udc52',\n  'women_wrestling':'\\ud83e\\udd3c&zwj;\\u2640\\ufe0f',\n  'womens':'\\ud83d\\udeba',\n  'world_map':'\\ud83d\\uddfa',\n  'worried':'\\ud83d\\ude1f',\n  'wrench':'\\ud83d\\udd27',\n  'writing_hand':'\\u270d\\ufe0f',\n  'x':'\\u274c',\n  'yellow_heart':'\\ud83d\\udc9b',\n  'yen':'\\ud83d\\udcb4',\n  'yin_yang':'\\u262f\\ufe0f',\n  'yum':'\\ud83d\\ude0b',\n  'zap':'\\u26a1\\ufe0f',\n  'zipper_mouth_face':'\\ud83e\\udd10',\n  'zzz':'\\ud83d\\udca4',\n\n  /* special emojis :P */\n  'octocat':  '<img alt=\":octocat:\" height=\"20\" width=\"20\" align=\"absmiddle\" src=\"https://assets-cdn.github.com/images/icons/emoji/octocat.png\">',\n  'showdown': '<span style=\"font-family: \\'Anonymous Pro\\', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>'\n};\n","/**\n * Created by Estevao on 31-05-2015.\n */\n\n/**\n * Showdown Converter class\n * @class\n * @param {object} [converterOptions]\n * @returns {Converter}\n */\nshowdown.Converter = function (converterOptions) {\n  'use strict';\n\n  var\n      /**\n       * Options used by this converter\n       * @private\n       * @type {{}}\n       */\n      options = {},\n\n      /**\n       * Language extensions used by this converter\n       * @private\n       * @type {Array}\n       */\n      langExtensions = [],\n\n      /**\n       * Output modifiers extensions used by this converter\n       * @private\n       * @type {Array}\n       */\n      outputModifiers = [],\n\n      /**\n       * Event listeners\n       * @private\n       * @type {{}}\n       */\n      listeners = {},\n\n      /**\n       * The flavor set in this converter\n       */\n      setConvFlavor = setFlavor,\n\n      /**\n       * Metadata of the document\n       * @type {{parsed: {}, raw: string, format: string}}\n       */\n      metadata = {\n        parsed: {},\n        raw: '',\n        format: ''\n      };\n\n  _constructor();\n\n  /**\n   * Converter constructor\n   * @private\n   */\n  function _constructor () {\n    converterOptions = converterOptions || {};\n\n    for (var gOpt in globalOptions) {\n      if (globalOptions.hasOwnProperty(gOpt)) {\n        options[gOpt] = globalOptions[gOpt];\n      }\n    }\n\n    // Merge options\n    if (typeof converterOptions === 'object') {\n      for (var opt in converterOptions) {\n        if (converterOptions.hasOwnProperty(opt)) {\n          options[opt] = converterOptions[opt];\n        }\n      }\n    } else {\n      throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +\n      ' was passed instead.');\n    }\n\n    if (options.extensions) {\n      showdown.helper.forEach(options.extensions, _parseExtension);\n    }\n  }\n\n  /**\n   * Parse extension\n   * @param {*} ext\n   * @param {string} [name='']\n   * @private\n   */\n  function _parseExtension (ext, name) {\n\n    name = name || null;\n    // If it's a string, the extension was previously loaded\n    if (showdown.helper.isString(ext)) {\n      ext = showdown.helper.stdExtName(ext);\n      name = ext;\n\n      // LEGACY_SUPPORT CODE\n      if (showdown.extensions[ext]) {\n        console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +\n          'Please inform the developer that the extension should be updated!');\n        legacyExtensionLoading(showdown.extensions[ext], ext);\n        return;\n        // END LEGACY SUPPORT CODE\n\n      } else if (!showdown.helper.isUndefined(extensions[ext])) {\n        ext = extensions[ext];\n\n      } else {\n        throw Error('Extension \"' + ext + '\" could not be loaded. It was either not found or is not a valid extension.');\n      }\n    }\n\n    if (typeof ext === 'function') {\n      ext = ext();\n    }\n\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n\n    var validExt = validate(ext, name);\n    if (!validExt.valid) {\n      throw Error(validExt.error);\n    }\n\n    for (var i = 0; i < ext.length; ++i) {\n      switch (ext[i].type) {\n\n        case 'lang':\n          langExtensions.push(ext[i]);\n          break;\n\n        case 'output':\n          outputModifiers.push(ext[i]);\n          break;\n      }\n      if (ext[i].hasOwnProperty('listeners')) {\n        for (var ln in ext[i].listeners) {\n          if (ext[i].listeners.hasOwnProperty(ln)) {\n            listen(ln, ext[i].listeners[ln]);\n          }\n        }\n      }\n    }\n\n  }\n\n  /**\n   * LEGACY_SUPPORT\n   * @param {*} ext\n   * @param {string} name\n   */\n  function legacyExtensionLoading (ext, name) {\n    if (typeof ext === 'function') {\n      ext = ext(new showdown.Converter());\n    }\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n    var valid = validate(ext, name);\n\n    if (!valid.valid) {\n      throw Error(valid.error);\n    }\n\n    for (var i = 0; i < ext.length; ++i) {\n      switch (ext[i].type) {\n        case 'lang':\n          langExtensions.push(ext[i]);\n          break;\n        case 'output':\n          outputModifiers.push(ext[i]);\n          break;\n        default:// should never reach here\n          throw Error('Extension loader error: Type unrecognized!!!');\n      }\n    }\n  }\n\n  /**\n   * Listen to an event\n   * @param {string} name\n   * @param {function} callback\n   */\n  function listen (name, callback) {\n    if (!showdown.helper.isString(name)) {\n      throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');\n    }\n\n    if (typeof callback !== 'function') {\n      throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');\n    }\n\n    if (!listeners.hasOwnProperty(name)) {\n      listeners[name] = [];\n    }\n    listeners[name].push(callback);\n  }\n\n  function rTrimInputText (text) {\n    var rsp = text.match(/^\\s*/)[0].length,\n        rgx = new RegExp('^\\\\s{0,' + rsp + '}', 'gm');\n    return text.replace(rgx, '');\n  }\n\n  /**\n   * Dispatch an event\n   * @private\n   * @param {string} evtName Event name\n   * @param {string} text Text\n   * @param {{}} options Converter Options\n   * @param {{}} globals\n   * @returns {string}\n   */\n  this._dispatch = function dispatch (evtName, text, options, globals) {\n    if (listeners.hasOwnProperty(evtName)) {\n      for (var ei = 0; ei < listeners[evtName].length; ++ei) {\n        var nText = listeners[evtName][ei](evtName, text, this, options, globals);\n        if (nText && typeof nText !== 'undefined') {\n          text = nText;\n        }\n      }\n    }\n    return text;\n  };\n\n  /**\n   * Listen to an event\n   * @param {string} name\n   * @param {function} callback\n   * @returns {showdown.Converter}\n   */\n  this.listen = function (name, callback) {\n    listen(name, callback);\n    return this;\n  };\n\n  /**\n   * Converts a markdown string into HTML\n   * @param {string} text\n   * @returns {*}\n   */\n  this.makeHtml = function (text) {\n    //check if text is not falsy\n    if (!text) {\n      return text;\n    }\n\n    var globals = {\n      gHtmlBlocks:     [],\n      gHtmlMdBlocks:   [],\n      gHtmlSpans:      [],\n      gUrls:           {},\n      gTitles:         {},\n      gDimensions:     {},\n      gListLevel:      0,\n      hashLinkCounts:  {},\n      langExtensions:  langExtensions,\n      outputModifiers: outputModifiers,\n      converter:       this,\n      ghCodeBlocks:    [],\n      metadata: {\n        parsed: {},\n        raw: '',\n        format: ''\n      }\n    };\n\n    // This lets us use ¨ trema as an escape char to avoid md5 hashes\n    // The choice of character is arbitrary; anything that isn't\n    // magic in Markdown will work.\n    text = text.replace(/¨/g, '¨T');\n\n    // Replace $ with ¨D\n    // RegExp interprets $ as a special character\n    // when it's in a replacement string\n    text = text.replace(/\\$/g, '¨D');\n\n    // Standardize line endings\n    text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\n    text = text.replace(/\\r/g, '\\n'); // Mac to Unix\n\n    // Stardardize line spaces\n    text = text.replace(/\\u00A0/g, '&nbsp;');\n\n    if (options.smartIndentationFix) {\n      text = rTrimInputText(text);\n    }\n\n    // Make sure text begins and ends with a couple of newlines:\n    text = '\\n\\n' + text + '\\n\\n';\n\n    // detab\n    text = showdown.subParser('detab')(text, options, globals);\n\n    /**\n     * Strip any lines consisting only of spaces and tabs.\n     * This makes subsequent regexs easier to write, because we can\n     * match consecutive blank lines with /\\n+/ instead of something\n     * contorted like /[ \\t]*\\n+/\n     */\n    text = text.replace(/^[ \\t]+$/mg, '');\n\n    //run languageExtensions\n    showdown.helper.forEach(langExtensions, function (ext) {\n      text = showdown.subParser('runExtension')(ext, text, options, globals);\n    });\n\n    // run the sub parsers\n    text = showdown.subParser('metadata')(text, options, globals);\n    text = showdown.subParser('hashPreCodeTags')(text, options, globals);\n    text = showdown.subParser('githubCodeBlocks')(text, options, globals);\n    text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n    text = showdown.subParser('hashCodeTags')(text, options, globals);\n    text = showdown.subParser('stripLinkDefinitions')(text, options, globals);\n    text = showdown.subParser('blockGamut')(text, options, globals);\n    text = showdown.subParser('unhashHTMLSpans')(text, options, globals);\n    text = showdown.subParser('unescapeSpecialChars')(text, options, globals);\n\n    // attacklab: Restore dollar signs\n    text = text.replace(/¨D/g, '$$');\n\n    // attacklab: Restore tremas\n    text = text.replace(/¨T/g, '¨');\n\n    // render a complete html document instead of a partial if the option is enabled\n    text = showdown.subParser('completeHTMLDocument')(text, options, globals);\n\n    // Run output modifiers\n    showdown.helper.forEach(outputModifiers, function (ext) {\n      text = showdown.subParser('runExtension')(ext, text, options, globals);\n    });\n\n    // update metadata\n    metadata = globals.metadata;\n    return text;\n  };\n\n  /**\n   * Converts an HTML string into a markdown string\n   * @param src\n   * @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.\n   * @returns {string}\n   */\n  this.makeMarkdown = this.makeMd = function (src, HTMLParser) {\n\n    // replace \\r\\n with \\n\n    src = src.replace(/\\r\\n/g, '\\n');\n    src = src.replace(/\\r/g, '\\n'); // old macs\n\n    // due to an edge case, we need to find this: > <\n    // to prevent removing of non silent white spaces\n    // ex: <em>this is</em> <strong>sparta</strong>\n    src = src.replace(/>[ \\t]+</, '>¨NBSP;<');\n\n    if (!HTMLParser) {\n      if (window && window.document) {\n        HTMLParser = window.document;\n      } else {\n        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');\n      }\n    }\n\n    var doc = HTMLParser.createElement('div');\n    doc.innerHTML = src;\n\n    var globals = {\n      preList: substitutePreCodeTags(doc)\n    };\n\n    // remove all newlines and collapse spaces\n    clean(doc);\n\n    // some stuff, like accidental reference links must now be escaped\n    // TODO\n    // doc.innerHTML = doc.innerHTML.replace(/\\[[\\S\\t ]]/);\n\n    var nodes = doc.childNodes,\n        mdDoc = '';\n\n    for (var i = 0; i < nodes.length; i++) {\n      mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);\n    }\n\n    function clean (node) {\n      for (var n = 0; n < node.childNodes.length; ++n) {\n        var child = node.childNodes[n];\n        if (child.nodeType === 3) {\n          if (!/\\S/.test(child.nodeValue)) {\n            node.removeChild(child);\n            --n;\n          } else {\n            child.nodeValue = child.nodeValue.split('\\n').join(' ');\n            child.nodeValue = child.nodeValue.replace(/(\\s)+/g, '$1');\n          }\n        } else if (child.nodeType === 1) {\n          clean(child);\n        }\n      }\n    }\n\n    // find all pre tags and replace contents with placeholder\n    // we need this so that we can remove all indentation from html\n    // to ease up parsing\n    function substitutePreCodeTags (doc) {\n\n      var pres = doc.querySelectorAll('pre'),\n          presPH = [];\n\n      for (var i = 0; i < pres.length; ++i) {\n\n        if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {\n          var content = pres[i].firstChild.innerHTML.trim(),\n              language = pres[i].firstChild.getAttribute('data-language') || '';\n\n          // if data-language attribute is not defined, then we look for class language-*\n          if (language === '') {\n            var classes = pres[i].firstChild.className.split(' ');\n            for (var c = 0; c < classes.length; ++c) {\n              var matches = classes[c].match(/^language-(.+)$/);\n              if (matches !== null) {\n                language = matches[1];\n                break;\n              }\n            }\n          }\n\n          // unescape html entities in content\n          content = showdown.helper.unescapeHTMLEntities(content);\n\n          presPH.push(content);\n          pres[i].outerHTML = '<precode language=\"' + language + '\" precodenum=\"' + i.toString() + '\"></precode>';\n        } else {\n          presPH.push(pres[i].innerHTML);\n          pres[i].innerHTML = '';\n          pres[i].setAttribute('prenum', i.toString());\n        }\n      }\n      return presPH;\n    }\n\n    return mdDoc;\n  };\n\n  /**\n   * Set an option of this Converter instance\n   * @param {string} key\n   * @param {*} value\n   */\n  this.setOption = function (key, value) {\n    options[key] = value;\n  };\n\n  /**\n   * Get the option of this Converter instance\n   * @param {string} key\n   * @returns {*}\n   */\n  this.getOption = function (key) {\n    return options[key];\n  };\n\n  /**\n   * Get the options of this Converter instance\n   * @returns {{}}\n   */\n  this.getOptions = function () {\n    return options;\n  };\n\n  /**\n   * Add extension to THIS converter\n   * @param {{}} extension\n   * @param {string} [name=null]\n   */\n  this.addExtension = function (extension, name) {\n    name = name || null;\n    _parseExtension(extension, name);\n  };\n\n  /**\n   * Use a global registered extension with THIS converter\n   * @param {string} extensionName Name of the previously registered extension\n   */\n  this.useExtension = function (extensionName) {\n    _parseExtension(extensionName);\n  };\n\n  /**\n   * Set the flavor THIS converter should use\n   * @param {string} name\n   */\n  this.setFlavor = function (name) {\n    if (!flavor.hasOwnProperty(name)) {\n      throw Error(name + ' flavor was not found');\n    }\n    var preset = flavor[name];\n    setConvFlavor = name;\n    for (var option in preset) {\n      if (preset.hasOwnProperty(option)) {\n        options[option] = preset[option];\n      }\n    }\n  };\n\n  /**\n   * Get the currently set flavor of this converter\n   * @returns {string}\n   */\n  this.getFlavor = function () {\n    return setConvFlavor;\n  };\n\n  /**\n   * Remove an extension from THIS converter.\n   * Note: This is a costly operation. It's better to initialize a new converter\n   * and specify the extensions you wish to use\n   * @param {Array} extension\n   */\n  this.removeExtension = function (extension) {\n    if (!showdown.helper.isArray(extension)) {\n      extension = [extension];\n    }\n    for (var a = 0; a < extension.length; ++a) {\n      var ext = extension[a];\n      for (var i = 0; i < langExtensions.length; ++i) {\n        if (langExtensions[i] === ext) {\n          langExtensions[i].splice(i, 1);\n        }\n      }\n      for (var ii = 0; ii < outputModifiers.length; ++i) {\n        if (outputModifiers[ii] === ext) {\n          outputModifiers[ii].splice(i, 1);\n        }\n      }\n    }\n  };\n\n  /**\n   * Get all extension of THIS converter\n   * @returns {{language: Array, output: Array}}\n   */\n  this.getAllExtensions = function () {\n    return {\n      language: langExtensions,\n      output: outputModifiers\n    };\n  };\n\n  /**\n   * Get the metadata of the previously parsed document\n   * @param raw\n   * @returns {string|{}}\n   */\n  this.getMetadata = function (raw) {\n    if (raw) {\n      return metadata.raw;\n    } else {\n      return metadata.parsed;\n    }\n  };\n\n  /**\n   * Get the metadata format of the previously parsed document\n   * @returns {string}\n   */\n  this.getMetadataFormat = function () {\n    return metadata.format;\n  };\n\n  /**\n   * Private: set a single key, value metadata pair\n   * @param {string} key\n   * @param {string} value\n   */\n  this._setMetadataPair = function (key, value) {\n    metadata.parsed[key] = value;\n  };\n\n  /**\n   * Private: set metadata format\n   * @param {string} format\n   */\n  this._setMetadataFormat = function (format) {\n    metadata.format = format;\n  };\n\n  /**\n   * Private: set metadata raw text\n   * @param {string} raw\n   */\n  this._setMetadataRaw = function (raw) {\n    metadata.raw = raw;\n  };\n};\n","/**\n * Turn Markdown link shortcuts into XHTML <a> tags.\n */\nshowdown.subParser('anchors', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('anchors.before', text, options, globals);\n\n  var writeAnchorTag = function (wholeMatch, linkText, linkId, url, m5, m6, title) {\n    if (showdown.helper.isUndefined(title)) {\n      title = '';\n    }\n    linkId = linkId.toLowerCase();\n\n    // Special case for explicit empty url\n    if (wholeMatch.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n      url = '';\n    } else if (!url) {\n      if (!linkId) {\n        // lower-case and turn embedded newlines into spaces\n        linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\n      }\n      url = '#' + linkId;\n\n      if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\n        url = globals.gUrls[linkId];\n        if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\n          title = globals.gTitles[linkId];\n        }\n      } else {\n        return wholeMatch;\n      }\n    }\n\n    //url = showdown.helper.escapeCharacters(url, '*_', false); // replaced line to improve performance\n    url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n\n    var result = '<a href=\"' + url + '\"';\n\n    if (title !== '' && title !== null) {\n      title = title.replace(/\"/g, '&quot;');\n      //title = showdown.helper.escapeCharacters(title, '*_', false); // replaced line to improve performance\n      title = title.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n      result += ' title=\"' + title + '\"';\n    }\n\n    // optionLinksInNewWindow only applies\n    // to external links. Hash links (#) open in same page\n    if (options.openLinksInNewWindow && !/^#/.test(url)) {\n      // escaped _\n      result += ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n    }\n\n    result += '>' + linkText + '</a>';\n\n    return result;\n  };\n\n  // First, handle reference-style links: [link text] [id]\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g, writeAnchorTag);\n\n  // Next, inline-style links: [link text](url \"optional title\")\n  // cases with crazy urls like ./image/cat1).png\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n    writeAnchorTag);\n\n  // normal cases\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n    writeAnchorTag);\n\n  // handle reference-style shortcuts: [link text]\n  // These must come last in case you've also got [link test][1]\n  // or [link test](/foo)\n  text = text.replace(/\\[([^\\[\\]]+)]()()()()()/g, writeAnchorTag);\n\n  // Lastly handle GithubMentions if option is enabled\n  if (options.ghMentions) {\n    text = text.replace(/(^|\\s)(\\\\)?(@([a-z\\d]+(?:[a-z\\d.-]+?[a-z\\d]+)*))/gmi, function (wm, st, escape, mentions, username) {\n      if (escape === '\\\\') {\n        return st + mentions;\n      }\n\n      //check if options.ghMentionsLink is a string\n      if (!showdown.helper.isString(options.ghMentionsLink)) {\n        throw new Error('ghMentionsLink option must be a string');\n      }\n      var lnk = options.ghMentionsLink.replace(/\\{u}/g, username),\n          target = '';\n      if (options.openLinksInNewWindow) {\n        target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n      }\n      return st + '<a href=\"' + lnk + '\"' + target + '>' + mentions + '</a>';\n    });\n  }\n\n  text = globals.converter._dispatch('anchors.after', text, options, globals);\n  return text;\n});\n","// url allowed chars [a-z\\d_.~:/?#[]@!$&'()*+,;=-]\n\nvar simpleURLRegex  = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+?\\.[^'\">\\s]+?)()(\\1)?(?=\\s|$)(?![\"<>])/gi,\n    simpleURLRegex2 = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]])?(\\1)?(?=\\s|$)(?![\"<>])/gi,\n    delimUrlRegex   = /()<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>()/gi,\n    simpleMailRegex = /(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gmi,\n    delimMailRegex  = /<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\n\n    replaceLink = function (options) {\n      'use strict';\n      return function (wm, leadingMagicChars, link, m2, m3, trailingPunctuation, trailingMagicChars) {\n        link = link.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n        var lnkTxt = link,\n            append = '',\n            target = '',\n            lmc    = leadingMagicChars || '',\n            tmc    = trailingMagicChars || '';\n        if (/^www\\./i.test(link)) {\n          link = link.replace(/^www\\./i, 'http://www.');\n        }\n        if (options.excludeTrailingPunctuationFromURLs && trailingPunctuation) {\n          append = trailingPunctuation;\n        }\n        if (options.openLinksInNewWindow) {\n          target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n        }\n        return lmc + '<a href=\"' + link + '\"' + target + '>' + lnkTxt + '</a>' + append + tmc;\n      };\n    },\n\n    replaceMail = function (options, globals) {\n      'use strict';\n      return function (wholeMatch, b, mail) {\n        var href = 'mailto:';\n        b = b || '';\n        mail = showdown.subParser('unescapeSpecialChars')(mail, options, globals);\n        if (options.encodeEmails) {\n          href = showdown.helper.encodeEmailAddress(href + mail);\n          mail = showdown.helper.encodeEmailAddress(mail);\n        } else {\n          href = href + mail;\n        }\n        return b + '<a href=\"' + href + '\">' + mail + '</a>';\n      };\n    };\n\nshowdown.subParser('autoLinks', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('autoLinks.before', text, options, globals);\n\n  text = text.replace(delimUrlRegex, replaceLink(options));\n  text = text.replace(delimMailRegex, replaceMail(options, globals));\n\n  text = globals.converter._dispatch('autoLinks.after', text, options, globals);\n\n  return text;\n});\n\nshowdown.subParser('simplifiedAutoLinks', function (text, options, globals) {\n  'use strict';\n\n  if (!options.simplifiedAutoLink) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('simplifiedAutoLinks.before', text, options, globals);\n\n  if (options.excludeTrailingPunctuationFromURLs) {\n    text = text.replace(simpleURLRegex2, replaceLink(options));\n  } else {\n    text = text.replace(simpleURLRegex, replaceLink(options));\n  }\n  text = text.replace(simpleMailRegex, replaceMail(options, globals));\n\n  text = globals.converter._dispatch('simplifiedAutoLinks.after', text, options, globals);\n\n  return text;\n});\n","/**\n * These are all the transformations that form block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('blockGamut', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('blockGamut.before', text, options, globals);\n\n  // we parse blockquotes first so that we can have headings and hrs\n  // inside blockquotes\n  text = showdown.subParser('blockQuotes')(text, options, globals);\n  text = showdown.subParser('headers')(text, options, globals);\n\n  // Do Horizontal Rules:\n  text = showdown.subParser('horizontalRule')(text, options, globals);\n\n  text = showdown.subParser('lists')(text, options, globals);\n  text = showdown.subParser('codeBlocks')(text, options, globals);\n  text = showdown.subParser('tables')(text, options, globals);\n\n  // We already ran _HashHTMLBlocks() before, in Markdown(), but that\n  // was to escape raw HTML in the original Markdown source. This time,\n  // we're escaping the markup we've just created, so that we don't wrap\n  // <p> tags around block-level tags.\n  text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n  text = showdown.subParser('paragraphs')(text, options, globals);\n\n  text = globals.converter._dispatch('blockGamut.after', text, options, globals);\n\n  return text;\n});\n","showdown.subParser('blockQuotes', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('blockQuotes.before', text, options, globals);\n\n  // add a couple extra lines after the text and endtext mark\n  text = text + '\\n\\n';\n\n  var rgx = /(^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+/gm;\n\n  if (options.splitAdjacentBlockquotes) {\n    rgx = /^ {0,3}>[\\s\\S]*?(?:\\n\\n)/gm;\n  }\n\n  text = text.replace(rgx, function (bq) {\n    // attacklab: hack around Konqueror 3.5.4 bug:\n    // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n    bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, ''); // trim one level of quoting\n\n    // attacklab: clean up hack\n    bq = bq.replace(/¨0/g, '');\n\n    bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\n    bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);\n    bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\n\n    bq = bq.replace(/(^|\\n)/g, '$1  ');\n    // These leading spaces screw with <pre> content, so we need to fix that:\n    bq = bq.replace(/(\\s*<pre>[^\\r]+?<\\/pre>)/gm, function (wholeMatch, m1) {\n      var pre = m1;\n      // attacklab: hack around Konqueror 3.5.4 bug:\n      pre = pre.replace(/^  /mg, '¨0');\n      pre = pre.replace(/¨0/g, '');\n      return pre;\n    });\n\n    return showdown.subParser('hashBlock')('<blockquote>\\n' + bq + '\\n</blockquote>', options, globals);\n  });\n\n  text = globals.converter._dispatch('blockQuotes.after', text, options, globals);\n  return text;\n});\n","/**\n * Process Markdown `<pre><code>` blocks.\n */\nshowdown.subParser('codeBlocks', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('codeBlocks.before', text, options, globals);\n\n  // sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n  text += '¨0';\n\n  var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=¨0))/g;\n  text = text.replace(pattern, function (wholeMatch, m1, m2) {\n    var codeblock = m1,\n        nextChar = m2,\n        end = '\\n';\n\n    codeblock = showdown.subParser('outdent')(codeblock, options, globals);\n    codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n    codeblock = showdown.subParser('detab')(codeblock, options, globals);\n    codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n    codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing newlines\n\n    if (options.omitExtraWLInCodeBlocks) {\n      end = '';\n    }\n\n    codeblock = '<pre><code>' + codeblock + end + '</code></pre>';\n\n    return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\n  });\n\n  // strip sentinel\n  text = text.replace(/¨0/, '');\n\n  text = globals.converter._dispatch('codeBlocks.after', text, options, globals);\n  return text;\n});\n","/**\n *\n *   *  Backtick quotes are used for <code></code> spans.\n *\n *   *  You can use multiple backticks as the delimiters if you want to\n *     include literal backticks in the code span. So, this input:\n *\n *         Just type ``foo `bar` baz`` at the prompt.\n *\n *       Will translate to:\n *\n *         <p>Just type <code>foo `bar` baz</code> at the prompt.</p>\n *\n *    There's no arbitrary limit to the number of backticks you\n *    can use as delimters. If you need three consecutive backticks\n *    in your code, use four for delimiters, etc.\n *\n *  *  You can use spaces to get literal backticks at the edges:\n *\n *         ... type `` `bar` `` ...\n *\n *       Turns to:\n *\n *         ... type <code>`bar`</code> ...\n */\nshowdown.subParser('codeSpans', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('codeSpans.before', text, options, globals);\n\n  if (typeof text === 'undefined') {\n    text = '';\n  }\n  text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\n    function (wholeMatch, m1, m2, m3) {\n      var c = m3;\n      c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\n      c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\n      c = showdown.subParser('encodeCode')(c, options, globals);\n      c = m1 + '<code>' + c + '</code>';\n      c = showdown.subParser('hashHTMLSpans')(c, options, globals);\n      return c;\n    }\n  );\n\n  text = globals.converter._dispatch('codeSpans.after', text, options, globals);\n  return text;\n});\n","/**\n * Create a full HTML document from the processed markdown\n */\nshowdown.subParser('completeHTMLDocument', function (text, options, globals) {\n  'use strict';\n\n  if (!options.completeHTMLDocument) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);\n\n  var doctype = 'html',\n      doctypeParsed = '<!DOCTYPE HTML>\\n',\n      title = '',\n      charset = '<meta charset=\"utf-8\">\\n',\n      lang = '',\n      metadata = '';\n\n  if (typeof globals.metadata.parsed.doctype !== 'undefined') {\n    doctypeParsed = '<!DOCTYPE ' +  globals.metadata.parsed.doctype + '>\\n';\n    doctype = globals.metadata.parsed.doctype.toString().toLowerCase();\n    if (doctype === 'html' || doctype === 'html5') {\n      charset = '<meta charset=\"utf-8\">';\n    }\n  }\n\n  for (var meta in globals.metadata.parsed) {\n    if (globals.metadata.parsed.hasOwnProperty(meta)) {\n      switch (meta.toLowerCase()) {\n        case 'doctype':\n          break;\n\n        case 'title':\n          title = '<title>' +  globals.metadata.parsed.title + '</title>\\n';\n          break;\n\n        case 'charset':\n          if (doctype === 'html' || doctype === 'html5') {\n            charset = '<meta charset=\"' + globals.metadata.parsed.charset + '\">\\n';\n          } else {\n            charset = '<meta name=\"charset\" content=\"' + globals.metadata.parsed.charset + '\">\\n';\n          }\n          break;\n\n        case 'language':\n        case 'lang':\n          lang = ' lang=\"' + globals.metadata.parsed[meta] + '\"';\n          metadata += '<meta name=\"' + meta + '\" content=\"' + globals.metadata.parsed[meta] + '\">\\n';\n          break;\n\n        default:\n          metadata += '<meta name=\"' + meta + '\" content=\"' + globals.metadata.parsed[meta] + '\">\\n';\n      }\n    }\n  }\n\n  text = doctypeParsed + '<html' + lang + '>\\n<head>\\n' + title + charset + metadata + '</head>\\n<body>\\n' + text.trim() + '\\n</body>\\n</html>';\n\n  text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);\n  return text;\n});\n","/**\n * Convert all tabs to spaces\n */\nshowdown.subParser('detab', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('detab.before', text, options, globals);\n\n  // expand first n-1 tabs\n  text = text.replace(/\\t(?=\\t)/g, '    '); // g_tab_width\n\n  // replace the nth with two sentinels\n  text = text.replace(/\\t/g, '¨A¨B');\n\n  // use the sentinel to anchor our regex so it doesn't explode\n  text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {\n    var leadingText = m1,\n        numSpaces = 4 - leadingText.length % 4;  // g_tab_width\n\n    // there *must* be a better way to do this:\n    for (var i = 0; i < numSpaces; i++) {\n      leadingText += ' ';\n    }\n\n    return leadingText;\n  });\n\n  // clean up sentinels\n  text = text.replace(/¨A/g, '    ');  // g_tab_width\n  text = text.replace(/¨B/g, '');\n\n  text = globals.converter._dispatch('detab.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('ellipsis', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('ellipsis.before', text, options, globals);\n\n  text = text.replace(/\\.\\.\\./g, '…');\n\n  text = globals.converter._dispatch('ellipsis.after', text, options, globals);\n\n  return text;\n});\n","/**\n * Turn emoji codes into emojis\n *\n * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis\n */\nshowdown.subParser('emoji', function (text, options, globals) {\n  'use strict';\n\n  if (!options.emoji) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('emoji.before', text, options, globals);\n\n  var emojiRgx = /:([\\S]+?):/g;\n\n  text = text.replace(emojiRgx, function (wm, emojiCode) {\n    if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {\n      return showdown.helper.emojis[emojiCode];\n    }\n    return wm;\n  });\n\n  text = globals.converter._dispatch('emoji.after', text, options, globals);\n\n  return text;\n});\n","/**\n * Encode/escape certain characters inside Markdown code runs.\n * The point is that in code, these characters are literals,\n * and lose their special Markdown meanings.\n */\nshowdown.subParser('encodeCode', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('encodeCode.before', text, options, globals);\n\n  // Encode all ampersands; HTML entities are not\n  // entities within a Markdown code span.\n  text = text\n    .replace(/&/g, '&amp;')\n  // Do the angle bracket song and dance:\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n  // Now, escape characters that are magic in Markdown:\n    .replace(/([*_{}\\[\\]\\\\=~-])/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('encodeCode.after', text, options, globals);\n  return text;\n});\n","/**\n * Within tags -- meaning between < and > -- encode [\\ ` * _ ~ =] so they\n * don't conflict with their use in Markdown for code, italics and strong.\n */\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.before', text, options, globals);\n\n  // Build a regex to find HTML tags.\n  var tags     = /<\\/?[a-z\\d_:-]+(?:[\\s]+[\\s\\S]+?)?>/gi,\n      comments = /<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;\n\n  text = text.replace(tags, function (wholeMatch) {\n    return wholeMatch\n      .replace(/(.)<\\/?code>(?=.)/g, '$1`')\n      .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n  });\n\n  text = text.replace(comments, function (wholeMatch) {\n    return wholeMatch\n      .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n  });\n\n  text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.after', text, options, globals);\n  return text;\n});\n","/**\n * Handle github codeblocks prior to running HashHTML so that\n * HTML contained within the codeblock gets escaped properly\n * Example:\n * ```ruby\n *     def hello_world(x)\n *       puts \"Hello, #{x}\"\n *     end\n * ```\n */\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\n  'use strict';\n\n  // early exit if option is not enabled\n  if (!options.ghCodeBlocks) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);\n\n  text += '¨0';\n\n  text = text.replace(/(?:^|\\n)(?: {0,3})(```+|~~~+)(?: *)([^\\s`~]*)\\n([\\s\\S]*?)\\n(?: {0,3})\\1/g, function (wholeMatch, delim, language, codeblock) {\n    var end = (options.omitExtraWLInCodeBlocks) ? '' : '\\n';\n\n    // First parse the github code block\n    codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n    codeblock = showdown.subParser('detab')(codeblock, options, globals);\n    codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n    codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\n\n    codeblock = '<pre><code' + (language ? ' class=\"' + language + ' language-' + language + '\"' : '') + '>' + codeblock + end + '</code></pre>';\n\n    codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);\n\n    // Since GHCodeblocks can be false positives, we need to\n    // store the primitive text and the parsed text in a global var,\n    // and then return a token\n    return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n  });\n\n  // attacklab: strip sentinel\n  text = text.replace(/¨0/, '');\n\n  return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);\n});\n","/**\n * Smart processing for ampersands and angle brackets that need to be encoded.\n */\nshowdown.subParser('encodeAmpsAndAngles', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('encodeAmpsAndAngles.before', text, options, globals);\n\n  // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\n  // http://bumppo.net/projects/amputator/\n  text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&amp;');\n\n  // Encode naked <'s\n  text = text.replace(/<(?![a-z\\/?$!])/gi, '&lt;');\n\n  // Encode <\n  text = text.replace(/</g, '&lt;');\n\n  // Encode >\n  text = text.replace(/>/g, '&gt;');\n\n  text = globals.converter._dispatch('encodeAmpsAndAngles.after', text, options, globals);\n  return text;\n});\n","/**\n * Returns the string, with after processing the following backslash escape sequences.\n *\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\n *\n *    text = escapeCharacters(text,\"\\\\\",true);\n *    text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\n *\n * ...but we're sidestepping its use of the (slow) RegExp constructor\n * as an optimization for Firefox.  This function gets called a LOT.\n */\nshowdown.subParser('encodeBackslashEscapes', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);\n\n  text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\n  text = text.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('hashBlock', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashBlock.before', text, options, globals);\n  text = text.replace(/(^\\n+|\\n+$)/g, '');\n  text = '\\n\\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\n  text = globals.converter._dispatch('hashBlock.after', text, options, globals);\n  return text;\n});\n","/**\n * Hash and escape <code> elements that should not be parsed as markdown\n */\nshowdown.subParser('hashCodeTags', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashCodeTags.before', text, options, globals);\n\n  var repFunc = function (wholeMatch, match, left, right) {\n    var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n    return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';\n  };\n\n  // Hash naked <code>\n  text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '<code\\\\b[^>]*>', '</code>', 'gim');\n\n  text = globals.converter._dispatch('hashCodeTags.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('hashElement', function (text, options, globals) {\n  'use strict';\n\n  return function (wholeMatch, m1) {\n    var blockText = m1;\n\n    // Undo double lines\n    blockText = blockText.replace(/\\n\\n/g, '\\n');\n    blockText = blockText.replace(/^\\n/, '');\n\n    // strip trailing blank lines\n    blockText = blockText.replace(/\\n+$/g, '');\n\n    // Replace the element text with a marker (\"¨KxK\" where x is its key)\n    blockText = '\\n\\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\n\n    return blockText;\n  };\n});\n","showdown.subParser('hashHTMLBlocks', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashHTMLBlocks.before', text, options, globals);\n\n  var blockTags = [\n        'pre',\n        'div',\n        'h1',\n        'h2',\n        'h3',\n        'h4',\n        'h5',\n        'h6',\n        'blockquote',\n        'table',\n        'dl',\n        'ol',\n        'ul',\n        'script',\n        'noscript',\n        'form',\n        'fieldset',\n        'iframe',\n        'math',\n        'style',\n        'section',\n        'header',\n        'footer',\n        'nav',\n        'article',\n        'aside',\n        'address',\n        'audio',\n        'canvas',\n        'figure',\n        'hgroup',\n        'output',\n        'video',\n        'p'\n      ],\n      repFunc = function (wholeMatch, match, left, right) {\n        var txt = wholeMatch;\n        // check if this html element is marked as markdown\n        // if so, it's contents should be parsed as markdown\n        if (left.search(/\\bmarkdown\\b/) !== -1) {\n          txt = left + globals.converter.makeHtml(match) + right;\n        }\n        return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n      };\n\n  if (options.backslashEscapesHTMLTags) {\n    // encode backslash escaped HTML tags\n    text = text.replace(/\\\\<(\\/?[^>]+?)>/g, function (wm, inside) {\n      return '&lt;' + inside + '&gt;';\n    });\n  }\n\n  // hash HTML Blocks\n  for (var i = 0; i < blockTags.length; ++i) {\n\n    var opTagPos,\n        rgx1     = new RegExp('^ {0,3}(<' + blockTags[i] + '\\\\b[^>]*>)', 'im'),\n        patLeft  = '<' + blockTags[i] + '\\\\b[^>]*>',\n        patRight = '</' + blockTags[i] + '>';\n    // 1. Look for the first position of the first opening HTML tag in the text\n    while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {\n\n      // if the HTML tag is \\ escaped, we need to escape it and break\n\n\n      //2. Split the text in that position\n      var subTexts = showdown.helper.splitAtIndex(text, opTagPos),\n          //3. Match recursively\n          newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');\n\n      // prevent an infinite loop\n      if (newSubText1 === subTexts[1]) {\n        break;\n      }\n      text = subTexts[0].concat(newSubText1);\n    }\n  }\n  // HR SPECIAL CASE\n  text = text.replace(/(\\n {0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g,\n    showdown.subParser('hashElement')(text, options, globals));\n\n  // Special case for standalone HTML comments\n  text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {\n    return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n  }, '^ {0,3}<!--', '-->', 'gm');\n\n  // PHP and ASP-style processor instructions (<?...?> and <%...%>)\n  text = text.replace(/(?:\\n\\n)( {0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g,\n    showdown.subParser('hashElement')(text, options, globals));\n\n  text = globals.converter._dispatch('hashHTMLBlocks.after', text, options, globals);\n  return text;\n});\n","/**\n * Hash span elements that should not be parsed as markdown\n */\nshowdown.subParser('hashHTMLSpans', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashHTMLSpans.before', text, options, globals);\n\n  function hashHTMLSpan (html) {\n    return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';\n  }\n\n  // Hash Self Closing tags\n  text = text.replace(/<[^>]+?\\/>/gi, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash tags without properties\n  text = text.replace(/<([^>]+?)>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash tags with properties\n  text = text.replace(/<([^>]+?)\\s[^>]+?>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash self closing tags without />\n  text = text.replace(/<[^>]+?>/gi, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  /*showdown.helper.matchRecursiveRegExp(text, '<code\\\\b[^>]*>', '</code>', 'gi');*/\n\n  text = globals.converter._dispatch('hashHTMLSpans.after', text, options, globals);\n  return text;\n});\n\n/**\n * Unhash HTML spans\n */\nshowdown.subParser('unhashHTMLSpans', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('unhashHTMLSpans.before', text, options, globals);\n\n  for (var i = 0; i < globals.gHtmlSpans.length; ++i) {\n    var repText = globals.gHtmlSpans[i],\n        // limiter to prevent infinite loop (assume 10 as limit for recurse)\n        limit = 0;\n\n    while (/¨C(\\d+)C/.test(repText)) {\n      var num = RegExp.$1;\n      repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);\n      if (limit === 10) {\n        console.error('maximum nesting of 10 spans reached!!!');\n        break;\n      }\n      ++limit;\n    }\n    text = text.replace('¨C' + i + 'C', repText);\n  }\n\n  text = globals.converter._dispatch('unhashHTMLSpans.after', text, options, globals);\n  return text;\n});\n","/**\n * Hash and escape <pre><code> elements that should not be parsed as markdown\n */\nshowdown.subParser('hashPreCodeTags', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashPreCodeTags.before', text, options, globals);\n\n  var repFunc = function (wholeMatch, match, left, right) {\n    // encode html entities\n    var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n    return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n  };\n\n  // Hash <pre><code>\n  text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}<pre\\\\b[^>]*>\\\\s*<code\\\\b[^>]*>', '^ {0,3}</code>\\\\s*</pre>', 'gim');\n\n  text = globals.converter._dispatch('hashPreCodeTags.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('headers', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('headers.before', text, options, globals);\n\n  var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),\n\n      // Set text-style headers:\n      //\tHeader 1\n      //\t========\n      //\n      //\tHeader 2\n      //\t--------\n      //\n      setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n={2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\n      setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n-{2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm;\n\n  text = text.replace(setextRegexH1, function (wholeMatch, m1) {\n\n    var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n        hLevel = headerLevelStart,\n        hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';\n    return showdown.subParser('hashBlock')(hashBlock, options, globals);\n  });\n\n  text = text.replace(setextRegexH2, function (matchFound, m1) {\n    var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n        hLevel = headerLevelStart + 1,\n        hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';\n    return showdown.subParser('hashBlock')(hashBlock, options, globals);\n  });\n\n  // atx-style headers:\n  //  # Header 1\n  //  ## Header 2\n  //  ## Header 2 with closing hashes ##\n  //  ...\n  //  ###### Header 6\n  //\n  var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \\t]+(.+?)[ \\t]*#*\\n+/gm : /^(#{1,6})[ \\t]*(.+?)[ \\t]*#*\\n+/gm;\n\n  text = text.replace(atxStyle, function (wholeMatch, m1, m2) {\n    var hText = m2;\n    if (options.customizedHeaderId) {\n      hText = m2.replace(/\\s?\\{([^{]+?)}\\s*$/, '');\n    }\n\n    var span = showdown.subParser('spanGamut')(hText, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m2) + '\"',\n        hLevel = headerLevelStart - 1 + m1.length,\n        header = '<h' + hLevel + hID + '>' + span + '</h' + hLevel + '>';\n\n    return showdown.subParser('hashBlock')(header, options, globals);\n  });\n\n  function headerId (m) {\n    var title,\n        prefix;\n\n    // It is separate from other options to allow combining prefix and customized\n    if (options.customizedHeaderId) {\n      var match = m.match(/\\{([^{]+?)}\\s*$/);\n      if (match && match[1]) {\n        m = match[1];\n      }\n    }\n\n    title = m;\n\n    // Prefix id to prevent causing inadvertent pre-existing style matches.\n    if (showdown.helper.isString(options.prefixHeaderId)) {\n      prefix = options.prefixHeaderId;\n    } else if (options.prefixHeaderId === true) {\n      prefix = 'section-';\n    } else {\n      prefix = '';\n    }\n\n    if (!options.rawPrefixHeaderId) {\n      title = prefix + title;\n    }\n\n    if (options.ghCompatibleHeaderId) {\n      title = title\n        .replace(/ /g, '-')\n        // replace previously escaped chars (&, ¨ and $)\n        .replace(/&amp;/g, '')\n        .replace(/¨T/g, '')\n        .replace(/¨D/g, '')\n        // replace rest of the chars (&~$ are repeated as they might have been escaped)\n        // borrowed from github's redcarpet (some they should produce similar results)\n        .replace(/[&+$,\\/:;=?@\"#{}|^¨~\\[\\]`\\\\*)(%.!'<>]/g, '')\n        .toLowerCase();\n    } else if (options.rawHeaderId) {\n      title = title\n        .replace(/ /g, '-')\n        // replace previously escaped chars (&, ¨ and $)\n        .replace(/&amp;/g, '&')\n        .replace(/¨T/g, '¨')\n        .replace(/¨D/g, '$')\n        // replace \" and '\n        .replace(/[\"']/g, '-')\n        .toLowerCase();\n    } else {\n      title = title\n        .replace(/[^\\w]/g, '')\n        .toLowerCase();\n    }\n\n    if (options.rawPrefixHeaderId) {\n      title = prefix + title;\n    }\n\n    if (globals.hashLinkCounts[title]) {\n      title = title + '-' + (globals.hashLinkCounts[title]++);\n    } else {\n      globals.hashLinkCounts[title] = 1;\n    }\n    return title;\n  }\n\n  text = globals.converter._dispatch('headers.after', text, options, globals);\n  return text;\n});\n","/**\n * Turn Markdown link shortcuts into XHTML <a> tags.\n */\nshowdown.subParser('horizontalRule', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('horizontalRule.before', text, options, globals);\n\n  var key = showdown.subParser('hashBlock')('<hr />', options, globals);\n  text = text.replace(/^ {0,2}( ?-){3,}[ \\t]*$/gm, key);\n  text = text.replace(/^ {0,2}( ?\\*){3,}[ \\t]*$/gm, key);\n  text = text.replace(/^ {0,2}( ?_){3,}[ \\t]*$/gm, key);\n\n  text = globals.converter._dispatch('horizontalRule.after', text, options, globals);\n  return text;\n});\n","/**\n * Turn Markdown image shortcuts into <img> tags.\n */\nshowdown.subParser('images', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('images.before', text, options, globals);\n\n  var inlineRegExp      = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n      crazyRegExp       = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<([^>]*)>(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:(?:([\"'])([^\"]*?)\\6))?[ \\t]?\\)/g,\n      base64RegExp      = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<?(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n      referenceRegExp   = /!\\[([^\\]]*?)] ?(?:\\n *)?\\[([\\s\\S]*?)]()()()()()/g,\n      refShortcutRegExp = /!\\[([^\\[\\]]+)]()()()()()/g;\n\n  function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {\n    url = url.replace(/\\s/g, '');\n    return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);\n  }\n\n  function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {\n\n    var gUrls   = globals.gUrls,\n        gTitles = globals.gTitles,\n        gDims   = globals.gDimensions;\n\n    linkId = linkId.toLowerCase();\n\n    if (!title) {\n      title = '';\n    }\n    // Special case for explicit empty url\n    if (wholeMatch.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n      url = '';\n\n    } else if (url === '' || url === null) {\n      if (linkId === '' || linkId === null) {\n        // lower-case and turn embedded newlines into spaces\n        linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\n      }\n      url = '#' + linkId;\n\n      if (!showdown.helper.isUndefined(gUrls[linkId])) {\n        url = gUrls[linkId];\n        if (!showdown.helper.isUndefined(gTitles[linkId])) {\n          title = gTitles[linkId];\n        }\n        if (!showdown.helper.isUndefined(gDims[linkId])) {\n          width = gDims[linkId].width;\n          height = gDims[linkId].height;\n        }\n      } else {\n        return wholeMatch;\n      }\n    }\n\n    altText = altText\n      .replace(/\"/g, '&quot;')\n    //altText = showdown.helper.escapeCharacters(altText, '*_', false);\n      .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n    //url = showdown.helper.escapeCharacters(url, '*_', false);\n    url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n    var result = '<img src=\"' + url + '\" alt=\"' + altText + '\"';\n\n    if (title && showdown.helper.isString(title)) {\n      title = title\n        .replace(/\"/g, '&quot;')\n      //title = showdown.helper.escapeCharacters(title, '*_', false);\n        .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n      result += ' title=\"' + title + '\"';\n    }\n\n    if (width && height) {\n      width  = (width === '*') ? 'auto' : width;\n      height = (height === '*') ? 'auto' : height;\n\n      result += ' width=\"' + width + '\"';\n      result += ' height=\"' + height + '\"';\n    }\n\n    result += ' />';\n\n    return result;\n  }\n\n  // First, handle reference-style labeled images: ![alt text][id]\n  text = text.replace(referenceRegExp, writeImageTag);\n\n  // Next, handle inline images:  ![alt text](url =<width>x<height> \"optional title\")\n\n  // base64 encoded images\n  text = text.replace(base64RegExp, writeImageTagBase64);\n\n  // cases with crazy urls like ./image/cat1).png\n  text = text.replace(crazyRegExp, writeImageTag);\n\n  // normal cases\n  text = text.replace(inlineRegExp, writeImageTag);\n\n  // handle reference-style shortcuts: ![img text]\n  text = text.replace(refShortcutRegExp, writeImageTag);\n\n  text = globals.converter._dispatch('images.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('italicsAndBold', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);\n\n  // it's faster to have 3 separate regexes for each case than have just one\n  // because of backtracing, in some cases, it could lead to an exponential effect\n  // called \"catastrophic backtrace\". Ominous!\n\n  function parseInside (txt, left, right) {\n    /*\n    if (options.simplifiedAutoLink) {\n      txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n    }\n    */\n    return left + txt + right;\n  }\n\n  // Parse underscores\n  if (options.literalMidWordUnderscores) {\n    text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n      return parseInside (txt, '<strong><em>', '</em></strong>');\n    });\n    text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n      return parseInside (txt, '<strong>', '</strong>');\n    });\n    text = text.replace(/\\b_(\\S[\\s\\S]*?)_\\b/g, function (wm, txt) {\n      return parseInside (txt, '<em>', '</em>');\n    });\n  } else {\n    text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;\n    });\n    text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;\n    });\n    text = text.replace(/_([^\\s_][\\s\\S]*?)_/g, function (wm, m) {\n      // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)\n      return (/\\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;\n    });\n  }\n\n  // Now parse asterisks\n  if (options.literalMidWordAsterisks) {\n    text = text.replace(/([^*]|^)\\B\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<strong><em>', '</em></strong>');\n    });\n    text = text.replace(/([^*]|^)\\B\\*\\*(\\S[\\s\\S]*?)\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<strong>', '</strong>');\n    });\n    text = text.replace(/([^*]|^)\\B\\*(\\S[\\s\\S]*?)\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<em>', '</em>');\n    });\n  } else {\n    text = text.replace(/\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;\n    });\n    text = text.replace(/\\*\\*(\\S[\\s\\S]*?)\\*\\*/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;\n    });\n    text = text.replace(/\\*([^\\s*][\\s\\S]*?)\\*/g, function (wm, m) {\n      // !/^\\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)\n      return (/\\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;\n    });\n  }\n\n\n  text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);\n  return text;\n});\n","/**\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\n */\nshowdown.subParser('lists', function (text, options, globals) {\n  'use strict';\n\n  /**\n   * Process the contents of a single ordered or unordered list, splitting it\n   * into individual list items.\n   * @param {string} listStr\n   * @param {boolean} trimTrailing\n   * @returns {string}\n   */\n  function processListItems (listStr, trimTrailing) {\n    // The $g_list_level global keeps track of when we're inside a list.\n    // Each time we enter a list, we increment it; when we leave a list,\n    // we decrement. If it's zero, we're not in a list anymore.\n    //\n    // We do this because when we're not inside a list, we want to treat\n    // something like this:\n    //\n    //    I recommend upgrading to version\n    //    8. Oops, now this line is treated\n    //    as a sub-list.\n    //\n    // As a single paragraph, despite the fact that the second line starts\n    // with a digit-period-space sequence.\n    //\n    // Whereas when we're inside a list (or sub-list), that line will be\n    // treated as the start of a sub-list. What a kludge, huh? This is\n    // an aspect of Markdown's syntax that's hard to parse perfectly\n    // without resorting to mind-reading. Perhaps the solution is to\n    // change the syntax rules such that sub-lists must start with a\n    // starting cardinal number; e.g. \"1.\" or \"a.\".\n    globals.gListLevel++;\n\n    // trim trailing blank lines:\n    listStr = listStr.replace(/\\n{2,}$/, '\\n');\n\n    // attacklab: add sentinel to emulate \\z\n    listStr += '¨0';\n\n    var rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0| {0,3}([*+-]|\\d+[.])[ \\t]+))/gm,\n        isParagraphed = (/\\n[ \\t]*\\n(?!¨0)/.test(listStr));\n\n    // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,\n    // which is a syntax breaking change\n    // activating this option reverts to old behavior\n    if (options.disableForced4SpacesIndentedSublists) {\n      rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0|\\2([*+-]|\\d+[.])[ \\t]+))/gm;\n    }\n\n    listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {\n      checked = (checked && checked.trim() !== '');\n\n      var item = showdown.subParser('outdent')(m4, options, globals),\n          bulletStyle = '';\n\n      // Support for github tasklists\n      if (taskbtn && options.tasklists) {\n        bulletStyle = ' class=\"task-list-item\" style=\"list-style-type: none;\"';\n        item = item.replace(/^[ \\t]*\\[(x|X| )?]/m, function () {\n          var otp = '<input type=\"checkbox\" disabled style=\"margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;\"';\n          if (checked) {\n            otp += ' checked';\n          }\n          otp += '>';\n          return otp;\n        });\n      }\n\n      // ISSUE #312\n      // This input: - - - a\n      // causes trouble to the parser, since it interprets it as:\n      // <ul><li><li><li>a</li></li></li></ul>\n      // instead of:\n      // <ul><li>- - a</li></ul>\n      // So, to prevent it, we will put a marker (¨A)in the beginning of the line\n      // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser\n      item = item.replace(/^([-*+]|\\d\\.)[ \\t]+[\\S\\n ]*/g, function (wm2) {\n        return '¨A' + wm2;\n      });\n\n      // m1 - Leading line or\n      // Has a double return (multi paragraph) or\n      // Has sublist\n      if (m1 || (item.search(/\\n{2,}/) > -1)) {\n        item = showdown.subParser('githubCodeBlocks')(item, options, globals);\n        item = showdown.subParser('blockGamut')(item, options, globals);\n      } else {\n        // Recursion for sub-lists:\n        item = showdown.subParser('lists')(item, options, globals);\n        item = item.replace(/\\n$/, ''); // chomp(item)\n        item = showdown.subParser('hashHTMLBlocks')(item, options, globals);\n\n        // Colapse double linebreaks\n        item = item.replace(/\\n\\n+/g, '\\n\\n');\n        if (isParagraphed) {\n          item = showdown.subParser('paragraphs')(item, options, globals);\n        } else {\n          item = showdown.subParser('spanGamut')(item, options, globals);\n        }\n      }\n\n      // now we need to remove the marker (¨A)\n      item = item.replace('¨A', '');\n      // we can finally wrap the line in list item tags\n      item =  '<li' + bulletStyle + '>' + item + '</li>\\n';\n\n      return item;\n    });\n\n    // attacklab: strip sentinel\n    listStr = listStr.replace(/¨0/g, '');\n\n    globals.gListLevel--;\n\n    if (trimTrailing) {\n      listStr = listStr.replace(/\\s+$/, '');\n    }\n\n    return listStr;\n  }\n\n  function styleStartNumber (list, listType) {\n    // check if ol and starts by a number different than 1\n    if (listType === 'ol') {\n      var res = list.match(/^ *(\\d+)\\./);\n      if (res && res[1] !== '1') {\n        return ' start=\"' + res[1] + '\"';\n      }\n    }\n    return '';\n  }\n\n  /**\n   * Check and parse consecutive lists (better fix for issue #142)\n   * @param {string} list\n   * @param {string} listType\n   * @param {boolean} trimTrailing\n   * @returns {string}\n   */\n  function parseConsecutiveLists (list, listType, trimTrailing) {\n    // check if we caught 2 or more consecutive lists by mistake\n    // we use the counterRgx, meaning if listType is UL we look for OL and vice versa\n    var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\\d+\\.[ \\t]/gm : /^ {0,3}\\d+\\.[ \\t]/gm,\n        ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \\t]/gm : /^ {0,3}[*+-][ \\t]/gm,\n        counterRxg = (listType === 'ul') ? olRgx : ulRgx,\n        result = '';\n\n    if (list.search(counterRxg) !== -1) {\n      (function parseCL (txt) {\n        var pos = txt.search(counterRxg),\n            style = styleStartNumber(list, listType);\n        if (pos !== -1) {\n          // slice\n          result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '</' + listType + '>\\n';\n\n          // invert counterType and listType\n          listType = (listType === 'ul') ? 'ol' : 'ul';\n          counterRxg = (listType === 'ul') ? olRgx : ulRgx;\n\n          //recurse\n          parseCL(txt.slice(pos));\n        } else {\n          result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt, !!trimTrailing) + '</' + listType + '>\\n';\n        }\n      })(list);\n    } else {\n      var style = styleStartNumber(list, listType);\n      result = '\\n\\n<' + listType + style + '>\\n' + processListItems(list, !!trimTrailing) + '</' + listType + '>\\n';\n    }\n\n    return result;\n  }\n\n  /** Start of list parsing **/\n  text = globals.converter._dispatch('lists.before', text, options, globals);\n  // add sentinel to hack around khtml/safari bug:\n  // http://bugs.webkit.org/show_bug.cgi?id=11231\n  text += '¨0';\n\n  if (globals.gListLevel) {\n    text = text.replace(/^(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n      function (wholeMatch, list, m2) {\n        var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n        return parseConsecutiveLists(list, listType, true);\n      }\n    );\n  } else {\n    text = text.replace(/(\\n\\n|^\\n?)(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n      function (wholeMatch, m1, list, m3) {\n        var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n        return parseConsecutiveLists(list, listType, false);\n      }\n    );\n  }\n\n  // strip sentinel\n  text = text.replace(/¨0/, '');\n  text = globals.converter._dispatch('lists.after', text, options, globals);\n  return text;\n});\n","/**\n * Parse metadata at the top of the document\n */\nshowdown.subParser('metadata', function (text, options, globals) {\n  'use strict';\n\n  if (!options.metadata) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('metadata.before', text, options, globals);\n\n  function parseMetadataContents (content) {\n    // raw is raw so it's not changed in any way\n    globals.metadata.raw = content;\n\n    // escape chars forbidden in html attributes\n    // double quotes\n    content = content\n      // ampersand first\n      .replace(/&/g, '&amp;')\n      // double quotes\n      .replace(/\"/g, '&quot;');\n\n    content = content.replace(/\\n {4}/g, ' ');\n    content.replace(/^([\\S ]+): +([\\s\\S]+?)$/gm, function (wm, key, value) {\n      globals.metadata.parsed[key] = value;\n      return '';\n    });\n  }\n\n  text = text.replace(/^\\s*«««+(\\S*?)\\n([\\s\\S]+?)\\n»»»+\\n/, function (wholematch, format, content) {\n    parseMetadataContents(content);\n    return '¨M';\n  });\n\n  text = text.replace(/^\\s*---+(\\S*?)\\n([\\s\\S]+?)\\n---+\\n/, function (wholematch, format, content) {\n    if (format) {\n      globals.metadata.format = format;\n    }\n    parseMetadataContents(content);\n    return '¨M';\n  });\n\n  text = text.replace(/¨M/g, '');\n\n  text = globals.converter._dispatch('metadata.after', text, options, globals);\n  return text;\n});\n","/**\n * Remove one level of line-leading tabs or spaces\n */\nshowdown.subParser('outdent', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('outdent.before', text, options, globals);\n\n  // attacklab: hack around Konqueror 3.5.4 bug:\n  // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n  text = text.replace(/^(\\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width\n\n  // attacklab: clean up hack\n  text = text.replace(/¨0/g, '');\n\n  text = globals.converter._dispatch('outdent.after', text, options, globals);\n  return text;\n});\n","/**\n *\n */\nshowdown.subParser('paragraphs', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('paragraphs.before', text, options, globals);\n  // Strip leading and trailing lines:\n  text = text.replace(/^\\n+/g, '');\n  text = text.replace(/\\n+$/g, '');\n\n  var grafs = text.split(/\\n{2,}/g),\n      grafsOut = [],\n      end = grafs.length; // Wrap <p> tags\n\n  for (var i = 0; i < end; i++) {\n    var str = grafs[i];\n    // if this is an HTML marker, copy it\n    if (str.search(/¨(K|G)(\\d+)\\1/g) >= 0) {\n      grafsOut.push(str);\n\n    // test for presence of characters to prevent empty lines being parsed\n    // as paragraphs (resulting in undesired extra empty paragraphs)\n    } else if (str.search(/\\S/) >= 0) {\n      str = showdown.subParser('spanGamut')(str, options, globals);\n      str = str.replace(/^([ \\t]*)/g, '<p>');\n      str += '</p>';\n      grafsOut.push(str);\n    }\n  }\n\n  /** Unhashify HTML blocks */\n  end = grafsOut.length;\n  for (i = 0; i < end; i++) {\n    var blockText = '',\n        grafsOutIt = grafsOut[i],\n        codeFlag = false;\n    // if this is a marker for an html block...\n    // use RegExp.test instead of string.search because of QML bug\n    while (/¨(K|G)(\\d+)\\1/.test(grafsOutIt)) {\n      var delim = RegExp.$1,\n          num   = RegExp.$2;\n\n      if (delim === 'K') {\n        blockText = globals.gHtmlBlocks[num];\n      } else {\n        // we need to check if ghBlock is a false positive\n        if (codeFlag) {\n          // use encoded version of all text\n          blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text, options, globals);\n        } else {\n          blockText = globals.ghCodeBlocks[num].codeblock;\n        }\n      }\n      blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\n\n      grafsOutIt = grafsOutIt.replace(/(\\n\\n)?¨(K|G)\\d+\\2(\\n\\n)?/, blockText);\n      // Check if grafsOutIt is a pre->code\n      if (/^<pre\\b[^>]*>\\s*<code\\b[^>]*>/.test(grafsOutIt)) {\n        codeFlag = true;\n      }\n    }\n    grafsOut[i] = grafsOutIt;\n  }\n  text = grafsOut.join('\\n');\n  // Strip leading and trailing lines:\n  text = text.replace(/^\\n+/g, '');\n  text = text.replace(/\\n+$/g, '');\n  return globals.converter._dispatch('paragraphs.after', text, options, globals);\n});\n","/**\n * Run extension\n */\nshowdown.subParser('runExtension', function (ext, text, options, globals) {\n  'use strict';\n\n  if (ext.filter) {\n    text = ext.filter(text, globals.converter, options);\n\n  } else if (ext.regex) {\n    // TODO remove this when old extension loading mechanism is deprecated\n    var re = ext.regex;\n    if (!(re instanceof RegExp)) {\n      re = new RegExp(re, 'g');\n    }\n    text = text.replace(re, ext.replace);\n  }\n\n  return text;\n});\n","/**\n * These are all the transformations that occur *within* block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('spanGamut', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('spanGamut.before', text, options, globals);\n  text = showdown.subParser('codeSpans')(text, options, globals);\n  text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\n  text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\n\n  // Process anchor and image tags. Images must come first,\n  // because ![foo][f] looks like an anchor.\n  text = showdown.subParser('images')(text, options, globals);\n  text = showdown.subParser('anchors')(text, options, globals);\n\n  // Make links out of things like `<http://example.com/>`\n  // Must come after anchors, because you can use < and >\n  // delimiters in inline links like [this](<url>).\n  text = showdown.subParser('autoLinks')(text, options, globals);\n  text = showdown.subParser('simplifiedAutoLinks')(text, options, globals);\n  text = showdown.subParser('emoji')(text, options, globals);\n  text = showdown.subParser('underline')(text, options, globals);\n  text = showdown.subParser('italicsAndBold')(text, options, globals);\n  text = showdown.subParser('strikethrough')(text, options, globals);\n  text = showdown.subParser('ellipsis')(text, options, globals);\n\n  // we need to hash HTML tags inside spans\n  text = showdown.subParser('hashHTMLSpans')(text, options, globals);\n\n  // now we encode amps and angles\n  text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\n\n  // Do hard breaks\n  if (options.simpleLineBreaks) {\n    // GFM style hard breaks\n    // only add line breaks if the text does not contain a block (special case for lists)\n    if (!/\\n\\n¨K/.test(text)) {\n      text = text.replace(/\\n+/g, '<br />\\n');\n    }\n  } else {\n    // Vanilla hard breaks\n    text = text.replace(/  +\\n/g, '<br />\\n');\n  }\n\n  text = globals.converter._dispatch('spanGamut.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('strikethrough', function (text, options, globals) {\n  'use strict';\n\n  function parseInside (txt) {\n    if (options.simplifiedAutoLink) {\n      txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n    }\n    return '<del>' + txt + '</del>';\n  }\n\n  if (options.strikethrough) {\n    text = globals.converter._dispatch('strikethrough.before', text, options, globals);\n    text = text.replace(/(?:~){2}([\\s\\S]+?)(?:~){2}/g, function (wm, txt) { return parseInside(txt); });\n    text = globals.converter._dispatch('strikethrough.after', text, options, globals);\n  }\n\n  return text;\n});\n","/**\n * Strips link definitions from text, stores the URLs and titles in\n * hash references.\n * Link defs are in the form: ^[id]: url \"optional title\"\n */\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\n  'use strict';\n\n  var regex       = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*<?([^>\\s]+)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n+|(?=¨0))/gm,\n      base64Regex = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*<?(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n\\n|(?=¨0)|(?=\\n\\[))/gm;\n\n  // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n  text += '¨0';\n\n  var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {\n    linkId = linkId.toLowerCase();\n    if (url.match(/^data:.+?\\/.+?;base64,/)) {\n      // remove newlines\n      globals.gUrls[linkId] = url.replace(/\\s/g, '');\n    } else {\n      globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url, options, globals);  // Link IDs are case-insensitive\n    }\n\n    if (blankLines) {\n      // Oops, found blank lines, so it's not a title.\n      // Put back the parenthetical statement we stole.\n      return blankLines + title;\n\n    } else {\n      if (title) {\n        globals.gTitles[linkId] = title.replace(/\"|'/g, '&quot;');\n      }\n      if (options.parseImgDimensions && width && height) {\n        globals.gDimensions[linkId] = {\n          width:  width,\n          height: height\n        };\n      }\n    }\n    // Completely remove the definition from the text\n    return '';\n  };\n\n  // first we try to find base64 link references\n  text = text.replace(base64Regex, replaceFunc);\n\n  text = text.replace(regex, replaceFunc);\n\n  // attacklab: strip sentinel\n  text = text.replace(/¨0/, '');\n\n  return text;\n});\n","showdown.subParser('tables', function (text, options, globals) {\n  'use strict';\n\n  if (!options.tables) {\n    return text;\n  }\n\n  var tableRgx       = /^ {0,3}\\|?.+\\|.+\\n {0,3}\\|?[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[\\s\\S]+?(?:\\n\\n|¨0)/gm,\n      //singeColTblRgx = /^ {0,3}\\|.+\\|\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n(?: {0,3}\\|.+\\|\\n)+(?:\\n\\n|¨0)/gm;\n      singeColTblRgx = /^ {0,3}\\|.+\\|[ \\t]*\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n( {0,3}\\|.+\\|[ \\t]*\\n)*(?:\\n|¨0)/gm;\n\n  function parseStyles (sLine) {\n    if (/^:[ \\t]*--*$/.test(sLine)) {\n      return ' style=\"text-align:left;\"';\n    } else if (/^--*[ \\t]*:[ \\t]*$/.test(sLine)) {\n      return ' style=\"text-align:right;\"';\n    } else if (/^:[ \\t]*--*[ \\t]*:$/.test(sLine)) {\n      return ' style=\"text-align:center;\"';\n    } else {\n      return '';\n    }\n  }\n\n  function parseHeaders (header, style) {\n    var id = '';\n    header = header.trim();\n    // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility\n    if (options.tablesHeaderId || options.tableHeaderId) {\n      id = ' id=\"' + header.replace(/ /g, '_').toLowerCase() + '\"';\n    }\n    header = showdown.subParser('spanGamut')(header, options, globals);\n\n    return '<th' + id + style + '>' + header + '</th>\\n';\n  }\n\n  function parseCells (cell, style) {\n    var subText = showdown.subParser('spanGamut')(cell, options, globals);\n    return '<td' + style + '>' + subText + '</td>\\n';\n  }\n\n  function buildTable (headers, cells) {\n    var tb = '<table>\\n<thead>\\n<tr>\\n',\n        tblLgn = headers.length;\n\n    for (var i = 0; i < tblLgn; ++i) {\n      tb += headers[i];\n    }\n    tb += '</tr>\\n</thead>\\n<tbody>\\n';\n\n    for (i = 0; i < cells.length; ++i) {\n      tb += '<tr>\\n';\n      for (var ii = 0; ii < tblLgn; ++ii) {\n        tb += cells[i][ii];\n      }\n      tb += '</tr>\\n';\n    }\n    tb += '</tbody>\\n</table>\\n';\n    return tb;\n  }\n\n  function parseTable (rawTable) {\n    var i, tableLines = rawTable.split('\\n');\n\n    for (i = 0; i < tableLines.length; ++i) {\n      // strip wrong first and last column if wrapped tables are used\n      if (/^ {0,3}\\|/.test(tableLines[i])) {\n        tableLines[i] = tableLines[i].replace(/^ {0,3}\\|/, '');\n      }\n      if (/\\|[ \\t]*$/.test(tableLines[i])) {\n        tableLines[i] = tableLines[i].replace(/\\|[ \\t]*$/, '');\n      }\n      // parse code spans first, but we only support one line code spans\n      tableLines[i] = showdown.subParser('codeSpans')(tableLines[i], options, globals);\n    }\n\n    var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),\n        rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),\n        rawCells = [],\n        headers = [],\n        styles = [],\n        cells = [];\n\n    tableLines.shift();\n    tableLines.shift();\n\n    for (i = 0; i < tableLines.length; ++i) {\n      if (tableLines[i].trim() === '') {\n        continue;\n      }\n      rawCells.push(\n        tableLines[i]\n          .split('|')\n          .map(function (s) {\n            return s.trim();\n          })\n      );\n    }\n\n    if (rawHeaders.length < rawStyles.length) {\n      return rawTable;\n    }\n\n    for (i = 0; i < rawStyles.length; ++i) {\n      styles.push(parseStyles(rawStyles[i]));\n    }\n\n    for (i = 0; i < rawHeaders.length; ++i) {\n      if (showdown.helper.isUndefined(styles[i])) {\n        styles[i] = '';\n      }\n      headers.push(parseHeaders(rawHeaders[i], styles[i]));\n    }\n\n    for (i = 0; i < rawCells.length; ++i) {\n      var row = [];\n      for (var ii = 0; ii < headers.length; ++ii) {\n        if (showdown.helper.isUndefined(rawCells[i][ii])) {\n\n        }\n        row.push(parseCells(rawCells[i][ii], styles[ii]));\n      }\n      cells.push(row);\n    }\n\n    return buildTable(headers, cells);\n  }\n\n  text = globals.converter._dispatch('tables.before', text, options, globals);\n\n  // find escaped pipe characters\n  text = text.replace(/\\\\(\\|)/g, showdown.helper.escapeCharactersCallback);\n\n  // parse multi column tables\n  text = text.replace(tableRgx, parseTable);\n\n  // parse one column tables\n  text = text.replace(singeColTblRgx, parseTable);\n\n  text = globals.converter._dispatch('tables.after', text, options, globals);\n\n  return text;\n});\n","showdown.subParser('underline', function (text, options, globals) {\n  'use strict';\n\n  if (!options.underline) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('underline.before', text, options, globals);\n\n  if (options.literalMidWordUnderscores) {\n    text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n      return '<u>' + txt + '</u>';\n    });\n    text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n      return '<u>' + txt + '</u>';\n    });\n  } else {\n    text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? '<u>' + m + '</u>' : wm;\n    });\n    text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? '<u>' + m + '</u>' : wm;\n    });\n  }\n\n  // escape remaining underscores to prevent them being parsed by italic and bold\n  text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('underline.after', text, options, globals);\n\n  return text;\n});\n","showdown.subParser('makeMarkdown.blockquote', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n\n    for (var i = 0; i < childrenLength; ++i) {\n      var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);\n\n      if (innerTxt === '') {\n        continue;\n      }\n      txt += innerTxt;\n    }\n  }\n  // cleanup\n  txt = txt.trim();\n  txt = '> ' + txt.split('\\n').join('\\n> ');\n  return txt;\n});\n","/**\n * Swap back in all the special characters we've hidden.\n */\nshowdown.subParser('unescapeSpecialChars', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('unescapeSpecialChars.before', text, options, globals);\n\n  text = text.replace(/¨E(\\d+)E/g, function (wholeMatch, m1) {\n    var charCodeToReplace = parseInt(m1);\n    return String.fromCharCode(charCodeToReplace);\n  });\n\n  text = globals.converter._dispatch('unescapeSpecialChars.after', text, options, globals);\n  return text;\n});\n","showdown.subParser('makeMarkdown.codeSpan', function (node) {\n  'use strict';\n\n  return '`' + node.innerHTML + '`';\n});\n","showdown.subParser('makeMarkdown.codeBlock', function (node, globals) {\n  'use strict';\n\n  var lang = node.getAttribute('language'),\n      num  = node.getAttribute('precodenum');\n  return '```' + lang + '\\n' + globals.preList[num] + '\\n```';\n});\n","showdown.subParser('makeMarkdown.emphasis', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '*';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '*';\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {\n  'use strict';\n\n  var headerMark = new Array(headerLevel + 1).join('#'),\n      txt = '';\n\n  if (node.hasChildNodes()) {\n    txt = headerMark + ' ';\n    var children = node.childNodes,\n        childrenLength = children.length;\n\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.hr', function () {\n  'use strict';\n\n  return '---';\n});\n","showdown.subParser('makeMarkdown.image', function (node) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasAttribute('src')) {\n    txt += '![' + node.getAttribute('alt') + '](';\n    txt += '<' + node.getAttribute('src') + '>';\n    if (node.hasAttribute('width') && node.hasAttribute('height')) {\n      txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');\n    }\n\n    if (node.hasAttribute('title')) {\n      txt += ' \"' + node.getAttribute('title') + '\"';\n    }\n    txt += ')';\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.links', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes() && node.hasAttribute('href')) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n    txt = '[';\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '](';\n    txt += '<' + node.getAttribute('href') + '>';\n    if (node.hasAttribute('title')) {\n      txt += ' \"' + node.getAttribute('title') + '\"';\n    }\n    txt += ')';\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.list', function (node, globals, type) {\n  'use strict';\n\n  var txt = '';\n  if (!node.hasChildNodes()) {\n    return '';\n  }\n  var listItems       = node.childNodes,\n      listItemsLenght = listItems.length,\n      listNum = node.getAttribute('start') || 1;\n\n  for (var i = 0; i < listItemsLenght; ++i) {\n    if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {\n      continue;\n    }\n\n    // define the bullet to use in list\n    var bullet = '';\n    if (type === 'ol') {\n      bullet = listNum.toString() + '. ';\n    } else {\n      bullet = '- ';\n    }\n\n    // parse list item\n    txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);\n    ++listNum;\n  }\n\n  // add comment at the end to prevent consecutive lists to be parsed as one\n  txt += '\\n<!-- -->\\n';\n  return txt.trim();\n});\n","showdown.subParser('makeMarkdown.listItem', function (node, globals) {\n  'use strict';\n\n  var listItemTxt = '';\n\n  var children = node.childNodes,\n      childrenLenght = children.length;\n\n  for (var i = 0; i < childrenLenght; ++i) {\n    listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n  }\n  // if it's only one liner, we need to add a newline at the end\n  if (!/\\n$/.test(listItemTxt)) {\n    listItemTxt += '\\n';\n  } else {\n    // it's multiparagraph, so we need to indent\n    listItemTxt = listItemTxt\n      .split('\\n')\n      .join('\\n    ')\n      .replace(/^ {4}$/gm, '')\n      .replace(/\\n\\n+/g, '\\n\\n');\n  }\n\n  return listItemTxt;\n});\n","\n\nshowdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {\n  'use strict';\n\n  spansOnly = spansOnly || false;\n\n  var txt = '';\n\n  // edge case of text without wrapper paragraph\n  if (node.nodeType === 3) {\n    return showdown.subParser('makeMarkdown.txt')(node, globals);\n  }\n\n  // HTML comment\n  if (node.nodeType === 8) {\n    return '<!--' + node.data + '-->\\n\\n';\n  }\n\n  // process only node elements\n  if (node.nodeType !== 1) {\n    return '';\n  }\n\n  var tagName = node.tagName.toLowerCase();\n\n  switch (tagName) {\n\n    //\n    // BLOCKS\n    //\n    case 'h1':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\\n\\n'; }\n      break;\n    case 'h2':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\\n\\n'; }\n      break;\n    case 'h3':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\\n\\n'; }\n      break;\n    case 'h4':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\\n\\n'; }\n      break;\n    case 'h5':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\\n\\n'; }\n      break;\n    case 'h6':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\\n\\n'; }\n      break;\n\n    case 'p':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'blockquote':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'hr':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'ol':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\\n\\n'; }\n      break;\n\n    case 'ul':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\\n\\n'; }\n      break;\n\n    case 'precode':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'pre':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'table':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\\n\\n'; }\n      break;\n\n    //\n    // SPANS\n    //\n    case 'code':\n      txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);\n      break;\n\n    case 'em':\n    case 'i':\n      txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);\n      break;\n\n    case 'strong':\n    case 'b':\n      txt = showdown.subParser('makeMarkdown.strong')(node, globals);\n      break;\n\n    case 'del':\n      txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);\n      break;\n\n    case 'a':\n      txt = showdown.subParser('makeMarkdown.links')(node, globals);\n      break;\n\n    case 'img':\n      txt = showdown.subParser('makeMarkdown.image')(node, globals);\n      break;\n\n    default:\n      txt = node.outerHTML + '\\n\\n';\n  }\n\n  // common normalization\n  // TODO eventually\n\n  return txt;\n});\n","showdown.subParser('makeMarkdown.paragraph', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n  }\n\n  // some text normalization\n  txt = txt.trim();\n\n  return txt;\n});\n","showdown.subParser('makeMarkdown.pre', function (node, globals) {\n  'use strict';\n\n  var num  = node.getAttribute('prenum');\n  return '<pre>' + globals.preList[num] + '</pre>';\n});\n","showdown.subParser('makeMarkdown.strikethrough', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '~~';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '~~';\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.strong', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '**';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '**';\n  }\n  return txt;\n});\n","showdown.subParser('makeMarkdown.table', function (node, globals) {\n  'use strict';\n\n  var txt = '',\n      tableArray = [[], []],\n      headings   = node.querySelectorAll('thead>tr>th'),\n      rows       = node.querySelectorAll('tbody>tr'),\n      i, ii;\n  for (i = 0; i < headings.length; ++i) {\n    var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),\n        allign = '---';\n\n    if (headings[i].hasAttribute('style')) {\n      var style = headings[i].getAttribute('style').toLowerCase().replace(/\\s/g, '');\n      switch (style) {\n        case 'text-align:left;':\n          allign = ':---';\n          break;\n        case 'text-align:right;':\n          allign = '---:';\n          break;\n        case 'text-align:center;':\n          allign = ':---:';\n          break;\n      }\n    }\n    tableArray[0][i] = headContent.trim();\n    tableArray[1][i] = allign;\n  }\n\n  for (i = 0; i < rows.length; ++i) {\n    var r = tableArray.push([]) - 1,\n        cols = rows[i].getElementsByTagName('td');\n\n    for (ii = 0; ii < headings.length; ++ii) {\n      var cellContent = ' ';\n      if (typeof cols[ii] !== 'undefined') {\n        cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);\n      }\n      tableArray[r].push(cellContent);\n    }\n  }\n\n  var cellSpacesCount = 3;\n  for (i = 0; i < tableArray.length; ++i) {\n    for (ii = 0; ii < tableArray[i].length; ++ii) {\n      var strLen = tableArray[i][ii].length;\n      if (strLen > cellSpacesCount) {\n        cellSpacesCount = strLen;\n      }\n    }\n  }\n\n  for (i = 0; i < tableArray.length; ++i) {\n    for (ii = 0; ii < tableArray[i].length; ++ii) {\n      if (i === 1) {\n        if (tableArray[i][ii].slice(-1) === ':') {\n          tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';\n        } else {\n          tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');\n        }\n      } else {\n        tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);\n      }\n    }\n    txt += '| ' + tableArray[i].join(' | ') + ' |\\n';\n  }\n\n  return txt.trim();\n});\n","showdown.subParser('makeMarkdown.tableCell', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (!node.hasChildNodes()) {\n    return '';\n  }\n  var children = node.childNodes,\n      childrenLength = children.length;\n\n  for (var i = 0; i < childrenLength; ++i) {\n    txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);\n  }\n  return txt.trim();\n});\n","showdown.subParser('makeMarkdown.txt', function (node) {\n  'use strict';\n\n  var txt = node.nodeValue;\n\n  // multiple spaces are collapsed\n  txt = txt.replace(/ +/g, ' ');\n\n  // replace the custom ¨NBSP; with a space\n  txt = txt.replace(/¨NBSP;/g, ' ');\n\n  // \", <, > and & should replace escaped html entities\n  txt = showdown.helper.unescapeHTMLEntities(txt);\n\n  // escape markdown magic characters\n  // emphasis, strong and strikethrough - can appear everywhere\n  // we also escape pipe (|) because of tables\n  // and escape ` because of code blocks and spans\n  txt = txt.replace(/([*_~|`])/g, '\\\\$1');\n\n  // escape > because of blockquotes\n  txt = txt.replace(/^(\\s*)>/g, '\\\\$1>');\n\n  // hash character, only troublesome at the beginning of a line because of headers\n  txt = txt.replace(/^#/gm, '\\\\#');\n\n  // horizontal rules\n  txt = txt.replace(/^(\\s*)([-=]{3,})(\\s*)$/, '$1\\\\$2$3');\n\n  // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer\n  txt = txt.replace(/^( {0,3}\\d+)\\./gm, '$1\\\\.');\n\n  // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)\n  txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\\\$2');\n\n  // images and links, ] followed by ( is problematic, so we escape it\n  txt = txt.replace(/]([\\s]*)\\(/g, '\\\\]$1\\\\(');\n\n  // reference URIs must also be escaped\n  txt = txt.replace(/^ {0,3}\\[([\\S \\t]*?)]:/gm, '\\\\[$1]:');\n\n  return txt;\n});\n","var root = this;\n\n// AMD Loader\nif (typeof define === 'function' && define.amd) {\n  define(function () {\n    'use strict';\n    return showdown;\n  });\n\n// CommonJS/nodeJS Loader\n} else if (typeof module !== 'undefined' && module.exports) {\n  module.exports = showdown;\n\n// Regular Browser loader\n} else {\n  root.showdown = showdown;\n}\n"]}