{"version":3,"sources":["jsdelivr-header.js","/npm/marked@2.0.0/lib/marked.js"],"names":[],"mappings":"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","file":"/npm/marked@2.0.0/lib/marked.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/marked@2.0.0/lib/marked.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.marked = factory());\n}(this, (function () { 'use strict';\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n    var it;\n\n    if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n        if (it) o = it;\n        var i = 0;\n        return function () {\n          if (i >= o.length) return {\n            done: true\n          };\n          return {\n            done: false,\n            value: o[i++]\n          };\n        };\n      }\n\n      throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }\n\n    it = o[Symbol.iterator]();\n    return it.next.bind(it);\n  }\n\n  function createCommonjsModule(fn) {\n    var module = { exports: {} };\n  \treturn fn(module, module.exports), module.exports;\n  }\n\n  var defaults = createCommonjsModule(function (module) {\n    function getDefaults() {\n      return {\n        baseUrl: null,\n        breaks: false,\n        gfm: true,\n        headerIds: true,\n        headerPrefix: '',\n        highlight: null,\n        langPrefix: 'language-',\n        mangle: true,\n        pedantic: false,\n        renderer: null,\n        sanitize: false,\n        sanitizer: null,\n        silent: false,\n        smartLists: false,\n        smartypants: false,\n        tokenizer: null,\n        walkTokens: null,\n        xhtml: false\n      };\n    }\n\n    function changeDefaults(newDefaults) {\n      module.exports.defaults = newDefaults;\n    }\n\n    module.exports = {\n      defaults: getDefaults(),\n      getDefaults: getDefaults,\n      changeDefaults: changeDefaults\n    };\n  });\n\n  /**\n   * Helpers\n   */\n  var escapeTest = /[&<>\"']/;\n  var escapeReplace = /[&<>\"']/g;\n  var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n  var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n  var escapeReplacements = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;'\n  };\n\n  var getEscapeReplacement = function getEscapeReplacement(ch) {\n    return escapeReplacements[ch];\n  };\n\n  function escape(html, encode) {\n    if (encode) {\n      if (escapeTest.test(html)) {\n        return html.replace(escapeReplace, getEscapeReplacement);\n      }\n    } else {\n      if (escapeTestNoEncode.test(html)) {\n        return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n      }\n    }\n\n    return html;\n  }\n\n  var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\n  function unescape(html) {\n    // explicitly match decimal, hex, and named HTML entities\n    return html.replace(unescapeTest, function (_, n) {\n      n = n.toLowerCase();\n      if (n === 'colon') return ':';\n\n      if (n.charAt(0) === '#') {\n        return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n      }\n\n      return '';\n    });\n  }\n\n  var caret = /(^|[^\\[])\\^/g;\n\n  function edit(regex, opt) {\n    regex = regex.source || regex;\n    opt = opt || '';\n    var obj = {\n      replace: function replace(name, val) {\n        val = val.source || val;\n        val = val.replace(caret, '$1');\n        regex = regex.replace(name, val);\n        return obj;\n      },\n      getRegex: function getRegex() {\n        return new RegExp(regex, opt);\n      }\n    };\n    return obj;\n  }\n\n  var nonWordAndColonTest = /[^\\w:]/g;\n  var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\n  function cleanUrl(sanitize, base, href) {\n    if (sanitize) {\n      var prot;\n\n      try {\n        prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n      } catch (e) {\n        return null;\n      }\n\n      if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n        return null;\n      }\n    }\n\n    if (base && !originIndependentUrl.test(href)) {\n      href = resolveUrl(base, href);\n    }\n\n    try {\n      href = encodeURI(href).replace(/%25/g, '%');\n    } catch (e) {\n      return null;\n    }\n\n    return href;\n  }\n\n  var baseUrls = {};\n  var justDomain = /^[^:]+:\\/*[^/]*$/;\n  var protocol = /^([^:]+:)[\\s\\S]*$/;\n  var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\n  function resolveUrl(base, href) {\n    if (!baseUrls[' ' + base]) {\n      // we can ignore everything in base after the last slash of its path component,\n      // but we might need to add _that_\n      // https://tools.ietf.org/html/rfc3986#section-3\n      if (justDomain.test(base)) {\n        baseUrls[' ' + base] = base + '/';\n      } else {\n        baseUrls[' ' + base] = rtrim(base, '/', true);\n      }\n    }\n\n    base = baseUrls[' ' + base];\n    var relativeBase = base.indexOf(':') === -1;\n\n    if (href.substring(0, 2) === '//') {\n      if (relativeBase) {\n        return href;\n      }\n\n      return base.replace(protocol, '$1') + href;\n    } else if (href.charAt(0) === '/') {\n      if (relativeBase) {\n        return href;\n      }\n\n      return base.replace(domain, '$1') + href;\n    } else {\n      return base + href;\n    }\n  }\n\n  var noopTest = {\n    exec: function noopTest() {}\n  };\n\n  function merge(obj) {\n    var i = 1,\n        target,\n        key;\n\n    for (; i < arguments.length; i++) {\n      target = arguments[i];\n\n      for (key in target) {\n        if (Object.prototype.hasOwnProperty.call(target, key)) {\n          obj[key] = target[key];\n        }\n      }\n    }\n\n    return obj;\n  }\n\n  function splitCells(tableRow, count) {\n    // ensure that every cell-delimiting pipe has a space\n    // before it to distinguish it from an escaped pipe\n    var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n      var escaped = false,\n          curr = offset;\n\n      while (--curr >= 0 && str[curr] === '\\\\') {\n        escaped = !escaped;\n      }\n\n      if (escaped) {\n        // odd number of slashes means | is escaped\n        // so we leave it alone\n        return '|';\n      } else {\n        // add space before unescaped |\n        return ' |';\n      }\n    }),\n        cells = row.split(/ \\|/);\n    var i = 0;\n\n    if (cells.length > count) {\n      cells.splice(count);\n    } else {\n      while (cells.length < count) {\n        cells.push('');\n      }\n    }\n\n    for (; i < cells.length; i++) {\n      // leading or trailing whitespace is ignored per the gfm spec\n      cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n    }\n\n    return cells;\n  } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n  // /c*$/ is vulnerable to REDOS.\n  // invert: Remove suffix of non-c chars instead. Default falsey.\n\n\n  function rtrim(str, c, invert) {\n    var l = str.length;\n\n    if (l === 0) {\n      return '';\n    } // Length of suffix matching the invert condition.\n\n\n    var suffLen = 0; // Step left until we fail to match the invert condition.\n\n    while (suffLen < l) {\n      var currChar = str.charAt(l - suffLen - 1);\n\n      if (currChar === c && !invert) {\n        suffLen++;\n      } else if (currChar !== c && invert) {\n        suffLen++;\n      } else {\n        break;\n      }\n    }\n\n    return str.substr(0, l - suffLen);\n  }\n\n  function findClosingBracket(str, b) {\n    if (str.indexOf(b[1]) === -1) {\n      return -1;\n    }\n\n    var l = str.length;\n    var level = 0,\n        i = 0;\n\n    for (; i < l; i++) {\n      if (str[i] === '\\\\') {\n        i++;\n      } else if (str[i] === b[0]) {\n        level++;\n      } else if (str[i] === b[1]) {\n        level--;\n\n        if (level < 0) {\n          return i;\n        }\n      }\n    }\n\n    return -1;\n  }\n\n  function checkSanitizeDeprecation(opt) {\n    if (opt && opt.sanitize && !opt.silent) {\n      console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n    }\n  } // copied from https://stackoverflow.com/a/5450113/806777\n\n\n  function repeatString(pattern, count) {\n    if (count < 1) {\n      return '';\n    }\n\n    var result = '';\n\n    while (count > 1) {\n      if (count & 1) {\n        result += pattern;\n      }\n\n      count >>= 1;\n      pattern += pattern;\n    }\n\n    return result + pattern;\n  }\n\n  var helpers = {\n    escape: escape,\n    unescape: unescape,\n    edit: edit,\n    cleanUrl: cleanUrl,\n    resolveUrl: resolveUrl,\n    noopTest: noopTest,\n    merge: merge,\n    splitCells: splitCells,\n    rtrim: rtrim,\n    findClosingBracket: findClosingBracket,\n    checkSanitizeDeprecation: checkSanitizeDeprecation,\n    repeatString: repeatString\n  };\n\n  var defaults$1 = defaults.defaults;\n  var rtrim$1 = helpers.rtrim,\n      splitCells$1 = helpers.splitCells,\n      _escape = helpers.escape,\n      findClosingBracket$1 = helpers.findClosingBracket;\n\n  function outputLink(cap, link, raw) {\n    var href = link.href;\n    var title = link.title ? _escape(link.title) : null;\n    var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n    if (cap[0].charAt(0) !== '!') {\n      return {\n        type: 'link',\n        raw: raw,\n        href: href,\n        title: title,\n        text: text\n      };\n    } else {\n      return {\n        type: 'image',\n        raw: raw,\n        href: href,\n        title: title,\n        text: _escape(text)\n      };\n    }\n  }\n\n  function indentCodeCompensation(raw, text) {\n    var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n    if (matchIndentToCode === null) {\n      return text;\n    }\n\n    var indentToCode = matchIndentToCode[1];\n    return text.split('\\n').map(function (node) {\n      var matchIndentInNode = node.match(/^\\s+/);\n\n      if (matchIndentInNode === null) {\n        return node;\n      }\n\n      var indentInNode = matchIndentInNode[0];\n\n      if (indentInNode.length >= indentToCode.length) {\n        return node.slice(indentToCode.length);\n      }\n\n      return node;\n    }).join('\\n');\n  }\n  /**\n   * Tokenizer\n   */\n\n\n  var Tokenizer_1 = /*#__PURE__*/function () {\n    function Tokenizer(options) {\n      this.options = options || defaults$1;\n    }\n\n    var _proto = Tokenizer.prototype;\n\n    _proto.space = function space(src) {\n      var cap = this.rules.block.newline.exec(src);\n\n      if (cap) {\n        if (cap[0].length > 1) {\n          return {\n            type: 'space',\n            raw: cap[0]\n          };\n        }\n\n        return {\n          raw: '\\n'\n        };\n      }\n    };\n\n    _proto.code = function code(src) {\n      var cap = this.rules.block.code.exec(src);\n\n      if (cap) {\n        var text = cap[0].replace(/^ {1,4}/gm, '');\n        return {\n          type: 'code',\n          raw: cap[0],\n          codeBlockStyle: 'indented',\n          text: !this.options.pedantic ? rtrim$1(text, '\\n') : text\n        };\n      }\n    };\n\n    _proto.fences = function fences(src) {\n      var cap = this.rules.block.fences.exec(src);\n\n      if (cap) {\n        var raw = cap[0];\n        var text = indentCodeCompensation(raw, cap[3] || '');\n        return {\n          type: 'code',\n          raw: raw,\n          lang: cap[2] ? cap[2].trim() : cap[2],\n          text: text\n        };\n      }\n    };\n\n    _proto.heading = function heading(src) {\n      var cap = this.rules.block.heading.exec(src);\n\n      if (cap) {\n        var text = cap[2].trim(); // remove trailing #s\n\n        if (/#$/.test(text)) {\n          var trimmed = rtrim$1(text, '#');\n\n          if (this.options.pedantic) {\n            text = trimmed.trim();\n          } else if (!trimmed || / $/.test(trimmed)) {\n            // CommonMark requires space before trailing #s\n            text = trimmed.trim();\n          }\n        }\n\n        return {\n          type: 'heading',\n          raw: cap[0],\n          depth: cap[1].length,\n          text: text\n        };\n      }\n    };\n\n    _proto.nptable = function nptable(src) {\n      var cap = this.rules.block.nptable.exec(src);\n\n      if (cap) {\n        var item = {\n          type: 'table',\n          header: splitCells$1(cap[1].replace(/^ *| *\\| *$/g, '')),\n          align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n          cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : [],\n          raw: cap[0]\n        };\n\n        if (item.header.length === item.align.length) {\n          var l = item.align.length;\n          var i;\n\n          for (i = 0; i < l; i++) {\n            if (/^ *-+: *$/.test(item.align[i])) {\n              item.align[i] = 'right';\n            } else if (/^ *:-+: *$/.test(item.align[i])) {\n              item.align[i] = 'center';\n            } else if (/^ *:-+ *$/.test(item.align[i])) {\n              item.align[i] = 'left';\n            } else {\n              item.align[i] = null;\n            }\n          }\n\n          l = item.cells.length;\n\n          for (i = 0; i < l; i++) {\n            item.cells[i] = splitCells$1(item.cells[i], item.header.length);\n          }\n\n          return item;\n        }\n      }\n    };\n\n    _proto.hr = function hr(src) {\n      var cap = this.rules.block.hr.exec(src);\n\n      if (cap) {\n        return {\n          type: 'hr',\n          raw: cap[0]\n        };\n      }\n    };\n\n    _proto.blockquote = function blockquote(src) {\n      var cap = this.rules.block.blockquote.exec(src);\n\n      if (cap) {\n        var text = cap[0].replace(/^ *> ?/gm, '');\n        return {\n          type: 'blockquote',\n          raw: cap[0],\n          text: text\n        };\n      }\n    };\n\n    _proto.list = function list(src) {\n      var cap = this.rules.block.list.exec(src);\n\n      if (cap) {\n        var raw = cap[0];\n        var bull = cap[2];\n        var isordered = bull.length > 1;\n        var list = {\n          type: 'list',\n          raw: raw,\n          ordered: isordered,\n          start: isordered ? +bull.slice(0, -1) : '',\n          loose: false,\n          items: []\n        }; // Get each top-level item.\n\n        var itemMatch = cap[0].match(this.rules.block.item);\n        var next = false,\n            item,\n            space,\n            bcurr,\n            bnext,\n            addBack,\n            loose,\n            istask,\n            ischecked;\n        var l = itemMatch.length;\n        bcurr = this.rules.block.listItemStart.exec(itemMatch[0]);\n\n        for (var i = 0; i < l; i++) {\n          item = itemMatch[i];\n          raw = item; // Determine whether the next list item belongs here.\n          // Backpedal if it does not belong in this list.\n\n          if (i !== l - 1) {\n            bnext = this.rules.block.listItemStart.exec(itemMatch[i + 1]);\n\n            if (!this.options.pedantic ? bnext[1].length > bcurr[0].length || bnext[1].length > 3 : bnext[1].length > bcurr[1].length) {\n              // nested list\n              itemMatch.splice(i, 2, itemMatch[i] + '\\n' + itemMatch[i + 1]);\n              i--;\n              l--;\n              continue;\n            } else {\n              if ( // different bullet style\n              !this.options.pedantic || this.options.smartLists ? bnext[2][bnext[2].length - 1] !== bull[bull.length - 1] : isordered === (bnext[2].length === 1)) {\n                addBack = itemMatch.slice(i + 1).join('\\n');\n                list.raw = list.raw.substring(0, list.raw.length - addBack.length);\n                i = l - 1;\n              }\n            }\n\n            bcurr = bnext;\n          } // Remove the list item's bullet\n          // so it is seen as the next token.\n\n\n          space = item.length;\n          item = item.replace(/^ *([*+-]|\\d+[.)]) ?/, ''); // Outdent whatever the\n          // list item contains. Hacky.\n\n          if (~item.indexOf('\\n ')) {\n            space -= item.length;\n            item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '');\n          } // Determine whether item is loose or not.\n          // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n          // for discount behavior.\n\n\n          loose = next || /\\n\\n(?!\\s*$)/.test(item);\n\n          if (i !== l - 1) {\n            next = item.charAt(item.length - 1) === '\\n';\n            if (!loose) loose = next;\n          }\n\n          if (loose) {\n            list.loose = true;\n          } // Check for task list items\n\n\n          if (this.options.gfm) {\n            istask = /^\\[[ xX]\\] /.test(item);\n            ischecked = undefined;\n\n            if (istask) {\n              ischecked = item[1] !== ' ';\n              item = item.replace(/^\\[[ xX]\\] +/, '');\n            }\n          }\n\n          list.items.push({\n            type: 'list_item',\n            raw: raw,\n            task: istask,\n            checked: ischecked,\n            loose: loose,\n            text: item\n          });\n        }\n\n        return list;\n      }\n    };\n\n    _proto.html = function html(src) {\n      var cap = this.rules.block.html.exec(src);\n\n      if (cap) {\n        return {\n          type: this.options.sanitize ? 'paragraph' : 'html',\n          raw: cap[0],\n          pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n          text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n        };\n      }\n    };\n\n    _proto.def = function def(src) {\n      var cap = this.rules.block.def.exec(src);\n\n      if (cap) {\n        if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n        var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n        return {\n          tag: tag,\n          raw: cap[0],\n          href: cap[2],\n          title: cap[3]\n        };\n      }\n    };\n\n    _proto.table = function table(src) {\n      var cap = this.rules.block.table.exec(src);\n\n      if (cap) {\n        var item = {\n          type: 'table',\n          header: splitCells$1(cap[1].replace(/^ *| *\\| *$/g, '')),\n          align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n          cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n        };\n\n        if (item.header.length === item.align.length) {\n          item.raw = cap[0];\n          var l = item.align.length;\n          var i;\n\n          for (i = 0; i < l; i++) {\n            if (/^ *-+: *$/.test(item.align[i])) {\n              item.align[i] = 'right';\n            } else if (/^ *:-+: *$/.test(item.align[i])) {\n              item.align[i] = 'center';\n            } else if (/^ *:-+ *$/.test(item.align[i])) {\n              item.align[i] = 'left';\n            } else {\n              item.align[i] = null;\n            }\n          }\n\n          l = item.cells.length;\n\n          for (i = 0; i < l; i++) {\n            item.cells[i] = splitCells$1(item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''), item.header.length);\n          }\n\n          return item;\n        }\n      }\n    };\n\n    _proto.lheading = function lheading(src) {\n      var cap = this.rules.block.lheading.exec(src);\n\n      if (cap) {\n        return {\n          type: 'heading',\n          raw: cap[0],\n          depth: cap[2].charAt(0) === '=' ? 1 : 2,\n          text: cap[1]\n        };\n      }\n    };\n\n    _proto.paragraph = function paragraph(src) {\n      var cap = this.rules.block.paragraph.exec(src);\n\n      if (cap) {\n        return {\n          type: 'paragraph',\n          raw: cap[0],\n          text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1]\n        };\n      }\n    };\n\n    _proto.text = function text(src) {\n      var cap = this.rules.block.text.exec(src);\n\n      if (cap) {\n        return {\n          type: 'text',\n          raw: cap[0],\n          text: cap[0]\n        };\n      }\n    };\n\n    _proto.escape = function escape(src) {\n      var cap = this.rules.inline.escape.exec(src);\n\n      if (cap) {\n        return {\n          type: 'escape',\n          raw: cap[0],\n          text: _escape(cap[1])\n        };\n      }\n    };\n\n    _proto.tag = function tag(src, inLink, inRawBlock) {\n      var cap = this.rules.inline.tag.exec(src);\n\n      if (cap) {\n        if (!inLink && /^<a /i.test(cap[0])) {\n          inLink = true;\n        } else if (inLink && /^<\\/a>/i.test(cap[0])) {\n          inLink = false;\n        }\n\n        if (!inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n          inRawBlock = true;\n        } else if (inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n          inRawBlock = false;\n        }\n\n        return {\n          type: this.options.sanitize ? 'text' : 'html',\n          raw: cap[0],\n          inLink: inLink,\n          inRawBlock: inRawBlock,\n          text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n        };\n      }\n    };\n\n    _proto.link = function link(src) {\n      var cap = this.rules.inline.link.exec(src);\n\n      if (cap) {\n        var trimmedUrl = cap[2].trim();\n\n        if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n          // commonmark requires matching angle brackets\n          if (!/>$/.test(trimmedUrl)) {\n            return;\n          } // ending angle bracket cannot be escaped\n\n\n          var rtrimSlash = rtrim$1(trimmedUrl.slice(0, -1), '\\\\');\n\n          if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n            return;\n          }\n        } else {\n          // find closing parenthesis\n          var lastParenIndex = findClosingBracket$1(cap[2], '()');\n\n          if (lastParenIndex > -1) {\n            var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n            var linkLen = start + cap[1].length + lastParenIndex;\n            cap[2] = cap[2].substring(0, lastParenIndex);\n            cap[0] = cap[0].substring(0, linkLen).trim();\n            cap[3] = '';\n          }\n        }\n\n        var href = cap[2];\n        var title = '';\n\n        if (this.options.pedantic) {\n          // split pedantic href and title\n          var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n          if (link) {\n            href = link[1];\n            title = link[3];\n          }\n        } else {\n          title = cap[3] ? cap[3].slice(1, -1) : '';\n        }\n\n        href = href.trim();\n\n        if (/^</.test(href)) {\n          if (this.options.pedantic && !/>$/.test(trimmedUrl)) {\n            // pedantic allows starting angle bracket without ending angle bracket\n            href = href.slice(1);\n          } else {\n            href = href.slice(1, -1);\n          }\n        }\n\n        return outputLink(cap, {\n          href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n          title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n        }, cap[0]);\n      }\n    };\n\n    _proto.reflink = function reflink(src, links) {\n      var cap;\n\n      if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n        var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n        link = links[link.toLowerCase()];\n\n        if (!link || !link.href) {\n          var text = cap[0].charAt(0);\n          return {\n            type: 'text',\n            raw: text,\n            text: text\n          };\n        }\n\n        return outputLink(cap, link, cap[0]);\n      }\n    };\n\n    _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n      if (prevChar === void 0) {\n        prevChar = '';\n      }\n\n      var match = this.rules.inline.emStrong.lDelim.exec(src);\n      if (!match) return;\n      if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7BF\\uA7C2-\\uA7CA\\uA7F5-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDC00-\\uDD1E\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDD\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n      var nextChar = match[1] || match[2] || '';\n\n      if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n        var lLength = match[0].length - 1;\n        var rDelim,\n            rLength,\n            delimTotal = lLength,\n            midDelimTotal = 0;\n        var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n        endReg.lastIndex = 0;\n        maskedSrc = maskedSrc.slice(-1 * src.length + lLength); // Bump maskedSrc to same section of string as src (move to lexer?)\n\n        while ((match = endReg.exec(maskedSrc)) != null) {\n          rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n          if (!rDelim) continue; // matched the first alternative in rules.js (skip the * in __abc*abc__)\n\n          rLength = rDelim.length;\n\n          if (match[3] || match[4]) {\n            // found another Left Delim\n            delimTotal += rLength;\n            continue;\n          } else if (match[5] || match[6]) {\n            // either Left or Right Delim\n            if (lLength % 3 && !((lLength + rLength) % 3)) {\n              midDelimTotal += rLength;\n              continue; // CommonMark Emphasis Rules 9-10\n            }\n          }\n\n          delimTotal -= rLength;\n          if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n          // If this is the last rDelimiter, remove extra characters. *a*** -> *a*\n\n          if (delimTotal + midDelimTotal - rLength <= 0 && !maskedSrc.slice(endReg.lastIndex).match(endReg)) {\n            rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n          }\n\n          if (Math.min(lLength, rLength) % 2) {\n            return {\n              type: 'em',\n              raw: src.slice(0, lLength + match.index + rLength + 1),\n              text: src.slice(1, lLength + match.index + rLength)\n            };\n          }\n\n          if (Math.min(lLength, rLength) % 2 === 0) {\n            return {\n              type: 'strong',\n              raw: src.slice(0, lLength + match.index + rLength + 1),\n              text: src.slice(2, lLength + match.index + rLength - 1)\n            };\n          }\n        }\n      }\n    };\n\n    _proto.codespan = function codespan(src) {\n      var cap = this.rules.inline.code.exec(src);\n\n      if (cap) {\n        var text = cap[2].replace(/\\n/g, ' ');\n        var hasNonSpaceChars = /[^ ]/.test(text);\n        var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n        if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n          text = text.substring(1, text.length - 1);\n        }\n\n        text = _escape(text, true);\n        return {\n          type: 'codespan',\n          raw: cap[0],\n          text: text\n        };\n      }\n    };\n\n    _proto.br = function br(src) {\n      var cap = this.rules.inline.br.exec(src);\n\n      if (cap) {\n        return {\n          type: 'br',\n          raw: cap[0]\n        };\n      }\n    };\n\n    _proto.del = function del(src) {\n      var cap = this.rules.inline.del.exec(src);\n\n      if (cap) {\n        return {\n          type: 'del',\n          raw: cap[0],\n          text: cap[2]\n        };\n      }\n    };\n\n    _proto.autolink = function autolink(src, mangle) {\n      var cap = this.rules.inline.autolink.exec(src);\n\n      if (cap) {\n        var text, href;\n\n        if (cap[2] === '@') {\n          text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n          href = 'mailto:' + text;\n        } else {\n          text = _escape(cap[1]);\n          href = text;\n        }\n\n        return {\n          type: 'link',\n          raw: cap[0],\n          text: text,\n          href: href,\n          tokens: [{\n            type: 'text',\n            raw: text,\n            text: text\n          }]\n        };\n      }\n    };\n\n    _proto.url = function url(src, mangle) {\n      var cap;\n\n      if (cap = this.rules.inline.url.exec(src)) {\n        var text, href;\n\n        if (cap[2] === '@') {\n          text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n          href = 'mailto:' + text;\n        } else {\n          // do extended autolink path validation\n          var prevCapZero;\n\n          do {\n            prevCapZero = cap[0];\n            cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n          } while (prevCapZero !== cap[0]);\n\n          text = _escape(cap[0]);\n\n          if (cap[1] === 'www.') {\n            href = 'http://' + text;\n          } else {\n            href = text;\n          }\n        }\n\n        return {\n          type: 'link',\n          raw: cap[0],\n          text: text,\n          href: href,\n          tokens: [{\n            type: 'text',\n            raw: text,\n            text: text\n          }]\n        };\n      }\n    };\n\n    _proto.inlineText = function inlineText(src, inRawBlock, smartypants) {\n      var cap = this.rules.inline.text.exec(src);\n\n      if (cap) {\n        var text;\n\n        if (inRawBlock) {\n          text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];\n        } else {\n          text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n        }\n\n        return {\n          type: 'text',\n          raw: cap[0],\n          text: text\n        };\n      }\n    };\n\n    return Tokenizer;\n  }();\n\n  var noopTest$1 = helpers.noopTest,\n      edit$1 = helpers.edit,\n      merge$1 = helpers.merge;\n  /**\n   * Block-Level Grammar\n   */\n\n  var block = {\n    newline: /^(?: *(?:\\n|$))+/,\n    code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n    fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n    hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n    heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n    blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n    list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?! {0,3}bull )\\n*|\\s*$)/,\n    html: '^ {0,3}(?:' // optional indentation\n    + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n    + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n    + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n    + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n    + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n    + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n    + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n    + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n    + ')',\n    def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n    nptable: noopTest$1,\n    table: noopTest$1,\n    lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n    // regex template, placeholders will be replaced according to different paragraph\n    // interruption rules of commonmark and the original markdown spec:\n    _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n    text: /^[^\\n]+/\n  };\n  block._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\n  block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n  block.def = edit$1(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n  block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n  block.item = /^( *)(bull) ?[^\\n]*(?:\\n(?! *bull ?)[^\\n]*)*/;\n  block.item = edit$1(block.item, 'gm').replace(/bull/g, block.bullet).getRegex();\n  block.listItemStart = edit$1(/^( *)(bull)/).replace('bull', block.bullet).getRegex();\n  block.list = edit$1(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n  block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n  block._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\n  block.html = edit$1(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n  block.paragraph = edit$1(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n  .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n  .getRegex();\n  block.blockquote = edit$1(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n  /**\n   * Normal Block Grammar\n   */\n\n  block.normal = merge$1({}, block);\n  /**\n   * GFM Block Grammar\n   */\n\n  block.gfm = merge$1({}, block.normal, {\n    nptable: '^ *([^|\\\\n ].*\\\\|.*)\\\\n' // Header\n    + ' {0,3}([-:]+ *\\\\|[-| :]*)' // Align\n    + '(?:\\\\n((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)',\n    // Cells\n    table: '^ *\\\\|(.+)\\\\n' // Header\n    + ' {0,3}\\\\|?( *[-:]+[-| :]*)' // Align\n    + '(?:\\\\n *((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n  });\n  block.gfm.nptable = edit$1(block.gfm.nptable).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n  .getRegex();\n  block.gfm.table = edit$1(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n  .getRegex();\n  /**\n   * Pedantic grammar (original John Gruber's loose markdown specification)\n   */\n\n  block.pedantic = merge$1({}, block.normal, {\n    html: edit$1('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n    + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n    def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n    heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n    fences: noopTest$1,\n    // fences not supported\n    paragraph: edit$1(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n  });\n  /**\n   * Inline-Level Grammar\n   */\n\n  var inline = {\n    escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n    autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n    url: noopTest$1,\n    tag: '^comment' + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n    + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n    + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n    + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n    + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>',\n    // CDATA section\n    link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n    reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n    nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n    reflinkSearch: 'reflink|nolink(?!\\\\()',\n    emStrong: {\n      lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n      //        (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left.  (5) and (6) can be either Left or Right.\n      //        () Skip other delimiter (1) #***                (2) a***#, a***                   (3) #***a, ***a                 (4) ***#              (5) #***#                 (6) a***a\n      rDelimAst: /\\_\\_[^_]*?\\*[^_]*?\\_\\_|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n      rDelimUnd: /\\*\\*[^*]*?\\_[^*]*?\\*\\*|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n    },\n    code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n    br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n    del: noopTest$1,\n    text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n    punctuation: /^([\\spunctuation])/\n  }; // list of punctuation marks from CommonMark spec\n  // without * and _ to handle the different emphasis markers * and _\n\n  inline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\n  inline.punctuation = edit$1(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>\n\n  inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n  inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n  inline._comment = edit$1(block._comment).replace('(?:-->|$)', '-->').getRegex();\n  inline.emStrong.lDelim = edit$1(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n  inline.emStrong.rDelimAst = edit$1(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n  inline.emStrong.rDelimUnd = edit$1(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n  inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n  inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n  inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n  inline.autolink = edit$1(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n  inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n  inline.tag = edit$1(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n  inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n  inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n  inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n  inline.link = edit$1(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n  inline.reflink = edit$1(inline.reflink).replace('label', inline._label).getRegex();\n  inline.reflinkSearch = edit$1(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n  /**\n   * Normal Inline Grammar\n   */\n\n  inline.normal = merge$1({}, inline);\n  /**\n   * Pedantic Inline Grammar\n   */\n\n  inline.pedantic = merge$1({}, inline.normal, {\n    strong: {\n      start: /^__|\\*\\*/,\n      middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n      endAst: /\\*\\*(?!\\*)/g,\n      endUnd: /__(?!_)/g\n    },\n    em: {\n      start: /^_|\\*/,\n      middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n      endAst: /\\*(?!\\*)/g,\n      endUnd: /_(?!_)/g\n    },\n    link: edit$1(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n    reflink: edit$1(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n  });\n  /**\n   * GFM Inline Grammar\n   */\n\n  inline.gfm = merge$1({}, inline.normal, {\n    escape: edit$1(inline.escape).replace('])', '~|])').getRegex(),\n    _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n    url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n    _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n    del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n    text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n  });\n  inline.gfm.url = edit$1(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();\n  /**\n   * GFM + Line Breaks Inline Grammar\n   */\n\n  inline.breaks = merge$1({}, inline.gfm, {\n    br: edit$1(inline.br).replace('{2,}', '*').getRegex(),\n    text: edit$1(inline.gfm.text).replace('\\\\b_', '\\\\b_| {2,}\\\\n').replace(/\\{2,\\}/g, '*').getRegex()\n  });\n  var rules = {\n    block: block,\n    inline: inline\n  };\n\n  var defaults$2 = defaults.defaults;\n  var block$1 = rules.block,\n      inline$1 = rules.inline;\n  var repeatString$1 = helpers.repeatString;\n  /**\n   * smartypants text replacement\n   */\n\n  function smartypants(text) {\n    return text // em-dashes\n    .replace(/---/g, \"\\u2014\") // en-dashes\n    .replace(/--/g, \"\\u2013\") // opening singles\n    .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, \"$1\\u2018\") // closing singles & apostrophes\n    .replace(/'/g, \"\\u2019\") // opening doubles\n    .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, \"$1\\u201C\") // closing doubles\n    .replace(/\"/g, \"\\u201D\") // ellipses\n    .replace(/\\.{3}/g, \"\\u2026\");\n  }\n  /**\n   * mangle email addresses\n   */\n\n\n  function mangle(text) {\n    var out = '',\n        i,\n        ch;\n    var l = text.length;\n\n    for (i = 0; i < l; i++) {\n      ch = text.charCodeAt(i);\n\n      if (Math.random() > 0.5) {\n        ch = 'x' + ch.toString(16);\n      }\n\n      out += '&#' + ch + ';';\n    }\n\n    return out;\n  }\n  /**\n   * Block Lexer\n   */\n\n\n  var Lexer_1 = /*#__PURE__*/function () {\n    function Lexer(options) {\n      this.tokens = [];\n      this.tokens.links = Object.create(null);\n      this.options = options || defaults$2;\n      this.options.tokenizer = this.options.tokenizer || new Tokenizer_1();\n      this.tokenizer = this.options.tokenizer;\n      this.tokenizer.options = this.options;\n      var rules = {\n        block: block$1.normal,\n        inline: inline$1.normal\n      };\n\n      if (this.options.pedantic) {\n        rules.block = block$1.pedantic;\n        rules.inline = inline$1.pedantic;\n      } else if (this.options.gfm) {\n        rules.block = block$1.gfm;\n\n        if (this.options.breaks) {\n          rules.inline = inline$1.breaks;\n        } else {\n          rules.inline = inline$1.gfm;\n        }\n      }\n\n      this.tokenizer.rules = rules;\n    }\n    /**\n     * Expose Rules\n     */\n\n\n    /**\n     * Static Lex Method\n     */\n    Lexer.lex = function lex(src, options) {\n      var lexer = new Lexer(options);\n      return lexer.lex(src);\n    }\n    /**\n     * Static Lex Inline Method\n     */\n    ;\n\n    Lexer.lexInline = function lexInline(src, options) {\n      var lexer = new Lexer(options);\n      return lexer.inlineTokens(src);\n    }\n    /**\n     * Preprocessing\n     */\n    ;\n\n    var _proto = Lexer.prototype;\n\n    _proto.lex = function lex(src) {\n      src = src.replace(/\\r\\n|\\r/g, '\\n').replace(/\\t/g, '    ');\n      this.blockTokens(src, this.tokens, true);\n      this.inline(this.tokens);\n      return this.tokens;\n    }\n    /**\n     * Lexing\n     */\n    ;\n\n    _proto.blockTokens = function blockTokens(src, tokens, top) {\n      if (tokens === void 0) {\n        tokens = [];\n      }\n\n      if (top === void 0) {\n        top = true;\n      }\n\n      if (this.options.pedantic) {\n        src = src.replace(/^ +$/gm, '');\n      }\n\n      var token, i, l, lastToken;\n\n      while (src) {\n        // newline\n        if (token = this.tokenizer.space(src)) {\n          src = src.substring(token.raw.length);\n\n          if (token.type) {\n            tokens.push(token);\n          }\n\n          continue;\n        } // code\n\n\n        if (token = this.tokenizer.code(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n          if (lastToken && lastToken.type === 'paragraph') {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // fences\n\n\n        if (token = this.tokenizer.fences(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // heading\n\n\n        if (token = this.tokenizer.heading(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // table no leading pipe (gfm)\n\n\n        if (token = this.tokenizer.nptable(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // hr\n\n\n        if (token = this.tokenizer.hr(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // blockquote\n\n\n        if (token = this.tokenizer.blockquote(src)) {\n          src = src.substring(token.raw.length);\n          token.tokens = this.blockTokens(token.text, [], top);\n          tokens.push(token);\n          continue;\n        } // list\n\n\n        if (token = this.tokenizer.list(src)) {\n          src = src.substring(token.raw.length);\n          l = token.items.length;\n\n          for (i = 0; i < l; i++) {\n            token.items[i].tokens = this.blockTokens(token.items[i].text, [], false);\n          }\n\n          tokens.push(token);\n          continue;\n        } // html\n\n\n        if (token = this.tokenizer.html(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // def\n\n\n        if (top && (token = this.tokenizer.def(src))) {\n          src = src.substring(token.raw.length);\n\n          if (!this.tokens.links[token.tag]) {\n            this.tokens.links[token.tag] = {\n              href: token.href,\n              title: token.title\n            };\n          }\n\n          continue;\n        } // table (gfm)\n\n\n        if (token = this.tokenizer.table(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // lheading\n\n\n        if (token = this.tokenizer.lheading(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // top-level paragraph\n\n\n        if (top && (token = this.tokenizer.paragraph(src))) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // text\n\n\n        if (token = this.tokenizer.text(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && lastToken.type === 'text') {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        }\n\n        if (src) {\n          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n          if (this.options.silent) {\n            console.error(errMsg);\n            break;\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n\n      return tokens;\n    };\n\n    _proto.inline = function inline(tokens) {\n      var i, j, k, l2, row, token;\n      var l = tokens.length;\n\n      for (i = 0; i < l; i++) {\n        token = tokens[i];\n\n        switch (token.type) {\n          case 'paragraph':\n          case 'text':\n          case 'heading':\n            {\n              token.tokens = [];\n              this.inlineTokens(token.text, token.tokens);\n              break;\n            }\n\n          case 'table':\n            {\n              token.tokens = {\n                header: [],\n                cells: []\n              }; // header\n\n              l2 = token.header.length;\n\n              for (j = 0; j < l2; j++) {\n                token.tokens.header[j] = [];\n                this.inlineTokens(token.header[j], token.tokens.header[j]);\n              } // cells\n\n\n              l2 = token.cells.length;\n\n              for (j = 0; j < l2; j++) {\n                row = token.cells[j];\n                token.tokens.cells[j] = [];\n\n                for (k = 0; k < row.length; k++) {\n                  token.tokens.cells[j][k] = [];\n                  this.inlineTokens(row[k], token.tokens.cells[j][k]);\n                }\n              }\n\n              break;\n            }\n\n          case 'blockquote':\n            {\n              this.inline(token.tokens);\n              break;\n            }\n\n          case 'list':\n            {\n              l2 = token.items.length;\n\n              for (j = 0; j < l2; j++) {\n                this.inline(token.items[j].tokens);\n              }\n\n              break;\n            }\n        }\n      }\n\n      return tokens;\n    }\n    /**\n     * Lexing/Compiling\n     */\n    ;\n\n    _proto.inlineTokens = function inlineTokens(src, tokens, inLink, inRawBlock) {\n      if (tokens === void 0) {\n        tokens = [];\n      }\n\n      if (inLink === void 0) {\n        inLink = false;\n      }\n\n      if (inRawBlock === void 0) {\n        inRawBlock = false;\n      }\n\n      var token, lastToken; // String with links masked to avoid interference with em and strong\n\n      var maskedSrc = src;\n      var match;\n      var keepPrevChar, prevChar; // Mask out reflinks\n\n      if (this.tokens.links) {\n        var links = Object.keys(this.tokens.links);\n\n        if (links.length > 0) {\n          while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n            if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n              maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n            }\n          }\n        }\n      } // Mask out other blocks\n\n\n      while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n        maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n      } // Mask out escaped em & strong delimiters\n\n\n      while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n        maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n      }\n\n      while (src) {\n        if (!keepPrevChar) {\n          prevChar = '';\n        }\n\n        keepPrevChar = false; // escape\n\n        if (token = this.tokenizer.escape(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // tag\n\n\n        if (token = this.tokenizer.tag(src, inLink, inRawBlock)) {\n          src = src.substring(token.raw.length);\n          inLink = token.inLink;\n          inRawBlock = token.inRawBlock;\n          var _lastToken = tokens[tokens.length - 1];\n\n          if (_lastToken && token.type === 'text' && _lastToken.type === 'text') {\n            _lastToken.raw += token.raw;\n            _lastToken.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // link\n\n\n        if (token = this.tokenizer.link(src)) {\n          src = src.substring(token.raw.length);\n\n          if (token.type === 'link') {\n            token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n          }\n\n          tokens.push(token);\n          continue;\n        } // reflink, nolink\n\n\n        if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n          src = src.substring(token.raw.length);\n          var _lastToken2 = tokens[tokens.length - 1];\n\n          if (token.type === 'link') {\n            token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n            tokens.push(token);\n          } else if (_lastToken2 && token.type === 'text' && _lastToken2.type === 'text') {\n            _lastToken2.raw += token.raw;\n            _lastToken2.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // em & strong\n\n\n        if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n          src = src.substring(token.raw.length);\n          token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n          tokens.push(token);\n          continue;\n        } // code\n\n\n        if (token = this.tokenizer.codespan(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // br\n\n\n        if (token = this.tokenizer.br(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // del (gfm)\n\n\n        if (token = this.tokenizer.del(src)) {\n          src = src.substring(token.raw.length);\n          token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n          tokens.push(token);\n          continue;\n        } // autolink\n\n\n        if (token = this.tokenizer.autolink(src, mangle)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // url (gfm)\n\n\n        if (!inLink && (token = this.tokenizer.url(src, mangle))) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // text\n\n\n        if (token = this.tokenizer.inlineText(src, inRawBlock, smartypants)) {\n          src = src.substring(token.raw.length);\n\n          if (token.raw.slice(-1) !== '_') {\n            // Track prevChar before string of ____ started\n            prevChar = token.raw.slice(-1);\n          }\n\n          keepPrevChar = true;\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && lastToken.type === 'text') {\n            lastToken.raw += token.raw;\n            lastToken.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        }\n\n        if (src) {\n          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n          if (this.options.silent) {\n            console.error(errMsg);\n            break;\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n\n      return tokens;\n    };\n\n    _createClass(Lexer, null, [{\n      key: \"rules\",\n      get: function get() {\n        return {\n          block: block$1,\n          inline: inline$1\n        };\n      }\n    }]);\n\n    return Lexer;\n  }();\n\n  var defaults$3 = defaults.defaults;\n  var cleanUrl$1 = helpers.cleanUrl,\n      escape$1 = helpers.escape;\n  /**\n   * Renderer\n   */\n\n  var Renderer_1 = /*#__PURE__*/function () {\n    function Renderer(options) {\n      this.options = options || defaults$3;\n    }\n\n    var _proto = Renderer.prototype;\n\n    _proto.code = function code(_code, infostring, escaped) {\n      var lang = (infostring || '').match(/\\S*/)[0];\n\n      if (this.options.highlight) {\n        var out = this.options.highlight(_code, lang);\n\n        if (out != null && out !== _code) {\n          escaped = true;\n          _code = out;\n        }\n      }\n\n      _code = _code.replace(/\\n$/, '') + '\\n';\n\n      if (!lang) {\n        return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\\n';\n      }\n\n      return '<pre><code class=\"' + this.options.langPrefix + escape$1(lang, true) + '\">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\\n';\n    };\n\n    _proto.blockquote = function blockquote(quote) {\n      return '<blockquote>\\n' + quote + '</blockquote>\\n';\n    };\n\n    _proto.html = function html(_html) {\n      return _html;\n    };\n\n    _proto.heading = function heading(text, level, raw, slugger) {\n      if (this.options.headerIds) {\n        return '<h' + level + ' id=\"' + this.options.headerPrefix + slugger.slug(raw) + '\">' + text + '</h' + level + '>\\n';\n      } // ignore IDs\n\n\n      return '<h' + level + '>' + text + '</h' + level + '>\\n';\n    };\n\n    _proto.hr = function hr() {\n      return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n    };\n\n    _proto.list = function list(body, ordered, start) {\n      var type = ordered ? 'ol' : 'ul',\n          startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n      return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n    };\n\n    _proto.listitem = function listitem(text) {\n      return '<li>' + text + '</li>\\n';\n    };\n\n    _proto.checkbox = function checkbox(checked) {\n      return '<input ' + (checked ? 'checked=\"\" ' : '') + 'disabled=\"\" type=\"checkbox\"' + (this.options.xhtml ? ' /' : '') + '> ';\n    };\n\n    _proto.paragraph = function paragraph(text) {\n      return '<p>' + text + '</p>\\n';\n    };\n\n    _proto.table = function table(header, body) {\n      if (body) body = '<tbody>' + body + '</tbody>';\n      return '<table>\\n' + '<thead>\\n' + header + '</thead>\\n' + body + '</table>\\n';\n    };\n\n    _proto.tablerow = function tablerow(content) {\n      return '<tr>\\n' + content + '</tr>\\n';\n    };\n\n    _proto.tablecell = function tablecell(content, flags) {\n      var type = flags.header ? 'th' : 'td';\n      var tag = flags.align ? '<' + type + ' align=\"' + flags.align + '\">' : '<' + type + '>';\n      return tag + content + '</' + type + '>\\n';\n    } // span level renderer\n    ;\n\n    _proto.strong = function strong(text) {\n      return '<strong>' + text + '</strong>';\n    };\n\n    _proto.em = function em(text) {\n      return '<em>' + text + '</em>';\n    };\n\n    _proto.codespan = function codespan(text) {\n      return '<code>' + text + '</code>';\n    };\n\n    _proto.br = function br() {\n      return this.options.xhtml ? '<br/>' : '<br>';\n    };\n\n    _proto.del = function del(text) {\n      return '<del>' + text + '</del>';\n    };\n\n    _proto.link = function link(href, title, text) {\n      href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);\n\n      if (href === null) {\n        return text;\n      }\n\n      var out = '<a href=\"' + escape$1(href) + '\"';\n\n      if (title) {\n        out += ' title=\"' + title + '\"';\n      }\n\n      out += '>' + text + '</a>';\n      return out;\n    };\n\n    _proto.image = function image(href, title, text) {\n      href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);\n\n      if (href === null) {\n        return text;\n      }\n\n      var out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n\n      if (title) {\n        out += ' title=\"' + title + '\"';\n      }\n\n      out += this.options.xhtml ? '/>' : '>';\n      return out;\n    };\n\n    _proto.text = function text(_text) {\n      return _text;\n    };\n\n    return Renderer;\n  }();\n\n  /**\n   * TextRenderer\n   * returns only the textual part of the token\n   */\n  var TextRenderer_1 = /*#__PURE__*/function () {\n    function TextRenderer() {}\n\n    var _proto = TextRenderer.prototype;\n\n    // no need for block level renderers\n    _proto.strong = function strong(text) {\n      return text;\n    };\n\n    _proto.em = function em(text) {\n      return text;\n    };\n\n    _proto.codespan = function codespan(text) {\n      return text;\n    };\n\n    _proto.del = function del(text) {\n      return text;\n    };\n\n    _proto.html = function html(text) {\n      return text;\n    };\n\n    _proto.text = function text(_text) {\n      return _text;\n    };\n\n    _proto.link = function link(href, title, text) {\n      return '' + text;\n    };\n\n    _proto.image = function image(href, title, text) {\n      return '' + text;\n    };\n\n    _proto.br = function br() {\n      return '';\n    };\n\n    return TextRenderer;\n  }();\n\n  /**\n   * Slugger generates header id\n   */\n  var Slugger_1 = /*#__PURE__*/function () {\n    function Slugger() {\n      this.seen = {};\n    }\n\n    var _proto = Slugger.prototype;\n\n    _proto.serialize = function serialize(value) {\n      return value.toLowerCase().trim() // remove html tags\n      .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n      .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n    }\n    /**\n     * Finds the next safe (unique) slug to use\n     */\n    ;\n\n    _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n      var slug = originalSlug;\n      var occurenceAccumulator = 0;\n\n      if (this.seen.hasOwnProperty(slug)) {\n        occurenceAccumulator = this.seen[originalSlug];\n\n        do {\n          occurenceAccumulator++;\n          slug = originalSlug + '-' + occurenceAccumulator;\n        } while (this.seen.hasOwnProperty(slug));\n      }\n\n      if (!isDryRun) {\n        this.seen[originalSlug] = occurenceAccumulator;\n        this.seen[slug] = 0;\n      }\n\n      return slug;\n    }\n    /**\n     * Convert string to unique id\n     * @param {object} options\n     * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n     */\n    ;\n\n    _proto.slug = function slug(value, options) {\n      if (options === void 0) {\n        options = {};\n      }\n\n      var slug = this.serialize(value);\n      return this.getNextSafeSlug(slug, options.dryrun);\n    };\n\n    return Slugger;\n  }();\n\n  var defaults$4 = defaults.defaults;\n  var unescape$1 = helpers.unescape;\n  /**\n   * Parsing & Compiling\n   */\n\n  var Parser_1 = /*#__PURE__*/function () {\n    function Parser(options) {\n      this.options = options || defaults$4;\n      this.options.renderer = this.options.renderer || new Renderer_1();\n      this.renderer = this.options.renderer;\n      this.renderer.options = this.options;\n      this.textRenderer = new TextRenderer_1();\n      this.slugger = new Slugger_1();\n    }\n    /**\n     * Static Parse Method\n     */\n\n\n    Parser.parse = function parse(tokens, options) {\n      var parser = new Parser(options);\n      return parser.parse(tokens);\n    }\n    /**\n     * Static Parse Inline Method\n     */\n    ;\n\n    Parser.parseInline = function parseInline(tokens, options) {\n      var parser = new Parser(options);\n      return parser.parseInline(tokens);\n    }\n    /**\n     * Parse Loop\n     */\n    ;\n\n    var _proto = Parser.prototype;\n\n    _proto.parse = function parse(tokens, top) {\n      if (top === void 0) {\n        top = true;\n      }\n\n      var out = '',\n          i,\n          j,\n          k,\n          l2,\n          l3,\n          row,\n          cell,\n          header,\n          body,\n          token,\n          ordered,\n          start,\n          loose,\n          itemBody,\n          item,\n          checked,\n          task,\n          checkbox;\n      var l = tokens.length;\n\n      for (i = 0; i < l; i++) {\n        token = tokens[i];\n\n        switch (token.type) {\n          case 'space':\n            {\n              continue;\n            }\n\n          case 'hr':\n            {\n              out += this.renderer.hr();\n              continue;\n            }\n\n          case 'heading':\n            {\n              out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape$1(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n              continue;\n            }\n\n          case 'code':\n            {\n              out += this.renderer.code(token.text, token.lang, token.escaped);\n              continue;\n            }\n\n          case 'table':\n            {\n              header = ''; // header\n\n              cell = '';\n              l2 = token.header.length;\n\n              for (j = 0; j < l2; j++) {\n                cell += this.renderer.tablecell(this.parseInline(token.tokens.header[j]), {\n                  header: true,\n                  align: token.align[j]\n                });\n              }\n\n              header += this.renderer.tablerow(cell);\n              body = '';\n              l2 = token.cells.length;\n\n              for (j = 0; j < l2; j++) {\n                row = token.tokens.cells[j];\n                cell = '';\n                l3 = row.length;\n\n                for (k = 0; k < l3; k++) {\n                  cell += this.renderer.tablecell(this.parseInline(row[k]), {\n                    header: false,\n                    align: token.align[k]\n                  });\n                }\n\n                body += this.renderer.tablerow(cell);\n              }\n\n              out += this.renderer.table(header, body);\n              continue;\n            }\n\n          case 'blockquote':\n            {\n              body = this.parse(token.tokens);\n              out += this.renderer.blockquote(body);\n              continue;\n            }\n\n          case 'list':\n            {\n              ordered = token.ordered;\n              start = token.start;\n              loose = token.loose;\n              l2 = token.items.length;\n              body = '';\n\n              for (j = 0; j < l2; j++) {\n                item = token.items[j];\n                checked = item.checked;\n                task = item.task;\n                itemBody = '';\n\n                if (item.task) {\n                  checkbox = this.renderer.checkbox(checked);\n\n                  if (loose) {\n                    if (item.tokens.length > 0 && item.tokens[0].type === 'text') {\n                      item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n                      if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n                        item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n                      }\n                    } else {\n                      item.tokens.unshift({\n                        type: 'text',\n                        text: checkbox\n                      });\n                    }\n                  } else {\n                    itemBody += checkbox;\n                  }\n                }\n\n                itemBody += this.parse(item.tokens, loose);\n                body += this.renderer.listitem(itemBody, task, checked);\n              }\n\n              out += this.renderer.list(body, ordered, start);\n              continue;\n            }\n\n          case 'html':\n            {\n              // TODO parse inline content if parameter markdown=1\n              out += this.renderer.html(token.text);\n              continue;\n            }\n\n          case 'paragraph':\n            {\n              out += this.renderer.paragraph(this.parseInline(token.tokens));\n              continue;\n            }\n\n          case 'text':\n            {\n              body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n              while (i + 1 < l && tokens[i + 1].type === 'text') {\n                token = tokens[++i];\n                body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n              }\n\n              out += top ? this.renderer.paragraph(body) : body;\n              continue;\n            }\n\n          default:\n            {\n              var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n              if (this.options.silent) {\n                console.error(errMsg);\n                return;\n              } else {\n                throw new Error(errMsg);\n              }\n            }\n        }\n      }\n\n      return out;\n    }\n    /**\n     * Parse Inline Tokens\n     */\n    ;\n\n    _proto.parseInline = function parseInline(tokens, renderer) {\n      renderer = renderer || this.renderer;\n      var out = '',\n          i,\n          token;\n      var l = tokens.length;\n\n      for (i = 0; i < l; i++) {\n        token = tokens[i];\n\n        switch (token.type) {\n          case 'escape':\n            {\n              out += renderer.text(token.text);\n              break;\n            }\n\n          case 'html':\n            {\n              out += renderer.html(token.text);\n              break;\n            }\n\n          case 'link':\n            {\n              out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'image':\n            {\n              out += renderer.image(token.href, token.title, token.text);\n              break;\n            }\n\n          case 'strong':\n            {\n              out += renderer.strong(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'em':\n            {\n              out += renderer.em(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'codespan':\n            {\n              out += renderer.codespan(token.text);\n              break;\n            }\n\n          case 'br':\n            {\n              out += renderer.br();\n              break;\n            }\n\n          case 'del':\n            {\n              out += renderer.del(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'text':\n            {\n              out += renderer.text(token.text);\n              break;\n            }\n\n          default:\n            {\n              var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n              if (this.options.silent) {\n                console.error(errMsg);\n                return;\n              } else {\n                throw new Error(errMsg);\n              }\n            }\n        }\n      }\n\n      return out;\n    };\n\n    return Parser;\n  }();\n\n  var merge$2 = helpers.merge,\n      checkSanitizeDeprecation$1 = helpers.checkSanitizeDeprecation,\n      escape$2 = helpers.escape;\n  var getDefaults = defaults.getDefaults,\n      changeDefaults = defaults.changeDefaults,\n      defaults$5 = defaults.defaults;\n  /**\n   * Marked\n   */\n\n  function marked(src, opt, callback) {\n    // throw error in case of non string input\n    if (typeof src === 'undefined' || src === null) {\n      throw new Error('marked(): input parameter is undefined or null');\n    }\n\n    if (typeof src !== 'string') {\n      throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n    }\n\n    if (typeof opt === 'function') {\n      callback = opt;\n      opt = null;\n    }\n\n    opt = merge$2({}, marked.defaults, opt || {});\n    checkSanitizeDeprecation$1(opt);\n\n    if (callback) {\n      var highlight = opt.highlight;\n      var tokens;\n\n      try {\n        tokens = Lexer_1.lex(src, opt);\n      } catch (e) {\n        return callback(e);\n      }\n\n      var done = function done(err) {\n        var out;\n\n        if (!err) {\n          try {\n            out = Parser_1.parse(tokens, opt);\n          } catch (e) {\n            err = e;\n          }\n        }\n\n        opt.highlight = highlight;\n        return err ? callback(err) : callback(null, out);\n      };\n\n      if (!highlight || highlight.length < 3) {\n        return done();\n      }\n\n      delete opt.highlight;\n      if (!tokens.length) return done();\n      var pending = 0;\n      marked.walkTokens(tokens, function (token) {\n        if (token.type === 'code') {\n          pending++;\n          setTimeout(function () {\n            highlight(token.text, token.lang, function (err, code) {\n              if (err) {\n                return done(err);\n              }\n\n              if (code != null && code !== token.text) {\n                token.text = code;\n                token.escaped = true;\n              }\n\n              pending--;\n\n              if (pending === 0) {\n                done();\n              }\n            });\n          }, 0);\n        }\n      });\n\n      if (pending === 0) {\n        done();\n      }\n\n      return;\n    }\n\n    try {\n      var _tokens = Lexer_1.lex(src, opt);\n\n      if (opt.walkTokens) {\n        marked.walkTokens(_tokens, opt.walkTokens);\n      }\n\n      return Parser_1.parse(_tokens, opt);\n    } catch (e) {\n      e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n      if (opt.silent) {\n        return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';\n      }\n\n      throw e;\n    }\n  }\n  /**\n   * Options\n   */\n\n\n  marked.options = marked.setOptions = function (opt) {\n    merge$2(marked.defaults, opt);\n    changeDefaults(marked.defaults);\n    return marked;\n  };\n\n  marked.getDefaults = getDefaults;\n  marked.defaults = defaults$5;\n  /**\n   * Use Extension\n   */\n\n  marked.use = function (extension) {\n    var opts = merge$2({}, extension);\n\n    if (extension.renderer) {\n      (function () {\n        var renderer = marked.defaults.renderer || new Renderer_1();\n\n        var _loop = function _loop(prop) {\n          var prevRenderer = renderer[prop];\n\n          renderer[prop] = function () {\n            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n              args[_key] = arguments[_key];\n            }\n\n            var ret = extension.renderer[prop].apply(renderer, args);\n\n            if (ret === false) {\n              ret = prevRenderer.apply(renderer, args);\n            }\n\n            return ret;\n          };\n        };\n\n        for (var prop in extension.renderer) {\n          _loop(prop);\n        }\n\n        opts.renderer = renderer;\n      })();\n    }\n\n    if (extension.tokenizer) {\n      (function () {\n        var tokenizer = marked.defaults.tokenizer || new Tokenizer_1();\n\n        var _loop2 = function _loop2(prop) {\n          var prevTokenizer = tokenizer[prop];\n\n          tokenizer[prop] = function () {\n            for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n              args[_key2] = arguments[_key2];\n            }\n\n            var ret = extension.tokenizer[prop].apply(tokenizer, args);\n\n            if (ret === false) {\n              ret = prevTokenizer.apply(tokenizer, args);\n            }\n\n            return ret;\n          };\n        };\n\n        for (var prop in extension.tokenizer) {\n          _loop2(prop);\n        }\n\n        opts.tokenizer = tokenizer;\n      })();\n    }\n\n    if (extension.walkTokens) {\n      var walkTokens = marked.defaults.walkTokens;\n\n      opts.walkTokens = function (token) {\n        extension.walkTokens(token);\n\n        if (walkTokens) {\n          walkTokens(token);\n        }\n      };\n    }\n\n    marked.setOptions(opts);\n  };\n  /**\n   * Run callback for every token\n   */\n\n\n  marked.walkTokens = function (tokens, callback) {\n    for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n      var token = _step.value;\n      callback(token);\n\n      switch (token.type) {\n        case 'table':\n          {\n            for (var _iterator2 = _createForOfIteratorHelperLoose(token.tokens.header), _step2; !(_step2 = _iterator2()).done;) {\n              var cell = _step2.value;\n              marked.walkTokens(cell, callback);\n            }\n\n            for (var _iterator3 = _createForOfIteratorHelperLoose(token.tokens.cells), _step3; !(_step3 = _iterator3()).done;) {\n              var row = _step3.value;\n\n              for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n                var _cell = _step4.value;\n                marked.walkTokens(_cell, callback);\n              }\n            }\n\n            break;\n          }\n\n        case 'list':\n          {\n            marked.walkTokens(token.items, callback);\n            break;\n          }\n\n        default:\n          {\n            if (token.tokens) {\n              marked.walkTokens(token.tokens, callback);\n            }\n          }\n      }\n    }\n  };\n  /**\n   * Parse Inline\n   */\n\n\n  marked.parseInline = function (src, opt) {\n    // throw error in case of non string input\n    if (typeof src === 'undefined' || src === null) {\n      throw new Error('marked.parseInline(): input parameter is undefined or null');\n    }\n\n    if (typeof src !== 'string') {\n      throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n    }\n\n    opt = merge$2({}, marked.defaults, opt || {});\n    checkSanitizeDeprecation$1(opt);\n\n    try {\n      var tokens = Lexer_1.lexInline(src, opt);\n\n      if (opt.walkTokens) {\n        marked.walkTokens(tokens, opt.walkTokens);\n      }\n\n      return Parser_1.parseInline(tokens, opt);\n    } catch (e) {\n      e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n      if (opt.silent) {\n        return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';\n      }\n\n      throw e;\n    }\n  };\n  /**\n   * Expose\n   */\n\n\n  marked.Parser = Parser_1;\n  marked.parser = Parser_1.parse;\n  marked.Renderer = Renderer_1;\n  marked.TextRenderer = TextRenderer_1;\n  marked.Lexer = Lexer_1;\n  marked.lexer = Lexer_1.lex;\n  marked.Tokenizer = Tokenizer_1;\n  marked.Slugger = Slugger_1;\n  marked.parse = marked;\n  var marked_1 = marked;\n\n  return marked_1;\n\n})));\n"]}