Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • alexis.durgnat/homepage
  • orestis.malaspin/homepage
2 results
Select Git revision
  • master
  • team
  • trying_reveal
3 results
Show changes
Showing
with 0 additions and 2644 deletions
export const SLIDES_SELECTOR = '.slides section';
export const HORIZONTAL_SLIDES_SELECTOR = '.slides>section';
export const VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section';
// Methods that may not be invoked via the postMessage API
export const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;
// Regex for retrieving the fragment style from a class attribute
export const FRAGMENT_STYLE_REGEX = /fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;
\ No newline at end of file
const UA = navigator.userAgent;
const testElement = document.createElement( 'div' );
export const isMobile = /(iphone|ipod|ipad|android)/gi.test( UA ) ||
( navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 ); // iPadOS
export const isChrome = /chrome/i.test( UA ) && !/edge/i.test( UA );
export const isAndroid = /android/gi.test( UA );
// Flags if we should use zoom instead of transform to scale
// up slides. Zoom produces crisper results but has a lot of
// xbrowser quirks so we only use it in whitelisted browsers.
export const supportsZoom = 'zoom' in testElement.style && !isMobile &&
( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );
\ No newline at end of file
/**
* Loads a JavaScript file from the given URL and executes it.
*
* @param {string} url Address of the .js file to load
* @param {function} callback Method to invoke when the script
* has loaded and executed
*/
export const loadScript = ( url, callback ) => {
const script = document.createElement( 'script' );
script.type = 'text/javascript';
script.async = false;
script.defer = false;
script.src = url;
if( typeof callback === 'function' ) {
// Success callback
script.onload = script.onreadystatechange = event => {
if( event.type === 'load' || /loaded|complete/.test( script.readyState ) ) {
// Kill event listeners
script.onload = script.onreadystatechange = script.onerror = null;
callback();
}
};
// Error callback
script.onerror = err => {
// Kill event listeners
script.onload = script.onreadystatechange = script.onerror = null;
callback( new Error( 'Failed loading script: ' + script.src + '\n' + err ) );
};
}
// Append the script at the end of <head>
const head = document.querySelector( 'head' );
head.insertBefore( script, head.lastChild );
}
\ No newline at end of file
/**
* Extend object a with the properties of object b.
* If there's a conflict, object b takes precedence.
*
* @param {object} a
* @param {object} b
*/
export const extend = ( a, b ) => {
for( let i in b ) {
a[ i ] = b[ i ];
}
return a;
}
/**
* querySelectorAll but returns an Array.
*/
export const queryAll = ( el, selector ) => {
return Array.from( el.querySelectorAll( selector ) );
}
/**
* classList.toggle() with cross browser support
*/
export const toggleClass = ( el, className, value ) => {
if( value ) {
el.classList.add( className );
}
else {
el.classList.remove( className );
}
}
/**
* Utility for deserializing a value.
*
* @param {*} value
* @return {*}
*/
export const deserialize = ( value ) => {
if( typeof value === 'string' ) {
if( value === 'null' ) return null;
else if( value === 'true' ) return true;
else if( value === 'false' ) return false;
else if( value.match( /^-?[\d\.]+$/ ) ) return parseFloat( value );
}
return value;
}
/**
* Measures the distance in pixels between point a
* and point b.
*
* @param {object} a point with x/y properties
* @param {object} b point with x/y properties
*
* @return {number}
*/
export const distanceBetween = ( a, b ) => {
let dx = a.x - b.x,
dy = a.y - b.y;
return Math.sqrt( dx*dx + dy*dy );
}
/**
* Applies a CSS transform to the target element.
*
* @param {HTMLElement} element
* @param {string} transform
*/
export const transformElement = ( element, transform ) => {
element.style.transform = transform;
}
/**
* Element.matches with IE support.
*
* @param {HTMLElement} target The element to match
* @param {String} selector The CSS selector to match
* the element against
*
* @return {Boolean}
*/
export const matches = ( target, selector ) => {
let matchesMethod = target.matches || target.matchesSelector || target.msMatchesSelector;
return !!( matchesMethod && matchesMethod.call( target, selector ) );
}
/**
* Find the closest parent that matches the given
* selector.
*
* @param {HTMLElement} target The child element
* @param {String} selector The CSS selector to match
* the parents against
*
* @return {HTMLElement} The matched parent or null
* if no matching parent was found
*/
export const closest = ( target, selector ) => {
// Native Element.closest
if( typeof target.closest === 'function' ) {
return target.closest( selector );
}
// Polyfill
while( target ) {
if( matches( target, selector ) ) {
return target;
}
// Keep searching
target = target.parentNode;
}
return null;
}
/**
* Handling the fullscreen functionality via the fullscreen API
*
* @see http://fullscreen.spec.whatwg.org/
* @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode
*/
export const enterFullscreen = element => {
element = element || document.documentElement;
// Check which implementation is available
let requestMethod = element.requestFullscreen ||
element.webkitRequestFullscreen ||
element.webkitRequestFullScreen ||
element.mozRequestFullScreen ||
element.msRequestFullscreen;
if( requestMethod ) {
requestMethod.apply( element );
}
}
/**
* Creates an HTML element and returns a reference to it.
* If the element already exists the existing instance will
* be returned.
*
* @param {HTMLElement} container
* @param {string} tagname
* @param {string} classname
* @param {string} innerHTML
*
* @return {HTMLElement}
*/
export const createSingletonNode = ( container, tagname, classname, innerHTML='' ) => {
// Find all nodes matching the description
let nodes = container.querySelectorAll( '.' + classname );
// Check all matches to find one which is a direct child of
// the specified container
for( let i = 0; i < nodes.length; i++ ) {
let testNode = nodes[i];
if( testNode.parentNode === container ) {
return testNode;
}
}
// If no node was found, create it now
let node = document.createElement( tagname );
node.className = classname;
node.innerHTML = innerHTML;
container.appendChild( node );
return node;
}
/**
* Injects the given CSS styles into the DOM.
*
* @param {string} value
*/
export const createStyleSheet = ( value ) => {
let tag = document.createElement( 'style' );
tag.type = 'text/css';
if( value && value.length > 0 ) {
if( tag.styleSheet ) {
tag.styleSheet.cssText = value;
}
else {
tag.appendChild( document.createTextNode( value ) );
}
}
document.head.appendChild( tag );
return tag;
}
/**
* Returns a key:value hash of all query params.
*/
export const getQueryHash = () => {
let query = {};
location.search.replace( /[A-Z0-9]+?=([\w\.%-]*)/gi, a => {
query[ a.split( '=' ).shift() ] = a.split( '=' ).pop();
} );
// Basic deserialization
for( let i in query ) {
let value = query[ i ];
query[ i ] = deserialize( unescape( value ) );
}
// Do not accept new dependencies via query config to avoid
// the potential of malicious script injection
if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];
return query;
}
/**
* Returns the remaining height within the parent of the
* target element.
*
* remaining height = [ configured parent height ] - [ current parent height ]
*
* @param {HTMLElement} element
* @param {number} [height]
*/
export const getRemainingHeight = ( element, height = 0 ) => {
if( element ) {
let newHeight, oldHeight = element.style.height;
// Change the .stretch element height to 0 in order find the height of all
// the other elements
element.style.height = '0px';
// In Overview mode, the parent (.slide) height is set of 700px.
// Restore it temporarily to its natural height.
element.parentNode.style.height = 'auto';
newHeight = height - element.parentNode.offsetHeight;
// Restore the old height, just in case
element.style.height = oldHeight + 'px';
// Clear the parent (.slide) height. .removeProperty works in IE9+
element.parentNode.style.removeProperty('height');
return newHeight;
}
return height;
}
\ No newline at end of file
{
"name": "reveal.js",
"version": "4.1.0",
"description": "The HTML Presentation Framework",
"homepage": "https://revealjs.com",
"subdomain": "revealjs",
"main": "dist/reveal.js",
"module": "dist/reveal.esm.js",
"license": "MIT",
"scripts": {
"test": "gulp test",
"start": "gulp serve",
"build": "gulp"
},
"author": {
"name": "Hakim El Hattab",
"email": "hakim.elhattab@gmail.com",
"web": "https://hakim.se"
},
"repository": {
"type": "git",
"url": "git://github.com/hakimel/reveal.js.git"
},
"engines": {
"node": ">=10.0.0"
},
"keywords": [
"reveal",
"slides",
"presentation"
],
"devDependencies": {
"@babel/core": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@rollup/plugin-babel": "^5.2.0",
"@rollup/plugin-commonjs": "^15.0.0",
"@rollup/plugin-node-resolve": "^9.0.0",
"babel-eslint": "^10.1.0",
"babel-plugin-transform-html-import-to-string": "0.0.1",
"colors": "^1.4.0",
"core-js": "^3.6.5",
"fitty": "^2.3.0",
"glob": "^7.1.6",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^7.0.1",
"gulp-clean-css": "^4.2.0",
"gulp-connect": "^5.7.0",
"gulp-eslint": "^6.0.0",
"gulp-header": "^2.0.9",
"gulp-sass": "^4.0.2",
"gulp-tap": "^2.0.0",
"gulp-zip": "^5.0.1",
"highlight.js": "^10.0.3",
"marked": "^1.1.0",
"node-qunit-puppeteer": "^2.0.1",
"qunit": "^2.10.0",
"rollup": "^2.26.4",
"rollup-plugin-terser": "^7.0.0",
"yargs": "^15.1.0"
},
"browserslist": "> 0.5%, IE 11, not dead",
"eslintConfig": {
"env": {
"browser": true,
"es6": true
},
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"allowImportExportEverywhere": true
},
"globals": {
"module": false,
"console": false,
"unescape": false,
"define": false,
"exports": false
},
"rules": {
"curly": 0,
"eqeqeq": 2,
"wrap-iife": [
2,
"any"
],
"no-use-before-define": [
2,
{
"functions": false
}
],
"new-cap": 2,
"no-caller": 2,
"dot-notation": 0,
"no-eq-null": 2,
"no-unused-expressions": 0
}
}
}
Source diff could not be displayed: it is too large. Options to address this: view the blob.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
/*
Monokai style - ported by Luigi Maselli - http://grigio.org
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #272822;
color: #ddd;
}
.hljs-tag,
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-strong,
.hljs-name {
color: #f92672;
}
.hljs-code {
color: #66d9ef;
}
.hljs-class .hljs-title {
color: white;
}
.hljs-attribute,
.hljs-symbol,
.hljs-regexp,
.hljs-link {
color: #bf79db;
}
.hljs-string,
.hljs-bullet,
.hljs-subst,
.hljs-title,
.hljs-section,
.hljs-emphasis,
.hljs-type,
.hljs-built_in,
.hljs-builtin-name,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-addition,
.hljs-variable,
.hljs-template-tag,
.hljs-template-variable {
color: #a6e22e;
}
.hljs-comment,
.hljs-quote,
.hljs-deletion,
.hljs-meta {
color: #75715e;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-doctag,
.hljs-title,
.hljs-section,
.hljs-type,
.hljs-selector-id {
font-weight: bold;
}
import hljs from 'highlight.js'
/* highlightjs-line-numbers.js 2.6.0 | (C) 2018 Yauheni Pakala | MIT License | github.com/wcoder/highlightjs-line-numbers.js */
/* Edited by Hakim for reveal.js; removed async timeout */
!function(n,e){"use strict";function t(){var n=e.createElement("style");n.type="text/css",n.innerHTML=g(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[v,L,b]),e.getElementsByTagName("head")[0].appendChild(n)}function r(t){"interactive"===e.readyState||"complete"===e.readyState?i(t):n.addEventListener("DOMContentLoaded",function(){i(t)})}function i(t){try{var r=e.querySelectorAll("code.hljs,code.nohighlight");for(var i in r)r.hasOwnProperty(i)&&l(r[i],t)}catch(o){n.console.error("LineNumbers error: ",o)}}function l(n,e){"object"==typeof n&&f(function(){n.innerHTML=s(n,e)})}function o(n,e){if("string"==typeof n){var t=document.createElement("code");return t.innerHTML=n,s(t,e)}}function s(n,e){e=e||{singleLine:!1};var t=e.singleLine?0:1;return c(n),a(n.innerHTML,t)}function a(n,e){var t=u(n);if(""===t[t.length-1].trim()&&t.pop(),t.length>e){for(var r="",i=0,l=t.length;i<l;i++)r+=g('<tr><td class="{0}"><div class="{1} {2}" {3}="{5}"></div></td><td class="{4}"><div class="{1}">{6}</div></td></tr>',[j,m,L,b,p,i+1,t[i].length>0?t[i]:" "]);return g('<table class="{0}">{1}</table>',[v,r])}return n}function c(n){var e=n.childNodes;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];h(r.textContent)>0&&(r.childNodes.length>0?c(r):d(r.parentNode))}}function d(n){var e=n.className;if(/hljs-/.test(e)){for(var t=u(n.innerHTML),r=0,i="";r<t.length;r++){var l=t[r].length>0?t[r]:" ";i+=g('<span class="{0}">{1}</span>\n',[e,l])}n.innerHTML=i.trim()}}function u(n){return 0===n.length?[]:n.split(y)}function h(n){return(n.trim().match(y)||[]).length}function f(e){e()}function g(n,e){return n.replace(/\{(\d+)\}/g,function(n,t){return e[t]?e[t]:n})}var v="hljs-ln",m="hljs-ln-line",p="hljs-ln-code",j="hljs-ln-numbers",L="hljs-ln-n",b="data-line-number",y=/\r\n|\r|\n/g;hljs?(hljs.initLineNumbersOnLoad=r,hljs.lineNumbersBlock=l,hljs.lineNumbersValue=o,t()):n.console.error("highlight.js not detected!")}(window,document);
/*!
* reveal.js plugin that adds syntax highlight support.
*/
const Plugin = {
id: 'highlight',
HIGHLIGHT_STEP_DELIMITER: '|',
HIGHLIGHT_LINE_DELIMITER: ',',
HIGHLIGHT_LINE_RANGE_DELIMITER: '-',
hljs: hljs,
/**
* Highlights code blocks withing the given deck.
*
* Note that this can be called multiple times if
* there are multiple presentations on one page.
*
* @param {Reveal} reveal the reveal.js instance
*/
init: function( reveal ) {
// Read the plugin config options and provide fallbacks
var config = reveal.getConfig().highlight || {};
config.highlightOnLoad = typeof config.highlightOnLoad === 'boolean' ? config.highlightOnLoad : true;
config.escapeHTML = typeof config.escapeHTML === 'boolean' ? config.escapeHTML : true;
[].slice.call( reveal.getRevealElement().querySelectorAll( 'pre code' ) ).forEach( function( block ) {
// Code can optionally be wrapped in script template to avoid
// HTML being parsed by the browser (i.e. when you need to
// include <, > or & in your code).
let substitute = block.querySelector( 'script[type="text/template"]' );
if( substitute ) {
// textContent handles the HTML entity escapes for us
block.textContent = substitute.innerHTML;
}
// Trim whitespace if the "data-trim" attribute is present
if( block.hasAttribute( 'data-trim' ) && typeof block.innerHTML.trim === 'function' ) {
block.innerHTML = betterTrim( block );
}
// Escape HTML tags unless the "data-noescape" attrbute is present
if( config.escapeHTML && !block.hasAttribute( 'data-noescape' )) {
block.innerHTML = block.innerHTML.replace( /</g,"&lt;").replace(/>/g, '&gt;' );
}
// Re-highlight when focus is lost (for contenteditable code)
block.addEventListener( 'focusout', function( event ) {
hljs.highlightBlock( event.currentTarget );
}, false );
if( config.highlightOnLoad ) {
Plugin.highlightBlock( block );
}
} );
// If we're printing to PDF, scroll the code highlights of
// all blocks in the deck into view at once
reveal.on( 'pdf-ready', function() {
[].slice.call( reveal.getRevealElement().querySelectorAll( 'pre code[data-line-numbers].current-fragment' ) ).forEach( function( block ) {
Plugin.scrollHighlightedLineIntoView( block, {}, true );
} );
} );
},
/**
* Highlights a code block. If the <code> node has the
* 'data-line-numbers' attribute we also generate slide
* numbers.
*
* If the block contains multiple line highlight steps,
* we clone the block and create a fragment for each step.
*/
highlightBlock: function( block ) {
hljs.highlightBlock( block );
// Don't generate line numbers for empty code blocks
if( block.innerHTML.trim().length === 0 ) return;
if( block.hasAttribute( 'data-line-numbers' ) ) {
hljs.lineNumbersBlock( block, { singleLine: true } );
var scrollState = { currentBlock: block };
// If there is at least one highlight step, generate
// fragments
var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) );
if( highlightSteps.length > 1 ) {
// If the original code block has a fragment-index,
// each clone should follow in an incremental sequence
var fragmentIndex = parseInt( block.getAttribute( 'data-fragment-index' ), 10 );
if( typeof fragmentIndex !== 'number' || isNaN( fragmentIndex ) ) {
fragmentIndex = null;
}
// Generate fragments for all steps except the original block
highlightSteps.slice(1).forEach( function( highlight ) {
var fragmentBlock = block.cloneNode( true );
fragmentBlock.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlight ] ) );
fragmentBlock.classList.add( 'fragment' );
block.parentNode.appendChild( fragmentBlock );
Plugin.highlightLines( fragmentBlock );
if( typeof fragmentIndex === 'number' ) {
fragmentBlock.setAttribute( 'data-fragment-index', fragmentIndex );
fragmentIndex += 1;
}
else {
fragmentBlock.removeAttribute( 'data-fragment-index' );
}
// Scroll highlights into view as we step through them
fragmentBlock.addEventListener( 'visible', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock, scrollState ) );
fragmentBlock.addEventListener( 'hidden', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock.previousSibling, scrollState ) );
} );
block.removeAttribute( 'data-fragment-index' )
block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) );
}
// Scroll the first highlight into view when the slide
// becomes visible. Note supported in IE11 since it lacks
// support for Element.closest.
var slide = typeof block.closest === 'function' ? block.closest( 'section:not(.stack)' ) : null;
if( slide ) {
var scrollFirstHighlightIntoView = function() {
Plugin.scrollHighlightedLineIntoView( block, scrollState, true );
slide.removeEventListener( 'visible', scrollFirstHighlightIntoView );
}
slide.addEventListener( 'visible', scrollFirstHighlightIntoView );
}
Plugin.highlightLines( block );
}
},
/**
* Animates scrolling to the first highlighted line
* in the given code block.
*/
scrollHighlightedLineIntoView: function( block, scrollState, skipAnimation ) {
cancelAnimationFrame( scrollState.animationFrameID );
// Match the scroll position of the currently visible
// code block
if( scrollState.currentBlock ) {
block.scrollTop = scrollState.currentBlock.scrollTop;
}
// Remember the current code block so that we can match
// its scroll position when showing/hiding fragments
scrollState.currentBlock = block;
var highlightBounds = this.getHighlightedLineBounds( block )
var viewportHeight = block.offsetHeight;
// Subtract padding from the viewport height
var blockStyles = getComputedStyle( block );
viewportHeight -= parseInt( blockStyles.paddingTop ) + parseInt( blockStyles.paddingBottom );
// Scroll position which centers all highlights
var startTop = block.scrollTop;
var targetTop = highlightBounds.top + ( Math.min( highlightBounds.bottom - highlightBounds.top, viewportHeight ) - viewportHeight ) / 2;
// Account for offsets in position applied to the
// <table> that holds our lines of code
var lineTable = block.querySelector( '.hljs-ln' );
if( lineTable ) targetTop += lineTable.offsetTop - parseInt( blockStyles.paddingTop );
// Make sure the scroll target is within bounds
targetTop = Math.max( Math.min( targetTop, block.scrollHeight - viewportHeight ), 0 );
if( skipAnimation === true || startTop === targetTop ) {
block.scrollTop = targetTop;
}
else {
// Don't attempt to scroll if there is no overflow
if( block.scrollHeight <= viewportHeight ) return;
var time = 0;
var animate = function() {
time = Math.min( time + 0.02, 1 );
// Update our eased scroll position
block.scrollTop = startTop + ( targetTop - startTop ) * Plugin.easeInOutQuart( time );
// Keep animating unless we've reached the end
if( time < 1 ) {
scrollState.animationFrameID = requestAnimationFrame( animate );
}
};
animate();
}
},
/**
* The easing function used when scrolling.
*/
easeInOutQuart: function( t ) {
// easeInOutQuart
return t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t;
},
getHighlightedLineBounds: function( block ) {
var highlightedLines = block.querySelectorAll( '.highlight-line' );
if( highlightedLines.length === 0 ) {
return { top: 0, bottom: 0 };
}
else {
var firstHighlight = highlightedLines[0];
var lastHighlight = highlightedLines[ highlightedLines.length -1 ];
return {
top: firstHighlight.offsetTop,
bottom: lastHighlight.offsetTop + lastHighlight.offsetHeight
}
}
},
/**
* Visually emphasize specific lines within a code block.
* This only works on blocks with line numbering turned on.
*
* @param {HTMLElement} block a <code> block
* @param {String} [linesToHighlight] The lines that should be
* highlighted in this format:
* "1" = highlights line 1
* "2,5" = highlights lines 2 & 5
* "2,5-7" = highlights lines 2, 5, 6 & 7
*/
highlightLines: function( block, linesToHighlight ) {
var highlightSteps = Plugin.deserializeHighlightSteps( linesToHighlight || block.getAttribute( 'data-line-numbers' ) );
if( highlightSteps.length ) {
highlightSteps[0].forEach( function( highlight ) {
var elementsToHighlight = [];
// Highlight a range
if( typeof highlight.end === 'number' ) {
elementsToHighlight = [].slice.call( block.querySelectorAll( 'table tr:nth-child(n+'+highlight.start+'):nth-child(-n+'+highlight.end+')' ) );
}
// Highlight a single line
else if( typeof highlight.start === 'number' ) {
elementsToHighlight = [].slice.call( block.querySelectorAll( 'table tr:nth-child('+highlight.start+')' ) );
}
if( elementsToHighlight.length ) {
elementsToHighlight.forEach( function( lineElement ) {
lineElement.classList.add( 'highlight-line' );
} );
block.classList.add( 'has-highlights' );
}
} );
}
},
/**
* Parses and formats a user-defined string of line
* numbers to highlight.
*
* @example
* Plugin.deserializeHighlightSteps( '1,2|3,5-10' )
* // [
* // [ { start: 1 }, { start: 2 } ],
* // [ { start: 3 }, { start: 5, end: 10 } ]
* // ]
*/
deserializeHighlightSteps: function( highlightSteps ) {
// Remove whitespace
highlightSteps = highlightSteps.replace( /\s/g, '' );
// Divide up our line number groups
highlightSteps = highlightSteps.split( Plugin.HIGHLIGHT_STEP_DELIMITER );
return highlightSteps.map( function( highlights ) {
return highlights.split( Plugin.HIGHLIGHT_LINE_DELIMITER ).map( function( highlight ) {
// Parse valid line numbers
if( /^[\d-]+$/.test( highlight ) ) {
highlight = highlight.split( Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER );
var lineStart = parseInt( highlight[0], 10 ),
lineEnd = parseInt( highlight[1], 10 );
if( isNaN( lineEnd ) ) {
return {
start: lineStart
};
}
else {
return {
start: lineStart,
end: lineEnd
};
}
}
// If no line numbers are provided, no code will be highlighted
else {
return {};
}
} );
} );
},
/**
* Serializes parsed line number data into a string so
* that we can store it in the DOM.
*/
serializeHighlightSteps: function( highlightSteps ) {
return highlightSteps.map( function( highlights ) {
return highlights.map( function( highlight ) {
// Line range
if( typeof highlight.end === 'number' ) {
return highlight.start + Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER + highlight.end;
}
// Single line
else if( typeof highlight.start === 'number' ) {
return highlight.start;
}
// All lines
else {
return '';
}
} ).join( Plugin.HIGHLIGHT_LINE_DELIMITER );
} ).join( Plugin.HIGHLIGHT_STEP_DELIMITER );
}
}
// Function to perform a better "data-trim" on code snippets
// Will slice an indentation amount on each line of the snippet (amount based on the line having the lowest indentation length)
function betterTrim(snippetEl) {
// Helper functions
function trimLeft(val) {
// Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
return val.replace(/^[\s\uFEFF\xA0]+/g, '');
}
function trimLineBreaks(input) {
var lines = input.split('\n');
// Trim line-breaks from the beginning
for (var i = 0; i < lines.length; i++) {
if (lines[i].trim() === '') {
lines.splice(i--, 1);
} else break;
}
// Trim line-breaks from the end
for (var i = lines.length-1; i >= 0; i--) {
if (lines[i].trim() === '') {
lines.splice(i, 1);
} else break;
}
return lines.join('\n');
}
// Main function for betterTrim()
return (function(snippetEl) {
var content = trimLineBreaks(snippetEl.innerHTML);
var lines = content.split('\n');
// Calculate the minimum amount to remove on each line start of the snippet (can be 0)
var pad = lines.reduce(function(acc, line) {
if (line.length > 0 && trimLeft(line).length > 0 && acc > line.length - trimLeft(line).length) {
return line.length - trimLeft(line).length;
}
return acc;
}, Number.POSITIVE_INFINITY);
// Slice each line with this amount
return lines.map(function(line, index) {
return line.slice(pad);
})
.join('\n');
})(snippetEl);
}
export default () => Plugin;
/*
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
based on dark.css by Ivan Sagalaev
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #3f3f3f;
color: #dcdcdc;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-tag {
color: #e3ceab;
}
.hljs-template-tag {
color: #dcdcdc;
}
.hljs-number {
color: #8cd0d3;
}
.hljs-variable,
.hljs-template-variable,
.hljs-attribute {
color: #efdcbc;
}
.hljs-literal {
color: #efefaf;
}
.hljs-subst {
color: #8f8f8f;
}
.hljs-title,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-section,
.hljs-type {
color: #efef8f;
}
.hljs-symbol,
.hljs-bullet,
.hljs-link {
color: #dca3a3;
}
.hljs-deletion,
.hljs-string,
.hljs-built_in,
.hljs-builtin-name {
color: #cc9393;
}
.hljs-addition,
.hljs-comment,
.hljs-quote,
.hljs-meta {
color: #7f9f7f;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var n=function(e){return e&&e.Math==Math&&e},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},o=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,s={f:l&&!a.call({1:2},1)?function(e){var t=l(this,e);return!!t&&t.enumerable}:a},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},u={}.toString,f=function(e){return u.call(e).slice(8,-1)},h="".split,p=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==f(e)?h.call(e,""):Object(e)}:Object,g=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},d=function(e){return p(g(e))},v=function(e){return"object"==typeof e?null!==e:"function"==typeof e},y=function(e,t){if(!v(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!v(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},b={}.hasOwnProperty,m=function(e,t){return b.call(e,t)},k=r.document,x=v(k)&&v(k.createElement),w=function(e){return x?k.createElement(e):{}},S=!o&&!i((function(){return 7!=Object.defineProperty(w("div"),"a",{get:function(){return 7}}).a})),_=Object.getOwnPropertyDescriptor,E={f:o?_:function(e,t){if(e=d(e),t=y(t,!0),S)try{return _(e,t)}catch(e){}if(m(e,t))return c(!s.f.call(e,t),e[t])}},A=function(e){if(!v(e))throw TypeError(String(e)+" is not an object");return e},T=Object.defineProperty,O={f:o?T:function(e,t,n){if(A(e),t=y(t,!0),A(n),S)try{return T(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},R=o?function(e,t,n){return O.f(e,t,c(1,n))}:function(e,t,n){return e[t]=n,e},j=function(e,t){try{R(r,e,t)}catch(n){r[e]=t}return t},z=r["__core-js_shared__"]||j("__core-js_shared__",{}),$=Function.toString;"function"!=typeof z.inspectSource&&(z.inspectSource=function(e){return $.call(e)});var P,I,C,L=z.inspectSource,M=r.WeakMap,N="function"==typeof M&&/native code/.test(L(M)),q=t((function(e){(e.exports=function(e,t){return z[e]||(z[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),D=0,U=Math.random(),Z=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++D+U).toString(36)},F=q("keys"),G=function(e){return F[e]||(F[e]=Z(e))},H={},W=r.WeakMap;if(N){var B=new W,V=B.get,K=B.has,X=B.set;P=function(e,t){return X.call(B,e,t),t},I=function(e){return V.call(B,e)||{}},C=function(e){return K.call(B,e)}}else{var Y=G("state");H[Y]=!0,P=function(e,t){return R(e,Y,t),t},I=function(e){return m(e,Y)?e[Y]:{}},C=function(e){return m(e,Y)}}var J,Q,ee={set:P,get:I,has:C,enforce:function(e){return C(e)?I(e):P(e,{})},getterFor:function(e){return function(t){var n;if(!v(t)||(n=I(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},te=t((function(e){var t=ee.get,n=ee.enforce,i=String(String).split("String");(e.exports=function(e,t,o,a){var l=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof o&&("string"!=typeof t||m(o,"name")||R(o,"name",t),n(o).source=i.join("string"==typeof t?t:"")),e!==r?(l?!c&&e[t]&&(s=!0):delete e[t],s?e[t]=o:R(e,t,o)):s?e[t]=o:j(t,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||L(this)}))})),ne=r,re=function(e){return"function"==typeof e?e:void 0},ie=function(e,t){return arguments.length<2?re(ne[e])||re(r[e]):ne[e]&&ne[e][t]||r[e]&&r[e][t]},oe=Math.ceil,ae=Math.floor,le=function(e){return isNaN(e=+e)?0:(e>0?ae:oe)(e)},se=Math.min,ce=function(e){return e>0?se(le(e),9007199254740991):0},ue=Math.max,fe=Math.min,he=function(e,t){var n=le(e);return n<0?ue(n+t,0):fe(n,t)},pe=function(e){return function(t,n,r){var i,o=d(t),a=ce(o.length),l=he(r,a);if(e&&n!=n){for(;a>l;)if((i=o[l++])!=i)return!0}else for(;a>l;l++)if((e||l in o)&&o[l]===n)return e||l||0;return!e&&-1}},ge={includes:pe(!0),indexOf:pe(!1)},de=ge.indexOf,ve=function(e,t){var n,r=d(e),i=0,o=[];for(n in r)!m(H,n)&&m(r,n)&&o.push(n);for(;t.length>i;)m(r,n=t[i++])&&(~de(o,n)||o.push(n));return o},ye=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],be=ye.concat("length","prototype"),me={f:Object.getOwnPropertyNames||function(e){return ve(e,be)}},ke={f:Object.getOwnPropertySymbols},xe=ie("Reflect","ownKeys")||function(e){var t=me.f(A(e)),n=ke.f;return n?t.concat(n(e)):t},we=function(e,t){for(var n=xe(t),r=O.f,i=E.f,o=0;o<n.length;o++){var a=n[o];m(e,a)||r(e,a,i(t,a))}},Se=/#|\.prototype\./,_e=function(e,t){var n=Ae[Ee(e)];return n==Oe||n!=Te&&("function"==typeof t?i(t):!!t)},Ee=_e.normalize=function(e){return String(e).replace(Se,".").toLowerCase()},Ae=_e.data={},Te=_e.NATIVE="N",Oe=_e.POLYFILL="P",Re=_e,je=E.f,ze=function(e,t){var n,i,o,a,l,s=e.target,c=e.global,u=e.stat;if(n=c?r:u?r[s]||j(s,{}):(r[s]||{}).prototype)for(i in t){if(a=t[i],o=e.noTargetGet?(l=je(n,i))&&l.value:n[i],!Re(c?i:s+(u?".":"#")+i,e.forced)&&void 0!==o){if(typeof a==typeof o)continue;we(a,o)}(e.sham||o&&o.sham)&&R(a,"sham",!0),te(n,i,a,e)}},$e=Array.isArray||function(e){return"Array"==f(e)},Pe=function(e){return Object(g(e))},Ie=function(e,t,n){var r=y(t);r in e?O.f(e,r,c(0,n)):e[r]=n},Ce=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Le=Ce&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Me=q("wks"),Ne=r.Symbol,qe=Le?Ne:Ne&&Ne.withoutSetter||Z,De=function(e){return m(Me,e)||(Ce&&m(Ne,e)?Me[e]=Ne[e]:Me[e]=qe("Symbol."+e)),Me[e]},Ue=De("species"),Ze=function(e,t){var n;return $e(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!$e(n.prototype)?v(n)&&null===(n=n[Ue])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Fe=ie("navigator","userAgent")||"",Ge=r.process,He=Ge&&Ge.versions,We=He&&He.v8;We?Q=(J=We.split("."))[0]+J[1]:Fe&&(!(J=Fe.match(/Edge\/(\d+)/))||J[1]>=74)&&(J=Fe.match(/Chrome\/(\d+)/))&&(Q=J[1]);var Be=Q&&+Q,Ve=De("species"),Ke=function(e){return Be>=51||!i((function(){var t=[];return(t.constructor={})[Ve]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Xe=De("isConcatSpreadable"),Ye=Be>=51||!i((function(){var e=[];return e[Xe]=!1,e.concat()[0]!==e})),Je=Ke("concat"),Qe=function(e){if(!v(e))return!1;var t=e[Xe];return void 0!==t?!!t:$e(e)};ze({target:"Array",proto:!0,forced:!Ye||!Je},{concat:function(e){var t,n,r,i,o,a=Pe(this),l=Ze(a,0),s=0;for(t=-1,r=arguments.length;t<r;t++)if(Qe(o=-1===t?a:arguments[t])){if(s+(i=ce(o.length))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n<i;n++,s++)n in o&&Ie(l,s,o[n])}else{if(s>=9007199254740991)throw TypeError("Maximum allowed index exceeded");Ie(l,s++,o)}return l.length=s,l}});var et=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},tt=function(e,t,n){if(et(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},nt=[].push,rt=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,o=6==e,a=5==e||o;return function(l,s,c,u){for(var f,h,g=Pe(l),d=p(g),v=tt(s,c,3),y=ce(d.length),b=0,m=u||Ze,k=t?m(l,y):n?m(l,0):void 0;y>b;b++)if((a||b in d)&&(h=v(f=d[b],b,g),e))if(t)k[b]=h;else if(h)switch(e){case 3:return!0;case 5:return f;case 6:return b;case 2:nt.call(k,f)}else if(i)return!1;return o?-1:r||i?i:k}},it={forEach:rt(0),map:rt(1),filter:rt(2),some:rt(3),every:rt(4),find:rt(5),findIndex:rt(6)},ot=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){throw 1},1)}))},at=Object.defineProperty,lt={},st=function(e){throw e},ct=function(e,t){if(m(lt,e))return lt[e];t||(t={});var n=[][e],r=!!m(t,"ACCESSORS")&&t.ACCESSORS,a=m(t,0)?t[0]:st,l=m(t,1)?t[1]:void 0;return lt[e]=!!n&&!i((function(){if(r&&!o)return!0;var e={length:-1};r?at(e,1,{enumerable:!0,get:st}):e[1]=1,n.call(e,a,l)}))},ut=it.forEach,ft=ot("forEach"),ht=ct("forEach"),pt=ft&&ht?[].forEach:function(e){return ut(this,e,arguments.length>1?arguments[1]:void 0)};ze({target:"Array",proto:!0,forced:[].forEach!=pt},{forEach:pt});var gt,dt=Object.keys||function(e){return ve(e,ye)},vt=o?Object.defineProperties:function(e,t){A(e);for(var n,r=dt(t),i=r.length,o=0;i>o;)O.f(e,n=r[o++],t[n]);return e},yt=ie("document","documentElement"),bt=G("IE_PROTO"),mt=function(){},kt=function(e){return"<script>"+e+"<\/script>"},xt=function(){try{gt=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t;xt=gt?function(e){e.write(kt("")),e.close();var t=e.parentWindow.Object;return e=null,t}(gt):((t=w("iframe")).style.display="none",yt.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(kt("document.F=Object")),e.close(),e.F);for(var n=ye.length;n--;)delete xt.prototype[ye[n]];return xt()};H[bt]=!0;var wt=Object.create||function(e,t){var n;return null!==e?(mt.prototype=A(e),n=new mt,mt.prototype=null,n[bt]=e):n=xt(),void 0===t?n:vt(n,t)},St=De("unscopables"),_t=Array.prototype;null==_t[St]&&O.f(_t,St,{configurable:!0,value:wt(null)});var Et,At,Tt,Ot=function(e){_t[St][e]=!0},Rt={},jt=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),zt=G("IE_PROTO"),$t=Object.prototype,Pt=jt?Object.getPrototypeOf:function(e){return e=Pe(e),m(e,zt)?e[zt]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?$t:null},It=De("iterator"),Ct=!1;[].keys&&("next"in(Tt=[].keys())?(At=Pt(Pt(Tt)))!==Object.prototype&&(Et=At):Ct=!0),null==Et&&(Et={}),m(Et,It)||R(Et,It,(function(){return this}));var Lt={IteratorPrototype:Et,BUGGY_SAFARI_ITERATORS:Ct},Mt=O.f,Nt=De("toStringTag"),qt=function(e,t,n){e&&!m(e=n?e:e.prototype,Nt)&&Mt(e,Nt,{configurable:!0,value:t})},Dt=Lt.IteratorPrototype,Ut=function(){return this},Zt=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return A(n),function(e){if(!v(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype")}(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),Ft=Lt.IteratorPrototype,Gt=Lt.BUGGY_SAFARI_ITERATORS,Ht=De("iterator"),Wt=function(){return this},Bt=function(e,t,n,r,i,o,a){!function(e,t,n){var r=t+" Iterator";e.prototype=wt(Dt,{next:c(1,n)}),qt(e,r,!1),Rt[r]=Ut}(n,t,r);var l,s,u,f=function(e){if(e===i&&v)return v;if(!Gt&&e in g)return g[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},h=t+" Iterator",p=!1,g=e.prototype,d=g[Ht]||g["@@iterator"]||i&&g[i],v=!Gt&&d||f(i),y="Array"==t&&g.entries||d;if(y&&(l=Pt(y.call(new e)),Ft!==Object.prototype&&l.next&&(Pt(l)!==Ft&&(Zt?Zt(l,Ft):"function"!=typeof l[Ht]&&R(l,Ht,Wt)),qt(l,h,!0))),"values"==i&&d&&"values"!==d.name&&(p=!0,v=function(){return d.call(this)}),g[Ht]!==v&&R(g,Ht,v),Rt[t]=v,i)if(s={values:f("values"),keys:o?v:f("keys"),entries:f("entries")},a)for(u in s)(Gt||p||!(u in g))&&te(g,u,s[u]);else ze({target:t,proto:!0,forced:Gt||p},s);return s},Vt=ee.set,Kt=ee.getterFor("Array Iterator"),Xt=Bt(Array,"Array",(function(e,t){Vt(this,{type:"Array Iterator",target:d(e),index:0,kind:t})}),(function(){var e=Kt(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");Rt.Arguments=Rt.Array,Ot("keys"),Ot("values"),Ot("entries");var Yt=[].join,Jt=p!=Object,Qt=ot("join",",");ze({target:"Array",proto:!0,forced:Jt||!Qt},{join:function(e){return Yt.call(d(this),void 0===e?",":e)}});var en=Ke("slice"),tn=ct("slice",{ACCESSORS:!0,0:0,1:2}),nn=De("species"),rn=[].slice,on=Math.max;ze({target:"Array",proto:!0,forced:!en||!tn},{slice:function(e,t){var n,r,i,o=d(this),a=ce(o.length),l=he(e,a),s=he(void 0===t?a:t,a);if($e(o)&&("function"!=typeof(n=o.constructor)||n!==Array&&!$e(n.prototype)?v(n)&&null===(n=n[nn])&&(n=void 0):n=void 0,n===Array||void 0===n))return rn.call(o,l,s);for(r=new(void 0===n?Array:n)(on(s-l,0)),i=0;l<s;l++,i++)l in o&&Ie(r,i,o[l]);return r.length=i,r}});var an=O.f,ln=Function.prototype,sn=ln.toString,cn=/^\s*function ([^ (]*)/;o&&!("name"in ln)&&an(ln,"name",{configurable:!0,get:function(){try{return sn.call(this).match(cn)[1]}catch(e){return""}}});var un={};un[De("toStringTag")]="z";var fn="[object z]"===String(un),hn=De("toStringTag"),pn="Arguments"==f(function(){return arguments}()),gn=fn?f:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),hn))?n:pn?f(t):"Object"==(r=f(t))&&"function"==typeof t.callee?"Arguments":r},dn=fn?{}.toString:function(){return"[object "+gn(this)+"]"};fn||te(Object.prototype,"toString",dn,{unsafe:!0});var vn=r.Promise,yn=De("species"),bn=function(e){var t=ie(e),n=O.f;o&&t&&!t[yn]&&n(t,yn,{configurable:!0,get:function(){return this}})},mn=De("iterator"),kn=Array.prototype,xn=De("iterator"),wn=function(e,t,n,r){try{return r?t(A(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&A(i.call(e)),t}},Sn=t((function(e){var t=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,n,r,i,o){var a,l,s,c,u,f,h,p,g=tt(n,r,i?2:1);if(o)a=e;else{if("function"!=typeof(l=function(e){if(null!=e)return e[xn]||e["@@iterator"]||Rt[gn(e)]}(e)))throw TypeError("Target is not iterable");if(void 0!==(p=l)&&(Rt.Array===p||kn[mn]===p)){for(s=0,c=ce(e.length);c>s;s++)if((u=i?g(A(h=e[s])[0],h[1]):g(e[s]))&&u instanceof t)return u;return new t(!1)}a=l.call(e)}for(f=a.next;!(h=f.call(a)).done;)if("object"==typeof(u=wn(a,g,h.value,i))&&u&&u instanceof t)return u;return new t(!1)}).stop=function(e){return new t(!0,e)}})),_n=De("iterator"),En=!1;try{var An=0,Tn={next:function(){return{done:!!An++}},return:function(){En=!0}};Tn[_n]=function(){return this},Array.from(Tn,(function(){throw 2}))}catch(e){}var On,Rn,jn,zn=De("species"),$n=function(e,t){var n,r=A(e).constructor;return void 0===r||null==(n=A(r)[zn])?t:et(n)},Pn=/(iphone|ipod|ipad).*applewebkit/i.test(Fe),In=r.location,Cn=r.setImmediate,Ln=r.clearImmediate,Mn=r.process,Nn=r.MessageChannel,qn=r.Dispatch,Dn=0,Un={},Zn=function(e){if(Un.hasOwnProperty(e)){var t=Un[e];delete Un[e],t()}},Fn=function(e){return function(){Zn(e)}},Gn=function(e){Zn(e.data)},Hn=function(e){r.postMessage(e+"",In.protocol+"//"+In.host)};Cn&&Ln||(Cn=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Un[++Dn]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},On(Dn),Dn},Ln=function(e){delete Un[e]},"process"==f(Mn)?On=function(e){Mn.nextTick(Fn(e))}:qn&&qn.now?On=function(e){qn.now(Fn(e))}:Nn&&!Pn?(jn=(Rn=new Nn).port2,Rn.port1.onmessage=Gn,On=tt(jn.postMessage,jn,1)):!r.addEventListener||"function"!=typeof postMessage||r.importScripts||i(Hn)||"file:"===In.protocol?On="onreadystatechange"in w("script")?function(e){yt.appendChild(w("script")).onreadystatechange=function(){yt.removeChild(this),Zn(e)}}:function(e){setTimeout(Fn(e),0)}:(On=Hn,r.addEventListener("message",Gn,!1)));var Wn,Bn,Vn,Kn,Xn,Yn,Jn,Qn,er={set:Cn,clear:Ln},tr=E.f,nr=er.set,rr=r.MutationObserver||r.WebKitMutationObserver,ir=r.process,or=r.Promise,ar="process"==f(ir),lr=tr(r,"queueMicrotask"),sr=lr&&lr.value;sr||(Wn=function(){var e,t;for(ar&&(e=ir.domain)&&e.exit();Bn;){t=Bn.fn,Bn=Bn.next;try{t()}catch(e){throw Bn?Kn():Vn=void 0,e}}Vn=void 0,e&&e.enter()},ar?Kn=function(){ir.nextTick(Wn)}:rr&&!Pn?(Xn=!0,Yn=document.createTextNode(""),new rr(Wn).observe(Yn,{characterData:!0}),Kn=function(){Yn.data=Xn=!Xn}):or&&or.resolve?(Jn=or.resolve(void 0),Qn=Jn.then,Kn=function(){Qn.call(Jn,Wn)}):Kn=function(){nr.call(r,Wn)});var cr,ur,fr,hr,pr=sr||function(e){var t={fn:e,next:void 0};Vn&&(Vn.next=t),Bn||(Bn=t,Kn()),Vn=t},gr=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=et(t),this.reject=et(n)},dr={f:function(e){return new gr(e)}},vr=function(e,t){if(A(e),v(t)&&t.constructor===e)return t;var n=dr.f(e);return(0,n.resolve)(t),n.promise},yr=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},br=er.set,mr=De("species"),kr="Promise",xr=ee.get,wr=ee.set,Sr=ee.getterFor(kr),_r=vn,Er=r.TypeError,Ar=r.document,Tr=r.process,Or=ie("fetch"),Rr=dr.f,jr=Rr,zr="process"==f(Tr),$r=!!(Ar&&Ar.createEvent&&r.dispatchEvent),Pr=Re(kr,(function(){if(!(L(_r)!==String(_r))){if(66===Be)return!0;if(!zr&&"function"!=typeof PromiseRejectionEvent)return!0}if(Be>=51&&/native code/.test(_r))return!1;var e=_r.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[mr]=t,!(e.then((function(){}))instanceof t)})),Ir=Pr||!function(e,t){if(!t&&!En)return!1;var n=!1;try{var r={};r[_n]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n}((function(e){_r.all(e).catch((function(){}))})),Cr=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},Lr=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;pr((function(){for(var i=t.value,o=1==t.state,a=0;r.length>a;){var l,s,c,u=r[a++],f=o?u.ok:u.fail,h=u.resolve,p=u.reject,g=u.domain;try{f?(o||(2===t.rejection&&Dr(e,t),t.rejection=1),!0===f?l=i:(g&&g.enter(),l=f(i),g&&(g.exit(),c=!0)),l===u.promise?p(Er("Promise-chain cycle")):(s=Cr(l))?s.call(l,h,p):h(l)):p(i)}catch(e){g&&!c&&g.exit(),p(e)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Nr(e,t)}))}},Mr=function(e,t,n){var i,o;$r?((i=Ar.createEvent("Event")).promise=t,i.reason=n,i.initEvent(e,!1,!0),r.dispatchEvent(i)):i={promise:t,reason:n},(o=r["on"+e])?o(i):"unhandledrejection"===e&&function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}("Unhandled promise rejection",n)},Nr=function(e,t){br.call(r,(function(){var n,r=t.value;if(qr(t)&&(n=yr((function(){zr?Tr.emit("unhandledRejection",r,e):Mr("unhandledrejection",e,r)})),t.rejection=zr||qr(t)?2:1,n.error))throw n.value}))},qr=function(e){return 1!==e.rejection&&!e.parent},Dr=function(e,t){br.call(r,(function(){zr?Tr.emit("rejectionHandled",e):Mr("rejectionhandled",e,t.value)}))},Ur=function(e,t,n,r){return function(i){e(t,n,i,r)}},Zr=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,Lr(e,t,!0))},Fr=function(e,t,n,r){if(!t.done){t.done=!0,r&&(t=r);try{if(e===n)throw Er("Promise can't be resolved itself");var i=Cr(n);i?pr((function(){var r={done:!1};try{i.call(n,Ur(Fr,e,r,t),Ur(Zr,e,r,t))}catch(n){Zr(e,r,n,t)}})):(t.value=n,t.state=1,Lr(e,t,!1))}catch(n){Zr(e,{done:!1},n,t)}}};Pr&&(_r=function(e){!function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation")}(this,_r,kr),et(e),cr.call(this);var t=xr(this);try{e(Ur(Fr,this,t),Ur(Zr,this,t))}catch(e){Zr(this,t,e)}},(cr=function(e){wr(this,{type:kr,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=function(e,t,n){for(var r in t)te(e,r,t[r],n);return e}(_r.prototype,{then:function(e,t){var n=Sr(this),r=Rr($n(this,_r));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=zr?Tr.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Lr(this,n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),ur=function(){var e=new cr,t=xr(e);this.promise=e,this.resolve=Ur(Fr,e,t),this.reject=Ur(Zr,e,t)},dr.f=Rr=function(e){return e===_r||e===fr?new ur(e):jr(e)},"function"==typeof vn&&(hr=vn.prototype.then,te(vn.prototype,"then",(function(e,t){var n=this;return new _r((function(e,t){hr.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof Or&&ze({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return vr(_r,Or.apply(r,arguments))}}))),ze({global:!0,wrap:!0,forced:Pr},{Promise:_r}),qt(_r,kr,!1),bn(kr),fr=ie(kr),ze({target:kr,stat:!0,forced:Pr},{reject:function(e){var t=Rr(this);return t.reject.call(void 0,e),t.promise}}),ze({target:kr,stat:!0,forced:Pr},{resolve:function(e){return vr(this,e)}}),ze({target:kr,stat:!0,forced:Ir},{all:function(e){var t=this,n=Rr(t),r=n.resolve,i=n.reject,o=yr((function(){var n=et(t.resolve),o=[],a=0,l=1;Sn(e,(function(e){var s=a++,c=!1;o.push(void 0),l++,n.call(t,e).then((function(e){c||(c=!0,o[s]=e,--l||r(o))}),i)})),--l||r(o)}));return o.error&&i(o.value),n.promise},race:function(e){var t=this,n=Rr(t),r=n.reject,i=yr((function(){var i=et(t.resolve);Sn(e,(function(e){i.call(t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var Gr=De("match"),Hr=function(e){var t;return v(e)&&(void 0!==(t=e[Gr])?!!t:"RegExp"==f(e))},Wr=function(){var e=A(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t};function Br(e,t){return RegExp(e,t)}var Vr={UNSUPPORTED_Y:i((function(){var e=Br("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),BROKEN_CARET:i((function(){var e=Br("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},Kr=O.f,Xr=me.f,Yr=ee.set,Jr=De("match"),Qr=r.RegExp,ei=Qr.prototype,ti=/a/g,ni=/a/g,ri=new Qr(ti)!==ti,ii=Vr.UNSUPPORTED_Y;if(o&&Re("RegExp",!ri||ii||i((function(){return ni[Jr]=!1,Qr(ti)!=ti||Qr(ni)==ni||"/a/i"!=Qr(ti,"i")})))){for(var oi=function(e,t){var n,r=this instanceof oi,i=Hr(e),o=void 0===t;if(!r&&i&&e.constructor===oi&&o)return e;ri?i&&!o&&(e=e.source):e instanceof oi&&(o&&(t=Wr.call(e)),e=e.source),ii&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var a,l,s,c,u,f=(a=ri?new Qr(e,t):Qr(e,t),l=r?this:ei,s=oi,Zt&&"function"==typeof(c=l.constructor)&&c!==s&&v(u=c.prototype)&&u!==s.prototype&&Zt(a,u),a);return ii&&n&&Yr(f,{sticky:n}),f},ai=function(e){e in oi||Kr(oi,e,{configurable:!0,get:function(){return Qr[e]},set:function(t){Qr[e]=t}})},li=Xr(Qr),si=0;li.length>si;)ai(li[si++]);ei.constructor=oi,oi.prototype=ei,te(r,"RegExp",oi)}bn("RegExp");var ci=RegExp.prototype.exec,ui=String.prototype.replace,fi=ci,hi=function(){var e=/a/,t=/b*/g;return ci.call(e,"a"),ci.call(t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),pi=Vr.UNSUPPORTED_Y||Vr.BROKEN_CARET,gi=void 0!==/()??/.exec("")[1];(hi||gi||pi)&&(fi=function(e){var t,n,r,i,o=this,a=pi&&o.sticky,l=Wr.call(o),s=o.source,c=0,u=e;return a&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),u=String(e).slice(o.lastIndex),o.lastIndex>0&&(!o.multiline||o.multiline&&"\n"!==e[o.lastIndex-1])&&(s="(?: "+s+")",u=" "+u,c++),n=new RegExp("^(?:"+s+")",l)),gi&&(n=new RegExp("^"+s+"$(?!\\s)",l)),hi&&(t=o.lastIndex),r=ci.call(a?n:o,u),a?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=o.lastIndex,o.lastIndex+=r[0].length):o.lastIndex=0:hi&&r&&(o.lastIndex=o.global?r.index+r[0].length:t),gi&&r&&r.length>1&&ui.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var di=fi;ze({target:"RegExp",proto:!0,forced:/./.exec!==di},{exec:di});var vi=RegExp.prototype,yi=vi.toString,bi=i((function(){return"/a/b"!=yi.call({source:"a",flags:"b"})})),mi="toString"!=yi.name;(bi||mi)&&te(RegExp.prototype,"toString",(function(){var e=A(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in vi)?Wr.call(e):n)}),{unsafe:!0});var ki=function(e){return function(t,n){var r,i,o=String(g(t)),a=le(n),l=o.length;return a<0||a>=l?e?"":void 0:(r=o.charCodeAt(a))<55296||r>56319||a+1===l||(i=o.charCodeAt(a+1))<56320||i>57343?e?o.charAt(a):r:e?o.slice(a,a+2):i-56320+(r-55296<<10)+65536}},xi={codeAt:ki(!1),charAt:ki(!0)},wi=xi.charAt,Si=ee.set,_i=ee.getterFor("String Iterator");Bt(String,"String",(function(e){Si(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=_i(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=wi(n,r),t.index+=e.length,{value:e,done:!1})}));var Ei=De("species"),Ai=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),Ti="$0"==="a".replace(/./,"$0"),Oi=De("replace"),Ri=!!/./[Oi]&&""===/./[Oi]("a","$0"),ji=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),zi=function(e,t,n,r){var o=De(e),a=!i((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),l=a&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Ei]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!a||!l||"replace"===e&&(!Ai||!Ti||Ri)||"split"===e&&!ji){var s=/./[o],c=n(o,""[e],(function(e,t,n,r,i){return t.exec===di?a&&!i?{done:!0,value:s.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Ti,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ri}),u=c[0],f=c[1];te(String.prototype,e,u),te(RegExp.prototype,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&R(RegExp.prototype[o],"sham",!0)},$i=xi.charAt,Pi=function(e,t,n){return t+(n?$i(e,t).length:1)},Ii=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==f(e))throw TypeError("RegExp#exec called on incompatible receiver");return di.call(e,t)};zi("match",1,(function(e,t,n){return[function(t){var n=g(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=A(e),o=String(this);if(!i.global)return Ii(i,o);var a=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=Ii(i,o));){var u=String(l[0]);s[c]=u,""===u&&(i.lastIndex=Pi(o,ce(i.lastIndex),a)),c++}return 0===c?null:s}]}));var Ci=Math.max,Li=Math.min,Mi=Math.floor,Ni=/\$([$&'`]|\d\d?|<[^>]*>)/g,qi=/\$([$&'`]|\d\d?)/g;zi("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,o=r.REPLACE_KEEPS_$0,a=i?"$":"$0";return[function(n,r){var i=g(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&o||"string"==typeof r&&-1===r.indexOf(a)){var s=n(t,e,this,r);if(s.done)return s.value}var c=A(e),u=String(this),f="function"==typeof r;f||(r=String(r));var h=c.global;if(h){var p=c.unicode;c.lastIndex=0}for(var g=[];;){var d=Ii(c,u);if(null===d)break;if(g.push(d),!h)break;""===String(d[0])&&(c.lastIndex=Pi(u,ce(c.lastIndex),p))}for(var v,y="",b=0,m=0;m<g.length;m++){d=g[m];for(var k=String(d[0]),x=Ci(Li(le(d.index),u.length),0),w=[],S=1;S<d.length;S++)w.push(void 0===(v=d[S])?v:String(v));var _=d.groups;if(f){var E=[k].concat(w,x,u);void 0!==_&&E.push(_);var T=String(r.apply(void 0,E))}else T=l(k,u,x,w,_,r);x>=b&&(y+=u.slice(b,x)+T,b=x+k.length)}return y+u.slice(b)}];function l(e,n,r,i,o,a){var l=r+e.length,s=i.length,c=qi;return void 0!==o&&(o=Pe(o),c=Ni),t.call(a,c,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(l);case"<":c=o[a.slice(1,-1)];break;default:var u=+a;if(0===u)return t;if(u>s){var f=Mi(u/10);return 0===f?t:f<=s?void 0===i[f-1]?a.charAt(1):i[f-1]+a.charAt(1):t}c=i[u-1]}return void 0===c?"":c}))}}));var Di=[].push,Ui=Math.min,Zi=!i((function(){return!RegExp(4294967295,"y")}));zi("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(g(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!Hr(e))return t.call(r,e,i);for(var o,a,l,s=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),u=0,f=new RegExp(e.source,c+"g");(o=di.call(f,r))&&!((a=f.lastIndex)>u&&(s.push(r.slice(u,o.index)),o.length>1&&o.index<r.length&&Di.apply(s,o.slice(1)),l=o[0].length,u=a,s.length>=i));)f.lastIndex===o.index&&f.lastIndex++;return u===r.length?!l&&f.test("")||s.push(""):s.push(r.slice(u)),s.length>i?s.slice(0,i):s}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=g(this),o=null==t?void 0:t[e];return void 0!==o?o.call(t,i,n):r.call(String(i),t,n)},function(e,i){var o=n(r,e,this,i,r!==t);if(o.done)return o.value;var a=A(e),l=String(this),s=$n(a,RegExp),c=a.unicode,u=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(Zi?"y":"g"),f=new s(Zi?a:"^(?:"+a.source+")",u),h=void 0===i?4294967295:i>>>0;if(0===h)return[];if(0===l.length)return null===Ii(f,l)?[l]:[];for(var p=0,g=0,d=[];g<l.length;){f.lastIndex=Zi?g:0;var v,y=Ii(f,Zi?l:l.slice(g));if(null===y||(v=Ui(ce(f.lastIndex+(Zi?0:g)),l.length))===p)g=Pi(l,g,c);else{if(d.push(l.slice(p,g)),d.length===h)return d;for(var b=1;b<=y.length-1;b++)if(d.push(y[b]),d.length===h)return d;g=p=v}}return d.push(l.slice(p)),d}]}),!Zi);var Fi="\t\n\v\f\r \u2028\u2029\ufeff",Gi="["+Fi+"]",Hi=RegExp("^"+Gi+Gi+"*"),Wi=RegExp(Gi+Gi+"*$"),Bi=function(e){return function(t){var n=String(g(t));return 1&e&&(n=n.replace(Hi,"")),2&e&&(n=n.replace(Wi,"")),n}},Vi={start:Bi(1),end:Bi(2),trim:Bi(3)},Ki=function(e){return i((function(){return!!Fi[e]()||"​…᠎"!="​…᠎"[e]()||Fi[e].name!==e}))},Xi=Vi.trim;ze({target:"String",proto:!0,forced:Ki("trim")},{trim:function(){return Xi(this)}});var Yi={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0};for(var Ji in Yi){var Qi=r[Ji],eo=Qi&&Qi.prototype;if(eo&&eo.forEach!==pt)try{R(eo,"forEach",pt)}catch(e){eo.forEach=pt}}var to=De("iterator"),no=De("toStringTag"),ro=Xt.values;for(var io in Yi){var oo=r[io],ao=oo&&oo.prototype;if(ao){if(ao[to]!==ro)try{R(ao,to,ro)}catch(e){ao[to]=ro}if(ao[no]||R(ao,no,io),Yi[io])for(var lo in Xt)if(ao[lo]!==Xt[lo])try{R(ao,lo,Xt[lo])}catch(e){ao[lo]=Xt[lo]}}}function so(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function co(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function uo(e,t,n){return t&&co(e.prototype,t),n&&co(e,n),e}function fo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ho(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function po(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw o}}return n}(e,t)||go(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function go(e,t){if(e){if("string"==typeof e)return vo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vo(e,t):void 0}}function vo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function yo(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=go(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f: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.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}var bo=/"/g;ze({target:"String",proto:!0,forced:function(e){return i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}("link")},{link:function(e){return t="a",n="href",r=e,i=String(g(this)),o="<"+t,""!==n&&(o+=" "+n+'="'+String(r).replace(bo,"&quot;")+'"'),o+">"+i+"</"+t+">";var t,n,r,i,o}});var mo=ge.indexOf,ko=[].indexOf,xo=!!ko&&1/[1].indexOf(1,-0)<0,wo=ot("indexOf"),So=ct("indexOf",{ACCESSORS:!0,1:0});ze({target:"Array",proto:!0,forced:xo||!wo||!So},{indexOf:function(e){return xo?ko.apply(this,arguments)||0:mo(this,e,arguments.length>1?arguments[1]:void 0)}});var _o=it.map,Eo=Ke("map"),Ao=ct("map");ze({target:"Array",proto:!0,forced:!Eo||!Ao},{map:function(e){return _o(this,e,arguments.length>1?arguments[1]:void 0)}});var To,Oo=function(e){if(Hr(e))throw TypeError("The method doesn't accept regular expressions");return e},Ro=De("match"),jo=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[Ro]=!1,"/./"[e](t)}catch(e){}}return!1},zo=E.f,$o="".endsWith,Po=Math.min,Io=jo("endsWith"),Co=!(Io||(To=zo(String.prototype,"endsWith"),!To||To.writable));ze({target:"String",proto:!0,forced:!Co&&!Io},{endsWith:function(e){var t=String(g(this));Oo(e);var n=arguments.length>1?arguments[1]:void 0,r=ce(t.length),i=void 0===n?r:Po(ce(n),r),o=String(e);return $o?$o.call(t,o,i):t.slice(i-o.length,i)===o}});var Lo=E.f,Mo="".startsWith,No=Math.min,qo=jo("startsWith"),Do=!qo&&!!function(){var e=Lo(String.prototype,"startsWith");return e&&!e.writable}();ze({target:"String",proto:!0,forced:!Do&&!qo},{startsWith:function(e){var t=String(g(this));Oo(e);var n=ce(No(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return Mo?Mo.call(t,r,n):t.slice(n,n+r.length)===r}});var Uo=Vi.end,Zo=Ki("trimEnd"),Fo=Zo?function(){return Uo(this)}:"".trimEnd;ze({target:"String",proto:!0,forced:Zo},{trimEnd:Fo,trimRight:Fo});var Go=t((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),Ho=Ke("splice"),Wo=ct("splice",{ACCESSORS:!0,0:0,1:2}),Bo=Math.max,Vo=Math.min;ze({target:"Array",proto:!0,forced:!Ho||!Wo},{splice:function(e,t){var n,r,i,o,a,l,s=Pe(this),c=ce(s.length),u=he(e,c),f=arguments.length;if(0===f?n=r=0:1===f?(n=0,r=c-u):(n=f-2,r=Vo(Bo(le(t),0),c-u)),c+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(i=Ze(s,r),o=0;o<r;o++)(a=u+o)in s&&Ie(i,o,s[a]);if(i.length=r,n<r){for(o=u;o<c-r;o++)l=o+n,(a=o+r)in s?s[l]=s[a]:delete s[l];for(o=c;o>c-r+n;o--)delete s[o-1]}else if(n>r)for(o=c-r;o>u;o--)l=o+n-1,(a=o+r-1)in s?s[l]=s[a]:delete s[l];for(o=0;o<n;o++)s[o+u]=arguments[o+2];return s.length=c-r+n,i}});var Ko=/[&<>"']/,Xo=/[&<>"']/g,Yo=/[<>"']|&(?!#?\w+;)/,Jo=/[<>"']|&(?!#?\w+;)/g,Qo={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ea=function(e){return Qo[e]};var ta=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function na(e){return e.replace(ta,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var ra=/(^|[^\[])\^/g;var ia=/[^\w:]/g,oa=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var aa={},la=/^[^:]+:\/*[^/]*$/,sa=/^([^:]+:)[\s\S]*$/,ca=/^([^:]+:\/*[^/]*)[\s\S]*$/;function ua(e,t){aa[" "+e]||(la.test(e)?aa[" "+e]=e+"/":aa[" "+e]=fa(e,"/",!0));var n=-1===(e=aa[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(sa,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(ca,"$1")+t:e+t}function fa(e,t,n){var r=e.length;if(0===r)return"";for(var i=0;i<r;){var o=e.charAt(r-i-1);if(o!==t||n){if(o===t||!n)break;i++}else i++}return e.substr(0,r-i)}var ha=function(e,t){if(t){if(Ko.test(e))return e.replace(Xo,ea)}else if(Yo.test(e))return e.replace(Jo,ea);return e},pa=na,ga=function(e,t){e=e.source||e,t=t||"";var n={replace:function(t,r){return r=(r=r.source||r).replace(ra,"$1"),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n},da=function(e,t,n){if(e){var r;try{r=decodeURIComponent(na(n)).replace(ia,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!oa.test(n)&&(n=ua(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n},va={exec:function(){}},ya=function(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},ba=function(e,t){var n=e.replace(/\|/g,(function(e,t,n){for(var r=!1,i=t;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n},ma=fa,ka=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,r=0,i=0;i<n;i++)if("\\"===e[i])i++;else if(e[i]===t[0])r++;else if(e[i]===t[1]&&--r<0)return i;return-1},xa=function(e){e&&e.sanitize&&!e.silent&&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")},wa=Go.defaults,Sa=ma,_a=ba,Ea=ha,Aa=ka;function Ta(e,t,n){var r=t.href,i=t.title?Ea(t.title):null;return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:r,title:i,text:e[1]}:{type:"image",raw:n,text:Ea(e[1]),href:r,title:i}}var Oa=function(){function e(t){so(this,e),this.options=t||wa}return uo(e,[{key:"space",value:function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}}},{key:"code",value:function(e,t){var n=this.rules.block.code.exec(e);if(n){var r=t[t.length-1];if(r&&"paragraph"===r.type)return{raw:n[0],text:n[0].trimRight()};var i=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Sa(i,"\n")}}}},{key:"fences",value:function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:po(t,1)[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}}},{key:"heading",value:function(e){var t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}}},{key:"nptable",value:function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:_a(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=_a(n.cells[r],n.header.length);return n}}}},{key:"hr",value:function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}},{key:"blockquote",value:function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}}},{key:"list",value:function(e){var t=this.rules.block.list.exec(e);if(t){for(var n,r,i,o,a,l,s,c=t[0],u=t[2],f=u.length>1,h={type:"list",raw:c,ordered:f,start:f?+u:"",loose:!1,items:[]},p=t[0].match(this.rules.block.item),g=!1,d=p.length,v=0;v<d;v++)c=n=p[v],r=n.length,~(n=n.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),v!==d-1&&(i=this.rules.block.bullet.exec(p[v+1])[0],(u.length>1?1===i.length:i.length>1||this.options.smartLists&&i!==u)&&(o=p.slice(v+1).join("\n"),h.raw=h.raw.substring(0,h.raw.length-o.length),v=d-1)),a=g||/\n\n(?!\s*$)/.test(n),v!==d-1&&(g="\n"===n.charAt(n.length-1),a||(a=g)),a&&(h.loose=!0),s=void 0,(l=/^\[[ xX]\] /.test(n))&&(s=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,"")),h.items.push({type:"list_item",raw:c,task:l,checked:s,loose:a,text:n});return h}}},{key:"html",value:function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Ea(t[0]):t[0]}}},{key:"def",value:function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}},{key:"table",value:function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:_a(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=_a(n.cells[r].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}}},{key:"lheading",value:function(e){var t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1]}}},{key:"paragraph",value:function(e){var t=this.rules.block.paragraph.exec(e);if(t)return{type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1]}}},{key:"text",value:function(e,t){var n=this.rules.block.text.exec(e);if(n){var r=t[t.length-1];return r&&"text"===r.type?{raw:n[0],text:n[0]}:{type:"text",raw:n[0],text:n[0]}}}},{key:"escape",value:function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:Ea(t[1])}}},{key:"tag",value:function(e,t,n){var r=this.rules.inline.tag.exec(e);if(r)return!t&&/^<a /i.test(r[0])?t=!0:t&&/^<\/a>/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Ea(r[0]):r[0]}}},{key:"link",value:function(e){var t=this.rules.inline.link.exec(e);if(t){var n=Aa(t[2],"()");if(n>-1){var r=(0===t[0].indexOf("!")?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,r).trim(),t[3]=""}var i=t[2],o="";if(this.options.pedantic){var a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);a?(i=a[1],o=a[3]):o=""}else o=t[3]?t[3].slice(1,-1):"";return Ta(t,{href:(i=i.trim().replace(/^<([\s\S]*)>$/,"$1"))?i.replace(this.rules.inline._escapes,"$1"):i,title:o?o.replace(this.rules.inline._escapes,"$1"):o},t[0])}}},{key:"reflink",value:function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return Ta(n,r,n[0])}}},{key:"strong",value:function(e){var t=this.rules.inline.strong.exec(e);if(t)return{type:"strong",raw:t[0],text:t[4]||t[3]||t[2]||t[1]}}},{key:"em",value:function(e){var t=this.rules.inline.em.exec(e);if(t)return{type:"em",raw:t[0],text:t[6]||t[5]||t[4]||t[3]||t[2]||t[1]}}},{key:"codespan",value:function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=n.startsWith(" ")&&n.endsWith(" ");return r&&i&&(n=n.substring(1,n.length-1)),n=Ea(n,!0),{type:"codespan",raw:t[0],text:n}}}},{key:"br",value:function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}},{key:"del",value:function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[1]}}},{key:"autolink",value:function(e,t){var n,r,i=this.rules.inline.autolink.exec(e);if(i)return r="@"===i[2]?"mailto:"+(n=Ea(this.options.mangle?t(i[1]):i[1])):n=Ea(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},{key:"url",value:function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if("@"===n[2])i="mailto:"+(r=Ea(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);r=Ea(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}},{key:"inlineText",value:function(e,t,n){var r,i=this.rules.inline.text.exec(e);if(i)return r=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Ea(i[0]):i[0]:Ea(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}]),e}(),Ra=va,ja=ga,za=ya,$a={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Ra,table:Ra,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};$a.def=ja($a.def).replace("label",$a._label).replace("title",$a._title).getRegex(),$a.bullet=/(?:[*+-]|\d{1,9}\.)/,$a.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,$a.item=ja($a.item,"gm").replace(/bull/g,$a.bullet).getRegex(),$a.list=ja($a.list).replace(/bull/g,$a.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+$a.def.source+")").getRegex(),$a._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",$a._comment=/<!--(?!-?>)[\s\S]*?-->/,$a.html=ja($a.html,"i").replace("comment",$a._comment).replace("tag",$a._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),$a.paragraph=ja($a._paragraph).replace("hr",$a.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",$a._tag).getRegex(),$a.blockquote=ja($a.blockquote).replace("paragraph",$a.paragraph).getRegex(),$a.normal=za({},$a),$a.gfm=za({},$a.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),$a.gfm.nptable=ja($a.gfm.nptable).replace("hr",$a.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",$a._tag).getRegex(),$a.gfm.table=ja($a.gfm.table).replace("hr",$a.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",$a._tag).getRegex(),$a.pedantic=za({},$a.normal,{html:ja("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",$a._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(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Ra,paragraph:ja($a.normal._paragraph).replace("hr",$a.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",$a.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Pa={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ra,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\s,punctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\s,punctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Ra,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};Pa.em=ja(Pa.em).replace(/punctuation/g,Pa._punctuation).getRegex(),Pa._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Pa._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Pa._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])?)+(?![-_])/,Pa.autolink=ja(Pa.autolink).replace("scheme",Pa._scheme).replace("email",Pa._email).getRegex(),Pa._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Pa.tag=ja(Pa.tag).replace("comment",$a._comment).replace("attribute",Pa._attribute).getRegex(),Pa._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Pa._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,Pa._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Pa.link=ja(Pa.link).replace("label",Pa._label).replace("href",Pa._href).replace("title",Pa._title).getRegex(),Pa.reflink=ja(Pa.reflink).replace("label",Pa._label).getRegex(),Pa.normal=za({},Pa),Pa.pedantic=za({},Pa.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:ja(/^!?\[(label)\]\((.*?)\)/).replace("label",Pa._label).getRegex(),reflink:ja(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Pa._label).getRegex()}),Pa.gfm=za({},Pa.normal,{escape:ja(Pa.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Pa.gfm.url=ja(Pa.gfm.url,"i").replace("email",Pa.gfm._extended_email).getRegex(),Pa.breaks=za({},Pa.gfm,{br:ja(Pa.br).replace("{2,}","*").getRegex(),text:ja(Pa.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Ia={block:$a,inline:Pa},Ca=Go.defaults,La=Ia.block,Ma=Ia.inline;function Na(e){return e.replace(/---/g,"").replace(/--/g,"").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"").replace(/\.{3}/g,"")}function qa(e){var t,n,r="",i=e.length;for(t=0;t<i;t++)n=e.charCodeAt(t),Math.random()>.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var Da=function(){function e(t){so(this,e),this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Ca,this.options.tokenizer=this.options.tokenizer||new Oa,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var n={block:La.normal,inline:Ma.normal};this.options.pedantic?(n.block=La.pedantic,n.inline=Ma.pedantic):this.options.gfm&&(n.block=La.gfm,this.options.breaks?n.inline=Ma.breaks:n.inline=Ma.gfm),this.tokenizer.rules=n}return uo(e,[{key:"lex",value:function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens}},{key:"blockTokens",value:function(e){var t,n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];for(e=e.replace(/^ +$/gm,"");e;)if(t=this.tokenizer.space(e))e=e.substring(t.raw.length),t.type&&o.push(t);else if(t=this.tokenizer.code(e,o))e=e.substring(t.raw.length),t.type?o.push(t):((i=o[o.length-1]).raw+="\n"+t.raw,i.text+="\n"+t.text);else if(t=this.tokenizer.fences(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.heading(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.nptable(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.hr(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.blockquote(e))e=e.substring(t.raw.length),t.tokens=this.blockTokens(t.text,[],a),o.push(t);else if(t=this.tokenizer.list(e)){for(e=e.substring(t.raw.length),r=t.items.length,n=0;n<r;n++)t.items[n].tokens=this.blockTokens(t.items[n].text,[],!1);o.push(t)}else if(t=this.tokenizer.html(e))e=e.substring(t.raw.length),o.push(t);else if(a&&(t=this.tokenizer.def(e)))e=e.substring(t.raw.length),this.tokens.links[t.tag]||(this.tokens.links[t.tag]={href:t.href,title:t.title});else if(t=this.tokenizer.table(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.lheading(e))e=e.substring(t.raw.length),o.push(t);else if(a&&(t=this.tokenizer.paragraph(e)))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.text(e,o))e=e.substring(t.raw.length),t.type?o.push(t):((i=o[o.length-1]).raw+="\n"+t.raw,i.text+="\n"+t.text);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return o}},{key:"inline",value:function(e){var t,n,r,i,o,a,l=e.length;for(t=0;t<l;t++)switch((a=e[t]).type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},i=a.header.length,n=0;n<i;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(i=a.cells.length,n=0;n<i;n++)for(o=a.cells[n],a.tokens.cells[n]=[],r=0;r<o.length;r++)a.tokens.cells[n][r]=[],this.inlineTokens(o[r],a.tokens.cells[n][r]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(i=a.items.length,n=0;n<i;n++)this.inline(a.items[n].tokens)}return e}},{key:"inlineTokens",value:function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e;)if(t=this.tokenizer.escape(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.tag(e,r,i))e=e.substring(t.raw.length),r=t.inLink,i=t.inRawBlock,n.push(t);else if(t=this.tokenizer.link(e))e=e.substring(t.raw.length),"link"===t.type&&(t.tokens=this.inlineTokens(t.text,[],!0,i)),n.push(t);else if(t=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(t.raw.length),"link"===t.type&&(t.tokens=this.inlineTokens(t.text,[],!0,i)),n.push(t);else if(t=this.tokenizer.strong(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.em(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.codespan(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.br(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.del(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.autolink(e,qa))e=e.substring(t.raw.length),n.push(t);else if(r||!(t=this.tokenizer.url(e,qa))){if(t=this.tokenizer.inlineText(e,i,Na))e=e.substring(t.raw.length),n.push(t);else if(e){var o="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(o);break}throw new Error(o)}}else e=e.substring(t.raw.length),n.push(t);return n}}],[{key:"lex",value:function(t,n){return new e(n).lex(t)}},{key:"rules",get:function(){return{block:La,inline:Ma}}}]),e}(),Ua=Go.defaults,Za=da,Fa=ha,Ga=function(){function e(t){so(this,e),this.options=t||Ua}return uo(e,[{key:"code",value:function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);null!=i&&i!==e&&(n=!0,e=i)}return r?'<pre><code class="'+this.options.langPrefix+Fa(r,!0)+'">'+(n?e:Fa(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:Fa(e,!0))+"</code></pre>\n"}},{key:"blockquote",value:function(e){return"<blockquote>\n"+e+"</blockquote>\n"}},{key:"html",value:function(e){return e}},{key:"heading",value:function(e,t,n,r){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+r.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}},{key:"hr",value:function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}},{key:"list",value:function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"}},{key:"listitem",value:function(e){return"<li>"+e+"</li>\n"}},{key:"checkbox",value:function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}},{key:"paragraph",value:function(e){return"<p>"+e+"</p>\n"}},{key:"table",value:function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}},{key:"tablerow",value:function(e){return"<tr>\n"+e+"</tr>\n"}},{key:"tablecell",value:function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"}},{key:"strong",value:function(e){return"<strong>"+e+"</strong>"}},{key:"em",value:function(e){return"<em>"+e+"</em>"}},{key:"codespan",value:function(e){return"<code>"+e+"</code>"}},{key:"br",value:function(){return this.options.xhtml?"<br/>":"<br>"}},{key:"del",value:function(e){return"<del>"+e+"</del>"}},{key:"link",value:function(e,t,n){if(null===(e=Za(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<a href="'+Fa(e)+'"';return t&&(r+=' title="'+t+'"'),r+=">"+n+"</a>"}},{key:"image",value:function(e,t,n){if(null===(e=Za(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"}},{key:"text",value:function(e){return e}}]),e}(),Ha=function(){function e(){so(this,e)}return uo(e,[{key:"strong",value:function(e){return e}},{key:"em",value:function(e){return e}},{key:"codespan",value:function(e){return e}},{key:"del",value:function(e){return e}},{key:"html",value:function(e){return e}},{key:"text",value:function(e){return e}},{key:"link",value:function(e,t,n){return""+n}},{key:"image",value:function(e,t,n){return""+n}},{key:"br",value:function(){return""}}]),e}(),Wa=function(){function e(){so(this,e),this.seen={}}return uo(e,[{key:"slug",value:function(e){var t=e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t}}]),e}(),Ba=Go.defaults,Va=pa,Ka=function(){function e(t){so(this,e),this.options=t||Ba,this.options.renderer=this.options.renderer||new Ga,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ha,this.slugger=new Wa}return uo(e,[{key:"parse",value:function(e){var t,n,r,i,o,a,l,s,c,u,f,h,p,g,d,v,y,b,m=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],k="",x=e.length;for(t=0;t<x;t++)switch((u=e[t]).type){case"space":continue;case"hr":k+=this.renderer.hr();continue;case"heading":k+=this.renderer.heading(this.parseInline(u.tokens),u.depth,Va(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":k+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(s="",l="",i=u.header.length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(u.tokens.header[n]),{header:!0,align:u.align[n]});for(s+=this.renderer.tablerow(l),c="",i=u.cells.length,n=0;n<i;n++){for(l="",o=(a=u.tokens.cells[n]).length,r=0;r<o;r++)l+=this.renderer.tablecell(this.parseInline(a[r]),{header:!1,align:u.align[r]});c+=this.renderer.tablerow(l)}k+=this.renderer.table(s,c);continue;case"blockquote":c=this.parse(u.tokens),k+=this.renderer.blockquote(c);continue;case"list":for(f=u.ordered,h=u.start,p=u.loose,i=u.items.length,c="",n=0;n<i;n++)v=(d=u.items[n]).checked,y=d.task,g="",d.task&&(b=this.renderer.checkbox(v),p?d.tokens.length>0&&"text"===d.tokens[0].type?(d.tokens[0].text=b+" "+d.tokens[0].text,d.tokens[0].tokens&&d.tokens[0].tokens.length>0&&"text"===d.tokens[0].tokens[0].type&&(d.tokens[0].tokens[0].text=b+" "+d.tokens[0].tokens[0].text)):d.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(d.tokens,p),c+=this.renderer.listitem(g,y,v);k+=this.renderer.list(c,f,h);continue;case"html":k+=this.renderer.html(u.text);continue;case"paragraph":k+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(c=u.tokens?this.parseInline(u.tokens):u.text;t+1<x&&"text"===e[t+1].type;)c+="\n"+((u=e[++t]).tokens?this.parseInline(u.tokens):u.text);k+=m?this.renderer.paragraph(c):c;continue;default:var w='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(w);throw new Error(w)}return k}},{key:"parseInline",value:function(e,t){t=t||this.renderer;var n,r,i="",o=e.length;for(n=0;n<o;n++)switch((r=e[n]).type){case"escape":i+=t.text(r.text);break;case"html":i+=t.html(r.text);break;case"link":i+=t.link(r.href,r.title,this.parseInline(r.tokens,t));break;case"image":i+=t.image(r.href,r.title,r.text);break;case"strong":i+=t.strong(this.parseInline(r.tokens,t));break;case"em":i+=t.em(this.parseInline(r.tokens,t));break;case"codespan":i+=t.codespan(r.text);break;case"br":i+=t.br();break;case"del":i+=t.del(this.parseInline(r.tokens,t));break;case"text":i+=t.text(r.text);break;default:var a='Token with "'+r.type+'" type was not found.';if(this.options.silent)return void console.error(a);throw new Error(a)}return i}}],[{key:"parse",value:function(t,n){return new e(n).parse(t)}}]),e}(),Xa=ya,Ya=xa,Ja=ha,Qa=Go.getDefaults,el=Go.changeDefaults,tl=Go.defaults;function nl(e,t,n){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(n=t,t=null),t=Xa({},nl.defaults,t||{}),Ya(t),n){var r,i=t.highlight;try{r=Da.lex(e,t)}catch(e){return n(e)}var o=function(e){var o;if(!e)try{o=Ka.parse(r,t)}catch(t){e=t}return t.highlight=i,e?n(e):n(null,o)};if(!i||i.length<3)return o();if(delete t.highlight,!r.length)return o();var a=0;return nl.walkTokens(r,(function(e){"code"===e.type&&(a++,i(e.text,e.lang,(function(t,n){if(t)return o(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),0===--a&&o()})))})),void(0===a&&o())}try{var l=Da.lex(e,t);return t.walkTokens&&nl.walkTokens(l,t.walkTokens),Ka.parse(l,t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+Ja(e.message+"",!0)+"</pre>";throw e}}nl.options=nl.setOptions=function(e){return Xa(nl.defaults,e),el(nl.defaults),nl},nl.getDefaults=Qa,nl.defaults=tl,nl.use=function(e){var t=Xa({},e);if(e.renderer&&function(){var n=nl.defaults.renderer||new Ga,r=function(t){var r=n[t];n[t]=function(){for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];var l=e.renderer[t].apply(n,o);return!1===l&&(l=r.apply(n,o)),l}};for(var i in e.renderer)r(i);t.renderer=n}(),e.tokenizer&&function(){var n=nl.defaults.tokenizer||new Oa,r=function(t){var r=n[t];n[t]=function(){for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];var l=e.tokenizer[t].apply(n,o);return!1===l&&(l=r.apply(n,o)),l}};for(var i in e.tokenizer)r(i);t.tokenizer=n}(),e.walkTokens){var n=nl.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens(t),n&&n(t)}}nl.setOptions(t)},nl.walkTokens=function(e,t){var n,r=yo(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;switch(t(i),i.type){case"table":var o,a=yo(i.tokens.header);try{for(a.s();!(o=a.n()).done;){var l=o.value;nl.walkTokens(l,t)}}catch(e){a.e(e)}finally{a.f()}var s,c=yo(i.tokens.cells);try{for(c.s();!(s=c.n()).done;){var u,f=yo(s.value);try{for(f.s();!(u=f.n()).done;){var h=u.value;nl.walkTokens(h,t)}}catch(e){f.e(e)}finally{f.f()}}}catch(e){c.e(e)}finally{c.f()}break;case"list":nl.walkTokens(i.items,t);break;default:i.tokens&&nl.walkTokens(i.tokens,t)}}}catch(e){r.e(e)}finally{r.f()}},nl.Parser=Ka,nl.parser=Ka.parse,nl.Renderer=Ga,nl.TextRenderer=Ha,nl.Lexer=Da,nl.lexer=Da.lex,nl.Tokenizer=Oa,nl.Slugger=Wa,nl.parse=nl;var rl=nl,il=/\[([\s\d,|-]*)\]/,ol={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};export default function(){var e;function t(e){var t=(e.querySelector("[data-template]")||e.querySelector("script")||e).textContent,n=(t=t.replace(new RegExp("__SCRIPT_END__","g"),"<\/script>")).match(/^\n?(\s*)/)[1].length,r=t.match(/^\n?(\t*)/)[1].length;return r>0?t=t.replace(new RegExp("\\n?\\t{"+r+"}","g"),"\n"):n>1&&(t=t.replace(new RegExp("\\n? {"+n+"}","g"),"\n")),t}function n(e){for(var t=e.attributes,n=[],r=0,i=t.length;r<i;r++){var o=t[r].name,a=t[r].value;/data\-(markdown|separator|vertical|notes)/gi.test(o)||(a?n.push(o+'="'+a+'"'):n.push(o))}return n.join(" ")}function r(e){return(e=e||{}).separator=e.separator||"^\r?\n---\r?\n$",e.notesSeparator=e.notesSeparator||"notes?:",e.attributes=e.attributes||"",e}function i(e,t){t=r(t);var n=e.split(new RegExp(t.notesSeparator,"mgi"));return 2===n.length&&(e=n[0]+'<aside class="notes">'+rl(n[1].trim())+"</aside>"),'<script type="text/template">'+(e=e.replace(/<\/script>/g,"__SCRIPT_END__"))+"<\/script>"}function o(e,t){t=r(t);for(var n,o,a,l=new RegExp(t.separator+(t.verticalSeparator?"|"+t.verticalSeparator:""),"mg"),s=new RegExp(t.separator),c=0,u=!0,f=[];n=l.exec(e);)!(o=s.test(n[0]))&&u&&f.push([]),a=e.substring(c,n.index),o&&u?f.push(a):f[f.length-1].push(a),c=l.lastIndex,u=o;(u?f:f[f.length-1]).push(e.substring(c));for(var h="",p=0,g=f.length;p<g;p++)f[p]instanceof Array?(h+="<section "+t.attributes+">",f[p].forEach((function(e){h+="<section data-markdown>"+i(e,t)+"</section>"})),h+="</section>"):h+="<section "+t.attributes+" data-markdown>"+i(f[p],t)+"</section>";return h}function a(e){return new Promise((function(r){var a=[];[].slice.call(e.querySelectorAll("[data-markdown]:not([data-markdown-parsed])")).forEach((function(e,r){e.getAttribute("data-markdown").length?a.push(function(e){return new Promise((function(t,n){var r=new XMLHttpRequest,i=e.getAttribute("data-markdown"),o=e.getAttribute("data-charset");null!=o&&""!=o&&r.overrideMimeType("text/html; charset="+o),r.onreadystatechange=function(e,r){4===r.readyState&&(r.status>=200&&r.status<300||0===r.status?t(r,i):n(r,i))}.bind(this,e,r),r.open("GET",i,!0);try{r.send()}catch(e){console.warn("Failed to get the Markdown file "+i+". Make sure that the presentation and the file are served by a HTTP server and the file can be found there. "+e),t(r,i)}}))}(e).then((function(t,r){e.outerHTML=o(t.responseText,{separator:e.getAttribute("data-separator"),verticalSeparator:e.getAttribute("data-separator-vertical"),notesSeparator:e.getAttribute("data-separator-notes"),attributes:n(e)})}),(function(t,n){e.outerHTML='<section data-state="alert">ERROR: The attempt to fetch '+n+" failed with HTTP status "+t.status+".Check your browser's JavaScript console for more details.<p>Remember that you need to serve the presentation HTML from a HTTP server.</p></section>"}))):e.getAttribute("data-separator")||e.getAttribute("data-separator-vertical")||e.getAttribute("data-separator-notes")?e.outerHTML=o(t(e),{separator:e.getAttribute("data-separator"),verticalSeparator:e.getAttribute("data-separator-vertical"),notesSeparator:e.getAttribute("data-separator-notes"),attributes:n(e)}):e.innerHTML=i(t(e))})),Promise.all(a).then(r)}))}function l(e,t,n){var r,i,o=new RegExp(n,"mg"),a=new RegExp('([^"= ]+?)="([^"]+?)"|(data-[^"= ]+?)(?=[" ])',"mg"),l=e.nodeValue;if(r=o.exec(l)){var s=r[1];for(l=l.substring(0,r.index)+l.substring(o.lastIndex),e.nodeValue=l;i=a.exec(s);)i[2]?t.setAttribute(i[1],i[2]):t.setAttribute(i[3],"");return!0}return!1}function s(){var n=e.getRevealElement().querySelectorAll("[data-markdown]:not([data-markdown-parsed])");return[].slice.call(n).forEach((function(e){e.setAttribute("data-markdown-parsed",!0);var n=e.querySelector("aside.notes"),r=t(e);e.innerHTML=rl(r),function e(t,n,r,i,o){if(null!=n&&null!=n.childNodes&&n.childNodes.length>0)for(var a=n,s=0;s<n.childNodes.length;s++){var c=n.childNodes[s];if(s>0)for(var u=s-1;u>=0;){var f=n.childNodes[u];if("function"==typeof f.setAttribute&&"BR"!=f.tagName){a=f;break}u-=1}var h=t;"section"==c.nodeName&&(h=c,a=c),"function"!=typeof c.setAttribute&&c.nodeType!=Node.COMMENT_NODE||e(h,c,a,i,o)}n.nodeType==Node.COMMENT_NODE&&0==l(n,r,i)&&l(n,t,o)}(e,e,null,e.getAttribute("data-element-attributes")||e.parentNode.getAttribute("data-element-attributes")||"\\.element\\s*?(.+?)$",e.getAttribute("data-attributes")||e.parentNode.getAttribute("data-attributes")||"\\.slide:\\s*?(\\S.+?)$"),n&&e.appendChild(n)})),Promise.resolve()}return{id:"markdown",init:function(t){e=t;var n=new rl.Renderer;return n.code=function(e,t){var n="";return il.test(t)&&(n=t.match(il)[1].trim(),n='data-line-numbers="'.concat(n,'"'),t=t.replace(il,"").trim()),e=e.replace(/([&<>'"])/g,(function(e){return ol[e]})),"<pre><code ".concat(n,' class="').concat(t,'">').concat(e,"</code></pre>")},rl.setOptions(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ho(Object(n),!0).forEach((function(t){fo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ho(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({renderer:n},e.getConfig().markdown)),a(e.getRevealElement()).then(s)},processSlides:a,convertSlides:s,slidify:o,marked:rl}}
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealMarkdown=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var n=function(e){return e&&e.Math==Math&&e},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},o=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,s={f:l&&!a.call({1:2},1)?function(e){var t=l(this,e);return!!t&&t.enumerable}:a},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},u={}.toString,f=function(e){return u.call(e).slice(8,-1)},p="".split,h=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==f(e)?p.call(e,""):Object(e)}:Object,g=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},d=function(e){return h(g(e))},v=function(e){return"object"==typeof e?null!==e:"function"==typeof e},y=function(e,t){if(!v(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!v(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},b={}.hasOwnProperty,m=function(e,t){return b.call(e,t)},k=r.document,x=v(k)&&v(k.createElement),w=function(e){return x?k.createElement(e):{}},S=!o&&!i((function(){return 7!=Object.defineProperty(w("div"),"a",{get:function(){return 7}}).a})),E=Object.getOwnPropertyDescriptor,_={f:o?E:function(e,t){if(e=d(e),t=y(t,!0),S)try{return E(e,t)}catch(e){}if(m(e,t))return c(!s.f.call(e,t),e[t])}},A=function(e){if(!v(e))throw TypeError(String(e)+" is not an object");return e},T=Object.defineProperty,O={f:o?T:function(e,t,n){if(A(e),t=y(t,!0),A(n),S)try{return T(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},R=o?function(e,t,n){return O.f(e,t,c(1,n))}:function(e,t,n){return e[t]=n,e},j=function(e,t){try{R(r,e,t)}catch(n){r[e]=t}return t},z="__core-js_shared__",$=r[z]||j(z,{}),P=Function.toString;"function"!=typeof $.inspectSource&&($.inspectSource=function(e){return P.call(e)});var I,C,L,M=$.inspectSource,N=r.WeakMap,q="function"==typeof N&&/native code/.test(M(N)),D=t((function(e){(e.exports=function(e,t){return $[e]||($[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),U=0,Z=Math.random(),F=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++U+Z).toString(36)},G=D("keys"),H=function(e){return G[e]||(G[e]=F(e))},W={},B=r.WeakMap;if(q){var V=new B,K=V.get,X=V.has,Y=V.set;I=function(e,t){return Y.call(V,e,t),t},C=function(e){return K.call(V,e)||{}},L=function(e){return X.call(V,e)}}else{var J=H("state");W[J]=!0,I=function(e,t){return R(e,J,t),t},C=function(e){return m(e,J)?e[J]:{}},L=function(e){return m(e,J)}}var Q,ee,te={set:I,get:C,has:L,enforce:function(e){return L(e)?C(e):I(e,{})},getterFor:function(e){return function(t){var n;if(!v(t)||(n=C(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},ne=t((function(e){var t=te.get,n=te.enforce,i=String(String).split("String");(e.exports=function(e,t,o,a){var l=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof o&&("string"!=typeof t||m(o,"name")||R(o,"name",t),n(o).source=i.join("string"==typeof t?t:"")),e!==r?(l?!c&&e[t]&&(s=!0):delete e[t],s?e[t]=o:R(e,t,o)):s?e[t]=o:j(t,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||M(this)}))})),re=r,ie=function(e){return"function"==typeof e?e:void 0},oe=function(e,t){return arguments.length<2?ie(re[e])||ie(r[e]):re[e]&&re[e][t]||r[e]&&r[e][t]},ae=Math.ceil,le=Math.floor,se=function(e){return isNaN(e=+e)?0:(e>0?le:ae)(e)},ce=Math.min,ue=function(e){return e>0?ce(se(e),9007199254740991):0},fe=Math.max,pe=Math.min,he=function(e,t){var n=se(e);return n<0?fe(n+t,0):pe(n,t)},ge=function(e){return function(t,n,r){var i,o=d(t),a=ue(o.length),l=he(r,a);if(e&&n!=n){for(;a>l;)if((i=o[l++])!=i)return!0}else for(;a>l;l++)if((e||l in o)&&o[l]===n)return e||l||0;return!e&&-1}},de={includes:ge(!0),indexOf:ge(!1)},ve=de.indexOf,ye=function(e,t){var n,r=d(e),i=0,o=[];for(n in r)!m(W,n)&&m(r,n)&&o.push(n);for(;t.length>i;)m(r,n=t[i++])&&(~ve(o,n)||o.push(n));return o},be=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],me=be.concat("length","prototype"),ke={f:Object.getOwnPropertyNames||function(e){return ye(e,me)}},xe={f:Object.getOwnPropertySymbols},we=oe("Reflect","ownKeys")||function(e){var t=ke.f(A(e)),n=xe.f;return n?t.concat(n(e)):t},Se=function(e,t){for(var n=we(t),r=O.f,i=_.f,o=0;o<n.length;o++){var a=n[o];m(e,a)||r(e,a,i(t,a))}},Ee=/#|\.prototype\./,_e=function(e,t){var n=Te[Ae(e)];return n==Re||n!=Oe&&("function"==typeof t?i(t):!!t)},Ae=_e.normalize=function(e){return String(e).replace(Ee,".").toLowerCase()},Te=_e.data={},Oe=_e.NATIVE="N",Re=_e.POLYFILL="P",je=_e,ze=_.f,$e=function(e,t){var n,i,o,a,l,s=e.target,c=e.global,u=e.stat;if(n=c?r:u?r[s]||j(s,{}):(r[s]||{}).prototype)for(i in t){if(a=t[i],o=e.noTargetGet?(l=ze(n,i))&&l.value:n[i],!je(c?i:s+(u?".":"#")+i,e.forced)&&void 0!==o){if(typeof a==typeof o)continue;Se(a,o)}(e.sham||o&&o.sham)&&R(a,"sham",!0),ne(n,i,a,e)}},Pe=Array.isArray||function(e){return"Array"==f(e)},Ie=function(e){return Object(g(e))},Ce=function(e,t,n){var r=y(t);r in e?O.f(e,r,c(0,n)):e[r]=n},Le=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Me=Le&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ne=D("wks"),qe=r.Symbol,De=Me?qe:qe&&qe.withoutSetter||F,Ue=function(e){return m(Ne,e)||(Le&&m(qe,e)?Ne[e]=qe[e]:Ne[e]=De("Symbol."+e)),Ne[e]},Ze=Ue("species"),Fe=function(e,t){var n;return Pe(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Pe(n.prototype)?v(n)&&null===(n=n[Ze])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Ge=oe("navigator","userAgent")||"",He=r.process,We=He&&He.versions,Be=We&&We.v8;Be?ee=(Q=Be.split("."))[0]+Q[1]:Ge&&(!(Q=Ge.match(/Edge\/(\d+)/))||Q[1]>=74)&&(Q=Ge.match(/Chrome\/(\d+)/))&&(ee=Q[1]);var Ve=ee&&+ee,Ke=Ue("species"),Xe=function(e){return Ve>=51||!i((function(){var t=[];return(t.constructor={})[Ke]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Ye=Ue("isConcatSpreadable"),Je=9007199254740991,Qe="Maximum allowed index exceeded",et=Ve>=51||!i((function(){var e=[];return e[Ye]=!1,e.concat()[0]!==e})),tt=Xe("concat"),nt=function(e){if(!v(e))return!1;var t=e[Ye];return void 0!==t?!!t:Pe(e)};$e({target:"Array",proto:!0,forced:!et||!tt},{concat:function(e){var t,n,r,i,o,a=Ie(this),l=Fe(a,0),s=0;for(t=-1,r=arguments.length;t<r;t++)if(nt(o=-1===t?a:arguments[t])){if(s+(i=ue(o.length))>Je)throw TypeError(Qe);for(n=0;n<i;n++,s++)n in o&&Ce(l,s,o[n])}else{if(s>=Je)throw TypeError(Qe);Ce(l,s++,o)}return l.length=s,l}});var rt=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},it=function(e,t,n){if(rt(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},ot=[].push,at=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,o=6==e,a=5==e||o;return function(l,s,c,u){for(var f,p,g=Ie(l),d=h(g),v=it(s,c,3),y=ue(d.length),b=0,m=u||Fe,k=t?m(l,y):n?m(l,0):void 0;y>b;b++)if((a||b in d)&&(p=v(f=d[b],b,g),e))if(t)k[b]=p;else if(p)switch(e){case 3:return!0;case 5:return f;case 6:return b;case 2:ot.call(k,f)}else if(i)return!1;return o?-1:r||i?i:k}},lt={forEach:at(0),map:at(1),filter:at(2),some:at(3),every:at(4),find:at(5),findIndex:at(6)},st=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){throw 1},1)}))},ct=Object.defineProperty,ut={},ft=function(e){throw e},pt=function(e,t){if(m(ut,e))return ut[e];t||(t={});var n=[][e],r=!!m(t,"ACCESSORS")&&t.ACCESSORS,a=m(t,0)?t[0]:ft,l=m(t,1)?t[1]:void 0;return ut[e]=!!n&&!i((function(){if(r&&!o)return!0;var e={length:-1};r?ct(e,1,{enumerable:!0,get:ft}):e[1]=1,n.call(e,a,l)}))},ht=lt.forEach,gt=st("forEach"),dt=pt("forEach"),vt=gt&&dt?[].forEach:function(e){return ht(this,e,arguments.length>1?arguments[1]:void 0)};$e({target:"Array",proto:!0,forced:[].forEach!=vt},{forEach:vt});var yt,bt=Object.keys||function(e){return ye(e,be)},mt=o?Object.defineProperties:function(e,t){A(e);for(var n,r=bt(t),i=r.length,o=0;i>o;)O.f(e,n=r[o++],t[n]);return e},kt=oe("document","documentElement"),xt=H("IE_PROTO"),wt=function(){},St=function(e){return"<script>"+e+"</"+"script>"},Et=function(){try{yt=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t;Et=yt?function(e){e.write(St("")),e.close();var t=e.parentWindow.Object;return e=null,t}(yt):((t=w("iframe")).style.display="none",kt.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(St("document.F=Object")),e.close(),e.F);for(var n=be.length;n--;)delete Et.prototype[be[n]];return Et()};W[xt]=!0;var _t=Object.create||function(e,t){var n;return null!==e?(wt.prototype=A(e),n=new wt,wt.prototype=null,n[xt]=e):n=Et(),void 0===t?n:mt(n,t)},At=Ue("unscopables"),Tt=Array.prototype;null==Tt[At]&&O.f(Tt,At,{configurable:!0,value:_t(null)});var Ot,Rt,jt,zt=function(e){Tt[At][e]=!0},$t={},Pt=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),It=H("IE_PROTO"),Ct=Object.prototype,Lt=Pt?Object.getPrototypeOf:function(e){return e=Ie(e),m(e,It)?e[It]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Ct:null},Mt=Ue("iterator"),Nt=!1;[].keys&&("next"in(jt=[].keys())?(Rt=Lt(Lt(jt)))!==Object.prototype&&(Ot=Rt):Nt=!0),null==Ot&&(Ot={}),m(Ot,Mt)||R(Ot,Mt,(function(){return this}));var qt={IteratorPrototype:Ot,BUGGY_SAFARI_ITERATORS:Nt},Dt=O.f,Ut=Ue("toStringTag"),Zt=function(e,t,n){e&&!m(e=n?e:e.prototype,Ut)&&Dt(e,Ut,{configurable:!0,value:t})},Ft=qt.IteratorPrototype,Gt=function(){return this},Ht=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return A(n),function(e){if(!v(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype")}(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),Wt=qt.IteratorPrototype,Bt=qt.BUGGY_SAFARI_ITERATORS,Vt=Ue("iterator"),Kt="keys",Xt="values",Yt="entries",Jt=function(){return this},Qt=function(e,t,n,r,i,o,a){!function(e,t,n){var r=t+" Iterator";e.prototype=_t(Ft,{next:c(1,n)}),Zt(e,r,!1),$t[r]=Gt}(n,t,r);var l,s,u,f=function(e){if(e===i&&v)return v;if(!Bt&&e in g)return g[e];switch(e){case Kt:case Xt:case Yt:return function(){return new n(this,e)}}return function(){return new n(this)}},p=t+" Iterator",h=!1,g=e.prototype,d=g[Vt]||g["@@iterator"]||i&&g[i],v=!Bt&&d||f(i),y="Array"==t&&g.entries||d;if(y&&(l=Lt(y.call(new e)),Wt!==Object.prototype&&l.next&&(Lt(l)!==Wt&&(Ht?Ht(l,Wt):"function"!=typeof l[Vt]&&R(l,Vt,Jt)),Zt(l,p,!0))),i==Xt&&d&&d.name!==Xt&&(h=!0,v=function(){return d.call(this)}),g[Vt]!==v&&R(g,Vt,v),$t[t]=v,i)if(s={values:f(Xt),keys:o?v:f(Kt),entries:f(Yt)},a)for(u in s)(Bt||h||!(u in g))&&ne(g,u,s[u]);else $e({target:t,proto:!0,forced:Bt||h},s);return s},en="Array Iterator",tn=te.set,nn=te.getterFor(en),rn=Qt(Array,"Array",(function(e,t){tn(this,{type:en,target:d(e),index:0,kind:t})}),(function(){var e=nn(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");$t.Arguments=$t.Array,zt("keys"),zt("values"),zt("entries");var on=[].join,an=h!=Object,ln=st("join",",");$e({target:"Array",proto:!0,forced:an||!ln},{join:function(e){return on.call(d(this),void 0===e?",":e)}});var sn=Xe("slice"),cn=pt("slice",{ACCESSORS:!0,0:0,1:2}),un=Ue("species"),fn=[].slice,pn=Math.max;$e({target:"Array",proto:!0,forced:!sn||!cn},{slice:function(e,t){var n,r,i,o=d(this),a=ue(o.length),l=he(e,a),s=he(void 0===t?a:t,a);if(Pe(o)&&("function"!=typeof(n=o.constructor)||n!==Array&&!Pe(n.prototype)?v(n)&&null===(n=n[un])&&(n=void 0):n=void 0,n===Array||void 0===n))return fn.call(o,l,s);for(r=new(void 0===n?Array:n)(pn(s-l,0)),i=0;l<s;l++,i++)l in o&&Ce(r,i,o[l]);return r.length=i,r}});var hn=O.f,gn=Function.prototype,dn=gn.toString,vn=/^\s*function ([^ (]*)/,yn="name";o&&!(yn in gn)&&hn(gn,yn,{configurable:!0,get:function(){try{return dn.call(this).match(vn)[1]}catch(e){return""}}});var bn={};bn[Ue("toStringTag")]="z";var mn="[object z]"===String(bn),kn=Ue("toStringTag"),xn="Arguments"==f(function(){return arguments}()),wn=mn?f:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),kn))?n:xn?f(t):"Object"==(r=f(t))&&"function"==typeof t.callee?"Arguments":r},Sn=mn?{}.toString:function(){return"[object "+wn(this)+"]"};mn||ne(Object.prototype,"toString",Sn,{unsafe:!0});var En=r.Promise,_n=Ue("species"),An=function(e){var t=oe(e),n=O.f;o&&t&&!t[_n]&&n(t,_n,{configurable:!0,get:function(){return this}})},Tn=Ue("iterator"),On=Array.prototype,Rn=Ue("iterator"),jn=function(e,t,n,r){try{return r?t(A(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&A(i.call(e)),t}},zn=t((function(e){var t=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,n,r,i,o){var a,l,s,c,u,f,p,h,g=it(n,r,i?2:1);if(o)a=e;else{if("function"!=typeof(l=function(e){if(null!=e)return e[Rn]||e["@@iterator"]||$t[wn(e)]}(e)))throw TypeError("Target is not iterable");if(void 0!==(h=l)&&($t.Array===h||On[Tn]===h)){for(s=0,c=ue(e.length);c>s;s++)if((u=i?g(A(p=e[s])[0],p[1]):g(e[s]))&&u instanceof t)return u;return new t(!1)}a=l.call(e)}for(f=a.next;!(p=f.call(a)).done;)if("object"==typeof(u=jn(a,g,p.value,i))&&u&&u instanceof t)return u;return new t(!1)}).stop=function(e){return new t(!0,e)}})),$n=Ue("iterator"),Pn=!1;try{var In=0,Cn={next:function(){return{done:!!In++}},return:function(){Pn=!0}};Cn[$n]=function(){return this},Array.from(Cn,(function(){throw 2}))}catch(e){}var Ln,Mn,Nn,qn=Ue("species"),Dn=function(e,t){var n,r=A(e).constructor;return void 0===r||null==(n=A(r)[qn])?t:rt(n)},Un=/(iphone|ipod|ipad).*applewebkit/i.test(Ge),Zn=r.location,Fn=r.setImmediate,Gn=r.clearImmediate,Hn=r.process,Wn=r.MessageChannel,Bn=r.Dispatch,Vn=0,Kn={},Xn="onreadystatechange",Yn=function(e){if(Kn.hasOwnProperty(e)){var t=Kn[e];delete Kn[e],t()}},Jn=function(e){return function(){Yn(e)}},Qn=function(e){Yn(e.data)},er=function(e){r.postMessage(e+"",Zn.protocol+"//"+Zn.host)};Fn&&Gn||(Fn=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Kn[++Vn]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},Ln(Vn),Vn},Gn=function(e){delete Kn[e]},"process"==f(Hn)?Ln=function(e){Hn.nextTick(Jn(e))}:Bn&&Bn.now?Ln=function(e){Bn.now(Jn(e))}:Wn&&!Un?(Nn=(Mn=new Wn).port2,Mn.port1.onmessage=Qn,Ln=it(Nn.postMessage,Nn,1)):!r.addEventListener||"function"!=typeof postMessage||r.importScripts||i(er)||"file:"===Zn.protocol?Ln=Xn in w("script")?function(e){kt.appendChild(w("script")).onreadystatechange=function(){kt.removeChild(this),Yn(e)}}:function(e){setTimeout(Jn(e),0)}:(Ln=er,r.addEventListener("message",Qn,!1)));var tr,nr,rr,ir,or,ar,lr,sr,cr={set:Fn,clear:Gn},ur=_.f,fr=cr.set,pr=r.MutationObserver||r.WebKitMutationObserver,hr=r.process,gr=r.Promise,dr="process"==f(hr),vr=ur(r,"queueMicrotask"),yr=vr&&vr.value;yr||(tr=function(){var e,t;for(dr&&(e=hr.domain)&&e.exit();nr;){t=nr.fn,nr=nr.next;try{t()}catch(e){throw nr?ir():rr=void 0,e}}rr=void 0,e&&e.enter()},dr?ir=function(){hr.nextTick(tr)}:pr&&!Un?(or=!0,ar=document.createTextNode(""),new pr(tr).observe(ar,{characterData:!0}),ir=function(){ar.data=or=!or}):gr&&gr.resolve?(lr=gr.resolve(void 0),sr=lr.then,ir=function(){sr.call(lr,tr)}):ir=function(){fr.call(r,tr)});var br,mr,kr,xr,wr=yr||function(e){var t={fn:e,next:void 0};rr&&(rr.next=t),nr||(nr=t,ir()),rr=t},Sr=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=rt(t),this.reject=rt(n)},Er={f:function(e){return new Sr(e)}},_r=function(e,t){if(A(e),v(t)&&t.constructor===e)return t;var n=Er.f(e);return(0,n.resolve)(t),n.promise},Ar=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},Tr=cr.set,Or=Ue("species"),Rr="Promise",jr=te.get,zr=te.set,$r=te.getterFor(Rr),Pr=En,Ir=r.TypeError,Cr=r.document,Lr=r.process,Mr=oe("fetch"),Nr=Er.f,qr=Nr,Dr="process"==f(Lr),Ur=!!(Cr&&Cr.createEvent&&r.dispatchEvent),Zr="unhandledrejection",Fr=je(Rr,(function(){if(!(M(Pr)!==String(Pr))){if(66===Ve)return!0;if(!Dr&&"function"!=typeof PromiseRejectionEvent)return!0}if(Ve>=51&&/native code/.test(Pr))return!1;var e=Pr.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[Or]=t,!(e.then((function(){}))instanceof t)})),Gr=Fr||!function(e,t){if(!t&&!Pn)return!1;var n=!1;try{var r={};r[$n]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n}((function(e){Pr.all(e).catch((function(){}))})),Hr=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},Wr=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;wr((function(){for(var i=t.value,o=1==t.state,a=0;r.length>a;){var l,s,c,u=r[a++],f=o?u.ok:u.fail,p=u.resolve,h=u.reject,g=u.domain;try{f?(o||(2===t.rejection&&Xr(e,t),t.rejection=1),!0===f?l=i:(g&&g.enter(),l=f(i),g&&(g.exit(),c=!0)),l===u.promise?h(Ir("Promise-chain cycle")):(s=Hr(l))?s.call(l,p,h):p(l)):h(i)}catch(e){g&&!c&&g.exit(),h(e)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Vr(e,t)}))}},Br=function(e,t,n){var i,o;Ur?((i=Cr.createEvent("Event")).promise=t,i.reason=n,i.initEvent(e,!1,!0),r.dispatchEvent(i)):i={promise:t,reason:n},(o=r["on"+e])?o(i):e===Zr&&function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}("Unhandled promise rejection",n)},Vr=function(e,t){Tr.call(r,(function(){var n,r=t.value;if(Kr(t)&&(n=Ar((function(){Dr?Lr.emit("unhandledRejection",r,e):Br(Zr,e,r)})),t.rejection=Dr||Kr(t)?2:1,n.error))throw n.value}))},Kr=function(e){return 1!==e.rejection&&!e.parent},Xr=function(e,t){Tr.call(r,(function(){Dr?Lr.emit("rejectionHandled",e):Br("rejectionhandled",e,t.value)}))},Yr=function(e,t,n,r){return function(i){e(t,n,i,r)}},Jr=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,Wr(e,t,!0))},Qr=function(e,t,n,r){if(!t.done){t.done=!0,r&&(t=r);try{if(e===n)throw Ir("Promise can't be resolved itself");var i=Hr(n);i?wr((function(){var r={done:!1};try{i.call(n,Yr(Qr,e,r,t),Yr(Jr,e,r,t))}catch(n){Jr(e,r,n,t)}})):(t.value=n,t.state=1,Wr(e,t,!1))}catch(n){Jr(e,{done:!1},n,t)}}};Fr&&(Pr=function(e){!function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation")}(this,Pr,Rr),rt(e),br.call(this);var t=jr(this);try{e(Yr(Qr,this,t),Yr(Jr,this,t))}catch(e){Jr(this,t,e)}},(br=function(e){zr(this,{type:Rr,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=function(e,t,n){for(var r in t)ne(e,r,t[r],n);return e}(Pr.prototype,{then:function(e,t){var n=$r(this),r=Nr(Dn(this,Pr));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=Dr?Lr.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Wr(this,n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),mr=function(){var e=new br,t=jr(e);this.promise=e,this.resolve=Yr(Qr,e,t),this.reject=Yr(Jr,e,t)},Er.f=Nr=function(e){return e===Pr||e===kr?new mr(e):qr(e)},"function"==typeof En&&(xr=En.prototype.then,ne(En.prototype,"then",(function(e,t){var n=this;return new Pr((function(e,t){xr.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof Mr&&$e({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return _r(Pr,Mr.apply(r,arguments))}}))),$e({global:!0,wrap:!0,forced:Fr},{Promise:Pr}),Zt(Pr,Rr,!1),An(Rr),kr=oe(Rr),$e({target:Rr,stat:!0,forced:Fr},{reject:function(e){var t=Nr(this);return t.reject.call(void 0,e),t.promise}}),$e({target:Rr,stat:!0,forced:Fr},{resolve:function(e){return _r(this,e)}}),$e({target:Rr,stat:!0,forced:Gr},{all:function(e){var t=this,n=Nr(t),r=n.resolve,i=n.reject,o=Ar((function(){var n=rt(t.resolve),o=[],a=0,l=1;zn(e,(function(e){var s=a++,c=!1;o.push(void 0),l++,n.call(t,e).then((function(e){c||(c=!0,o[s]=e,--l||r(o))}),i)})),--l||r(o)}));return o.error&&i(o.value),n.promise},race:function(e){var t=this,n=Nr(t),r=n.reject,i=Ar((function(){var i=rt(t.resolve);zn(e,(function(e){i.call(t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var ei=Ue("match"),ti=function(e){var t;return v(e)&&(void 0!==(t=e[ei])?!!t:"RegExp"==f(e))},ni=function(){var e=A(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t};function ri(e,t){return RegExp(e,t)}var ii={UNSUPPORTED_Y:i((function(){var e=ri("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),BROKEN_CARET:i((function(){var e=ri("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},oi=O.f,ai=ke.f,li=te.set,si=Ue("match"),ci=r.RegExp,ui=ci.prototype,fi=/a/g,pi=/a/g,hi=new ci(fi)!==fi,gi=ii.UNSUPPORTED_Y;if(o&&je("RegExp",!hi||gi||i((function(){return pi[si]=!1,ci(fi)!=fi||ci(pi)==pi||"/a/i"!=ci(fi,"i")})))){for(var di=function(e,t){var n,r=this instanceof di,i=ti(e),o=void 0===t;if(!r&&i&&e.constructor===di&&o)return e;hi?i&&!o&&(e=e.source):e instanceof di&&(o&&(t=ni.call(e)),e=e.source),gi&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var a,l,s,c,u,f=(a=hi?new ci(e,t):ci(e,t),l=r?this:ui,s=di,Ht&&"function"==typeof(c=l.constructor)&&c!==s&&v(u=c.prototype)&&u!==s.prototype&&Ht(a,u),a);return gi&&n&&li(f,{sticky:n}),f},vi=function(e){e in di||oi(di,e,{configurable:!0,get:function(){return ci[e]},set:function(t){ci[e]=t}})},yi=ai(ci),bi=0;yi.length>bi;)vi(yi[bi++]);ui.constructor=di,di.prototype=ui,ne(r,"RegExp",di)}An("RegExp");var mi=RegExp.prototype.exec,ki=String.prototype.replace,xi=mi,wi=function(){var e=/a/,t=/b*/g;return mi.call(e,"a"),mi.call(t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),Si=ii.UNSUPPORTED_Y||ii.BROKEN_CARET,Ei=void 0!==/()??/.exec("")[1];(wi||Ei||Si)&&(xi=function(e){var t,n,r,i,o=this,a=Si&&o.sticky,l=ni.call(o),s=o.source,c=0,u=e;return a&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),u=String(e).slice(o.lastIndex),o.lastIndex>0&&(!o.multiline||o.multiline&&"\n"!==e[o.lastIndex-1])&&(s="(?: "+s+")",u=" "+u,c++),n=new RegExp("^(?:"+s+")",l)),Ei&&(n=new RegExp("^"+s+"$(?!\\s)",l)),wi&&(t=o.lastIndex),r=mi.call(a?n:o,u),a?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=o.lastIndex,o.lastIndex+=r[0].length):o.lastIndex=0:wi&&r&&(o.lastIndex=o.global?r.index+r[0].length:t),Ei&&r&&r.length>1&&ki.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var _i=xi;$e({target:"RegExp",proto:!0,forced:/./.exec!==_i},{exec:_i});var Ai="toString",Ti=RegExp.prototype,Oi=Ti.toString,Ri=i((function(){return"/a/b"!=Oi.call({source:"a",flags:"b"})})),ji=Oi.name!=Ai;(Ri||ji)&&ne(RegExp.prototype,Ai,(function(){var e=A(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in Ti)?ni.call(e):n)}),{unsafe:!0});var zi=function(e){return function(t,n){var r,i,o=String(g(t)),a=se(n),l=o.length;return a<0||a>=l?e?"":void 0:(r=o.charCodeAt(a))<55296||r>56319||a+1===l||(i=o.charCodeAt(a+1))<56320||i>57343?e?o.charAt(a):r:e?o.slice(a,a+2):i-56320+(r-55296<<10)+65536}},$i={codeAt:zi(!1),charAt:zi(!0)},Pi=$i.charAt,Ii="String Iterator",Ci=te.set,Li=te.getterFor(Ii);Qt(String,"String",(function(e){Ci(this,{type:Ii,string:String(e),index:0})}),(function(){var e,t=Li(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=Pi(n,r),t.index+=e.length,{value:e,done:!1})}));var Mi=Ue("species"),Ni=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),qi="$0"==="a".replace(/./,"$0"),Di=Ue("replace"),Ui=!!/./[Di]&&""===/./[Di]("a","$0"),Zi=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),Fi=function(e,t,n,r){var o=Ue(e),a=!i((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),l=a&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Mi]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!a||!l||"replace"===e&&(!Ni||!qi||Ui)||"split"===e&&!Zi){var s=/./[o],c=n(o,""[e],(function(e,t,n,r,i){return t.exec===_i?a&&!i?{done:!0,value:s.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:qi,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ui}),u=c[0],f=c[1];ne(String.prototype,e,u),ne(RegExp.prototype,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&R(RegExp.prototype[o],"sham",!0)},Gi=$i.charAt,Hi=function(e,t,n){return t+(n?Gi(e,t).length:1)},Wi=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==f(e))throw TypeError("RegExp#exec called on incompatible receiver");return _i.call(e,t)};Fi("match",1,(function(e,t,n){return[function(t){var n=g(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=A(e),o=String(this);if(!i.global)return Wi(i,o);var a=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=Wi(i,o));){var u=String(l[0]);s[c]=u,""===u&&(i.lastIndex=Hi(o,ue(i.lastIndex),a)),c++}return 0===c?null:s}]}));var Bi=Math.max,Vi=Math.min,Ki=Math.floor,Xi=/\$([$&'`]|\d\d?|<[^>]*>)/g,Yi=/\$([$&'`]|\d\d?)/g;Fi("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,o=r.REPLACE_KEEPS_$0,a=i?"$":"$0";return[function(n,r){var i=g(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&o||"string"==typeof r&&-1===r.indexOf(a)){var s=n(t,e,this,r);if(s.done)return s.value}var c=A(e),u=String(this),f="function"==typeof r;f||(r=String(r));var p=c.global;if(p){var h=c.unicode;c.lastIndex=0}for(var g=[];;){var d=Wi(c,u);if(null===d)break;if(g.push(d),!p)break;""===String(d[0])&&(c.lastIndex=Hi(u,ue(c.lastIndex),h))}for(var v,y="",b=0,m=0;m<g.length;m++){d=g[m];for(var k=String(d[0]),x=Bi(Vi(se(d.index),u.length),0),w=[],S=1;S<d.length;S++)w.push(void 0===(v=d[S])?v:String(v));var E=d.groups;if(f){var _=[k].concat(w,x,u);void 0!==E&&_.push(E);var T=String(r.apply(void 0,_))}else T=l(k,u,x,w,E,r);x>=b&&(y+=u.slice(b,x)+T,b=x+k.length)}return y+u.slice(b)}];function l(e,n,r,i,o,a){var l=r+e.length,s=i.length,c=Yi;return void 0!==o&&(o=Ie(o),c=Xi),t.call(a,c,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(l);case"<":c=o[a.slice(1,-1)];break;default:var u=+a;if(0===u)return t;if(u>s){var f=Ki(u/10);return 0===f?t:f<=s?void 0===i[f-1]?a.charAt(1):i[f-1]+a.charAt(1):t}c=i[u-1]}return void 0===c?"":c}))}}));var Ji=[].push,Qi=Math.min,eo=4294967295,to=!i((function(){return!RegExp(eo,"y")}));Fi("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(g(this)),i=void 0===n?eo:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!ti(e))return t.call(r,e,i);for(var o,a,l,s=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),u=0,f=new RegExp(e.source,c+"g");(o=_i.call(f,r))&&!((a=f.lastIndex)>u&&(s.push(r.slice(u,o.index)),o.length>1&&o.index<r.length&&Ji.apply(s,o.slice(1)),l=o[0].length,u=a,s.length>=i));)f.lastIndex===o.index&&f.lastIndex++;return u===r.length?!l&&f.test("")||s.push(""):s.push(r.slice(u)),s.length>i?s.slice(0,i):s}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=g(this),o=null==t?void 0:t[e];return void 0!==o?o.call(t,i,n):r.call(String(i),t,n)},function(e,i){var o=n(r,e,this,i,r!==t);if(o.done)return o.value;var a=A(e),l=String(this),s=Dn(a,RegExp),c=a.unicode,u=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(to?"y":"g"),f=new s(to?a:"^(?:"+a.source+")",u),p=void 0===i?eo:i>>>0;if(0===p)return[];if(0===l.length)return null===Wi(f,l)?[l]:[];for(var h=0,g=0,d=[];g<l.length;){f.lastIndex=to?g:0;var v,y=Wi(f,to?l:l.slice(g));if(null===y||(v=Qi(ue(f.lastIndex+(to?0:g)),l.length))===h)g=Hi(l,g,c);else{if(d.push(l.slice(h,g)),d.length===p)return d;for(var b=1;b<=y.length-1;b++)if(d.push(y[b]),d.length===p)return d;g=h=v}}return d.push(l.slice(h)),d}]}),!to);var no="\t\n\v\f\r \u2028\u2029\ufeff",ro="["+no+"]",io=RegExp("^"+ro+ro+"*"),oo=RegExp(ro+ro+"*$"),ao=function(e){return function(t){var n=String(g(t));return 1&e&&(n=n.replace(io,"")),2&e&&(n=n.replace(oo,"")),n}},lo={start:ao(1),end:ao(2),trim:ao(3)},so=function(e){return i((function(){return!!no[e]()||"​…᠎"!="​…᠎"[e]()||no[e].name!==e}))},co=lo.trim;$e({target:"String",proto:!0,forced:so("trim")},{trim:function(){return co(this)}});var uo={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0};for(var fo in uo){var po=r[fo],ho=po&&po.prototype;if(ho&&ho.forEach!==vt)try{R(ho,"forEach",vt)}catch(e){ho.forEach=vt}}var go=Ue("iterator"),vo=Ue("toStringTag"),yo=rn.values;for(var bo in uo){var mo=r[bo],ko=mo&&mo.prototype;if(ko){if(ko[go]!==yo)try{R(ko,go,yo)}catch(e){ko[go]=yo}if(ko[vo]||R(ko,vo,bo),uo[bo])for(var xo in rn)if(ko[xo]!==rn[xo])try{R(ko,xo,rn[xo])}catch(e){ko[xo]=rn[xo]}}}function wo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function So(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Eo(e,t,n){return t&&So(e.prototype,t),n&&So(e,n),e}function _o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ao(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function To(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw o}}return n}(e,t)||Oo(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oo(e,t){if(e){if("string"==typeof e)return Ro(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ro(e,t):void 0}}function Ro(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function jo(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=Oo(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f: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.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}var zo=/"/g;$e({target:"String",proto:!0,forced:function(e){return i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}("link")},{link:function(e){return t="a",n="href",r=e,i=String(g(this)),o="<"+t,""!==n&&(o+=" "+n+'="'+String(r).replace(zo,"&quot;")+'"'),o+">"+i+"</"+t+">";var t,n,r,i,o}});var $o=de.indexOf,Po=[].indexOf,Io=!!Po&&1/[1].indexOf(1,-0)<0,Co=st("indexOf"),Lo=pt("indexOf",{ACCESSORS:!0,1:0});$e({target:"Array",proto:!0,forced:Io||!Co||!Lo},{indexOf:function(e){return Io?Po.apply(this,arguments)||0:$o(this,e,arguments.length>1?arguments[1]:void 0)}});var Mo=lt.map,No=Xe("map"),qo=pt("map");$e({target:"Array",proto:!0,forced:!No||!qo},{map:function(e){return Mo(this,e,arguments.length>1?arguments[1]:void 0)}});var Do,Uo=function(e){if(ti(e))throw TypeError("The method doesn't accept regular expressions");return e},Zo=Ue("match"),Fo=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[Zo]=!1,"/./"[e](t)}catch(e){}}return!1},Go=_.f,Ho="".endsWith,Wo=Math.min,Bo=Fo("endsWith"),Vo=!(Bo||(Do=Go(String.prototype,"endsWith"),!Do||Do.writable));$e({target:"String",proto:!0,forced:!Vo&&!Bo},{endsWith:function(e){var t=String(g(this));Uo(e);var n=arguments.length>1?arguments[1]:void 0,r=ue(t.length),i=void 0===n?r:Wo(ue(n),r),o=String(e);return Ho?Ho.call(t,o,i):t.slice(i-o.length,i)===o}});var Ko=_.f,Xo="".startsWith,Yo=Math.min,Jo=Fo("startsWith"),Qo=!Jo&&!!function(){var e=Ko(String.prototype,"startsWith");return e&&!e.writable}();$e({target:"String",proto:!0,forced:!Qo&&!Jo},{startsWith:function(e){var t=String(g(this));Uo(e);var n=ue(Yo(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return Xo?Xo.call(t,r,n):t.slice(n,n+r.length)===r}});var ea=lo.end,ta=so("trimEnd"),na=ta?function(){return ea(this)}:"".trimEnd;$e({target:"String",proto:!0,forced:ta},{trimEnd:na,trimRight:na});var ra=t((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),ia=Xe("splice"),oa=pt("splice",{ACCESSORS:!0,0:0,1:2}),aa=Math.max,la=Math.min,sa=9007199254740991,ca="Maximum allowed length exceeded";$e({target:"Array",proto:!0,forced:!ia||!oa},{splice:function(e,t){var n,r,i,o,a,l,s=Ie(this),c=ue(s.length),u=he(e,c),f=arguments.length;if(0===f?n=r=0:1===f?(n=0,r=c-u):(n=f-2,r=la(aa(se(t),0),c-u)),c+n-r>sa)throw TypeError(ca);for(i=Fe(s,r),o=0;o<r;o++)(a=u+o)in s&&Ce(i,o,s[a]);if(i.length=r,n<r){for(o=u;o<c-r;o++)l=o+n,(a=o+r)in s?s[l]=s[a]:delete s[l];for(o=c;o>c-r+n;o--)delete s[o-1]}else if(n>r)for(o=c-r;o>u;o--)l=o+n-1,(a=o+r-1)in s?s[l]=s[a]:delete s[l];for(o=0;o<n;o++)s[o+u]=arguments[o+2];return s.length=c-r+n,i}});var ua=/[&<>"']/,fa=/[&<>"']/g,pa=/[<>"']|&(?!#?\w+;)/,ha=/[<>"']|&(?!#?\w+;)/g,ga={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},da=function(e){return ga[e]};var va=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function ya(e){return e.replace(va,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var ba=/(^|[^\[])\^/g;var ma=/[^\w:]/g,ka=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var xa={},wa=/^[^:]+:\/*[^/]*$/,Sa=/^([^:]+:)[\s\S]*$/,Ea=/^([^:]+:\/*[^/]*)[\s\S]*$/;function _a(e,t){xa[" "+e]||(wa.test(e)?xa[" "+e]=e+"/":xa[" "+e]=Aa(e,"/",!0));var n=-1===(e=xa[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(Sa,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(Ea,"$1")+t:e+t}function Aa(e,t,n){var r=e.length;if(0===r)return"";for(var i=0;i<r;){var o=e.charAt(r-i-1);if(o!==t||n){if(o===t||!n)break;i++}else i++}return e.substr(0,r-i)}var Ta=function(e,t){if(t){if(ua.test(e))return e.replace(fa,da)}else if(pa.test(e))return e.replace(ha,da);return e},Oa=ya,Ra=function(e,t){e=e.source||e,t=t||"";var n={replace:function(t,r){return r=(r=r.source||r).replace(ba,"$1"),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n},ja=function(e,t,n){if(e){var r;try{r=decodeURIComponent(ya(n)).replace(ma,"").toLowerCase()}catch(e){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}t&&!ka.test(n)&&(n=_a(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n},za={exec:function(){}},$a=function(e){for(var t,n,r=1;r<arguments.length;r++)for(n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},Pa=function(e,t){var n=e.replace(/\|/g,(function(e,t,n){for(var r=!1,i=t;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n},Ia=Aa,Ca=function(e,t){if(-1===e.indexOf(t[1]))return-1;for(var n=e.length,r=0,i=0;i<n;i++)if("\\"===e[i])i++;else if(e[i]===t[0])r++;else if(e[i]===t[1]&&--r<0)return i;return-1},La=function(e){e&&e.sanitize&&!e.silent&&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")},Ma=ra.defaults,Na=Ia,qa=Pa,Da=Ta,Ua=Ca;function Za(e,t,n){var r=t.href,i=t.title?Da(t.title):null;return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:r,title:i,text:e[1]}:{type:"image",raw:n,text:Da(e[1]),href:r,title:i}}var Fa=function(){function e(t){wo(this,e),this.options=t||Ma}return Eo(e,[{key:"space",value:function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}}},{key:"code",value:function(e,t){var n=this.rules.block.code.exec(e);if(n){var r=t[t.length-1];if(r&&"paragraph"===r.type)return{raw:n[0],text:n[0].trimRight()};var i=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Na(i,"\n")}}}},{key:"fences",value:function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:To(t,1)[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}}},{key:"heading",value:function(e){var t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}}},{key:"nptable",value:function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:qa(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=qa(n.cells[r],n.header.length);return n}}}},{key:"hr",value:function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}},{key:"blockquote",value:function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}}},{key:"list",value:function(e){var t=this.rules.block.list.exec(e);if(t){for(var n,r,i,o,a,l,s,c=t[0],u=t[2],f=u.length>1,p={type:"list",raw:c,ordered:f,start:f?+u:"",loose:!1,items:[]},h=t[0].match(this.rules.block.item),g=!1,d=h.length,v=0;v<d;v++)c=n=h[v],r=n.length,~(n=n.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),v!==d-1&&(i=this.rules.block.bullet.exec(h[v+1])[0],(u.length>1?1===i.length:i.length>1||this.options.smartLists&&i!==u)&&(o=h.slice(v+1).join("\n"),p.raw=p.raw.substring(0,p.raw.length-o.length),v=d-1)),a=g||/\n\n(?!\s*$)/.test(n),v!==d-1&&(g="\n"===n.charAt(n.length-1),a||(a=g)),a&&(p.loose=!0),s=void 0,(l=/^\[[ xX]\] /.test(n))&&(s=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,"")),p.items.push({type:"list_item",raw:c,task:l,checked:s,loose:a,text:n});return p}}},{key:"html",value:function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Da(t[0]):t[0]}}},{key:"def",value:function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}},{key:"table",value:function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:qa(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=qa(n.cells[r].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}}},{key:"lheading",value:function(e){var t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1]}}},{key:"paragraph",value:function(e){var t=this.rules.block.paragraph.exec(e);if(t)return{type:"paragraph",raw:t[0],text:"\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1]}}},{key:"text",value:function(e,t){var n=this.rules.block.text.exec(e);if(n){var r=t[t.length-1];return r&&"text"===r.type?{raw:n[0],text:n[0]}:{type:"text",raw:n[0],text:n[0]}}}},{key:"escape",value:function(e){var t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:Da(t[1])}}},{key:"tag",value:function(e,t,n){var r=this.rules.inline.tag.exec(e);if(r)return!t&&/^<a /i.test(r[0])?t=!0:t&&/^<\/a>/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Da(r[0]):r[0]}}},{key:"link",value:function(e){var t=this.rules.inline.link.exec(e);if(t){var n=Ua(t[2],"()");if(n>-1){var r=(0===t[0].indexOf("!")?5:4)+t[1].length+n;t[2]=t[2].substring(0,n),t[0]=t[0].substring(0,r).trim(),t[3]=""}var i=t[2],o="";if(this.options.pedantic){var a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);a?(i=a[1],o=a[3]):o=""}else o=t[3]?t[3].slice(1,-1):"";return Za(t,{href:(i=i.trim().replace(/^<([\s\S]*)>$/,"$1"))?i.replace(this.rules.inline._escapes,"$1"):i,title:o?o.replace(this.rules.inline._escapes,"$1"):o},t[0])}}},{key:"reflink",value:function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return Za(n,r,n[0])}}},{key:"strong",value:function(e){var t=this.rules.inline.strong.exec(e);if(t)return{type:"strong",raw:t[0],text:t[4]||t[3]||t[2]||t[1]}}},{key:"em",value:function(e){var t=this.rules.inline.em.exec(e);if(t)return{type:"em",raw:t[0],text:t[6]||t[5]||t[4]||t[3]||t[2]||t[1]}}},{key:"codespan",value:function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=n.startsWith(" ")&&n.endsWith(" ");return r&&i&&(n=n.substring(1,n.length-1)),n=Da(n,!0),{type:"codespan",raw:t[0],text:n}}}},{key:"br",value:function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}},{key:"del",value:function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[1]}}},{key:"autolink",value:function(e,t){var n,r,i=this.rules.inline.autolink.exec(e);if(i)return r="@"===i[2]?"mailto:"+(n=Da(this.options.mangle?t(i[1]):i[1])):n=Da(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},{key:"url",value:function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if("@"===n[2])i="mailto:"+(r=Da(this.options.mangle?t(n[0]):n[0]));else{var o;do{o=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(o!==n[0]);r=Da(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}},{key:"inlineText",value:function(e,t,n){var r,i=this.rules.inline.text.exec(e);if(i)return r=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Da(i[0]):i[0]:Da(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}]),e}(),Ga=za,Ha=Ra,Wa=$a,Ba={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Ga,table:Ga,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Ba.def=Ha(Ba.def).replace("label",Ba._label).replace("title",Ba._title).getRegex(),Ba.bullet=/(?:[*+-]|\d{1,9}\.)/,Ba.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,Ba.item=Ha(Ba.item,"gm").replace(/bull/g,Ba.bullet).getRegex(),Ba.list=Ha(Ba.list).replace(/bull/g,Ba.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ba.def.source+")").getRegex(),Ba._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",Ba._comment=/<!--(?!-?>)[\s\S]*?-->/,Ba.html=Ha(Ba.html,"i").replace("comment",Ba._comment).replace("tag",Ba._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ba.paragraph=Ha(Ba._paragraph).replace("hr",Ba.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Ba._tag).getRegex(),Ba.blockquote=Ha(Ba.blockquote).replace("paragraph",Ba.paragraph).getRegex(),Ba.normal=Wa({},Ba),Ba.gfm=Wa({},Ba.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Ba.gfm.nptable=Ha(Ba.gfm.nptable).replace("hr",Ba.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Ba._tag).getRegex(),Ba.gfm.table=Ha(Ba.gfm.table).replace("hr",Ba.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Ba._tag).getRegex(),Ba.pedantic=Wa({},Ba.normal,{html:Ha("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ba._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(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Ga,paragraph:Ha(Ba.normal._paragraph).replace("hr",Ba.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ba.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Va={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ga,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\s,punctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\s,punctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Ga,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};Va.em=Ha(Va.em).replace(/punctuation/g,Va._punctuation).getRegex(),Va._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Va._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Va._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])?)+(?![-_])/,Va.autolink=Ha(Va.autolink).replace("scheme",Va._scheme).replace("email",Va._email).getRegex(),Va._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Va.tag=Ha(Va.tag).replace("comment",Ba._comment).replace("attribute",Va._attribute).getRegex(),Va._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Va._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,Va._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Va.link=Ha(Va.link).replace("label",Va._label).replace("href",Va._href).replace("title",Va._title).getRegex(),Va.reflink=Ha(Va.reflink).replace("label",Va._label).getRegex(),Va.normal=Wa({},Va),Va.pedantic=Wa({},Va.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:Ha(/^!?\[(label)\]\((.*?)\)/).replace("label",Va._label).getRegex(),reflink:Ha(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Va._label).getRegex()}),Va.gfm=Wa({},Va.normal,{escape:Ha(Va.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Va.gfm.url=Ha(Va.gfm.url,"i").replace("email",Va.gfm._extended_email).getRegex(),Va.breaks=Wa({},Va.gfm,{br:Ha(Va.br).replace("{2,}","*").getRegex(),text:Ha(Va.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Ka={block:Ba,inline:Va},Xa=ra.defaults,Ya=Ka.block,Ja=Ka.inline;function Qa(e){return e.replace(/---/g,"").replace(/--/g,"").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"").replace(/\.{3}/g,"")}function el(e){var t,n,r="",i=e.length;for(t=0;t<i;t++)n=e.charCodeAt(t),Math.random()>.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var tl=function(){function e(t){wo(this,e),this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Xa,this.options.tokenizer=this.options.tokenizer||new Fa,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var n={block:Ya.normal,inline:Ja.normal};this.options.pedantic?(n.block=Ya.pedantic,n.inline=Ja.pedantic):this.options.gfm&&(n.block=Ya.gfm,this.options.breaks?n.inline=Ja.breaks:n.inline=Ja.gfm),this.tokenizer.rules=n}return Eo(e,[{key:"lex",value:function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens}},{key:"blockTokens",value:function(e){var t,n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];for(e=e.replace(/^ +$/gm,"");e;)if(t=this.tokenizer.space(e))e=e.substring(t.raw.length),t.type&&o.push(t);else if(t=this.tokenizer.code(e,o))e=e.substring(t.raw.length),t.type?o.push(t):((i=o[o.length-1]).raw+="\n"+t.raw,i.text+="\n"+t.text);else if(t=this.tokenizer.fences(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.heading(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.nptable(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.hr(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.blockquote(e))e=e.substring(t.raw.length),t.tokens=this.blockTokens(t.text,[],a),o.push(t);else if(t=this.tokenizer.list(e)){for(e=e.substring(t.raw.length),r=t.items.length,n=0;n<r;n++)t.items[n].tokens=this.blockTokens(t.items[n].text,[],!1);o.push(t)}else if(t=this.tokenizer.html(e))e=e.substring(t.raw.length),o.push(t);else if(a&&(t=this.tokenizer.def(e)))e=e.substring(t.raw.length),this.tokens.links[t.tag]||(this.tokens.links[t.tag]={href:t.href,title:t.title});else if(t=this.tokenizer.table(e))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.lheading(e))e=e.substring(t.raw.length),o.push(t);else if(a&&(t=this.tokenizer.paragraph(e)))e=e.substring(t.raw.length),o.push(t);else if(t=this.tokenizer.text(e,o))e=e.substring(t.raw.length),t.type?o.push(t):((i=o[o.length-1]).raw+="\n"+t.raw,i.text+="\n"+t.text);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return o}},{key:"inline",value:function(e){var t,n,r,i,o,a,l=e.length;for(t=0;t<l;t++)switch((a=e[t]).type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},i=a.header.length,n=0;n<i;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(i=a.cells.length,n=0;n<i;n++)for(o=a.cells[n],a.tokens.cells[n]=[],r=0;r<o.length;r++)a.tokens.cells[n][r]=[],this.inlineTokens(o[r],a.tokens.cells[n][r]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(i=a.items.length,n=0;n<i;n++)this.inline(a.items[n].tokens)}return e}},{key:"inlineTokens",value:function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e;)if(t=this.tokenizer.escape(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.tag(e,r,i))e=e.substring(t.raw.length),r=t.inLink,i=t.inRawBlock,n.push(t);else if(t=this.tokenizer.link(e))e=e.substring(t.raw.length),"link"===t.type&&(t.tokens=this.inlineTokens(t.text,[],!0,i)),n.push(t);else if(t=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(t.raw.length),"link"===t.type&&(t.tokens=this.inlineTokens(t.text,[],!0,i)),n.push(t);else if(t=this.tokenizer.strong(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.em(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.codespan(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.br(e))e=e.substring(t.raw.length),n.push(t);else if(t=this.tokenizer.del(e))e=e.substring(t.raw.length),t.tokens=this.inlineTokens(t.text,[],r,i),n.push(t);else if(t=this.tokenizer.autolink(e,el))e=e.substring(t.raw.length),n.push(t);else if(r||!(t=this.tokenizer.url(e,el))){if(t=this.tokenizer.inlineText(e,i,Qa))e=e.substring(t.raw.length),n.push(t);else if(e){var o="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(o);break}throw new Error(o)}}else e=e.substring(t.raw.length),n.push(t);return n}}],[{key:"lex",value:function(t,n){return new e(n).lex(t)}},{key:"rules",get:function(){return{block:Ya,inline:Ja}}}]),e}(),nl=ra.defaults,rl=ja,il=Ta,ol=function(){function e(t){wo(this,e),this.options=t||nl}return Eo(e,[{key:"code",value:function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);null!=i&&i!==e&&(n=!0,e=i)}return r?'<pre><code class="'+this.options.langPrefix+il(r,!0)+'">'+(n?e:il(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:il(e,!0))+"</code></pre>\n"}},{key:"blockquote",value:function(e){return"<blockquote>\n"+e+"</blockquote>\n"}},{key:"html",value:function(e){return e}},{key:"heading",value:function(e,t,n,r){return this.options.headerIds?"<h"+t+' id="'+this.options.headerPrefix+r.slug(n)+'">'+e+"</h"+t+">\n":"<h"+t+">"+e+"</h"+t+">\n"}},{key:"hr",value:function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}},{key:"list",value:function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+r+">\n"}},{key:"listitem",value:function(e){return"<li>"+e+"</li>\n"}},{key:"checkbox",value:function(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}},{key:"paragraph",value:function(e){return"<p>"+e+"</p>\n"}},{key:"table",value:function(e,t){return t&&(t="<tbody>"+t+"</tbody>"),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}},{key:"tablerow",value:function(e){return"<tr>\n"+e+"</tr>\n"}},{key:"tablecell",value:function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"}},{key:"strong",value:function(e){return"<strong>"+e+"</strong>"}},{key:"em",value:function(e){return"<em>"+e+"</em>"}},{key:"codespan",value:function(e){return"<code>"+e+"</code>"}},{key:"br",value:function(){return this.options.xhtml?"<br/>":"<br>"}},{key:"del",value:function(e){return"<del>"+e+"</del>"}},{key:"link",value:function(e,t,n){if(null===(e=rl(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<a href="'+il(e)+'"';return t&&(r+=' title="'+t+'"'),r+=">"+n+"</a>"}},{key:"image",value:function(e,t,n){if(null===(e=rl(this.options.sanitize,this.options.baseUrl,e)))return n;var r='<img src="'+e+'" alt="'+n+'"';return t&&(r+=' title="'+t+'"'),r+=this.options.xhtml?"/>":">"}},{key:"text",value:function(e){return e}}]),e}(),al=function(){function e(){wo(this,e)}return Eo(e,[{key:"strong",value:function(e){return e}},{key:"em",value:function(e){return e}},{key:"codespan",value:function(e){return e}},{key:"del",value:function(e){return e}},{key:"html",value:function(e){return e}},{key:"text",value:function(e){return e}},{key:"link",value:function(e,t,n){return""+n}},{key:"image",value:function(e,t,n){return""+n}},{key:"br",value:function(){return""}}]),e}(),ll=function(){function e(){wo(this,e),this.seen={}}return Eo(e,[{key:"slug",value:function(e){var t=e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t}}]),e}(),sl=ra.defaults,cl=Oa,ul=function(){function e(t){wo(this,e),this.options=t||sl,this.options.renderer=this.options.renderer||new ol,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new al,this.slugger=new ll}return Eo(e,[{key:"parse",value:function(e){var t,n,r,i,o,a,l,s,c,u,f,p,h,g,d,v,y,b,m=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],k="",x=e.length;for(t=0;t<x;t++)switch((u=e[t]).type){case"space":continue;case"hr":k+=this.renderer.hr();continue;case"heading":k+=this.renderer.heading(this.parseInline(u.tokens),u.depth,cl(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":k+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(s="",l="",i=u.header.length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(u.tokens.header[n]),{header:!0,align:u.align[n]});for(s+=this.renderer.tablerow(l),c="",i=u.cells.length,n=0;n<i;n++){for(l="",o=(a=u.tokens.cells[n]).length,r=0;r<o;r++)l+=this.renderer.tablecell(this.parseInline(a[r]),{header:!1,align:u.align[r]});c+=this.renderer.tablerow(l)}k+=this.renderer.table(s,c);continue;case"blockquote":c=this.parse(u.tokens),k+=this.renderer.blockquote(c);continue;case"list":for(f=u.ordered,p=u.start,h=u.loose,i=u.items.length,c="",n=0;n<i;n++)v=(d=u.items[n]).checked,y=d.task,g="",d.task&&(b=this.renderer.checkbox(v),h?d.tokens.length>0&&"text"===d.tokens[0].type?(d.tokens[0].text=b+" "+d.tokens[0].text,d.tokens[0].tokens&&d.tokens[0].tokens.length>0&&"text"===d.tokens[0].tokens[0].type&&(d.tokens[0].tokens[0].text=b+" "+d.tokens[0].tokens[0].text)):d.tokens.unshift({type:"text",text:b}):g+=b),g+=this.parse(d.tokens,h),c+=this.renderer.listitem(g,y,v);k+=this.renderer.list(c,f,p);continue;case"html":k+=this.renderer.html(u.text);continue;case"paragraph":k+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(c=u.tokens?this.parseInline(u.tokens):u.text;t+1<x&&"text"===e[t+1].type;)c+="\n"+((u=e[++t]).tokens?this.parseInline(u.tokens):u.text);k+=m?this.renderer.paragraph(c):c;continue;default:var w='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(w);throw new Error(w)}return k}},{key:"parseInline",value:function(e,t){t=t||this.renderer;var n,r,i="",o=e.length;for(n=0;n<o;n++)switch((r=e[n]).type){case"escape":i+=t.text(r.text);break;case"html":i+=t.html(r.text);break;case"link":i+=t.link(r.href,r.title,this.parseInline(r.tokens,t));break;case"image":i+=t.image(r.href,r.title,r.text);break;case"strong":i+=t.strong(this.parseInline(r.tokens,t));break;case"em":i+=t.em(this.parseInline(r.tokens,t));break;case"codespan":i+=t.codespan(r.text);break;case"br":i+=t.br();break;case"del":i+=t.del(this.parseInline(r.tokens,t));break;case"text":i+=t.text(r.text);break;default:var a='Token with "'+r.type+'" type was not found.';if(this.options.silent)return void console.error(a);throw new Error(a)}return i}}],[{key:"parse",value:function(t,n){return new e(n).parse(t)}}]),e}(),fl=$a,pl=La,hl=Ta,gl=ra.getDefaults,dl=ra.changeDefaults,vl=ra.defaults;function yl(e,t,n){if(null==e)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if("function"==typeof t&&(n=t,t=null),t=fl({},yl.defaults,t||{}),pl(t),n){var r,i=t.highlight;try{r=tl.lex(e,t)}catch(e){return n(e)}var o=function(e){var o;if(!e)try{o=ul.parse(r,t)}catch(t){e=t}return t.highlight=i,e?n(e):n(null,o)};if(!i||i.length<3)return o();if(delete t.highlight,!r.length)return o();var a=0;return yl.walkTokens(r,(function(e){"code"===e.type&&(a++,i(e.text,e.lang,(function(t,n){if(t)return o(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),0===--a&&o()})))})),void(0===a&&o())}try{var l=tl.lex(e,t);return t.walkTokens&&yl.walkTokens(l,t.walkTokens),ul.parse(l,t)}catch(e){if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"<p>An error occurred:</p><pre>"+hl(e.message+"",!0)+"</pre>";throw e}}yl.options=yl.setOptions=function(e){return fl(yl.defaults,e),dl(yl.defaults),yl},yl.getDefaults=gl,yl.defaults=vl,yl.use=function(e){var t=fl({},e);if(e.renderer&&function(){var n=yl.defaults.renderer||new ol,r=function(t){var r=n[t];n[t]=function(){for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];var l=e.renderer[t].apply(n,o);return!1===l&&(l=r.apply(n,o)),l}};for(var i in e.renderer)r(i);t.renderer=n}(),e.tokenizer&&function(){var n=yl.defaults.tokenizer||new Fa,r=function(t){var r=n[t];n[t]=function(){for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];var l=e.tokenizer[t].apply(n,o);return!1===l&&(l=r.apply(n,o)),l}};for(var i in e.tokenizer)r(i);t.tokenizer=n}(),e.walkTokens){var n=yl.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens(t),n&&n(t)}}yl.setOptions(t)},yl.walkTokens=function(e,t){var n,r=jo(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;switch(t(i),i.type){case"table":var o,a=jo(i.tokens.header);try{for(a.s();!(o=a.n()).done;){var l=o.value;yl.walkTokens(l,t)}}catch(e){a.e(e)}finally{a.f()}var s,c=jo(i.tokens.cells);try{for(c.s();!(s=c.n()).done;){var u,f=jo(s.value);try{for(f.s();!(u=f.n()).done;){var p=u.value;yl.walkTokens(p,t)}}catch(e){f.e(e)}finally{f.f()}}}catch(e){c.e(e)}finally{c.f()}break;case"list":yl.walkTokens(i.items,t);break;default:i.tokens&&yl.walkTokens(i.tokens,t)}}}catch(e){r.e(e)}finally{r.f()}},yl.Parser=ul,yl.parser=ul.parse,yl.Renderer=ol,yl.TextRenderer=al,yl.Lexer=tl,yl.lexer=tl.lex,yl.Tokenizer=Fa,yl.Slugger=ll,yl.parse=yl;var bl=yl,ml="__SCRIPT_END__",kl=/\[([\s\d,|-]*)\]/,xl={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return function(){var e;function t(e){var t=(e.querySelector("[data-template]")||e.querySelector("script")||e).textContent,n=(t=t.replace(new RegExp(ml,"g"),"<\/script>")).match(/^\n?(\s*)/)[1].length,r=t.match(/^\n?(\t*)/)[1].length;return r>0?t=t.replace(new RegExp("\\n?\\t{"+r+"}","g"),"\n"):n>1&&(t=t.replace(new RegExp("\\n? {"+n+"}","g"),"\n")),t}function n(e){for(var t=e.attributes,n=[],r=0,i=t.length;r<i;r++){var o=t[r].name,a=t[r].value;/data\-(markdown|separator|vertical|notes)/gi.test(o)||(a?n.push(o+'="'+a+'"'):n.push(o))}return n.join(" ")}function r(e){return(e=e||{}).separator=e.separator||"^\r?\n---\r?\n$",e.notesSeparator=e.notesSeparator||"notes?:",e.attributes=e.attributes||"",e}function i(e,t){t=r(t);var n=e.split(new RegExp(t.notesSeparator,"mgi"));return 2===n.length&&(e=n[0]+'<aside class="notes">'+bl(n[1].trim())+"</aside>"),'<script type="text/template">'+(e=e.replace(/<\/script>/g,ml))+"<\/script>"}function o(e,t){t=r(t);for(var n,o,a,l=new RegExp(t.separator+(t.verticalSeparator?"|"+t.verticalSeparator:""),"mg"),s=new RegExp(t.separator),c=0,u=!0,f=[];n=l.exec(e);)!(o=s.test(n[0]))&&u&&f.push([]),a=e.substring(c,n.index),o&&u?f.push(a):f[f.length-1].push(a),c=l.lastIndex,u=o;(u?f:f[f.length-1]).push(e.substring(c));for(var p="",h=0,g=f.length;h<g;h++)f[h]instanceof Array?(p+="<section "+t.attributes+">",f[h].forEach((function(e){p+="<section data-markdown>"+i(e,t)+"</section>"})),p+="</section>"):p+="<section "+t.attributes+" data-markdown>"+i(f[h],t)+"</section>";return p}function a(e){return new Promise((function(r){var a=[];[].slice.call(e.querySelectorAll("[data-markdown]:not([data-markdown-parsed])")).forEach((function(e,r){e.getAttribute("data-markdown").length?a.push(function(e){return new Promise((function(t,n){var r=new XMLHttpRequest,i=e.getAttribute("data-markdown"),o=e.getAttribute("data-charset");null!=o&&""!=o&&r.overrideMimeType("text/html; charset="+o),r.onreadystatechange=function(e,r){4===r.readyState&&(r.status>=200&&r.status<300||0===r.status?t(r,i):n(r,i))}.bind(this,e,r),r.open("GET",i,!0);try{r.send()}catch(e){console.warn("Failed to get the Markdown file "+i+". Make sure that the presentation and the file are served by a HTTP server and the file can be found there. "+e),t(r,i)}}))}(e).then((function(t,r){e.outerHTML=o(t.responseText,{separator:e.getAttribute("data-separator"),verticalSeparator:e.getAttribute("data-separator-vertical"),notesSeparator:e.getAttribute("data-separator-notes"),attributes:n(e)})}),(function(t,n){e.outerHTML='<section data-state="alert">ERROR: The attempt to fetch '+n+" failed with HTTP status "+t.status+".Check your browser's JavaScript console for more details.<p>Remember that you need to serve the presentation HTML from a HTTP server.</p></section>"}))):e.getAttribute("data-separator")||e.getAttribute("data-separator-vertical")||e.getAttribute("data-separator-notes")?e.outerHTML=o(t(e),{separator:e.getAttribute("data-separator"),verticalSeparator:e.getAttribute("data-separator-vertical"),notesSeparator:e.getAttribute("data-separator-notes"),attributes:n(e)}):e.innerHTML=i(t(e))})),Promise.all(a).then(r)}))}function l(e,t,n){var r,i,o=new RegExp(n,"mg"),a=new RegExp('([^"= ]+?)="([^"]+?)"|(data-[^"= ]+?)(?=[" ])',"mg"),l=e.nodeValue;if(r=o.exec(l)){var s=r[1];for(l=l.substring(0,r.index)+l.substring(o.lastIndex),e.nodeValue=l;i=a.exec(s);)i[2]?t.setAttribute(i[1],i[2]):t.setAttribute(i[3],"");return!0}return!1}function s(){var n=e.getRevealElement().querySelectorAll("[data-markdown]:not([data-markdown-parsed])");return[].slice.call(n).forEach((function(e){e.setAttribute("data-markdown-parsed",!0);var n=e.querySelector("aside.notes"),r=t(e);e.innerHTML=bl(r),function e(t,n,r,i,o){if(null!=n&&null!=n.childNodes&&n.childNodes.length>0)for(var a=n,s=0;s<n.childNodes.length;s++){var c=n.childNodes[s];if(s>0)for(var u=s-1;u>=0;){var f=n.childNodes[u];if("function"==typeof f.setAttribute&&"BR"!=f.tagName){a=f;break}u-=1}var p=t;"section"==c.nodeName&&(p=c,a=c),"function"!=typeof c.setAttribute&&c.nodeType!=Node.COMMENT_NODE||e(p,c,a,i,o)}n.nodeType==Node.COMMENT_NODE&&0==l(n,r,i)&&l(n,t,o)}(e,e,null,e.getAttribute("data-element-attributes")||e.parentNode.getAttribute("data-element-attributes")||"\\.element\\s*?(.+?)$",e.getAttribute("data-attributes")||e.parentNode.getAttribute("data-attributes")||"\\.slide:\\s*?(\\S.+?)$"),n&&e.appendChild(n)})),Promise.resolve()}return{id:"markdown",init:function(t){e=t;var n=new bl.Renderer;return n.code=function(e,t){var n="";return kl.test(t)&&(n=t.match(kl)[1].trim(),n='data-line-numbers="'.concat(n,'"'),t=t.replace(kl,"").trim()),e=e.replace(/([&<>'"])/g,(function(e){return xl[e]})),"<pre><code ".concat(n,' class="').concat(t,'">').concat(e,"</code></pre>")},bl.setOptions(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ao(Object(n),!0).forEach((function(t){_o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ao(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({renderer:n},e.getConfig().markdown)),a(e.getRevealElement()).then(s)},processSlides:a,convertSlides:s,slidify:o,marked:bl}}}));
/*!
* The reveal.js markdown plugin. Handles parsing of
* markdown inside of presentations as well as loading
* of external markdown documents.
*/
import marked from 'marked'
const DEFAULT_SLIDE_SEPARATOR = '^\r?\n---\r?\n$',
DEFAULT_NOTES_SEPARATOR = 'notes?:',
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
const SCRIPT_END_PLACEHOLDER = '__SCRIPT_END__';
const CODE_LINE_NUMBER_REGEX = /\[([\s\d,|-]*)\]/;
const HTML_ESCAPE_MAP = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#39;'
};
const Plugin = () => {
// The reveal.js instance this plugin is attached to
let deck;
/**
* Retrieves the markdown contents of a slide section
* element. Normalizes leading tabs/whitespace.
*/
function getMarkdownFromSlide( section ) {
// look for a <script> or <textarea data-template> wrapper
var template = section.querySelector( '[data-template]' ) || section.querySelector( 'script' );
// strip leading whitespace so it isn't evaluated as code
var text = ( template || section ).textContent;
// restore script end tags
text = text.replace( new RegExp( SCRIPT_END_PLACEHOLDER, 'g' ), '</script>' );
var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
if( leadingTabs > 0 ) {
text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
}
else if( leadingWs > 1 ) {
text = text.replace( new RegExp('\\n? {' + leadingWs + '}', 'g'), '\n' );
}
return text;
}
/**
* Given a markdown slide section element, this will
* return all arguments that aren't related to markdown
* parsing. Used to forward any other user-defined arguments
* to the output markdown slide.
*/
function getForwardedAttributes( section ) {
var attributes = section.attributes;
var result = [];
for( var i = 0, len = attributes.length; i < len; i++ ) {
var name = attributes[i].name,
value = attributes[i].value;
// disregard attributes that are used for markdown loading/parsing
if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
if( value ) {
result.push( name + '="' + value + '"' );
}
else {
result.push( name );
}
}
return result.join( ' ' );
}
/**
* Inspects the given options and fills out default
* values for what's not defined.
*/
function getSlidifyOptions( options ) {
options = options || {};
options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
options.attributes = options.attributes || '';
return options;
}
/**
* Helper function for constructing a markdown slide.
*/
function createMarkdownSlide( content, options ) {
options = getSlidifyOptions( options );
var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
if( notesMatch.length === 2 ) {
content = notesMatch[0] + '<aside class="notes">' + marked(notesMatch[1].trim()) + '</aside>';
}
// prevent script end tags in the content from interfering
// with parsing
content = content.replace( /<\/script>/g, SCRIPT_END_PLACEHOLDER );
return '<script type="text/template">' + content + '</script>';
}
/**
* Parses a data string into multiple slides based
* on the passed in separator arguments.
*/
function slidify( markdown, options ) {
options = getSlidifyOptions( options );
var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
horizontalSeparatorRegex = new RegExp( options.separator );
var matches,
lastIndex = 0,
isHorizontal,
wasHorizontal = true,
content,
sectionStack = [];
// iterate until all blocks between separators are stacked up
while( matches = separatorRegex.exec( markdown ) ) {
var notes = null;
// determine direction (horizontal by default)
isHorizontal = horizontalSeparatorRegex.test( matches[0] );
if( !isHorizontal && wasHorizontal ) {
// create vertical stack
sectionStack.push( [] );
}
// pluck slide content from markdown input
content = markdown.substring( lastIndex, matches.index );
if( isHorizontal && wasHorizontal ) {
// add to horizontal stack
sectionStack.push( content );
}
else {
// add to vertical stack
sectionStack[sectionStack.length-1].push( content );
}
lastIndex = separatorRegex.lastIndex;
wasHorizontal = isHorizontal;
}
// add the remaining slide
( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
var markdownSections = '';
// flatten the hierarchical stack, and insert <section data-markdown> tags
for( var i = 0, len = sectionStack.length; i < len; i++ ) {
// vertical
if( sectionStack[i] instanceof Array ) {
markdownSections += '<section '+ options.attributes +'>';
sectionStack[i].forEach( function( child ) {
markdownSections += '<section data-markdown>' + createMarkdownSlide( child, options ) + '</section>';
} );
markdownSections += '</section>';
}
else {
markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
}
}
return markdownSections;
}
/**
* Parses any current data-markdown slides, splits
* multi-slide markdown into separate sections and
* handles loading of external markdown.
*/
function processSlides( scope ) {
return new Promise( function( resolve ) {
var externalPromises = [];
[].slice.call( scope.querySelectorAll( '[data-markdown]:not([data-markdown-parsed])') ).forEach( function( section, i ) {
if( section.getAttribute( 'data-markdown' ).length ) {
externalPromises.push( loadExternalMarkdown( section ).then(
// Finished loading external file
function( xhr, url ) {
section.outerHTML = slidify( xhr.responseText, {
separator: section.getAttribute( 'data-separator' ),
verticalSeparator: section.getAttribute( 'data-separator-vertical' ),
notesSeparator: section.getAttribute( 'data-separator-notes' ),
attributes: getForwardedAttributes( section )
});
},
// Failed to load markdown
function( xhr, url ) {
section.outerHTML = '<section data-state="alert">' +
'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
'Check your browser\'s JavaScript console for more details.' +
'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
'</section>';
}
) );
}
else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-separator-vertical' ) || section.getAttribute( 'data-separator-notes' ) ) {
section.outerHTML = slidify( getMarkdownFromSlide( section ), {
separator: section.getAttribute( 'data-separator' ),
verticalSeparator: section.getAttribute( 'data-separator-vertical' ),
notesSeparator: section.getAttribute( 'data-separator-notes' ),
attributes: getForwardedAttributes( section )
});
}
else {
section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
}
});
Promise.all( externalPromises ).then( resolve );
} );
}
function loadExternalMarkdown( section ) {
return new Promise( function( resolve, reject ) {
var xhr = new XMLHttpRequest(),
url = section.getAttribute( 'data-markdown' );
var datacharset = section.getAttribute( 'data-charset' );
// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
if( datacharset != null && datacharset != '' ) {
xhr.overrideMimeType( 'text/html; charset=' + datacharset );
}
xhr.onreadystatechange = function( section, xhr ) {
if( xhr.readyState === 4 ) {
// file protocol yields status code 0 (useful for local debug, mobile applications etc.)
if ( ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status === 0 ) {
resolve( xhr, url );
}
else {
reject( xhr, url );
}
}
}.bind( this, section, xhr );
xhr.open( 'GET', url, true );
try {
xhr.send();
}
catch ( e ) {
console.warn( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
resolve( xhr, url );
}
} );
}
/**
* Check if a node value has the attributes pattern.
* If yes, extract it and add that value as one or several attributes
* to the target element.
*
* You need Cache Killer on Chrome to see the effect on any FOM transformation
* directly on refresh (F5)
* http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
*/
function addAttributeInElement( node, elementTarget, separator ) {
var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"]+?)\"|(data-[^\"= ]+?)(?=[\" ])", 'mg' );
var nodeValue = node.nodeValue;
var matches,
matchesClass;
if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
var classes = matches[1];
nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
node.nodeValue = nodeValue;
while( matchesClass = mardownClassRegex.exec( classes ) ) {
if( matchesClass[2] ) {
elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
} else {
elementTarget.setAttribute( matchesClass[3], "" );
}
}
return true;
}
return false;
}
/**
* Add attributes to the parent element of a text node,
* or the element of an attribute node.
*/
function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
var previousParentElement = element;
for( var i = 0; i < element.childNodes.length; i++ ) {
var childElement = element.childNodes[i];
if ( i > 0 ) {
var j = i - 1;
while ( j >= 0 ) {
var aPreviousChildElement = element.childNodes[j];
if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
previousParentElement = aPreviousChildElement;
break;
}
j = j - 1;
}
}
var parentSection = section;
if( childElement.nodeName == "section" ) {
parentSection = childElement ;
previousParentElement = childElement ;
}
if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
}
}
}
if ( element.nodeType == Node.COMMENT_NODE ) {
if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
addAttributeInElement( element, section, separatorSectionAttributes );
}
}
}
/**
* Converts any current data-markdown slides in the
* DOM to HTML.
*/
function convertSlides() {
var sections = deck.getRevealElement().querySelectorAll( '[data-markdown]:not([data-markdown-parsed])');
[].slice.call( sections ).forEach( function( section ) {
section.setAttribute( 'data-markdown-parsed', true )
var notes = section.querySelector( 'aside.notes' );
var markdown = getMarkdownFromSlide( section );
section.innerHTML = marked( markdown );
addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) ||
section.parentNode.getAttribute( 'data-element-attributes' ) ||
DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
section.getAttribute( 'data-attributes' ) ||
section.parentNode.getAttribute( 'data-attributes' ) ||
DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
// If there were notes, we need to re-add them after
// having overwritten the section's HTML
if( notes ) {
section.appendChild( notes );
}
} );
return Promise.resolve();
}
function escapeForHTML( input ) {
return input.replace( /([&<>'"])/g, char => HTML_ESCAPE_MAP[char] );
}
return {
id: 'markdown',
/**
* Starts processing and converting Markdown within the
* current reveal.js deck.
*/
init: function( reveal ) {
deck = reveal;
let renderer = new marked.Renderer();
renderer.code = ( code, language ) => {
// Off by default
let lineNumbers = '';
// Users can opt in to show line numbers and highlight
// specific lines.
// ```javascript [] show line numbers
// ```javascript [1,4-8] highlights lines 1 and 4-8
if( CODE_LINE_NUMBER_REGEX.test( language ) ) {
lineNumbers = language.match( CODE_LINE_NUMBER_REGEX )[1].trim();
lineNumbers = `data-line-numbers="${lineNumbers}"`;
language = language.replace( CODE_LINE_NUMBER_REGEX, '' ).trim();
}
// Escape before this gets injected into the DOM to
// avoid having the HTML parser alter our code before
// highlight.js is able to read it
code = escapeForHTML( code );
return `<pre><code ${lineNumbers} class="${language}">${code}</code></pre>`;
};
marked.setOptions( {
renderer,
...deck.getConfig().markdown
} );
return processSlides( deck.getRevealElement() ).then( convertSlides );
},
// TODO: Do these belong in the API?
processSlides: processSlides,
convertSlides: convertSlides,
slidify: slidify,
marked: marked
}
};
export default Plugin;
function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(n){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?t(Object(a),!0).forEach((function(t){e(n,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))}))}return n}export default function(){var e,t={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre"]},skipStartupTypeset:!0};return{id:"math",init:function(r){var a=(e=r).getConfig().math||{},o=n(n({},t),a),c=(o.mathjax||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js")+"?config="+(o.config||"TeX-AMS_HTML-full");o.tex2jax=n(n({},t.tex2jax),a.tex2jax),o.mathjax=o.config=null,function(e,t){var n=this,r=document.querySelector("head"),a=document.createElement("script");a.type="text/javascript",a.src=e;var o=function(){"function"==typeof t&&(t.call(),t=null)};a.onload=o,a.onreadystatechange=function(){"loaded"===n.readyState&&o()},r.appendChild(a)}(c,(function(){MathJax.Hub.Config(o),MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.getRevealElement()]),MathJax.Hub.Queue(e.layout),e.on("slidechanged",(function(e){MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.currentSlide])}))}))}}}
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealMath=t()}(this,(function(){"use strict";function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(n){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?t(Object(a),!0).forEach((function(t){e(n,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))}))}return n}return function(){var e,t={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre"]},skipStartupTypeset:!0};return{id:"math",init:function(r){var a=(e=r).getConfig().math||{},o=n(n({},t),a),i=(o.mathjax||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js")+"?config="+(o.config||"TeX-AMS_HTML-full");o.tex2jax=n(n({},t.tex2jax),a.tex2jax),o.mathjax=o.config=null,function(e,t){var n=this,r=document.querySelector("head"),a=document.createElement("script");a.type="text/javascript",a.src=e;var o=function(){"function"==typeof t&&(t.call(),t=null)};a.onload=o,a.onreadystatechange=function(){"loaded"===n.readyState&&o()},r.appendChild(a)}(i,(function(){MathJax.Hub.Config(o),MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.getRevealElement()]),MathJax.Hub.Queue(e.layout),e.on("slidechanged",(function(e){MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.currentSlide])}))}))}}}}));
/**
* A plugin which enables rendering of math equations inside
* of reveal.js slides. Essentially a thin wrapper for MathJax.
*
* @author Hakim El Hattab
*/
const Plugin = () => {
// The reveal.js instance this plugin is attached to
let deck;
let defaultOptions = {
messageStyle: 'none',
tex2jax: {
inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
},
skipStartupTypeset: true
};
function loadScript( url, callback ) {
let head = document.querySelector( 'head' );
let script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
// Wrapper for callback to make sure it only fires once
let finish = () => {
if( typeof callback === 'function' ) {
callback.call();
callback = null;
}
}
script.onload = finish;
// IE
script.onreadystatechange = () => {
if ( this.readyState === 'loaded' ) {
finish();
}
}
// Normal browsers
head.appendChild( script );
}
return {
id: 'math',
init: function( reveal ) {
deck = reveal;
let revealOptions = deck.getConfig().math || {};
let options = { ...defaultOptions, ...revealOptions };
let mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js';
let config = options.config || 'TeX-AMS_HTML-full';
let url = mathjax + '?config=' + config;
options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
options.mathjax = options.config = null;
loadScript( url, function() {
MathJax.Hub.Config( options );
// Typeset followed by an immediate reveal.js layout since
// the typesetting process could affect slide height
MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
MathJax.Hub.Queue( deck.layout );
// Reprocess equations in slides when they turn visible
deck.on( 'slidechanged', function( event ) {
MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
} );
} );
}
}
};
export default Plugin;
var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}var n=function(t){return t&&t.Math==Math&&t},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")(),i=function(t){try{return!!t()}catch(t){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,s={f:l&&!o.call({1:2},1)?function(t){var e=l(this,t);return!!e&&e.enumerable}:o},c=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},u={}.toString,p=function(t){return u.call(t).slice(8,-1)},d="".split,f=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==p(t)?d.call(t,""):Object(t)}:Object,h=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=function(t){return f(h(t))},m=function(t){return"object"==typeof t?null!==t:"function"==typeof t},v=function(t,e){if(!m(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!m(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},y={}.hasOwnProperty,k=function(t,e){return y.call(t,e)},b=r.document,w=m(b)&&m(b.createElement),x=!a&&!i((function(){return 7!=Object.defineProperty((t="div",w?b.createElement(t):{}),"a",{get:function(){return 7}}).a;var t})),S=Object.getOwnPropertyDescriptor,E={f:a?S:function(t,e){if(t=g(t),e=v(e,!0),x)try{return S(t,e)}catch(t){}if(k(t,e))return c(!s.f.call(t,e),t[e])}},T=function(t){if(!m(t))throw TypeError(String(t)+" is not an object");return t},_=Object.defineProperty,A={f:a?_:function(t,e,n){if(T(t),e=v(e,!0),T(n),x)try{return _(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},z=a?function(t,e,n){return A.f(t,e,c(1,n))}:function(t,e,n){return t[e]=n,t},R=function(t,e){try{z(r,t,e)}catch(n){r[t]=e}return e},O=r["__core-js_shared__"]||R("__core-js_shared__",{}),I=Function.toString;"function"!=typeof O.inspectSource&&(O.inspectSource=function(t){return I.call(t)});var $,C,L,P,M=O.inspectSource,j=r.WeakMap,N="function"==typeof j&&/native code/.test(M(j)),q=e((function(t){(t.exports=function(t,e){return O[t]||(O[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),U=0,D=Math.random(),Z=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++U+D).toString(36)},W=q("keys"),K={},J=r.WeakMap;if(N){var F=new J,H=F.get,B=F.has,Y=F.set;$=function(t,e){return Y.call(F,t,e),e},C=function(t){return H.call(F,t)||{}},L=function(t){return B.call(F,t)}}else{var V=W[P="state"]||(W[P]=Z(P));K[V]=!0,$=function(t,e){return z(t,V,e),e},C=function(t){return k(t,V)?t[V]:{}},L=function(t){return k(t,V)}}var G={set:$,get:C,has:L,enforce:function(t){return L(t)?C(t):$(t,{})},getterFor:function(t){return function(e){var n;if(!m(e)||(n=C(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},X=e((function(t){var e=G.get,n=G.enforce,i=String(String).split("String");(t.exports=function(t,e,a,o){var l=!!o&&!!o.unsafe,s=!!o&&!!o.enumerable,c=!!o&&!!o.noTargetGet;"function"==typeof a&&("string"!=typeof e||k(a,"name")||z(a,"name",e),n(a).source=i.join("string"==typeof e?e:"")),t!==r?(l?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=a:z(t,e,a)):s?t[e]=a:R(e,a)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||M(this)}))})),Q=r,tt=function(t){return"function"==typeof t?t:void 0},et=function(t,e){return arguments.length<2?tt(Q[t])||tt(r[t]):Q[t]&&Q[t][e]||r[t]&&r[t][e]},nt=Math.ceil,rt=Math.floor,it=function(t){return isNaN(t=+t)?0:(t>0?rt:nt)(t)},at=Math.min,ot=function(t){return t>0?at(it(t),9007199254740991):0},lt=Math.max,st=Math.min,ct=function(t,e){var n=it(t);return n<0?lt(n+e,0):st(n,e)},ut=function(t){return function(e,n,r){var i,a=g(e),o=ot(a.length),l=ct(r,o);if(t&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}},pt={includes:ut(!0),indexOf:ut(!1)},dt=pt.indexOf,ft=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),ht={f:Object.getOwnPropertyNames||function(t){return function(t,e){var n,r=g(t),i=0,a=[];for(n in r)!k(K,n)&&k(r,n)&&a.push(n);for(;e.length>i;)k(r,n=e[i++])&&(~dt(a,n)||a.push(n));return a}(t,ft)}},gt={f:Object.getOwnPropertySymbols},mt=et("Reflect","ownKeys")||function(t){var e=ht.f(T(t)),n=gt.f;return n?e.concat(n(t)):e},vt=function(t,e){for(var n=mt(e),r=A.f,i=E.f,a=0;a<n.length;a++){var o=n[a];k(t,o)||r(t,o,i(e,o))}},yt=/#|\.prototype\./,kt=function(t,e){var n=wt[bt(t)];return n==St||n!=xt&&("function"==typeof e?i(e):!!e)},bt=kt.normalize=function(t){return String(t).replace(yt,".").toLowerCase()},wt=kt.data={},xt=kt.NATIVE="N",St=kt.POLYFILL="P",Et=kt,Tt=E.f,_t=function(t,e){var n,i,a,o,l,s=t.target,c=t.global,u=t.stat;if(n=c?r:u?r[s]||R(s,{}):(r[s]||{}).prototype)for(i in e){if(o=e[i],a=t.noTargetGet?(l=Tt(n,i))&&l.value:n[i],!Et(c?i:s+(u?".":"#")+i,t.forced)&&void 0!==a){if(typeof o==typeof a)continue;vt(o,a)}(t.sham||a&&a.sham)&&z(o,"sham",!0),X(n,i,o,t)}},At=function(){var t=T(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function zt(t,e){return RegExp(t,e)}var Rt={UNSUPPORTED_Y:i((function(){var t=zt("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),BROKEN_CARET:i((function(){var t=zt("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},Ot=RegExp.prototype.exec,It=String.prototype.replace,$t=Ot,Ct=function(){var t=/a/,e=/b*/g;return Ot.call(t,"a"),Ot.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Lt=Rt.UNSUPPORTED_Y||Rt.BROKEN_CARET,Pt=void 0!==/()??/.exec("")[1];(Ct||Pt||Lt)&&($t=function(t){var e,n,r,i,a=this,o=Lt&&a.sticky,l=At.call(a),s=a.source,c=0,u=t;return o&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),u=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==t[a.lastIndex-1])&&(s="(?: "+s+")",u=" "+u,c++),n=new RegExp("^(?:"+s+")",l)),Pt&&(n=new RegExp("^"+s+"$(?!\\s)",l)),Ct&&(e=a.lastIndex),r=Ot.call(o?n:a,u),o?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:Ct&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),Pt&&r&&r.length>1&&It.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var Mt=$t;_t({target:"RegExp",proto:!0,forced:/./.exec!==Mt},{exec:Mt});var jt=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Nt=jt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,qt=q("wks"),Ut=r.Symbol,Dt=Nt?Ut:Ut&&Ut.withoutSetter||Z,Zt=function(t){return k(qt,t)||(jt&&k(Ut,t)?qt[t]=Ut[t]:qt[t]=Dt("Symbol."+t)),qt[t]},Wt=Zt("species"),Kt=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),Jt="$0"==="a".replace(/./,"$0"),Ft=Zt("replace"),Ht=!!/./[Ft]&&""===/./[Ft]("a","$0"),Bt=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),Yt=function(t,e,n,r){var a=Zt(t),o=!i((function(){var e={};return e[a]=function(){return 7},7!=""[t](e)})),l=o&&!i((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[Wt]=function(){return n},n.flags="",n[a]=/./[a]),n.exec=function(){return e=!0,null},n[a](""),!e}));if(!o||!l||"replace"===t&&(!Kt||!Jt||Ht)||"split"===t&&!Bt){var s=/./[a],c=n(a,""[t],(function(t,e,n,r,i){return e.exec===Mt?o&&!i?{done:!0,value:s.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Jt,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ht}),u=c[0],p=c[1];X(String.prototype,t,u),X(RegExp.prototype,a,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)})}r&&z(RegExp.prototype[a],"sham",!0)},Vt=function(t){return function(e,n){var r,i,a=String(h(e)),o=it(n),l=a.length;return o<0||o>=l?t?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===l||(i=a.charCodeAt(o+1))<56320||i>57343?t?a.charAt(o):r:t?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Gt={codeAt:Vt(!1),charAt:Vt(!0)}.charAt,Xt=function(t,e,n){return e+(n?Gt(t,e).length:1)},Qt=function(t,e){var n=t.exec;if("function"==typeof n){var r=n.call(t,e);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==p(t))throw TypeError("RegExp#exec called on incompatible receiver");return Mt.call(t,e)};Yt("match",1,(function(t,e,n){return[function(e){var n=h(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=T(t),a=String(this);if(!i.global)return Qt(i,a);var o=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=Qt(i,a));){var u=String(l[0]);s[c]=u,""===u&&(i.lastIndex=Xt(a,ot(i.lastIndex),o)),c++}return 0===c?null:s}]}));var te=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Yt("search",1,(function(t,e,n){return[function(e){var n=h(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=T(t),a=String(this),o=i.lastIndex;te(o,0)||(i.lastIndex=0);var l=Qt(i,a);return te(i.lastIndex,o)||(i.lastIndex=o),null===l?-1:l.index}]}));var ee={};ee[Zt("toStringTag")]="z";var ne="[object z]"===String(ee),re=Zt("toStringTag"),ie="Arguments"==p(function(){return arguments}()),ae=ne?p:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),re))?n:ie?p(e):"Object"==(r=p(e))&&"function"==typeof e.callee?"Arguments":r},oe=ne?{}.toString:function(){return"[object "+ae(this)+"]"};ne||X(Object.prototype,"toString",oe,{unsafe:!0});var le=RegExp.prototype,se=le.toString,ce=i((function(){return"/a/b"!=se.call({source:"a",flags:"b"})})),ue="toString"!=se.name;function pe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function de(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function fe(t,e,n){return e&&de(t.prototype,e),n&&de(t,n),t}function he(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,i=!1,a=void 0;try{for(var o,l=t[Symbol.iterator]();!(r=(o=l.next()).done)&&(n.push(o.value),!e||n.length!==e);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==l.return||l.return()}finally{if(i)throw a}}return n}(t,e)||ge(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ge(t,e){if(t){if("string"==typeof t)return me(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?me(t,e):void 0}}function me(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function ve(t){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(t=ge(t))){var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f: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.")}var r,i,a=!0,o=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){o=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(ce||ue)&&X(RegExp.prototype,"toString",(function(){var t=T(this),e=String(t.source),n=t.flags;return"/"+e+"/"+String(void 0===n&&t instanceof RegExp&&!("flags"in le)?At.call(t):n)}),{unsafe:!0});var ye=function(t){return Object(h(t))},ke=Math.max,be=Math.min,we=Math.floor,xe=/\$([$&'`]|\d\d?|<[^>]*>)/g,Se=/\$([$&'`]|\d\d?)/g;Yt("replace",2,(function(t,e,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=h(this),a=null==n?void 0:n[t];return void 0!==a?a.call(n,i,r):e.call(String(i),n,r)},function(t,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var s=n(e,t,this,r);if(s.done)return s.value}var c=T(t),u=String(this),p="function"==typeof r;p||(r=String(r));var d=c.global;if(d){var f=c.unicode;c.lastIndex=0}for(var h=[];;){var g=Qt(c,u);if(null===g)break;if(h.push(g),!d)break;""===String(g[0])&&(c.lastIndex=Xt(u,ot(c.lastIndex),f))}for(var m,v="",y=0,k=0;k<h.length;k++){g=h[k];for(var b=String(g[0]),w=ke(be(it(g.index),u.length),0),x=[],S=1;S<g.length;S++)x.push(void 0===(m=g[S])?m:String(m));var E=g.groups;if(p){var _=[b].concat(x,w,u);void 0!==E&&_.push(E);var A=String(r.apply(void 0,_))}else A=l(b,u,w,x,E,r);w>=y&&(v+=u.slice(y,w)+A,y=w+b.length)}return v+u.slice(y)}];function l(t,n,r,i,a,o){var l=r+t.length,s=i.length,c=Se;return void 0!==a&&(a=ye(a),c=xe),e.call(o,c,(function(e,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(l);case"<":c=a[o.slice(1,-1)];break;default:var u=+o;if(0===u)return e;if(u>s){var p=we(u/10);return 0===p?e:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):e}c=i[u-1]}return void 0===c?"":c}))}}));var Ee,Te=/"/g;_t({target:"String",proto:!0,forced:(Ee="link",i((function(){var t=""[Ee]('"');return t!==t.toLowerCase()||t.split('"').length>3})))},{link:function(t){return e="a",n="href",r=t,i=String(h(this)),a="<"+e,""!==n&&(a+=" "+n+'="'+String(r).replace(Te,"&quot;")+'"'),a+">"+i+"</"+e+">";var e,n,r,i,a}});var _e=function(t,e){var n=[][t];return!!n&&i((function(){n.call(null,e||function(){throw 1},1)}))},Ae=Object.defineProperty,ze={},Re=function(t){throw t},Oe=function(t,e){if(k(ze,t))return ze[t];e||(e={});var n=[][t],r=!!k(e,"ACCESSORS")&&e.ACCESSORS,o=k(e,0)?e[0]:Re,l=k(e,1)?e[1]:void 0;return ze[t]=!!n&&!i((function(){if(r&&!a)return!0;var t={length:-1};r?Ae(t,1,{enumerable:!0,get:Re}):t[1]=1,n.call(t,o,l)}))},Ie=pt.indexOf,$e=[].indexOf,Ce=!!$e&&1/[1].indexOf(1,-0)<0,Le=_e("indexOf"),Pe=Oe("indexOf",{ACCESSORS:!0,1:0});_t({target:"Array",proto:!0,forced:Ce||!Le||!Pe},{indexOf:function(t){return Ce?$e.apply(this,arguments)||0:Ie(this,t,arguments.length>1?arguments[1]:void 0)}});var Me=[].join,je=f!=Object,Ne=_e("join",",");_t({target:"Array",proto:!0,forced:je||!Ne},{join:function(t){return Me.call(g(this),void 0===t?",":t)}});var qe,Ue,De=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},Ze=Array.isArray||function(t){return"Array"==p(t)},We=Zt("species"),Ke=function(t,e){var n;return Ze(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!Ze(n.prototype)?m(n)&&null===(n=n[We])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)},Je=[].push,Fe=function(t){var e=1==t,n=2==t,r=3==t,i=4==t,a=6==t,o=5==t||a;return function(l,s,c,u){for(var p,d,h=ye(l),g=f(h),m=function(t,e,n){if(De(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}(s,c,3),v=ot(g.length),y=0,k=u||Ke,b=e?k(l,v):n?k(l,0):void 0;v>y;y++)if((o||y in g)&&(d=m(p=g[y],y,h),t))if(e)b[y]=d;else if(d)switch(t){case 3:return!0;case 5:return p;case 6:return y;case 2:Je.call(b,p)}else if(i)return!1;return a?-1:r||i?i:b}},He={forEach:Fe(0),map:Fe(1),filter:Fe(2),some:Fe(3),every:Fe(4),find:Fe(5),findIndex:Fe(6)},Be=et("navigator","userAgent")||"",Ye=r.process,Ve=Ye&&Ye.versions,Ge=Ve&&Ve.v8;Ge?Ue=(qe=Ge.split("."))[0]+qe[1]:Be&&(!(qe=Be.match(/Edge\/(\d+)/))||qe[1]>=74)&&(qe=Be.match(/Chrome\/(\d+)/))&&(Ue=qe[1]);var Xe=Ue&&+Ue,Qe=Zt("species"),tn=function(t){return Xe>=51||!i((function(){var e=[];return(e.constructor={})[Qe]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},en=He.map,nn=tn("map"),rn=Oe("map");_t({target:"Array",proto:!0,forced:!nn||!rn},{map:function(t){return en(this,t,arguments.length>1?arguments[1]:void 0)}});var an=function(t,e,n){var r=v(e);r in t?A.f(t,r,c(0,n)):t[r]=n},on=tn("slice"),ln=Oe("slice",{ACCESSORS:!0,0:0,1:2}),sn=Zt("species"),cn=[].slice,un=Math.max;_t({target:"Array",proto:!0,forced:!on||!ln},{slice:function(t,e){var n,r,i,a=g(this),o=ot(a.length),l=ct(t,o),s=ct(void 0===e?o:e,o);if(Ze(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!Ze(n.prototype)?m(n)&&null===(n=n[sn])&&(n=void 0):n=void 0,n===Array||void 0===n))return cn.call(a,l,s);for(r=new(void 0===n?Array:n)(un(s-l,0)),i=0;l<s;l++,i++)l in a&&an(r,i,a[l]);return r.length=i,r}});var pn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return T(n),function(t){if(!m(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype")}(r),e?t.call(n,r):n.__proto__=r,n}}():void 0),dn=Zt("match"),fn=function(t){var e;return m(t)&&(void 0!==(e=t[dn])?!!e:"RegExp"==p(t))},hn=Zt("species"),gn=A.f,mn=ht.f,vn=G.set,yn=Zt("match"),kn=r.RegExp,bn=kn.prototype,wn=/a/g,xn=/a/g,Sn=new kn(wn)!==wn,En=Rt.UNSUPPORTED_Y;if(a&&Et("RegExp",!Sn||En||i((function(){return xn[yn]=!1,kn(wn)!=wn||kn(xn)==xn||"/a/i"!=kn(wn,"i")})))){for(var Tn=function(t,e){var n,r=this instanceof Tn,i=fn(t),a=void 0===e;if(!r&&i&&t.constructor===Tn&&a)return t;Sn?i&&!a&&(t=t.source):t instanceof Tn&&(a&&(e=At.call(t)),t=t.source),En&&(n=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var o,l,s,c,u,p=(o=Sn?new kn(t,e):kn(t,e),l=r?this:bn,s=Tn,pn&&"function"==typeof(c=l.constructor)&&c!==s&&m(u=c.prototype)&&u!==s.prototype&&pn(o,u),o);return En&&n&&vn(p,{sticky:n}),p},_n=function(t){t in Tn||gn(Tn,t,{configurable:!0,get:function(){return kn[t]},set:function(e){kn[t]=e}})},An=mn(kn),zn=0;An.length>zn;)_n(An[zn++]);bn.constructor=Tn,Tn.prototype=bn,X(r,"RegExp",Tn)}!function(t){var e=et(t),n=A.f;a&&e&&!e[hn]&&n(e,hn,{configurable:!0,get:function(){return this}})}("RegExp");var Rn,On=function(t){if(fn(t))throw TypeError("The method doesn't accept regular expressions");return t},In=Zt("match"),$n=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[In]=!1,"/./"[t](e)}catch(t){}}return!1},Cn=E.f,Ln="".endsWith,Pn=Math.min,Mn=$n("endsWith");_t({target:"String",proto:!0,forced:!!(Mn||(Rn=Cn(String.prototype,"endsWith"),!Rn||Rn.writable))&&!Mn},{endsWith:function(t){var e=String(h(this));On(t);var n=arguments.length>1?arguments[1]:void 0,r=ot(e.length),i=void 0===n?r:Pn(ot(n),r),a=String(t);return Ln?Ln.call(e,a,i):e.slice(i-a.length,i)===a}});var jn=Zt("species"),Nn=[].push,qn=Math.min,Un=!i((function(){return!RegExp(4294967295,"y")}));Yt("split",2,(function(t,e,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var r=String(h(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!fn(t))return e.call(r,t,i);for(var a,o,l,s=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),u=0,p=new RegExp(t.source,c+"g");(a=Mt.call(p,r))&&!((o=p.lastIndex)>u&&(s.push(r.slice(u,a.index)),a.length>1&&a.index<r.length&&Nn.apply(s,a.slice(1)),l=a[0].length,u=o,s.length>=i));)p.lastIndex===a.index&&p.lastIndex++;return u===r.length?!l&&p.test("")||s.push(""):s.push(r.slice(u)),s.length>i?s.slice(0,i):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var i=h(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,i,n):r.call(String(i),e,n)},function(t,i){var a=n(r,t,this,i,r!==e);if(a.done)return a.value;var o=T(t),l=String(this),s=function(t,e){var n,r=T(t).constructor;return void 0===r||null==(n=T(r)[jn])?e:De(n)}(o,RegExp),c=o.unicode,u=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(Un?"y":"g"),p=new s(Un?o:"^(?:"+o.source+")",u),d=void 0===i?4294967295:i>>>0;if(0===d)return[];if(0===l.length)return null===Qt(p,l)?[l]:[];for(var f=0,h=0,g=[];h<l.length;){p.lastIndex=Un?h:0;var m,v=Qt(p,Un?l:l.slice(h));if(null===v||(m=qn(ot(p.lastIndex+(Un?0:h)),l.length))===f)h=Xt(l,h,c);else{if(g.push(l.slice(f,h)),g.length===d)return g;for(var y=1;y<=v.length-1;y++)if(g.push(v[y]),g.length===d)return g;h=f=m}}return g.push(l.slice(f)),g}]}),!Un);var Dn=E.f,Zn="".startsWith,Wn=Math.min,Kn=$n("startsWith");_t({target:"String",proto:!0,forced:!(!Kn&&!!function(){var t=Dn(String.prototype,"startsWith");return t&&!t.writable}())&&!Kn},{startsWith:function(t){var e=String(h(this));On(t);var n=ot(Wn(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return Zn?Zn.call(e,r,n):e.slice(n,n+r.length)===r}});var Jn="\t\n\v\f\r \u2028\u2029\ufeff",Fn="["+Jn+"]",Hn=RegExp("^"+Fn+Fn+"*"),Bn=RegExp(Fn+Fn+"*$"),Yn=function(t){return function(e){var n=String(h(e));return 1&t&&(n=n.replace(Hn,"")),2&t&&(n=n.replace(Bn,"")),n}},Vn={start:Yn(1),end:Yn(2),trim:Yn(3)},Gn=function(t){return i((function(){return!!Jn[t]()||"​…᠎"!="​…᠎"[t]()||Jn[t].name!==t}))},Xn=Vn.trim;_t({target:"String",proto:!0,forced:Gn("trim")},{trim:function(){return Xn(this)}});var Qn=Vn.end,tr=Gn("trimEnd"),er=tr?function(){return Qn(this)}:"".trimEnd;_t({target:"String",proto:!0,forced:tr},{trimEnd:er,trimRight:er});var nr=e((function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}})),rr=tn("splice"),ir=Oe("splice",{ACCESSORS:!0,0:0,1:2}),ar=Math.max,or=Math.min;_t({target:"Array",proto:!0,forced:!rr||!ir},{splice:function(t,e){var n,r,i,a,o,l,s=ye(this),c=ot(s.length),u=ct(t,c),p=arguments.length;if(0===p?n=r=0:1===p?(n=0,r=c-u):(n=p-2,r=or(ar(it(e),0),c-u)),c+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(i=Ke(s,r),a=0;a<r;a++)(o=u+a)in s&&an(i,a,s[o]);if(i.length=r,n<r){for(a=u;a<c-r;a++)l=a+n,(o=a+r)in s?s[l]=s[o]:delete s[l];for(a=c;a>c-r+n;a--)delete s[a-1]}else if(n>r)for(a=c-r;a>u;a--)l=a+n-1,(o=a+r-1)in s?s[l]=s[o]:delete s[l];for(a=0;a<n;a++)s[a+u]=arguments[a+2];return s.length=c-r+n,i}});var lr=/[&<>"']/,sr=/[&<>"']/g,cr=/[<>"']|&(?!#?\w+;)/,ur=/[<>"']|&(?!#?\w+;)/g,pr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},dr=function(t){return pr[t]};var fr=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function hr(t){return t.replace(fr,(function(t,e){return"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""}))}var gr=/(^|[^\[])\^/g;var mr=/[^\w:]/g,vr=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var yr={},kr=/^[^:]+:\/*[^/]*$/,br=/^([^:]+:)[\s\S]*$/,wr=/^([^:]+:\/*[^/]*)[\s\S]*$/;function xr(t,e){yr[" "+t]||(kr.test(t)?yr[" "+t]=t+"/":yr[" "+t]=Sr(t,"/",!0));var n=-1===(t=yr[" "+t]).indexOf(":");return"//"===e.substring(0,2)?n?e:t.replace(br,"$1")+e:"/"===e.charAt(0)?n?e:t.replace(wr,"$1")+e:t+e}function Sr(t,e,n){var r=t.length;if(0===r)return"";for(var i=0;i<r;){var a=t.charAt(r-i-1);if(a!==e||n){if(a===e||!n)break;i++}else i++}return t.substr(0,r-i)}var Er=function(t,e){if(e){if(lr.test(t))return t.replace(sr,dr)}else if(cr.test(t))return t.replace(ur,dr);return t},Tr=hr,_r=function(t,e){t=t.source||t,e=e||"";var n={replace:function(e,r){return r=(r=r.source||r).replace(gr,"$1"),t=t.replace(e,r),n},getRegex:function(){return new RegExp(t,e)}};return n},Ar=function(t,e,n){if(t){var r;try{r=decodeURIComponent(hr(n)).replace(mr,"").toLowerCase()}catch(t){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}e&&!vr.test(n)&&(n=xr(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(t){return null}return n},zr={exec:function(){}},Rr=function(t){for(var e,n,r=1;r<arguments.length;r++)for(n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},Or=function(t,e){var n=t.replace(/\|/g,(function(t,e,n){for(var r=!1,i=e;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n},Ir=Sr,$r=function(t,e){if(-1===t.indexOf(e[1]))return-1;for(var n=t.length,r=0,i=0;i<n;i++)if("\\"===t[i])i++;else if(t[i]===e[0])r++;else if(t[i]===e[1]&&--r<0)return i;return-1},Cr=function(t){t&&t.sanitize&&!t.silent&&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")},Lr=nr.defaults,Pr=Ir,Mr=Or,jr=Er,Nr=$r;function qr(t,e,n){var r=e.href,i=e.title?jr(e.title):null;return"!"!==t[0].charAt(0)?{type:"link",raw:n,href:r,title:i,text:t[1]}:{type:"image",raw:n,text:jr(t[1]),href:r,title:i}}var Ur=function(){function t(e){pe(this,t),this.options=e||Lr}return fe(t,[{key:"space",value:function(t){var e=this.rules.block.newline.exec(t);if(e)return e[0].length>1?{type:"space",raw:e[0]}:{raw:"\n"}}},{key:"code",value:function(t,e){var n=this.rules.block.code.exec(t);if(n){var r=e[e.length-1];if(r&&"paragraph"===r.type)return{raw:n[0],text:n[0].trimRight()};var i=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Pr(i,"\n")}}}},{key:"fences",value:function(t){var e=this.rules.block.fences.exec(t);if(e){var n=e[0],r=function(t,e){var n=t.match(/^(\s+)(?:```)/);if(null===n)return e;var r=n[1];return e.split("\n").map((function(t){var e=t.match(/^\s+/);return null===e?t:he(e,1)[0].length>=r.length?t.slice(r.length):t})).join("\n")}(n,e[3]||"");return{type:"code",raw:n,lang:e[2]?e[2].trim():e[2],text:r}}}},{key:"heading",value:function(t){var e=this.rules.block.heading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[1].length,text:e[2]}}},{key:"nptable",value:function(t){var e=this.rules.block.nptable.exec(t);if(e){var n={type:"table",header:Mr(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(n.header.length===n.align.length){var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=Mr(n.cells[r],n.header.length);return n}}}},{key:"hr",value:function(t){var e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}},{key:"blockquote",value:function(t){var e=this.rules.block.blockquote.exec(t);if(e){var n=e[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:e[0],text:n}}}},{key:"list",value:function(t){var e=this.rules.block.list.exec(t);if(e){for(var n,r,i,a,o,l,s,c=e[0],u=e[2],p=u.length>1,d={type:"list",raw:c,ordered:p,start:p?+u:"",loose:!1,items:[]},f=e[0].match(this.rules.block.item),h=!1,g=f.length,m=0;m<g;m++)c=n=f[m],r=n.length,~(n=n.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),m!==g-1&&(i=this.rules.block.bullet.exec(f[m+1])[0],(u.length>1?1===i.length:i.length>1||this.options.smartLists&&i!==u)&&(a=f.slice(m+1).join("\n"),d.raw=d.raw.substring(0,d.raw.length-a.length),m=g-1)),o=h||/\n\n(?!\s*$)/.test(n),m!==g-1&&(h="\n"===n.charAt(n.length-1),o||(o=h)),o&&(d.loose=!0),s=void 0,(l=/^\[[ xX]\] /.test(n))&&(s=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,"")),d.items.push({type:"list_item",raw:c,task:l,checked:s,loose:o,text:n});return d}}},{key:"html",value:function(t){var e=this.rules.block.html.exec(t);if(e)return{type:this.options.sanitize?"paragraph":"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):jr(e[0]):e[0]}}},{key:"def",value:function(t){var e=this.rules.block.def.exec(t);if(e)return e[3]&&(e[3]=e[3].substring(1,e[3].length-1)),{tag:e[1].toLowerCase().replace(/\s+/g," "),raw:e[0],href:e[2],title:e[3]}}},{key:"table",value:function(t){var e=this.rules.block.table.exec(t);if(e){var n={type:"table",header:Mr(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=e[0];var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=Mr(n.cells[r].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}}},{key:"lheading",value:function(t){var e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1]}}},{key:"paragraph",value:function(t){var e=this.rules.block.paragraph.exec(t);if(e)return{type:"paragraph",raw:e[0],text:"\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1]}}},{key:"text",value:function(t,e){var n=this.rules.block.text.exec(t);if(n){var r=e[e.length-1];return r&&"text"===r.type?{raw:n[0],text:n[0]}:{type:"text",raw:n[0],text:n[0]}}}},{key:"escape",value:function(t){var e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:jr(e[1])}}},{key:"tag",value:function(t,e,n){var r=this.rules.inline.tag.exec(t);if(r)return!e&&/^<a /i.test(r[0])?e=!0:e&&/^<\/a>/i.test(r[0])&&(e=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:e,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):jr(r[0]):r[0]}}},{key:"link",value:function(t){var e=this.rules.inline.link.exec(t);if(e){var n=Nr(e[2],"()");if(n>-1){var r=(0===e[0].indexOf("!")?5:4)+e[1].length+n;e[2]=e[2].substring(0,n),e[0]=e[0].substring(0,r).trim(),e[3]=""}var i=e[2],a="";if(this.options.pedantic){var o=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);o?(i=o[1],a=o[3]):a=""}else a=e[3]?e[3].slice(1,-1):"";return qr(e,{href:(i=i.trim().replace(/^<([\s\S]*)>$/,"$1"))?i.replace(this.rules.inline._escapes,"$1"):i,title:a?a.replace(this.rules.inline._escapes,"$1"):a},e[0])}}},{key:"reflink",value:function(t,e){var n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=e[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return qr(n,r,n[0])}}},{key:"strong",value:function(t){var e=this.rules.inline.strong.exec(t);if(e)return{type:"strong",raw:e[0],text:e[4]||e[3]||e[2]||e[1]}}},{key:"em",value:function(t){var e=this.rules.inline.em.exec(t);if(e)return{type:"em",raw:e[0],text:e[6]||e[5]||e[4]||e[3]||e[2]||e[1]}}},{key:"codespan",value:function(t){var e=this.rules.inline.code.exec(t);if(e){var n=e[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=n.startsWith(" ")&&n.endsWith(" ");return r&&i&&(n=n.substring(1,n.length-1)),n=jr(n,!0),{type:"codespan",raw:e[0],text:n}}}},{key:"br",value:function(t){var e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}},{key:"del",value:function(t){var e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[1]}}},{key:"autolink",value:function(t,e){var n,r,i=this.rules.inline.autolink.exec(t);if(i)return r="@"===i[2]?"mailto:"+(n=jr(this.options.mangle?e(i[1]):i[1])):n=jr(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},{key:"url",value:function(t,e){var n;if(n=this.rules.inline.url.exec(t)){var r,i;if("@"===n[2])i="mailto:"+(r=jr(this.options.mangle?e(n[0]):n[0]));else{var a;do{a=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(a!==n[0]);r=jr(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}},{key:"inlineText",value:function(t,e,n){var r,i=this.rules.inline.text.exec(t);if(i)return r=e?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):jr(i[0]):i[0]:jr(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}]),t}(),Dr=zr,Zr=_r,Wr=Rr,Kr={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Dr,table:Dr,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Kr.def=Zr(Kr.def).replace("label",Kr._label).replace("title",Kr._title).getRegex(),Kr.bullet=/(?:[*+-]|\d{1,9}\.)/,Kr.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,Kr.item=Zr(Kr.item,"gm").replace(/bull/g,Kr.bullet).getRegex(),Kr.list=Zr(Kr.list).replace(/bull/g,Kr.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Kr.def.source+")").getRegex(),Kr._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",Kr._comment=/<!--(?!-?>)[\s\S]*?-->/,Kr.html=Zr(Kr.html,"i").replace("comment",Kr._comment).replace("tag",Kr._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Kr.paragraph=Zr(Kr._paragraph).replace("hr",Kr.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Kr._tag).getRegex(),Kr.blockquote=Zr(Kr.blockquote).replace("paragraph",Kr.paragraph).getRegex(),Kr.normal=Wr({},Kr),Kr.gfm=Wr({},Kr.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Kr.gfm.nptable=Zr(Kr.gfm.nptable).replace("hr",Kr.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Kr._tag).getRegex(),Kr.gfm.table=Zr(Kr.gfm.table).replace("hr",Kr.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Kr._tag).getRegex(),Kr.pedantic=Wr({},Kr.normal,{html:Zr("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Kr._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(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Dr,paragraph:Zr(Kr.normal._paragraph).replace("hr",Kr.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Kr.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Jr={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Dr,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\s,punctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\s,punctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Dr,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};Jr.em=Zr(Jr.em).replace(/punctuation/g,Jr._punctuation).getRegex(),Jr._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Jr._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Jr._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])?)+(?![-_])/,Jr.autolink=Zr(Jr.autolink).replace("scheme",Jr._scheme).replace("email",Jr._email).getRegex(),Jr._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Jr.tag=Zr(Jr.tag).replace("comment",Kr._comment).replace("attribute",Jr._attribute).getRegex(),Jr._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Jr._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,Jr._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Jr.link=Zr(Jr.link).replace("label",Jr._label).replace("href",Jr._href).replace("title",Jr._title).getRegex(),Jr.reflink=Zr(Jr.reflink).replace("label",Jr._label).getRegex(),Jr.normal=Wr({},Jr),Jr.pedantic=Wr({},Jr.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:Zr(/^!?\[(label)\]\((.*?)\)/).replace("label",Jr._label).getRegex(),reflink:Zr(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Jr._label).getRegex()}),Jr.gfm=Wr({},Jr.normal,{escape:Zr(Jr.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Jr.gfm.url=Zr(Jr.gfm.url,"i").replace("email",Jr.gfm._extended_email).getRegex(),Jr.breaks=Wr({},Jr.gfm,{br:Zr(Jr.br).replace("{2,}","*").getRegex(),text:Zr(Jr.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Fr={block:Kr,inline:Jr},Hr=nr.defaults,Br=Fr.block,Yr=Fr.inline;function Vr(t){return t.replace(/---/g,"").replace(/--/g,"").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"").replace(/\.{3}/g,"")}function Gr(t){var e,n,r="",i=t.length;for(e=0;e<i;e++)n=t.charCodeAt(e),Math.random()>.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var Xr=function(){function t(e){pe(this,t),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Hr,this.options.tokenizer=this.options.tokenizer||new Ur,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var n={block:Br.normal,inline:Yr.normal};this.options.pedantic?(n.block=Br.pedantic,n.inline=Yr.pedantic):this.options.gfm&&(n.block=Br.gfm,this.options.breaks?n.inline=Yr.breaks:n.inline=Yr.gfm),this.tokenizer.rules=n}return fe(t,[{key:"lex",value:function(t){return t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(t,this.tokens,!0),this.inline(this.tokens),this.tokens}},{key:"blockTokens",value:function(t){var e,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];for(t=t.replace(/^ +$/gm,"");t;)if(e=this.tokenizer.space(t))t=t.substring(e.raw.length),e.type&&a.push(e);else if(e=this.tokenizer.code(t,a))t=t.substring(e.raw.length),e.type?a.push(e):((i=a[a.length-1]).raw+="\n"+e.raw,i.text+="\n"+e.text);else if(e=this.tokenizer.fences(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.heading(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.nptable(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.hr(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.blockquote(t))t=t.substring(e.raw.length),e.tokens=this.blockTokens(e.text,[],o),a.push(e);else if(e=this.tokenizer.list(t)){for(t=t.substring(e.raw.length),r=e.items.length,n=0;n<r;n++)e.items[n].tokens=this.blockTokens(e.items[n].text,[],!1);a.push(e)}else if(e=this.tokenizer.html(t))t=t.substring(e.raw.length),a.push(e);else if(o&&(e=this.tokenizer.def(t)))t=t.substring(e.raw.length),this.tokens.links[e.tag]||(this.tokens.links[e.tag]={href:e.href,title:e.title});else if(e=this.tokenizer.table(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.lheading(t))t=t.substring(e.raw.length),a.push(e);else if(o&&(e=this.tokenizer.paragraph(t)))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.text(t,a))t=t.substring(e.raw.length),e.type?a.push(e):((i=a[a.length-1]).raw+="\n"+e.raw,i.text+="\n"+e.text);else if(t){var l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return a}},{key:"inline",value:function(t){var e,n,r,i,a,o,l=t.length;for(e=0;e<l;e++)switch((o=t[e]).type){case"paragraph":case"text":case"heading":o.tokens=[],this.inlineTokens(o.text,o.tokens);break;case"table":for(o.tokens={header:[],cells:[]},i=o.header.length,n=0;n<i;n++)o.tokens.header[n]=[],this.inlineTokens(o.header[n],o.tokens.header[n]);for(i=o.cells.length,n=0;n<i;n++)for(a=o.cells[n],o.tokens.cells[n]=[],r=0;r<a.length;r++)o.tokens.cells[n][r]=[],this.inlineTokens(a[r],o.tokens.cells[n][r]);break;case"blockquote":this.inline(o.tokens);break;case"list":for(i=o.items.length,n=0;n<i;n++)this.inline(o.items[n].tokens)}return t}},{key:"inlineTokens",value:function(t){for(var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t;)if(e=this.tokenizer.escape(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.tag(t,r,i))t=t.substring(e.raw.length),r=e.inLink,i=e.inRawBlock,n.push(e);else if(e=this.tokenizer.link(t))t=t.substring(e.raw.length),"link"===e.type&&(e.tokens=this.inlineTokens(e.text,[],!0,i)),n.push(e);else if(e=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(e.raw.length),"link"===e.type&&(e.tokens=this.inlineTokens(e.text,[],!0,i)),n.push(e);else if(e=this.tokenizer.strong(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.em(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.codespan(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.br(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.del(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.autolink(t,Gr))t=t.substring(e.raw.length),n.push(e);else if(r||!(e=this.tokenizer.url(t,Gr))){if(e=this.tokenizer.inlineText(t,i,Vr))t=t.substring(e.raw.length),n.push(e);else if(t){var a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}else t=t.substring(e.raw.length),n.push(e);return n}}],[{key:"lex",value:function(e,n){return new t(n).lex(e)}},{key:"rules",get:function(){return{block:Br,inline:Yr}}}]),t}(),Qr=nr.defaults,ti=Ar,ei=Er,ni=function(){function t(e){pe(this,t),this.options=e||Qr}return fe(t,[{key:"code",value:function(t,e,n){var r=(e||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(t,r);null!=i&&i!==t&&(n=!0,t=i)}return r?'<pre><code class="'+this.options.langPrefix+ei(r,!0)+'">'+(n?t:ei(t,!0))+"</code></pre>\n":"<pre><code>"+(n?t:ei(t,!0))+"</code></pre>\n"}},{key:"blockquote",value:function(t){return"<blockquote>\n"+t+"</blockquote>\n"}},{key:"html",value:function(t){return t}},{key:"heading",value:function(t,e,n,r){return this.options.headerIds?"<h"+e+' id="'+this.options.headerPrefix+r.slug(n)+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"}},{key:"hr",value:function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}},{key:"list",value:function(t,e,n){var r=e?"ol":"ul";return"<"+r+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"</"+r+">\n"}},{key:"listitem",value:function(t){return"<li>"+t+"</li>\n"}},{key:"checkbox",value:function(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}},{key:"paragraph",value:function(t){return"<p>"+t+"</p>\n"}},{key:"table",value:function(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"}},{key:"tablerow",value:function(t){return"<tr>\n"+t+"</tr>\n"}},{key:"tablecell",value:function(t,e){var n=e.header?"th":"td";return(e.align?"<"+n+' align="'+e.align+'">':"<"+n+">")+t+"</"+n+">\n"}},{key:"strong",value:function(t){return"<strong>"+t+"</strong>"}},{key:"em",value:function(t){return"<em>"+t+"</em>"}},{key:"codespan",value:function(t){return"<code>"+t+"</code>"}},{key:"br",value:function(){return this.options.xhtml?"<br/>":"<br>"}},{key:"del",value:function(t){return"<del>"+t+"</del>"}},{key:"link",value:function(t,e,n){if(null===(t=ti(this.options.sanitize,this.options.baseUrl,t)))return n;var r='<a href="'+ei(t)+'"';return e&&(r+=' title="'+e+'"'),r+=">"+n+"</a>"}},{key:"image",value:function(t,e,n){if(null===(t=ti(this.options.sanitize,this.options.baseUrl,t)))return n;var r='<img src="'+t+'" alt="'+n+'"';return e&&(r+=' title="'+e+'"'),r+=this.options.xhtml?"/>":">"}},{key:"text",value:function(t){return t}}]),t}(),ri=function(){function t(){pe(this,t)}return fe(t,[{key:"strong",value:function(t){return t}},{key:"em",value:function(t){return t}},{key:"codespan",value:function(t){return t}},{key:"del",value:function(t){return t}},{key:"html",value:function(t){return t}},{key:"text",value:function(t){return t}},{key:"link",value:function(t,e,n){return""+n}},{key:"image",value:function(t,e,n){return""+n}},{key:"br",value:function(){return""}}]),t}(),ii=function(){function t(){pe(this,t),this.seen={}}return fe(t,[{key:"slug",value:function(t){var e=t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(e)){var n=e;do{this.seen[n]++,e=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(e))}return this.seen[e]=0,e}}]),t}(),ai=nr.defaults,oi=Tr,li=function(){function t(e){pe(this,t),this.options=e||ai,this.options.renderer=this.options.renderer||new ni,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ri,this.slugger=new ii}return fe(t,[{key:"parse",value:function(t){var e,n,r,i,a,o,l,s,c,u,p,d,f,h,g,m,v,y,k=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],b="",w=t.length;for(e=0;e<w;e++)switch((u=t[e]).type){case"space":continue;case"hr":b+=this.renderer.hr();continue;case"heading":b+=this.renderer.heading(this.parseInline(u.tokens),u.depth,oi(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":b+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(s="",l="",i=u.header.length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(u.tokens.header[n]),{header:!0,align:u.align[n]});for(s+=this.renderer.tablerow(l),c="",i=u.cells.length,n=0;n<i;n++){for(l="",a=(o=u.tokens.cells[n]).length,r=0;r<a;r++)l+=this.renderer.tablecell(this.parseInline(o[r]),{header:!1,align:u.align[r]});c+=this.renderer.tablerow(l)}b+=this.renderer.table(s,c);continue;case"blockquote":c=this.parse(u.tokens),b+=this.renderer.blockquote(c);continue;case"list":for(p=u.ordered,d=u.start,f=u.loose,i=u.items.length,c="",n=0;n<i;n++)m=(g=u.items[n]).checked,v=g.task,h="",g.task&&(y=this.renderer.checkbox(m),f?g.tokens.length>0&&"text"===g.tokens[0].type?(g.tokens[0].text=y+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=y+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:y}):h+=y),h+=this.parse(g.tokens,f),c+=this.renderer.listitem(h,v,m);b+=this.renderer.list(c,p,d);continue;case"html":b+=this.renderer.html(u.text);continue;case"paragraph":b+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(c=u.tokens?this.parseInline(u.tokens):u.text;e+1<w&&"text"===t[e+1].type;)c+="\n"+((u=t[++e]).tokens?this.parseInline(u.tokens):u.text);b+=k?this.renderer.paragraph(c):c;continue;default:var x='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(x);throw new Error(x)}return b}},{key:"parseInline",value:function(t,e){e=e||this.renderer;var n,r,i="",a=t.length;for(n=0;n<a;n++)switch((r=t[n]).type){case"escape":i+=e.text(r.text);break;case"html":i+=e.html(r.text);break;case"link":i+=e.link(r.href,r.title,this.parseInline(r.tokens,e));break;case"image":i+=e.image(r.href,r.title,r.text);break;case"strong":i+=e.strong(this.parseInline(r.tokens,e));break;case"em":i+=e.em(this.parseInline(r.tokens,e));break;case"codespan":i+=e.codespan(r.text);break;case"br":i+=e.br();break;case"del":i+=e.del(this.parseInline(r.tokens,e));break;case"text":i+=e.text(r.text);break;default:var o='Token with "'+r.type+'" type was not found.';if(this.options.silent)return void console.error(o);throw new Error(o)}return i}}],[{key:"parse",value:function(e,n){return new t(n).parse(e)}}]),t}(),si=Rr,ci=Cr,ui=Er,pi=nr.getDefaults,di=nr.changeDefaults,fi=nr.defaults;function hi(t,e,n){if(null==t)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof t)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected");if("function"==typeof e&&(n=e,e=null),e=si({},hi.defaults,e||{}),ci(e),n){var r,i=e.highlight;try{r=Xr.lex(t,e)}catch(t){return n(t)}var a=function(t){var a;if(!t)try{a=li.parse(r,e)}catch(e){t=e}return e.highlight=i,t?n(t):n(null,a)};if(!i||i.length<3)return a();if(delete e.highlight,!r.length)return a();var o=0;return hi.walkTokens(r,(function(t){"code"===t.type&&(o++,i(t.text,t.lang,(function(e,n){if(e)return a(e);null!=n&&n!==t.text&&(t.text=n,t.escaped=!0),0===--o&&a()})))})),void(0===o&&a())}try{var l=Xr.lex(t,e);return e.walkTokens&&hi.walkTokens(l,e.walkTokens),li.parse(l,e)}catch(t){if(t.message+="\nPlease report this to https://github.com/markedjs/marked.",e.silent)return"<p>An error occurred:</p><pre>"+ui(t.message+"",!0)+"</pre>";throw t}}hi.options=hi.setOptions=function(t){return si(hi.defaults,t),di(hi.defaults),hi},hi.getDefaults=pi,hi.defaults=fi,hi.use=function(t){var e=si({},t);if(t.renderer&&function(){var n=hi.defaults.renderer||new ni,r=function(e){var r=n[e];n[e]=function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];var l=t.renderer[e].apply(n,a);return!1===l&&(l=r.apply(n,a)),l}};for(var i in t.renderer)r(i);e.renderer=n}(),t.tokenizer&&function(){var n=hi.defaults.tokenizer||new Ur,r=function(e){var r=n[e];n[e]=function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];var l=t.tokenizer[e].apply(n,a);return!1===l&&(l=r.apply(n,a)),l}};for(var i in t.tokenizer)r(i);e.tokenizer=n}(),t.walkTokens){var n=hi.defaults.walkTokens;e.walkTokens=function(e){t.walkTokens(e),n&&n(e)}}hi.setOptions(e)},hi.walkTokens=function(t,e){var n,r=ve(t);try{for(r.s();!(n=r.n()).done;){var i=n.value;switch(e(i),i.type){case"table":var a,o=ve(i.tokens.header);try{for(o.s();!(a=o.n()).done;){var l=a.value;hi.walkTokens(l,e)}}catch(t){o.e(t)}finally{o.f()}var s,c=ve(i.tokens.cells);try{for(c.s();!(s=c.n()).done;){var u,p=ve(s.value);try{for(p.s();!(u=p.n()).done;){var d=u.value;hi.walkTokens(d,e)}}catch(t){p.e(t)}finally{p.f()}}}catch(t){c.e(t)}finally{c.f()}break;case"list":hi.walkTokens(i.items,e);break;default:i.tokens&&hi.walkTokens(i.tokens,e)}}}catch(t){r.e(t)}finally{r.f()}},hi.Parser=li,hi.parser=li.parse,hi.Renderer=ni,hi.TextRenderer=ri,hi.Lexer=Xr,hi.lexer=Xr.lex,hi.Tokenizer=Ur,hi.Slugger=ii,hi.parse=hi;var gi=hi;export default function(){var t,e=null;function n(){var n;!e||e.closed?((e=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).marked=gi,e.document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),e?(n=setInterval((function(){e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(i){var a,o,l,s,c=JSON.parse(i.data);c&&"reveal-notes"===c.namespace&&"connected"===c.type&&(clearInterval(n),t.on("slidechanged",r),t.on("fragmentshown",r),t.on("fragmenthidden",r),t.on("overviewhidden",r),t.on("overviewshown",r),t.on("paused",r),t.on("resumed",r),r()),c&&"reveal-notes"===c.namespace&&"call"===c.type&&(a=c.methodName,o=c.arguments,l=c.callId,s=t[a].apply(t,o),e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:s,callId:l}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):e.focus();function r(n){var r=t.getCurrentSlide(),i=r.querySelector("aside.notes"),a=r.querySelector(".current-fragment"),o={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(r.hasAttribute("data-notes")&&(o.notes=r.getAttribute("data-notes"),o.whitespace="pre-wrap"),a){var l=a.querySelector("aside.notes");l?i=l:a.hasAttribute("data-notes")&&(o.notes=a.getAttribute("data-notes"),o.whitespace="pre-wrap",i=null)}i&&(o.notes=i.innerHTML,o.markdown="string"==typeof i.getAttribute("data-markdown")),e.postMessage(JSON.stringify(o),"*")}}return{id:"notes",init:function(e){t=e,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).RevealNotes=e()}(this,(function(){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}var n=function(t){return t&&t.Math==Math&&t},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")(),i=function(t){try{return!!t()}catch(t){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,s={f:l&&!o.call({1:2},1)?function(t){var e=l(this,t);return!!e&&e.enumerable}:o},c=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},u={}.toString,p=function(t){return u.call(t).slice(8,-1)},d="".split,f=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==p(t)?d.call(t,""):Object(t)}:Object,h=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=function(t){return f(h(t))},m=function(t){return"object"==typeof t?null!==t:"function"==typeof t},v=function(t,e){if(!m(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!m(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!m(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},y={}.hasOwnProperty,k=function(t,e){return y.call(t,e)},b=r.document,w=m(b)&&m(b.createElement),x=!a&&!i((function(){return 7!=Object.defineProperty((t="div",w?b.createElement(t):{}),"a",{get:function(){return 7}}).a;var t})),S=Object.getOwnPropertyDescriptor,T={f:a?S:function(t,e){if(t=g(t),e=v(e,!0),x)try{return S(t,e)}catch(t){}if(k(t,e))return c(!s.f.call(t,e),t[e])}},E=function(t){if(!m(t))throw TypeError(String(t)+" is not an object");return t},_=Object.defineProperty,A={f:a?_:function(t,e,n){if(E(t),e=v(e,!0),E(n),x)try{return _(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},z=a?function(t,e,n){return A.f(t,e,c(1,n))}:function(t,e,n){return t[e]=n,t},R=function(t,e){try{z(r,t,e)}catch(n){r[t]=e}return e},O="__core-js_shared__",I=r[O]||R(O,{}),$=Function.toString;"function"!=typeof I.inspectSource&&(I.inspectSource=function(t){return $.call(t)});var C,L,P,M,j=I.inspectSource,N=r.WeakMap,q="function"==typeof N&&/native code/.test(j(N)),U=e((function(t){(t.exports=function(t,e){return I[t]||(I[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),D=0,Z=Math.random(),W=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++D+Z).toString(36)},K=U("keys"),J={},F=r.WeakMap;if(q){var H=new F,B=H.get,Y=H.has,V=H.set;C=function(t,e){return V.call(H,t,e),e},L=function(t){return B.call(H,t)||{}},P=function(t){return Y.call(H,t)}}else{var G=K[M="state"]||(K[M]=W(M));J[G]=!0,C=function(t,e){return z(t,G,e),e},L=function(t){return k(t,G)?t[G]:{}},P=function(t){return k(t,G)}}var X={set:C,get:L,has:P,enforce:function(t){return P(t)?L(t):C(t,{})},getterFor:function(t){return function(e){var n;if(!m(e)||(n=L(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},Q=e((function(t){var e=X.get,n=X.enforce,i=String(String).split("String");(t.exports=function(t,e,a,o){var l=!!o&&!!o.unsafe,s=!!o&&!!o.enumerable,c=!!o&&!!o.noTargetGet;"function"==typeof a&&("string"!=typeof e||k(a,"name")||z(a,"name",e),n(a).source=i.join("string"==typeof e?e:"")),t!==r?(l?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=a:z(t,e,a)):s?t[e]=a:R(e,a)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||j(this)}))})),tt=r,et=function(t){return"function"==typeof t?t:void 0},nt=function(t,e){return arguments.length<2?et(tt[t])||et(r[t]):tt[t]&&tt[t][e]||r[t]&&r[t][e]},rt=Math.ceil,it=Math.floor,at=function(t){return isNaN(t=+t)?0:(t>0?it:rt)(t)},ot=Math.min,lt=function(t){return t>0?ot(at(t),9007199254740991):0},st=Math.max,ct=Math.min,ut=function(t,e){var n=at(t);return n<0?st(n+e,0):ct(n,e)},pt=function(t){return function(e,n,r){var i,a=g(e),o=lt(a.length),l=ut(r,o);if(t&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}},dt={includes:pt(!0),indexOf:pt(!1)},ft=dt.indexOf,ht=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),gt={f:Object.getOwnPropertyNames||function(t){return function(t,e){var n,r=g(t),i=0,a=[];for(n in r)!k(J,n)&&k(r,n)&&a.push(n);for(;e.length>i;)k(r,n=e[i++])&&(~ft(a,n)||a.push(n));return a}(t,ht)}},mt={f:Object.getOwnPropertySymbols},vt=nt("Reflect","ownKeys")||function(t){var e=gt.f(E(t)),n=mt.f;return n?e.concat(n(t)):e},yt=function(t,e){for(var n=vt(e),r=A.f,i=T.f,a=0;a<n.length;a++){var o=n[a];k(t,o)||r(t,o,i(e,o))}},kt=/#|\.prototype\./,bt=function(t,e){var n=xt[wt(t)];return n==Tt||n!=St&&("function"==typeof e?i(e):!!e)},wt=bt.normalize=function(t){return String(t).replace(kt,".").toLowerCase()},xt=bt.data={},St=bt.NATIVE="N",Tt=bt.POLYFILL="P",Et=bt,_t=T.f,At=function(t,e){var n,i,a,o,l,s=t.target,c=t.global,u=t.stat;if(n=c?r:u?r[s]||R(s,{}):(r[s]||{}).prototype)for(i in e){if(o=e[i],a=t.noTargetGet?(l=_t(n,i))&&l.value:n[i],!Et(c?i:s+(u?".":"#")+i,t.forced)&&void 0!==a){if(typeof o==typeof a)continue;yt(o,a)}(t.sham||a&&a.sham)&&z(o,"sham",!0),Q(n,i,o,t)}},zt=function(){var t=E(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function Rt(t,e){return RegExp(t,e)}var Ot={UNSUPPORTED_Y:i((function(){var t=Rt("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),BROKEN_CARET:i((function(){var t=Rt("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},It=RegExp.prototype.exec,$t=String.prototype.replace,Ct=It,Lt=function(){var t=/a/,e=/b*/g;return It.call(t,"a"),It.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Pt=Ot.UNSUPPORTED_Y||Ot.BROKEN_CARET,Mt=void 0!==/()??/.exec("")[1];(Lt||Mt||Pt)&&(Ct=function(t){var e,n,r,i,a=this,o=Pt&&a.sticky,l=zt.call(a),s=a.source,c=0,u=t;return o&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),u=String(t).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==t[a.lastIndex-1])&&(s="(?: "+s+")",u=" "+u,c++),n=new RegExp("^(?:"+s+")",l)),Mt&&(n=new RegExp("^"+s+"$(?!\\s)",l)),Lt&&(e=a.lastIndex),r=It.call(o?n:a,u),o?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:Lt&&r&&(a.lastIndex=a.global?r.index+r[0].length:e),Mt&&r&&r.length>1&&$t.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var jt=Ct;At({target:"RegExp",proto:!0,forced:/./.exec!==jt},{exec:jt});var Nt=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),qt=Nt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ut=U("wks"),Dt=r.Symbol,Zt=qt?Dt:Dt&&Dt.withoutSetter||W,Wt=function(t){return k(Ut,t)||(Nt&&k(Dt,t)?Ut[t]=Dt[t]:Ut[t]=Zt("Symbol."+t)),Ut[t]},Kt=Wt("species"),Jt=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),Ft="$0"==="a".replace(/./,"$0"),Ht=Wt("replace"),Bt=!!/./[Ht]&&""===/./[Ht]("a","$0"),Yt=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),Vt=function(t,e,n,r){var a=Wt(t),o=!i((function(){var e={};return e[a]=function(){return 7},7!=""[t](e)})),l=o&&!i((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[Kt]=function(){return n},n.flags="",n[a]=/./[a]),n.exec=function(){return e=!0,null},n[a](""),!e}));if(!o||!l||"replace"===t&&(!Jt||!Ft||Bt)||"split"===t&&!Yt){var s=/./[a],c=n(a,""[t],(function(t,e,n,r,i){return e.exec===jt?o&&!i?{done:!0,value:s.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Ft,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Bt}),u=c[0],p=c[1];Q(String.prototype,t,u),Q(RegExp.prototype,a,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)})}r&&z(RegExp.prototype[a],"sham",!0)},Gt=function(t){return function(e,n){var r,i,a=String(h(e)),o=at(n),l=a.length;return o<0||o>=l?t?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===l||(i=a.charCodeAt(o+1))<56320||i>57343?t?a.charAt(o):r:t?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Xt={codeAt:Gt(!1),charAt:Gt(!0)}.charAt,Qt=function(t,e,n){return e+(n?Xt(t,e).length:1)},te=function(t,e){var n=t.exec;if("function"==typeof n){var r=n.call(t,e);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==p(t))throw TypeError("RegExp#exec called on incompatible receiver");return jt.call(t,e)};Vt("match",1,(function(t,e,n){return[function(e){var n=h(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=E(t),a=String(this);if(!i.global)return te(i,a);var o=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=te(i,a));){var u=String(l[0]);s[c]=u,""===u&&(i.lastIndex=Qt(a,lt(i.lastIndex),o)),c++}return 0===c?null:s}]}));var ee=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Vt("search",1,(function(t,e,n){return[function(e){var n=h(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=E(t),a=String(this),o=i.lastIndex;ee(o,0)||(i.lastIndex=0);var l=te(i,a);return ee(i.lastIndex,o)||(i.lastIndex=o),null===l?-1:l.index}]}));var ne={};ne[Wt("toStringTag")]="z";var re="[object z]"===String(ne),ie=Wt("toStringTag"),ae="Arguments"==p(function(){return arguments}()),oe=re?p:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),ie))?n:ae?p(e):"Object"==(r=p(e))&&"function"==typeof e.callee?"Arguments":r},le=re?{}.toString:function(){return"[object "+oe(this)+"]"};re||Q(Object.prototype,"toString",le,{unsafe:!0});var se="toString",ce=RegExp.prototype,ue=ce.toString,pe=i((function(){return"/a/b"!=ue.call({source:"a",flags:"b"})})),de=ue.name!=se;function fe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function he(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function ge(t,e,n){return e&&he(t.prototype,e),n&&he(t,n),t}function me(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,i=!1,a=void 0;try{for(var o,l=t[Symbol.iterator]();!(r=(o=l.next()).done)&&(n.push(o.value),!e||n.length!==e);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==l.return||l.return()}finally{if(i)throw a}}return n}(t,e)||ve(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ve(t,e){if(t){if("string"==typeof t)return ye(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(t,e):void 0}}function ye(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function ke(t){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(t=ve(t))){var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f: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.")}var r,i,a=!0,o=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){o=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(pe||de)&&Q(RegExp.prototype,se,(function(){var t=E(this),e=String(t.source),n=t.flags;return"/"+e+"/"+String(void 0===n&&t instanceof RegExp&&!("flags"in ce)?zt.call(t):n)}),{unsafe:!0});var be=function(t){return Object(h(t))},we=Math.max,xe=Math.min,Se=Math.floor,Te=/\$([$&'`]|\d\d?|<[^>]*>)/g,Ee=/\$([$&'`]|\d\d?)/g;Vt("replace",2,(function(t,e,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=h(this),a=null==n?void 0:n[t];return void 0!==a?a.call(n,i,r):e.call(String(i),n,r)},function(t,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var s=n(e,t,this,r);if(s.done)return s.value}var c=E(t),u=String(this),p="function"==typeof r;p||(r=String(r));var d=c.global;if(d){var f=c.unicode;c.lastIndex=0}for(var h=[];;){var g=te(c,u);if(null===g)break;if(h.push(g),!d)break;""===String(g[0])&&(c.lastIndex=Qt(u,lt(c.lastIndex),f))}for(var m,v="",y=0,k=0;k<h.length;k++){g=h[k];for(var b=String(g[0]),w=we(xe(at(g.index),u.length),0),x=[],S=1;S<g.length;S++)x.push(void 0===(m=g[S])?m:String(m));var T=g.groups;if(p){var _=[b].concat(x,w,u);void 0!==T&&_.push(T);var A=String(r.apply(void 0,_))}else A=l(b,u,w,x,T,r);w>=y&&(v+=u.slice(y,w)+A,y=w+b.length)}return v+u.slice(y)}];function l(t,n,r,i,a,o){var l=r+t.length,s=i.length,c=Ee;return void 0!==a&&(a=be(a),c=Te),e.call(o,c,(function(e,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,r);case"'":return n.slice(l);case"<":c=a[o.slice(1,-1)];break;default:var u=+o;if(0===u)return e;if(u>s){var p=Se(u/10);return 0===p?e:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):e}c=i[u-1]}return void 0===c?"":c}))}}));var _e,Ae=/"/g;At({target:"String",proto:!0,forced:(_e="link",i((function(){var t=""[_e]('"');return t!==t.toLowerCase()||t.split('"').length>3})))},{link:function(t){return e="a",n="href",r=t,i=String(h(this)),a="<"+e,""!==n&&(a+=" "+n+'="'+String(r).replace(Ae,"&quot;")+'"'),a+">"+i+"</"+e+">";var e,n,r,i,a}});var ze=function(t,e){var n=[][t];return!!n&&i((function(){n.call(null,e||function(){throw 1},1)}))},Re=Object.defineProperty,Oe={},Ie=function(t){throw t},$e=function(t,e){if(k(Oe,t))return Oe[t];e||(e={});var n=[][t],r=!!k(e,"ACCESSORS")&&e.ACCESSORS,o=k(e,0)?e[0]:Ie,l=k(e,1)?e[1]:void 0;return Oe[t]=!!n&&!i((function(){if(r&&!a)return!0;var t={length:-1};r?Re(t,1,{enumerable:!0,get:Ie}):t[1]=1,n.call(t,o,l)}))},Ce=dt.indexOf,Le=[].indexOf,Pe=!!Le&&1/[1].indexOf(1,-0)<0,Me=ze("indexOf"),je=$e("indexOf",{ACCESSORS:!0,1:0});At({target:"Array",proto:!0,forced:Pe||!Me||!je},{indexOf:function(t){return Pe?Le.apply(this,arguments)||0:Ce(this,t,arguments.length>1?arguments[1]:void 0)}});var Ne=[].join,qe=f!=Object,Ue=ze("join",",");At({target:"Array",proto:!0,forced:qe||!Ue},{join:function(t){return Ne.call(g(this),void 0===t?",":t)}});var De,Ze,We=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},Ke=Array.isArray||function(t){return"Array"==p(t)},Je=Wt("species"),Fe=function(t,e){var n;return Ke(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!Ke(n.prototype)?m(n)&&null===(n=n[Je])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)},He=[].push,Be=function(t){var e=1==t,n=2==t,r=3==t,i=4==t,a=6==t,o=5==t||a;return function(l,s,c,u){for(var p,d,h=be(l),g=f(h),m=function(t,e,n){if(We(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}(s,c,3),v=lt(g.length),y=0,k=u||Fe,b=e?k(l,v):n?k(l,0):void 0;v>y;y++)if((o||y in g)&&(d=m(p=g[y],y,h),t))if(e)b[y]=d;else if(d)switch(t){case 3:return!0;case 5:return p;case 6:return y;case 2:He.call(b,p)}else if(i)return!1;return a?-1:r||i?i:b}},Ye={forEach:Be(0),map:Be(1),filter:Be(2),some:Be(3),every:Be(4),find:Be(5),findIndex:Be(6)},Ve=nt("navigator","userAgent")||"",Ge=r.process,Xe=Ge&&Ge.versions,Qe=Xe&&Xe.v8;Qe?Ze=(De=Qe.split("."))[0]+De[1]:Ve&&(!(De=Ve.match(/Edge\/(\d+)/))||De[1]>=74)&&(De=Ve.match(/Chrome\/(\d+)/))&&(Ze=De[1]);var tn=Ze&&+Ze,en=Wt("species"),nn=function(t){return tn>=51||!i((function(){var e=[];return(e.constructor={})[en]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},rn=Ye.map,an=nn("map"),on=$e("map");At({target:"Array",proto:!0,forced:!an||!on},{map:function(t){return rn(this,t,arguments.length>1?arguments[1]:void 0)}});var ln=function(t,e,n){var r=v(e);r in t?A.f(t,r,c(0,n)):t[r]=n},sn=nn("slice"),cn=$e("slice",{ACCESSORS:!0,0:0,1:2}),un=Wt("species"),pn=[].slice,dn=Math.max;At({target:"Array",proto:!0,forced:!sn||!cn},{slice:function(t,e){var n,r,i,a=g(this),o=lt(a.length),l=ut(t,o),s=ut(void 0===e?o:e,o);if(Ke(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!Ke(n.prototype)?m(n)&&null===(n=n[un])&&(n=void 0):n=void 0,n===Array||void 0===n))return pn.call(a,l,s);for(r=new(void 0===n?Array:n)(dn(s-l,0)),i=0;l<s;l++,i++)l in a&&ln(r,i,a[l]);return r.length=i,r}});var fn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return E(n),function(t){if(!m(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype")}(r),e?t.call(n,r):n.__proto__=r,n}}():void 0),hn=Wt("match"),gn=function(t){var e;return m(t)&&(void 0!==(e=t[hn])?!!e:"RegExp"==p(t))},mn=Wt("species"),vn=A.f,yn=gt.f,kn=X.set,bn=Wt("match"),wn=r.RegExp,xn=wn.prototype,Sn=/a/g,Tn=/a/g,En=new wn(Sn)!==Sn,_n=Ot.UNSUPPORTED_Y;if(a&&Et("RegExp",!En||_n||i((function(){return Tn[bn]=!1,wn(Sn)!=Sn||wn(Tn)==Tn||"/a/i"!=wn(Sn,"i")})))){for(var An=function(t,e){var n,r=this instanceof An,i=gn(t),a=void 0===e;if(!r&&i&&t.constructor===An&&a)return t;En?i&&!a&&(t=t.source):t instanceof An&&(a&&(e=zt.call(t)),t=t.source),_n&&(n=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var o,l,s,c,u,p=(o=En?new wn(t,e):wn(t,e),l=r?this:xn,s=An,fn&&"function"==typeof(c=l.constructor)&&c!==s&&m(u=c.prototype)&&u!==s.prototype&&fn(o,u),o);return _n&&n&&kn(p,{sticky:n}),p},zn=function(t){t in An||vn(An,t,{configurable:!0,get:function(){return wn[t]},set:function(e){wn[t]=e}})},Rn=yn(wn),On=0;Rn.length>On;)zn(Rn[On++]);xn.constructor=An,An.prototype=xn,Q(r,"RegExp",An)}!function(t){var e=nt(t),n=A.f;a&&e&&!e[mn]&&n(e,mn,{configurable:!0,get:function(){return this}})}("RegExp");var In,$n=function(t){if(gn(t))throw TypeError("The method doesn't accept regular expressions");return t},Cn=Wt("match"),Ln=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[Cn]=!1,"/./"[t](e)}catch(t){}}return!1},Pn=T.f,Mn="".endsWith,jn=Math.min,Nn=Ln("endsWith");At({target:"String",proto:!0,forced:!!(Nn||(In=Pn(String.prototype,"endsWith"),!In||In.writable))&&!Nn},{endsWith:function(t){var e=String(h(this));$n(t);var n=arguments.length>1?arguments[1]:void 0,r=lt(e.length),i=void 0===n?r:jn(lt(n),r),a=String(t);return Mn?Mn.call(e,a,i):e.slice(i-a.length,i)===a}});var qn=Wt("species"),Un=[].push,Dn=Math.min,Zn=4294967295,Wn=!i((function(){return!RegExp(Zn,"y")}));Vt("split",2,(function(t,e,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var r=String(h(this)),i=void 0===n?Zn:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!gn(t))return e.call(r,t,i);for(var a,o,l,s=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),u=0,p=new RegExp(t.source,c+"g");(a=jt.call(p,r))&&!((o=p.lastIndex)>u&&(s.push(r.slice(u,a.index)),a.length>1&&a.index<r.length&&Un.apply(s,a.slice(1)),l=a[0].length,u=o,s.length>=i));)p.lastIndex===a.index&&p.lastIndex++;return u===r.length?!l&&p.test("")||s.push(""):s.push(r.slice(u)),s.length>i?s.slice(0,i):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var i=h(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,i,n):r.call(String(i),e,n)},function(t,i){var a=n(r,t,this,i,r!==e);if(a.done)return a.value;var o=E(t),l=String(this),s=function(t,e){var n,r=E(t).constructor;return void 0===r||null==(n=E(r)[qn])?e:We(n)}(o,RegExp),c=o.unicode,u=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(Wn?"y":"g"),p=new s(Wn?o:"^(?:"+o.source+")",u),d=void 0===i?Zn:i>>>0;if(0===d)return[];if(0===l.length)return null===te(p,l)?[l]:[];for(var f=0,h=0,g=[];h<l.length;){p.lastIndex=Wn?h:0;var m,v=te(p,Wn?l:l.slice(h));if(null===v||(m=Dn(lt(p.lastIndex+(Wn?0:h)),l.length))===f)h=Qt(l,h,c);else{if(g.push(l.slice(f,h)),g.length===d)return g;for(var y=1;y<=v.length-1;y++)if(g.push(v[y]),g.length===d)return g;h=f=m}}return g.push(l.slice(f)),g}]}),!Wn);var Kn=T.f,Jn="".startsWith,Fn=Math.min,Hn=Ln("startsWith");At({target:"String",proto:!0,forced:!(!Hn&&!!function(){var t=Kn(String.prototype,"startsWith");return t&&!t.writable}())&&!Hn},{startsWith:function(t){var e=String(h(this));$n(t);var n=lt(Fn(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return Jn?Jn.call(e,r,n):e.slice(n,n+r.length)===r}});var Bn="\t\n\v\f\r \u2028\u2029\ufeff",Yn="["+Bn+"]",Vn=RegExp("^"+Yn+Yn+"*"),Gn=RegExp(Yn+Yn+"*$"),Xn=function(t){return function(e){var n=String(h(e));return 1&t&&(n=n.replace(Vn,"")),2&t&&(n=n.replace(Gn,"")),n}},Qn={start:Xn(1),end:Xn(2),trim:Xn(3)},tr=function(t){return i((function(){return!!Bn[t]()||"​…᠎"!="​…᠎"[t]()||Bn[t].name!==t}))},er=Qn.trim;At({target:"String",proto:!0,forced:tr("trim")},{trim:function(){return er(this)}});var nr=Qn.end,rr=tr("trimEnd"),ir=rr?function(){return nr(this)}:"".trimEnd;At({target:"String",proto:!0,forced:rr},{trimEnd:ir,trimRight:ir});var ar=e((function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}})),or=nn("splice"),lr=$e("splice",{ACCESSORS:!0,0:0,1:2}),sr=Math.max,cr=Math.min,ur=9007199254740991,pr="Maximum allowed length exceeded";At({target:"Array",proto:!0,forced:!or||!lr},{splice:function(t,e){var n,r,i,a,o,l,s=be(this),c=lt(s.length),u=ut(t,c),p=arguments.length;if(0===p?n=r=0:1===p?(n=0,r=c-u):(n=p-2,r=cr(sr(at(e),0),c-u)),c+n-r>ur)throw TypeError(pr);for(i=Fe(s,r),a=0;a<r;a++)(o=u+a)in s&&ln(i,a,s[o]);if(i.length=r,n<r){for(a=u;a<c-r;a++)l=a+n,(o=a+r)in s?s[l]=s[o]:delete s[l];for(a=c;a>c-r+n;a--)delete s[a-1]}else if(n>r)for(a=c-r;a>u;a--)l=a+n-1,(o=a+r-1)in s?s[l]=s[o]:delete s[l];for(a=0;a<n;a++)s[a+u]=arguments[a+2];return s.length=c-r+n,i}});var dr=/[&<>"']/,fr=/[&<>"']/g,hr=/[<>"']|&(?!#?\w+;)/,gr=/[<>"']|&(?!#?\w+;)/g,mr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},vr=function(t){return mr[t]};var yr=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function kr(t){return t.replace(yr,(function(t,e){return"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""}))}var br=/(^|[^\[])\^/g;var wr=/[^\w:]/g,xr=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var Sr={},Tr=/^[^:]+:\/*[^/]*$/,Er=/^([^:]+:)[\s\S]*$/,_r=/^([^:]+:\/*[^/]*)[\s\S]*$/;function Ar(t,e){Sr[" "+t]||(Tr.test(t)?Sr[" "+t]=t+"/":Sr[" "+t]=zr(t,"/",!0));var n=-1===(t=Sr[" "+t]).indexOf(":");return"//"===e.substring(0,2)?n?e:t.replace(Er,"$1")+e:"/"===e.charAt(0)?n?e:t.replace(_r,"$1")+e:t+e}function zr(t,e,n){var r=t.length;if(0===r)return"";for(var i=0;i<r;){var a=t.charAt(r-i-1);if(a!==e||n){if(a===e||!n)break;i++}else i++}return t.substr(0,r-i)}var Rr=function(t,e){if(e){if(dr.test(t))return t.replace(fr,vr)}else if(hr.test(t))return t.replace(gr,vr);return t},Or=kr,Ir=function(t,e){t=t.source||t,e=e||"";var n={replace:function(e,r){return r=(r=r.source||r).replace(br,"$1"),t=t.replace(e,r),n},getRegex:function(){return new RegExp(t,e)}};return n},$r=function(t,e,n){if(t){var r;try{r=decodeURIComponent(kr(n)).replace(wr,"").toLowerCase()}catch(t){return null}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return null}e&&!xr.test(n)&&(n=Ar(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(t){return null}return n},Cr={exec:function(){}},Lr=function(t){for(var e,n,r=1;r<arguments.length;r++)for(n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},Pr=function(t,e){var n=t.replace(/\|/g,(function(t,e,n){for(var r=!1,i=e;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,"|");return n},Mr=zr,jr=function(t,e){if(-1===t.indexOf(e[1]))return-1;for(var n=t.length,r=0,i=0;i<n;i++)if("\\"===t[i])i++;else if(t[i]===e[0])r++;else if(t[i]===e[1]&&--r<0)return i;return-1},Nr=function(t){t&&t.sanitize&&!t.silent&&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")},qr=ar.defaults,Ur=Mr,Dr=Pr,Zr=Rr,Wr=jr;function Kr(t,e,n){var r=e.href,i=e.title?Zr(e.title):null;return"!"!==t[0].charAt(0)?{type:"link",raw:n,href:r,title:i,text:t[1]}:{type:"image",raw:n,text:Zr(t[1]),href:r,title:i}}var Jr=function(){function t(e){fe(this,t),this.options=e||qr}return ge(t,[{key:"space",value:function(t){var e=this.rules.block.newline.exec(t);if(e)return e[0].length>1?{type:"space",raw:e[0]}:{raw:"\n"}}},{key:"code",value:function(t,e){var n=this.rules.block.code.exec(t);if(n){var r=e[e.length-1];if(r&&"paragraph"===r.type)return{raw:n[0],text:n[0].trimRight()};var i=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Ur(i,"\n")}}}},{key:"fences",value:function(t){var e=this.rules.block.fences.exec(t);if(e){var n=e[0],r=function(t,e){var n=t.match(/^(\s+)(?:```)/);if(null===n)return e;var r=n[1];return e.split("\n").map((function(t){var e=t.match(/^\s+/);return null===e?t:me(e,1)[0].length>=r.length?t.slice(r.length):t})).join("\n")}(n,e[3]||"");return{type:"code",raw:n,lang:e[2]?e[2].trim():e[2],text:r}}}},{key:"heading",value:function(t){var e=this.rules.block.heading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[1].length,text:e[2]}}},{key:"nptable",value:function(t){var e=this.rules.block.nptable.exec(t);if(e){var n={type:"table",header:Dr(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(n.header.length===n.align.length){var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=Dr(n.cells[r],n.header.length);return n}}}},{key:"hr",value:function(t){var e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}},{key:"blockquote",value:function(t){var e=this.rules.block.blockquote.exec(t);if(e){var n=e[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:e[0],text:n}}}},{key:"list",value:function(t){var e=this.rules.block.list.exec(t);if(e){for(var n,r,i,a,o,l,s,c=e[0],u=e[2],p=u.length>1,d={type:"list",raw:c,ordered:p,start:p?+u:"",loose:!1,items:[]},f=e[0].match(this.rules.block.item),h=!1,g=f.length,m=0;m<g;m++)c=n=f[m],r=n.length,~(n=n.replace(/^ *([*+-]|\d+\.) */,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),m!==g-1&&(i=this.rules.block.bullet.exec(f[m+1])[0],(u.length>1?1===i.length:i.length>1||this.options.smartLists&&i!==u)&&(a=f.slice(m+1).join("\n"),d.raw=d.raw.substring(0,d.raw.length-a.length),m=g-1)),o=h||/\n\n(?!\s*$)/.test(n),m!==g-1&&(h="\n"===n.charAt(n.length-1),o||(o=h)),o&&(d.loose=!0),s=void 0,(l=/^\[[ xX]\] /.test(n))&&(s=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,"")),d.items.push({type:"list_item",raw:c,task:l,checked:s,loose:o,text:n});return d}}},{key:"html",value:function(t){var e=this.rules.block.html.exec(t);if(e)return{type:this.options.sanitize?"paragraph":"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Zr(e[0]):e[0]}}},{key:"def",value:function(t){var e=this.rules.block.def.exec(t);if(e)return e[3]&&(e[3]=e[3].substring(1,e[3].length-1)),{tag:e[1].toLowerCase().replace(/\s+/g," "),raw:e[0],href:e[2],title:e[3]}}},{key:"table",value:function(t){var e=this.rules.block.table.exec(t);if(e){var n={type:"table",header:Dr(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=e[0];var r,i=n.align.length;for(r=0;r<i;r++)/^ *-+: *$/.test(n.align[r])?n.align[r]="right":/^ *:-+: *$/.test(n.align[r])?n.align[r]="center":/^ *:-+ *$/.test(n.align[r])?n.align[r]="left":n.align[r]=null;for(i=n.cells.length,r=0;r<i;r++)n.cells[r]=Dr(n.cells[r].replace(/^ *\| *| *\| *$/g,""),n.header.length);return n}}}},{key:"lheading",value:function(t){var e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1]}}},{key:"paragraph",value:function(t){var e=this.rules.block.paragraph.exec(t);if(e)return{type:"paragraph",raw:e[0],text:"\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1]}}},{key:"text",value:function(t,e){var n=this.rules.block.text.exec(t);if(n){var r=e[e.length-1];return r&&"text"===r.type?{raw:n[0],text:n[0]}:{type:"text",raw:n[0],text:n[0]}}}},{key:"escape",value:function(t){var e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:Zr(e[1])}}},{key:"tag",value:function(t,e,n){var r=this.rules.inline.tag.exec(t);if(r)return!e&&/^<a /i.test(r[0])?e=!0:e&&/^<\/a>/i.test(r[0])&&(e=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:e,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Zr(r[0]):r[0]}}},{key:"link",value:function(t){var e=this.rules.inline.link.exec(t);if(e){var n=Wr(e[2],"()");if(n>-1){var r=(0===e[0].indexOf("!")?5:4)+e[1].length+n;e[2]=e[2].substring(0,n),e[0]=e[0].substring(0,r).trim(),e[3]=""}var i=e[2],a="";if(this.options.pedantic){var o=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);o?(i=o[1],a=o[3]):a=""}else a=e[3]?e[3].slice(1,-1):"";return Kr(e,{href:(i=i.trim().replace(/^<([\s\S]*)>$/,"$1"))?i.replace(this.rules.inline._escapes,"$1"):i,title:a?a.replace(this.rules.inline._escapes,"$1"):a},e[0])}}},{key:"reflink",value:function(t,e){var n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=e[r.toLowerCase()])||!r.href){var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return Kr(n,r,n[0])}}},{key:"strong",value:function(t){var e=this.rules.inline.strong.exec(t);if(e)return{type:"strong",raw:e[0],text:e[4]||e[3]||e[2]||e[1]}}},{key:"em",value:function(t){var e=this.rules.inline.em.exec(t);if(e)return{type:"em",raw:e[0],text:e[6]||e[5]||e[4]||e[3]||e[2]||e[1]}}},{key:"codespan",value:function(t){var e=this.rules.inline.code.exec(t);if(e){var n=e[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=n.startsWith(" ")&&n.endsWith(" ");return r&&i&&(n=n.substring(1,n.length-1)),n=Zr(n,!0),{type:"codespan",raw:e[0],text:n}}}},{key:"br",value:function(t){var e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}},{key:"del",value:function(t){var e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[1]}}},{key:"autolink",value:function(t,e){var n,r,i=this.rules.inline.autolink.exec(t);if(i)return r="@"===i[2]?"mailto:"+(n=Zr(this.options.mangle?e(i[1]):i[1])):n=Zr(i[1]),{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},{key:"url",value:function(t,e){var n;if(n=this.rules.inline.url.exec(t)){var r,i;if("@"===n[2])i="mailto:"+(r=Zr(this.options.mangle?e(n[0]):n[0]));else{var a;do{a=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(a!==n[0]);r=Zr(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}},{key:"inlineText",value:function(t,e,n){var r,i=this.rules.inline.text.exec(t);if(i)return r=e?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Zr(i[0]):i[0]:Zr(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}]),t}(),Fr=Cr,Hr=Ir,Br=Lr,Yr={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Fr,table:Fr,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Yr.def=Hr(Yr.def).replace("label",Yr._label).replace("title",Yr._title).getRegex(),Yr.bullet=/(?:[*+-]|\d{1,9}\.)/,Yr.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,Yr.item=Hr(Yr.item,"gm").replace(/bull/g,Yr.bullet).getRegex(),Yr.list=Hr(Yr.list).replace(/bull/g,Yr.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Yr.def.source+")").getRegex(),Yr._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",Yr._comment=/<!--(?!-?>)[\s\S]*?-->/,Yr.html=Hr(Yr.html,"i").replace("comment",Yr._comment).replace("tag",Yr._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Yr.paragraph=Hr(Yr._paragraph).replace("hr",Yr.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Yr._tag).getRegex(),Yr.blockquote=Hr(Yr.blockquote).replace("paragraph",Yr.paragraph).getRegex(),Yr.normal=Br({},Yr),Yr.gfm=Br({},Yr.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Yr.gfm.nptable=Hr(Yr.gfm.nptable).replace("hr",Yr.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Yr._tag).getRegex(),Yr.gfm.table=Hr(Yr.gfm.table).replace("hr",Yr.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[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",Yr._tag).getRegex(),Yr.pedantic=Br({},Yr.normal,{html:Hr("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Yr._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(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Fr,paragraph:Hr(Yr.normal._paragraph).replace("hr",Yr.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Yr.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var Vr={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Fr,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\s,punctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\s,punctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Fr,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};Vr.em=Hr(Vr.em).replace(/punctuation/g,Vr._punctuation).getRegex(),Vr._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Vr._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Vr._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])?)+(?![-_])/,Vr.autolink=Hr(Vr.autolink).replace("scheme",Vr._scheme).replace("email",Vr._email).getRegex(),Vr._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Vr.tag=Hr(Vr.tag).replace("comment",Yr._comment).replace("attribute",Vr._attribute).getRegex(),Vr._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Vr._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,Vr._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Vr.link=Hr(Vr.link).replace("label",Vr._label).replace("href",Vr._href).replace("title",Vr._title).getRegex(),Vr.reflink=Hr(Vr.reflink).replace("label",Vr._label).getRegex(),Vr.normal=Br({},Vr),Vr.pedantic=Br({},Vr.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:Hr(/^!?\[(label)\]\((.*?)\)/).replace("label",Vr._label).getRegex(),reflink:Hr(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Vr._label).getRegex()}),Vr.gfm=Br({},Vr.normal,{escape:Hr(Vr.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),Vr.gfm.url=Hr(Vr.gfm.url,"i").replace("email",Vr.gfm._extended_email).getRegex(),Vr.breaks=Br({},Vr.gfm,{br:Hr(Vr.br).replace("{2,}","*").getRegex(),text:Hr(Vr.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var Gr={block:Yr,inline:Vr},Xr=ar.defaults,Qr=Gr.block,ti=Gr.inline;function ei(t){return t.replace(/---/g,"").replace(/--/g,"").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"").replace(/\.{3}/g,"")}function ni(t){var e,n,r="",i=t.length;for(e=0;e<i;e++)n=t.charCodeAt(e),Math.random()>.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var ri=function(){function t(e){fe(this,t),this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Xr,this.options.tokenizer=this.options.tokenizer||new Jr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var n={block:Qr.normal,inline:ti.normal};this.options.pedantic?(n.block=Qr.pedantic,n.inline=ti.pedantic):this.options.gfm&&(n.block=Qr.gfm,this.options.breaks?n.inline=ti.breaks:n.inline=ti.gfm),this.tokenizer.rules=n}return ge(t,[{key:"lex",value:function(t){return t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(t,this.tokens,!0),this.inline(this.tokens),this.tokens}},{key:"blockTokens",value:function(t){var e,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];for(t=t.replace(/^ +$/gm,"");t;)if(e=this.tokenizer.space(t))t=t.substring(e.raw.length),e.type&&a.push(e);else if(e=this.tokenizer.code(t,a))t=t.substring(e.raw.length),e.type?a.push(e):((i=a[a.length-1]).raw+="\n"+e.raw,i.text+="\n"+e.text);else if(e=this.tokenizer.fences(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.heading(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.nptable(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.hr(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.blockquote(t))t=t.substring(e.raw.length),e.tokens=this.blockTokens(e.text,[],o),a.push(e);else if(e=this.tokenizer.list(t)){for(t=t.substring(e.raw.length),r=e.items.length,n=0;n<r;n++)e.items[n].tokens=this.blockTokens(e.items[n].text,[],!1);a.push(e)}else if(e=this.tokenizer.html(t))t=t.substring(e.raw.length),a.push(e);else if(o&&(e=this.tokenizer.def(t)))t=t.substring(e.raw.length),this.tokens.links[e.tag]||(this.tokens.links[e.tag]={href:e.href,title:e.title});else if(e=this.tokenizer.table(t))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.lheading(t))t=t.substring(e.raw.length),a.push(e);else if(o&&(e=this.tokenizer.paragraph(t)))t=t.substring(e.raw.length),a.push(e);else if(e=this.tokenizer.text(t,a))t=t.substring(e.raw.length),e.type?a.push(e):((i=a[a.length-1]).raw+="\n"+e.raw,i.text+="\n"+e.text);else if(t){var l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return a}},{key:"inline",value:function(t){var e,n,r,i,a,o,l=t.length;for(e=0;e<l;e++)switch((o=t[e]).type){case"paragraph":case"text":case"heading":o.tokens=[],this.inlineTokens(o.text,o.tokens);break;case"table":for(o.tokens={header:[],cells:[]},i=o.header.length,n=0;n<i;n++)o.tokens.header[n]=[],this.inlineTokens(o.header[n],o.tokens.header[n]);for(i=o.cells.length,n=0;n<i;n++)for(a=o.cells[n],o.tokens.cells[n]=[],r=0;r<a.length;r++)o.tokens.cells[n][r]=[],this.inlineTokens(a[r],o.tokens.cells[n][r]);break;case"blockquote":this.inline(o.tokens);break;case"list":for(i=o.items.length,n=0;n<i;n++)this.inline(o.items[n].tokens)}return t}},{key:"inlineTokens",value:function(t){for(var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t;)if(e=this.tokenizer.escape(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.tag(t,r,i))t=t.substring(e.raw.length),r=e.inLink,i=e.inRawBlock,n.push(e);else if(e=this.tokenizer.link(t))t=t.substring(e.raw.length),"link"===e.type&&(e.tokens=this.inlineTokens(e.text,[],!0,i)),n.push(e);else if(e=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(e.raw.length),"link"===e.type&&(e.tokens=this.inlineTokens(e.text,[],!0,i)),n.push(e);else if(e=this.tokenizer.strong(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.em(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.codespan(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.br(t))t=t.substring(e.raw.length),n.push(e);else if(e=this.tokenizer.del(t))t=t.substring(e.raw.length),e.tokens=this.inlineTokens(e.text,[],r,i),n.push(e);else if(e=this.tokenizer.autolink(t,ni))t=t.substring(e.raw.length),n.push(e);else if(r||!(e=this.tokenizer.url(t,ni))){if(e=this.tokenizer.inlineText(t,i,ei))t=t.substring(e.raw.length),n.push(e);else if(t){var a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}else t=t.substring(e.raw.length),n.push(e);return n}}],[{key:"lex",value:function(e,n){return new t(n).lex(e)}},{key:"rules",get:function(){return{block:Qr,inline:ti}}}]),t}(),ii=ar.defaults,ai=$r,oi=Rr,li=function(){function t(e){fe(this,t),this.options=e||ii}return ge(t,[{key:"code",value:function(t,e,n){var r=(e||"").match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(t,r);null!=i&&i!==t&&(n=!0,t=i)}return r?'<pre><code class="'+this.options.langPrefix+oi(r,!0)+'">'+(n?t:oi(t,!0))+"</code></pre>\n":"<pre><code>"+(n?t:oi(t,!0))+"</code></pre>\n"}},{key:"blockquote",value:function(t){return"<blockquote>\n"+t+"</blockquote>\n"}},{key:"html",value:function(t){return t}},{key:"heading",value:function(t,e,n,r){return this.options.headerIds?"<h"+e+' id="'+this.options.headerPrefix+r.slug(n)+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"}},{key:"hr",value:function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}},{key:"list",value:function(t,e,n){var r=e?"ol":"ul";return"<"+r+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"</"+r+">\n"}},{key:"listitem",value:function(t){return"<li>"+t+"</li>\n"}},{key:"checkbox",value:function(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}},{key:"paragraph",value:function(t){return"<p>"+t+"</p>\n"}},{key:"table",value:function(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"}},{key:"tablerow",value:function(t){return"<tr>\n"+t+"</tr>\n"}},{key:"tablecell",value:function(t,e){var n=e.header?"th":"td";return(e.align?"<"+n+' align="'+e.align+'">':"<"+n+">")+t+"</"+n+">\n"}},{key:"strong",value:function(t){return"<strong>"+t+"</strong>"}},{key:"em",value:function(t){return"<em>"+t+"</em>"}},{key:"codespan",value:function(t){return"<code>"+t+"</code>"}},{key:"br",value:function(){return this.options.xhtml?"<br/>":"<br>"}},{key:"del",value:function(t){return"<del>"+t+"</del>"}},{key:"link",value:function(t,e,n){if(null===(t=ai(this.options.sanitize,this.options.baseUrl,t)))return n;var r='<a href="'+oi(t)+'"';return e&&(r+=' title="'+e+'"'),r+=">"+n+"</a>"}},{key:"image",value:function(t,e,n){if(null===(t=ai(this.options.sanitize,this.options.baseUrl,t)))return n;var r='<img src="'+t+'" alt="'+n+'"';return e&&(r+=' title="'+e+'"'),r+=this.options.xhtml?"/>":">"}},{key:"text",value:function(t){return t}}]),t}(),si=function(){function t(){fe(this,t)}return ge(t,[{key:"strong",value:function(t){return t}},{key:"em",value:function(t){return t}},{key:"codespan",value:function(t){return t}},{key:"del",value:function(t){return t}},{key:"html",value:function(t){return t}},{key:"text",value:function(t){return t}},{key:"link",value:function(t,e,n){return""+n}},{key:"image",value:function(t,e,n){return""+n}},{key:"br",value:function(){return""}}]),t}(),ci=function(){function t(){fe(this,t),this.seen={}}return ge(t,[{key:"slug",value:function(t){var e=t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(e)){var n=e;do{this.seen[n]++,e=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(e))}return this.seen[e]=0,e}}]),t}(),ui=ar.defaults,pi=Or,di=function(){function t(e){fe(this,t),this.options=e||ui,this.options.renderer=this.options.renderer||new li,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new si,this.slugger=new ci}return ge(t,[{key:"parse",value:function(t){var e,n,r,i,a,o,l,s,c,u,p,d,f,h,g,m,v,y,k=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],b="",w=t.length;for(e=0;e<w;e++)switch((u=t[e]).type){case"space":continue;case"hr":b+=this.renderer.hr();continue;case"heading":b+=this.renderer.heading(this.parseInline(u.tokens),u.depth,pi(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":b+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(s="",l="",i=u.header.length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(u.tokens.header[n]),{header:!0,align:u.align[n]});for(s+=this.renderer.tablerow(l),c="",i=u.cells.length,n=0;n<i;n++){for(l="",a=(o=u.tokens.cells[n]).length,r=0;r<a;r++)l+=this.renderer.tablecell(this.parseInline(o[r]),{header:!1,align:u.align[r]});c+=this.renderer.tablerow(l)}b+=this.renderer.table(s,c);continue;case"blockquote":c=this.parse(u.tokens),b+=this.renderer.blockquote(c);continue;case"list":for(p=u.ordered,d=u.start,f=u.loose,i=u.items.length,c="",n=0;n<i;n++)m=(g=u.items[n]).checked,v=g.task,h="",g.task&&(y=this.renderer.checkbox(m),f?g.tokens.length>0&&"text"===g.tokens[0].type?(g.tokens[0].text=y+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=y+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:y}):h+=y),h+=this.parse(g.tokens,f),c+=this.renderer.listitem(h,v,m);b+=this.renderer.list(c,p,d);continue;case"html":b+=this.renderer.html(u.text);continue;case"paragraph":b+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(c=u.tokens?this.parseInline(u.tokens):u.text;e+1<w&&"text"===t[e+1].type;)c+="\n"+((u=t[++e]).tokens?this.parseInline(u.tokens):u.text);b+=k?this.renderer.paragraph(c):c;continue;default:var x='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(x);throw new Error(x)}return b}},{key:"parseInline",value:function(t,e){e=e||this.renderer;var n,r,i="",a=t.length;for(n=0;n<a;n++)switch((r=t[n]).type){case"escape":i+=e.text(r.text);break;case"html":i+=e.html(r.text);break;case"link":i+=e.link(r.href,r.title,this.parseInline(r.tokens,e));break;case"image":i+=e.image(r.href,r.title,r.text);break;case"strong":i+=e.strong(this.parseInline(r.tokens,e));break;case"em":i+=e.em(this.parseInline(r.tokens,e));break;case"codespan":i+=e.codespan(r.text);break;case"br":i+=e.br();break;case"del":i+=e.del(this.parseInline(r.tokens,e));break;case"text":i+=e.text(r.text);break;default:var o='Token with "'+r.type+'" type was not found.';if(this.options.silent)return void console.error(o);throw new Error(o)}return i}}],[{key:"parse",value:function(e,n){return new t(n).parse(e)}}]),t}(),fi=Lr,hi=Nr,gi=Rr,mi=ar.getDefaults,vi=ar.changeDefaults,yi=ar.defaults;function ki(t,e,n){if(null==t)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof t)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected");if("function"==typeof e&&(n=e,e=null),e=fi({},ki.defaults,e||{}),hi(e),n){var r,i=e.highlight;try{r=ri.lex(t,e)}catch(t){return n(t)}var a=function(t){var a;if(!t)try{a=di.parse(r,e)}catch(e){t=e}return e.highlight=i,t?n(t):n(null,a)};if(!i||i.length<3)return a();if(delete e.highlight,!r.length)return a();var o=0;return ki.walkTokens(r,(function(t){"code"===t.type&&(o++,i(t.text,t.lang,(function(e,n){if(e)return a(e);null!=n&&n!==t.text&&(t.text=n,t.escaped=!0),0===--o&&a()})))})),void(0===o&&a())}try{var l=ri.lex(t,e);return e.walkTokens&&ki.walkTokens(l,e.walkTokens),di.parse(l,e)}catch(t){if(t.message+="\nPlease report this to https://github.com/markedjs/marked.",e.silent)return"<p>An error occurred:</p><pre>"+gi(t.message+"",!0)+"</pre>";throw t}}ki.options=ki.setOptions=function(t){return fi(ki.defaults,t),vi(ki.defaults),ki},ki.getDefaults=mi,ki.defaults=yi,ki.use=function(t){var e=fi({},t);if(t.renderer&&function(){var n=ki.defaults.renderer||new li,r=function(e){var r=n[e];n[e]=function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];var l=t.renderer[e].apply(n,a);return!1===l&&(l=r.apply(n,a)),l}};for(var i in t.renderer)r(i);e.renderer=n}(),t.tokenizer&&function(){var n=ki.defaults.tokenizer||new Jr,r=function(e){var r=n[e];n[e]=function(){for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];var l=t.tokenizer[e].apply(n,a);return!1===l&&(l=r.apply(n,a)),l}};for(var i in t.tokenizer)r(i);e.tokenizer=n}(),t.walkTokens){var n=ki.defaults.walkTokens;e.walkTokens=function(e){t.walkTokens(e),n&&n(e)}}ki.setOptions(e)},ki.walkTokens=function(t,e){var n,r=ke(t);try{for(r.s();!(n=r.n()).done;){var i=n.value;switch(e(i),i.type){case"table":var a,o=ke(i.tokens.header);try{for(o.s();!(a=o.n()).done;){var l=a.value;ki.walkTokens(l,e)}}catch(t){o.e(t)}finally{o.f()}var s,c=ke(i.tokens.cells);try{for(c.s();!(s=c.n()).done;){var u,p=ke(s.value);try{for(p.s();!(u=p.n()).done;){var d=u.value;ki.walkTokens(d,e)}}catch(t){p.e(t)}finally{p.f()}}}catch(t){c.e(t)}finally{c.f()}break;case"list":ki.walkTokens(i.items,e);break;default:i.tokens&&ki.walkTokens(i.tokens,e)}}}catch(t){r.e(t)}finally{r.f()}},ki.Parser=di,ki.parser=di.parse,ki.Renderer=li,ki.TextRenderer=si,ki.Lexer=ri,ki.lexer=ri.lex,ki.Tokenizer=Jr,ki.Slugger=ci,ki.parse=ki;var bi=ki;return function(){var t,e=null;function n(){var n;!e||e.closed?((e=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).marked=bi,e.document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),e?(n=setInterval((function(){e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(i){var a,o,l,s,c=JSON.parse(i.data);c&&"reveal-notes"===c.namespace&&"connected"===c.type&&(clearInterval(n),t.on("slidechanged",r),t.on("fragmentshown",r),t.on("fragmenthidden",r),t.on("overviewhidden",r),t.on("overviewshown",r),t.on("paused",r),t.on("resumed",r),r()),c&&"reveal-notes"===c.namespace&&"call"===c.type&&(a=c.methodName,o=c.arguments,l=c.callId,s=t[a].apply(t,o),e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:s,callId:l}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):e.focus();function r(n){var r=t.getCurrentSlide(),i=r.querySelector("aside.notes"),a=r.querySelector(".current-fragment"),o={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(r.hasAttribute("data-notes")&&(o.notes=r.getAttribute("data-notes"),o.whitespace="pre-wrap"),a){var l=a.querySelector("aside.notes");l?i=l:a.hasAttribute("data-notes")&&(o.notes=a.getAttribute("data-notes"),o.whitespace="pre-wrap",i=null)}i&&(o.notes=i.innerHTML,o.markdown="string"==typeof i.getAttribute("data-markdown")),e.postMessage(JSON.stringify(o),"*")}}return{id:"notes",init:function(e){t=e,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}}));
import speakerViewHTML from './speaker-view.html';
import marked from 'marked';
/**
* Handles opening of and synchronization with the reveal.js
* notes window.
*
* Handshake process:
* 1. This window posts 'connect' to notes window
* - Includes URL of presentation to show
* 2. Notes window responds with 'connected' when it is available
* 3. This window proceeds to send the current presentation state
* to the notes window
*/
const Plugin = () => {
let popup = null;
let deck;
function openNotes() {
if (popup && !popup.closed) {
popup.focus();
return;
}
popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
popup.marked = marked;
popup.document.write( speakerViewHTML );
if( !popup ) {
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
return;
}
/**
* Connect to the notes window through a postmessage handshake.
* Using postmessage enables us to work in situations where the
* origins differ, such as a presentation being opened from the
* file system.
*/
function connect() {
// Keep trying to connect until we get a 'connected' message back
let connectInterval = setInterval( function() {
popup.postMessage( JSON.stringify( {
namespace: 'reveal-notes',
type: 'connect',
url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search,
state: deck.getState()
} ), '*' );
}, 500 );
window.addEventListener( 'message', function( event ) {
let data = JSON.parse( event.data );
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
clearInterval( connectInterval );
onConnected();
}
if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) {
callRevealApi( data.methodName, data.arguments, data.callId );
}
} );
}
/**
* Calls the specified Reveal.js method with the provided argument
* and then pushes the result to the notes frame.
*/
function callRevealApi( methodName, methodArguments, callId ) {
let result = deck[methodName].apply( deck, methodArguments );
popup.postMessage( JSON.stringify( {
namespace: 'reveal-notes',
type: 'return',
result: result,
callId: callId
} ), '*' );
}
/**
* Posts the current slide data to the notes window
*/
function post( event ) {
let slideElement = deck.getCurrentSlide(),
notesElement = slideElement.querySelector( 'aside.notes' ),
fragmentElement = slideElement.querySelector( '.current-fragment' );
let messageData = {
namespace: 'reveal-notes',
type: 'state',
notes: '',
markdown: false,
whitespace: 'normal',
state: deck.getState()
};
// Look for notes defined in a slide attribute
if( slideElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = slideElement.getAttribute( 'data-notes' );
messageData.whitespace = 'pre-wrap';
}
// Look for notes defined in a fragment
if( fragmentElement ) {
let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
if( fragmentNotes ) {
notesElement = fragmentNotes;
}
else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = fragmentElement.getAttribute( 'data-notes' );
messageData.whitespace = 'pre-wrap';
// In case there are slide notes
notesElement = null;
}
}
// Look for notes defined in an aside element
if( notesElement ) {
messageData.notes = notesElement.innerHTML;
messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
}
popup.postMessage( JSON.stringify( messageData ), '*' );
}
/**
* Called once we have established a connection to the notes
* window.
*/
function onConnected() {
// Monitor events that trigger a change in state
deck.on( 'slidechanged', post );
deck.on( 'fragmentshown', post );
deck.on( 'fragmenthidden', post );
deck.on( 'overviewhidden', post );
deck.on( 'overviewshown', post );
deck.on( 'paused', post );
deck.on( 'resumed', post );
// Post the initial state
post();
}
connect();
}
return {
id: 'notes',
init: function( reveal ) {
deck = reveal;
if( !/receiver/i.test( window.location.search ) ) {
// If the there's a 'notes' query set, open directly
if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
openNotes();
}
// Open the notes when the 's' key is hit
deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
openNotes();
} );
}
},
open: openNotes
};
};
export default Plugin;
<html lang="en">
<head>
<meta charset="utf-8">
<title>reveal.js - Speaker View</title>
<style>
body {
font-family: Helvetica;
font-size: 18px;
}
#current-slide,
#upcoming-slide,
#speaker-controls {
padding: 6px;
box-sizing: border-box;
-moz-box-sizing: border-box;
}
#current-slide iframe,
#upcoming-slide iframe {
width: 100%;
height: 100%;
border: 1px solid #ddd;
}
#current-slide .label,
#upcoming-slide .label {
position: absolute;
top: 10px;
left: 10px;
z-index: 2;
}
#connection-status {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 20;
padding: 30% 20% 20% 20%;
font-size: 18px;
color: #222;
background: #fff;
text-align: center;
box-sizing: border-box;
line-height: 1.4;
}
.overlay-element {
height: 34px;
line-height: 34px;
padding: 0 10px;
text-shadow: none;
background: rgba( 220, 220, 220, 0.8 );
color: #222;
font-size: 14px;
}
.overlay-element.interactive:hover {
background: rgba( 220, 220, 220, 1 );
}
#current-slide {
position: absolute;
width: 60%;
height: 100%;
top: 0;
left: 0;
padding-right: 0;
}
#upcoming-slide {
position: absolute;
width: 40%;
height: 40%;
right: 0;
top: 0;
}
/* Speaker controls */
#speaker-controls {
position: absolute;
top: 40%;
right: 0;
width: 40%;
height: 60%;
overflow: auto;
font-size: 18px;
}
.speaker-controls-time.hidden,
.speaker-controls-notes.hidden {
display: none;
}
.speaker-controls-time .label,
.speaker-controls-pace .label,
.speaker-controls-notes .label {
text-transform: uppercase;
font-weight: normal;
font-size: 0.66em;
color: #666;
margin: 0;
}
.speaker-controls-time, .speaker-controls-pace {
border-bottom: 1px solid rgba( 200, 200, 200, 0.5 );
margin-bottom: 10px;
padding: 10px 16px;
padding-bottom: 20px;
cursor: pointer;
}
.speaker-controls-time .reset-button {
opacity: 0;
float: right;
color: #666;
text-decoration: none;
}
.speaker-controls-time:hover .reset-button {
opacity: 1;
}
.speaker-controls-time .timer,
.speaker-controls-time .clock {
width: 50%;
}
.speaker-controls-time .timer,
.speaker-controls-time .clock,
.speaker-controls-time .pacing .hours-value,
.speaker-controls-time .pacing .minutes-value,
.speaker-controls-time .pacing .seconds-value {
font-size: 1.9em;
}
.speaker-controls-time .timer {
float: left;
}
.speaker-controls-time .clock {
float: right;
text-align: right;
}
.speaker-controls-time span.mute {
opacity: 0.3;
}
.speaker-controls-time .pacing-title {
margin-top: 5px;
}
.speaker-controls-time .pacing.ahead {
color: blue;
}
.speaker-controls-time .pacing.on-track {
color: green;
}
.speaker-controls-time .pacing.behind {
color: red;
}
.speaker-controls-notes {
padding: 10px 16px;
}
.speaker-controls-notes .value {
margin-top: 5px;
line-height: 1.4;
font-size: 1.2em;
}
/* Layout selector */
#speaker-layout {
position: absolute;
top: 10px;
right: 10px;
color: #222;
z-index: 10;
}
#speaker-layout select {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border: 0;
box-shadow: 0;
cursor: pointer;
opacity: 0;
font-size: 1em;
background-color: transparent;
-moz-appearance: none;
-webkit-appearance: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
#speaker-layout select:focus {
outline: none;
box-shadow: none;
}
.clear {
clear: both;
}
/* Speaker layout: Wide */
body[data-speaker-layout="wide"] #current-slide,
body[data-speaker-layout="wide"] #upcoming-slide {
width: 50%;
height: 45%;
padding: 6px;
}
body[data-speaker-layout="wide"] #current-slide {
top: 0;
left: 0;
}
body[data-speaker-layout="wide"] #upcoming-slide {
top: 0;
left: 50%;
}
body[data-speaker-layout="wide"] #speaker-controls {
top: 45%;
left: 0;
width: 100%;
height: 50%;
font-size: 1.25em;
}
/* Speaker layout: Tall */
body[data-speaker-layout="tall"] #current-slide,
body[data-speaker-layout="tall"] #upcoming-slide {
width: 45%;
height: 50%;
padding: 6px;
}
body[data-speaker-layout="tall"] #current-slide {
top: 0;
left: 0;
}
body[data-speaker-layout="tall"] #upcoming-slide {
top: 50%;
left: 0;
}
body[data-speaker-layout="tall"] #speaker-controls {
padding-top: 40px;
top: 0;
left: 45%;
width: 55%;
height: 100%;
font-size: 1.25em;
}
/* Speaker layout: Notes only */
body[data-speaker-layout="notes-only"] #current-slide,
body[data-speaker-layout="notes-only"] #upcoming-slide {
display: none;
}
body[data-speaker-layout="notes-only"] #speaker-controls {
padding-top: 40px;
top: 0;
left: 0;
width: 100%;
height: 100%;
font-size: 1.25em;
}
@media screen and (max-width: 1080px) {
body[data-speaker-layout="default"] #speaker-controls {
font-size: 16px;
}
}
@media screen and (max-width: 900px) {
body[data-speaker-layout="default"] #speaker-controls {
font-size: 14px;
}
}
@media screen and (max-width: 800px) {
body[data-speaker-layout="default"] #speaker-controls {
font-size: 12px;
}
}
</style>
</head>
<body>
<div id="connection-status">Loading speaker view...</div>
<div id="current-slide"></div>
<div id="upcoming-slide"><span class="overlay-element label">Upcoming</span></div>
<div id="speaker-controls">
<div class="speaker-controls-time">
<h4 class="label">Time <span class="reset-button">Click to Reset</span></h4>
<div class="clock">
<span class="clock-value">0:00 AM</span>
</div>
<div class="timer">
<span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
</div>
<div class="clear"></div>
<h4 class="label pacing-title" style="display: none">Pacing – Time to finish current slide</h4>
<div class="pacing" style="display: none">
<span class="hours-value">00</span><span class="minutes-value">:00</span><span class="seconds-value">:00</span>
</div>
</div>
<div class="speaker-controls-notes hidden">
<h4 class="label">Notes</h4>
<div class="value"></div>
</div>
</div>
<div id="speaker-layout" class="overlay-element interactive">
<span class="speaker-layout-label"></span>
<select class="speaker-layout-dropdown"></select>
</div>
<script>
(function() {
var notes,
notesValue,
currentState,
currentSlide,
upcomingSlide,
layoutLabel,
layoutDropdown,
pendingCalls = {},
lastRevealApiCallId = 0,
connected = false;
var SPEAKER_LAYOUTS = {
'default': 'Default',
'wide': 'Wide',
'tall': 'Tall',
'notes-only': 'Notes only'
};
setupLayout();
var connectionStatus = document.querySelector( '#connection-status' );
var connectionTimeout = setTimeout( function() {
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
}, 5000 );
window.addEventListener( 'message', function( event ) {
clearTimeout( connectionTimeout );
connectionStatus.style.display = 'none';
var data = JSON.parse( event.data );
// The overview mode is only useful to the reveal.js instance
// where navigation occurs so we don't sync it
if( data.state ) delete data.state.overview;
// Messages sent by the notes plugin inside of the main window
if( data && data.namespace === 'reveal-notes' ) {
if( data.type === 'connect' ) {
handleConnectMessage( data );
}
else if( data.type === 'state' ) {
handleStateMessage( data );
}
else if( data.type === 'return' ) {
pendingCalls[data.callId](data.result);
delete pendingCalls[data.callId];
}
}
// Messages sent by the reveal.js inside of the current slide preview
else if( data && data.namespace === 'reveal' ) {
if( /ready/.test( data.eventName ) ) {
// Send a message back to notify that the handshake is complete
window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );
}
else if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );
}
}
} );
/**
* Asynchronously calls the Reveal.js API of the main frame.
*/
function callRevealApi( methodName, methodArguments, callback ) {
var callId = ++lastRevealApiCallId;
pendingCalls[callId] = callback;
window.opener.postMessage( JSON.stringify( {
namespace: 'reveal-notes',
type: 'call',
callId: callId,
methodName: methodName,
arguments: methodArguments
} ), '*' );
}
/**
* Called when the main window is trying to establish a
* connection.
*/
function handleConnectMessage( data ) {
if( connected === false ) {
connected = true;
setupIframes( data );
setupKeyboard();
setupNotes();
setupTimer();
}
}
/**
* Called when the main window sends an updated state.
*/
function handleStateMessage( data ) {
// Store the most recently set state to avoid circular loops
// applying the same state
currentState = JSON.stringify( data.state );
// No need for updating the notes in case of fragment changes
if ( data.notes ) {
notes.classList.remove( 'hidden' );
notesValue.style.whiteSpace = data.whitespace;
if( data.markdown ) {
notesValue.innerHTML = marked( data.notes );
}
else {
notesValue.innerHTML = data.notes;
}
}
else {
notes.classList.add( 'hidden' );
}
// Update the note slides
currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );
upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );
upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );
}
// Limit to max one state update per X ms
handleStateMessage = debounce( handleStateMessage, 200 );
/**
* Forward keyboard events to the current slide window.
* This enables keyboard events to work even if focus
* isn't set on the current slide iframe.
*
* Block F5 default handling, it reloads and disconnects
* the speaker notes window.
*/
function setupKeyboard() {
document.addEventListener( 'keydown', function( event ) {
if( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {
event.preventDefault();
return false;
}
currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );
} );
}
/**
* Creates the preview iframes.
*/
function setupIframes( data ) {
var params = [
'receiver',
'progress=false',
'history=false',
'transition=none',
'autoSlide=0',
'backgroundTransition=none'
].join( '&' );
var urlSeparator = /\?/.test(data.url) ? '&' : '?';
var hash = '#/' + data.state.indexh + '/' + data.state.indexv;
var currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;
var upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;
currentSlide = document.createElement( 'iframe' );
currentSlide.setAttribute( 'width', 1280 );
currentSlide.setAttribute( 'height', 1024 );
currentSlide.setAttribute( 'src', currentURL );
document.querySelector( '#current-slide' ).appendChild( currentSlide );
upcomingSlide = document.createElement( 'iframe' );
upcomingSlide.setAttribute( 'width', 640 );
upcomingSlide.setAttribute( 'height', 512 );
upcomingSlide.setAttribute( 'src', upcomingURL );
document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );
}
/**
* Setup the notes UI.
*/
function setupNotes() {
notes = document.querySelector( '.speaker-controls-notes' );
notesValue = document.querySelector( '.speaker-controls-notes .value' );
}
function getTimings( callback ) {
callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {
callRevealApi( 'getConfig', [], function ( config ) {
var totalTime = config.totalTime;
var minTimePerSlide = config.minimumTimePerSlide || 0;
var defaultTiming = config.defaultTiming;
if ((defaultTiming == null) && (totalTime == null)) {
callback(null);
return;
}
// Setting totalTime overrides defaultTiming
if (totalTime) {
defaultTiming = 0;
}
var timings = [];
for ( var i in slideAttributes ) {
var slide = slideAttributes[ i ];
var timing = defaultTiming;
if( slide.hasOwnProperty( 'data-timing' )) {
var t = slide[ 'data-timing' ];
timing = parseInt(t);
if( isNaN(timing) ) {
console.warn("Could not parse timing '" + t + "' of slide " + i + "; using default of " + defaultTiming);
timing = defaultTiming;
}
}
timings.push(timing);
}
if ( totalTime ) {
// After we've allocated time to individual slides, we summarize it and
// subtract it from the total time
var remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );
// The remaining time is divided by the number of slides that have 0 seconds
// allocated at the moment, giving the average time-per-slide on the remaining slides
var remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length
var timePerSlide = Math.round( remainingTime / remainingSlides, 0 )
// And now we replace every zero-value timing with that average
timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );
}
var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length
if ( slidesUnderMinimum ) {
message = "The pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).";
alert(message);
}
callback( timings );
} );
} );
}
/**
* Return the number of seconds allocated for presenting
* all slides up to and including this one.
*/
function getTimeAllocated( timings, callback ) {
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
var allocated = 0;
for (var i in timings.slice(0, currentSlide + 1)) {
allocated += timings[i];
}
callback( allocated );
} );
}
/**
* Create the timer and clock and start updating them
* at an interval.
*/
function setupTimer() {
var start = new Date(),
timeEl = document.querySelector( '.speaker-controls-time' ),
clockEl = timeEl.querySelector( '.clock-value' ),
hoursEl = timeEl.querySelector( '.hours-value' ),
minutesEl = timeEl.querySelector( '.minutes-value' ),
secondsEl = timeEl.querySelector( '.seconds-value' ),
pacingTitleEl = timeEl.querySelector( '.pacing-title' ),
pacingEl = timeEl.querySelector( '.pacing' ),
pacingHoursEl = pacingEl.querySelector( '.hours-value' ),
pacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),
pacingSecondsEl = pacingEl.querySelector( '.seconds-value' );
var timings = null;
getTimings( function ( _timings ) {
timings = _timings;
if (_timings !== null) {
pacingTitleEl.style.removeProperty('display');
pacingEl.style.removeProperty('display');
}
// Update once directly
_updateTimer();
// Then update every second
setInterval( _updateTimer, 1000 );
} );
function _resetTimer() {
if (timings == null) {
start = new Date();
_updateTimer();
}
else {
// Reset timer to beginning of current slide
getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
var slideEndTiming = slideEndTimingSeconds * 1000;
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
var currentSlideTiming = timings[currentSlide] * 1000;
var previousSlidesTiming = slideEndTiming - currentSlideTiming;
var now = new Date();
start = new Date(now.getTime() - previousSlidesTiming);
_updateTimer();
} );
} );
}
}
timeEl.addEventListener( 'click', function() {
_resetTimer();
return false;
} );
function _displayTime( hrEl, minEl, secEl, time) {
var sign = Math.sign(time) == -1 ? "-" : "";
time = Math.abs(Math.round(time / 1000));
var seconds = time % 60;
var minutes = Math.floor( time / 60 ) % 60 ;
var hours = Math.floor( time / ( 60 * 60 )) ;
hrEl.innerHTML = sign + zeroPadInteger( hours );
if (hours == 0) {
hrEl.classList.add( 'mute' );
}
else {
hrEl.classList.remove( 'mute' );
}
minEl.innerHTML = ':' + zeroPadInteger( minutes );
if (hours == 0 && minutes == 0) {
minEl.classList.add( 'mute' );
}
else {
minEl.classList.remove( 'mute' );
}
secEl.innerHTML = ':' + zeroPadInteger( seconds );
}
function _updateTimer() {
var diff, hours, minutes, seconds,
now = new Date();
diff = now.getTime() - start.getTime();
clockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );
_displayTime( hoursEl, minutesEl, secondsEl, diff );
if (timings !== null) {
_updatePacing(diff);
}
}
function _updatePacing(diff) {
getTimeAllocated( timings, function ( slideEndTimingSeconds ) {
var slideEndTiming = slideEndTimingSeconds * 1000;
callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {
var currentSlideTiming = timings[currentSlide] * 1000;
var timeLeftCurrentSlide = slideEndTiming - diff;
if (timeLeftCurrentSlide < 0) {
pacingEl.className = 'pacing behind';
}
else if (timeLeftCurrentSlide < currentSlideTiming) {
pacingEl.className = 'pacing on-track';
}
else {
pacingEl.className = 'pacing ahead';
}
_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );
} );
} );
}
}
/**
* Sets up the speaker view layout and layout selector.
*/
function setupLayout() {
layoutDropdown = document.querySelector( '.speaker-layout-dropdown' );
layoutLabel = document.querySelector( '.speaker-layout-label' );
// Render the list of available layouts
for( var id in SPEAKER_LAYOUTS ) {
var option = document.createElement( 'option' );
option.setAttribute( 'value', id );
option.textContent = SPEAKER_LAYOUTS[ id ];
layoutDropdown.appendChild( option );
}
// Monitor the dropdown for changes
layoutDropdown.addEventListener( 'change', function( event ) {
setLayout( layoutDropdown.value );
}, false );
// Restore any currently persisted layout
setLayout( getLayout() );
}
/**
* Sets a new speaker view layout. The layout is persisted
* in local storage.
*/
function setLayout( value ) {
var title = SPEAKER_LAYOUTS[ value ];
layoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );
layoutDropdown.value = value;
document.body.setAttribute( 'data-speaker-layout', value );
// Persist locally
if( supportsLocalStorage() ) {
window.localStorage.setItem( 'reveal-speaker-layout', value );
}
}
/**
* Returns the ID of the most recently set speaker layout
* or our default layout if none has been set.
*/
function getLayout() {
if( supportsLocalStorage() ) {
var layout = window.localStorage.getItem( 'reveal-speaker-layout' );
if( layout ) {
return layout;
}
}
// Default to the first record in the layouts hash
for( var id in SPEAKER_LAYOUTS ) {
return id;
}
}
function supportsLocalStorage() {
try {
localStorage.setItem('test', 'test');
localStorage.removeItem('test');
return true;
}
catch( e ) {
return false;
}
}
function zeroPadInteger( num ) {
var str = '00' + parseInt( num );
return str.substring( str.length - 2 );
}
/**
* Limits the frequency at which a function can be called.
*/
function debounce( fn, ms ) {
var lastTime = 0,
timeout;
return function() {
var args = arguments;
var context = this;
clearTimeout( timeout );
var timeSinceLastCall = Date.now() - lastTime;
if( timeSinceLastCall > ms ) {
fn.apply( context, args );
lastTime = Date.now();
}
else {
timeout = setTimeout( function() {
fn.apply( context, args );
lastTime = Date.now();
}, ms - timeSinceLastCall );
}
}
}
})();
</script>
</body>
</html>
\ No newline at end of file