).';\n\n\t\t// Cache references to key DOM elements\n\t\tdom.wrapper = revealElement;\n\t\tdom.slides = revealElement.querySelector( '.slides' );\n\n\t\tif( !dom.slides ) throw 'Unable to find slides container (
).';\n\n\t\t// Compose our config object in order of increasing precedence:\n\t\t// 1. Default reveal.js options\n\t\t// 2. Options provided via Reveal.configure() prior to\n\t\t// initialization\n\t\t// 3. Options passed to the Reveal constructor\n\t\t// 4. Options passed to Reveal.initialize\n\t\t// 5. Query params\n\t\tconfig = { ...defaultConfig, ...config, ...options, ...initOptions, ...Util.getQueryHash() };\n\n\t\tsetViewport();\n\n\t\t// Force a layout when the whole page, incl fonts, has loaded\n\t\twindow.addEventListener( 'load', layout, false );\n\n\t\t// Register plugins and load dependencies, then move on to #start()\n\t\tplugins.load( config.plugins, config.dependencies ).then( start );\n\n\t\treturn new Promise( resolve => Reveal.on( 'ready', resolve ) );\n\n\t}\n\n\t/**\n\t * Encase the presentation in a reveal.js viewport. The\n\t * extent of the viewport differs based on configuration.\n\t */\n\tfunction setViewport() {\n\n\t\t// Embedded decks use the reveal element as their viewport\n\t\tif( config.embedded === true ) {\n\t\t\tdom.viewport = Util.closest( revealElement, '.reveal-viewport' ) || revealElement;\n\t\t}\n\t\t// Full-page decks use the body as their viewport\n\t\telse {\n\t\t\tdom.viewport = document.body;\n\t\t\tdocument.documentElement.classList.add( 'reveal-full-page' );\n\t\t}\n\n\t\tdom.viewport.classList.add( 'reveal-viewport' );\n\n\t}\n\n\t/**\n\t * Starts up reveal.js by binding input events and navigating\n\t * to the current URL deeplink if there is one.\n\t */\n\tfunction start() {\n\n\t\tready = true;\n\n\t\t// Remove slides hidden with data-visibility\n\t\tremoveHiddenSlides();\n\n\t\t// Make sure we've got all the DOM elements we need\n\t\tsetupDOM();\n\n\t\t// Listen to messages posted to this window\n\t\tsetupPostMessage();\n\n\t\t// Prevent the slides from being scrolled out of view\n\t\tsetupScrollPrevention();\n\n\t\t// Resets all vertical slides so that only the first is visible\n\t\tresetVerticalSlides();\n\n\t\t// Updates the presentation to match the current configuration values\n\t\tconfigure();\n\n\t\t// Read the initial hash\n\t\tlocation.readURL();\n\n\t\t// Create slide backgrounds\n\t\tbackgrounds.update( true );\n\n\t\t// Notify listeners that the presentation is ready but use a 1ms\n\t\t// timeout to ensure it's not fired synchronously after #initialize()\n\t\tsetTimeout( () => {\n\t\t\t// Enable transitions now that we're loaded\n\t\t\tdom.slides.classList.remove( 'no-transition' );\n\n\t\t\tdom.wrapper.classList.add( 'ready' );\n\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'ready',\n\t\t\t\tdata: {\n\t\t\t\t\tindexh,\n\t\t\t\t\tindexv,\n\t\t\t\t\tcurrentSlide\n\t\t\t\t}\n\t\t\t});\n\t\t}, 1 );\n\n\t\t// Special setup and config is required when printing to PDF\n\t\tif( print.isPrintingPDF() ) {\n\t\t\tremoveEventListeners();\n\n\t\t\t// The document needs to have loaded for the PDF layout\n\t\t\t// measurements to be accurate\n\t\t\tif( document.readyState === 'complete' ) {\n\t\t\t\tprint.setupPDF();\n\t\t\t}\n\t\t\telse {\n\t\t\t\twindow.addEventListener( 'load', () => {\n\t\t\t\t\tprint.setupPDF();\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Removes all slides with data-visibility=\"hidden\". This\n\t * is done right before the rest of the presentation is\n\t * initialized.\n\t *\n\t * If you want to show all hidden slides, initialize\n\t * reveal.js with showHiddenSlides set to true.\n\t */\n\tfunction removeHiddenSlides() {\n\n\t\tif( !config.showHiddenSlides ) {\n\t\t\tUtil.queryAll( dom.wrapper, 'section[data-visibility=\"hidden\"]' ).forEach( slide => {\n\t\t\t\tslide.parentNode.removeChild( slide );\n\t\t\t} );\n\t\t}\n\n\t}\n\n\t/**\n\t * Finds and stores references to DOM elements which are\n\t * required by the presentation. If a required element is\n\t * not found, it is created.\n\t */\n\tfunction setupDOM() {\n\n\t\t// Prevent transitions while we're loading\n\t\tdom.slides.classList.add( 'no-transition' );\n\n\t\tif( Device.isMobile ) {\n\t\t\tdom.wrapper.classList.add( 'no-hover' );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.classList.remove( 'no-hover' );\n\t\t}\n\n\t\tbackgrounds.render();\n\t\tslideNumber.render();\n\t\tcontrols.render();\n\t\tprogress.render();\n\t\tnotes.render();\n\n\t\t// Overlay graphic which is displayed during the paused mode\n\t\tdom.pauseOverlay = Util.createSingletonNode( dom.wrapper, 'div', 'pause-overlay', config.controls ? '
Resume presentation ' : null );\n\n\t\tdom.statusElement = createStatusElement();\n\n\t\tdom.wrapper.setAttribute( 'role', 'application' );\n\t}\n\n\t/**\n\t * Creates a hidden div with role aria-live to announce the\n\t * current slide content. Hide the div off-screen to make it\n\t * available only to Assistive Technologies.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction createStatusElement() {\n\n\t\tlet statusElement = dom.wrapper.querySelector( '.aria-status' );\n\t\tif( !statusElement ) {\n\t\t\tstatusElement = document.createElement( 'div' );\n\t\t\tstatusElement.style.position = 'absolute';\n\t\t\tstatusElement.style.height = '1px';\n\t\t\tstatusElement.style.width = '1px';\n\t\t\tstatusElement.style.overflow = 'hidden';\n\t\t\tstatusElement.style.clip = 'rect( 1px, 1px, 1px, 1px )';\n\t\t\tstatusElement.classList.add( 'aria-status' );\n\t\t\tstatusElement.setAttribute( 'aria-live', 'polite' );\n\t\t\tstatusElement.setAttribute( 'aria-atomic','true' );\n\t\t\tdom.wrapper.appendChild( statusElement );\n\t\t}\n\t\treturn statusElement;\n\n\t}\n\n\t/**\n\t * Announces the given text to screen readers.\n\t */\n\tfunction announceStatus( value ) {\n\n\t\tdom.statusElement.textContent = value;\n\n\t}\n\n\t/**\n\t * Converts the given HTML element into a string of text\n\t * that can be announced to a screen reader. Hidden\n\t * elements are excluded.\n\t */\n\tfunction getStatusText( node ) {\n\n\t\tlet text = '';\n\n\t\t// Text node\n\t\tif( node.nodeType === 3 ) {\n\t\t\ttext += node.textContent;\n\t\t}\n\t\t// Element node\n\t\telse if( node.nodeType === 1 ) {\n\n\t\t\tlet isAriaHidden = node.getAttribute( 'aria-hidden' );\n\t\t\tlet isDisplayHidden = window.getComputedStyle( node )['display'] === 'none';\n\t\t\tif( isAriaHidden !== 'true' && !isDisplayHidden ) {\n\n\t\t\t\tArray.from( node.childNodes ).forEach( child => {\n\t\t\t\t\ttext += getStatusText( child );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t\ttext = text.trim();\n\n\t\treturn text === '' ? '' : text + ' ';\n\n\t}\n\n\t/**\n\t * This is an unfortunate necessity. Some actions β such as\n\t * an input field being focused in an iframe or using the\n\t * keyboard to expand text selection beyond the bounds of\n\t * a slide β can trigger our content to be pushed out of view.\n\t * This scrolling can not be prevented by hiding overflow in\n\t * CSS (we already do) so we have to resort to repeatedly\n\t * checking if the slides have been offset :(\n\t */\n\tfunction setupScrollPrevention() {\n\n\t\tsetInterval( () => {\n\t\t\tif( dom.wrapper.scrollTop !== 0 || dom.wrapper.scrollLeft !== 0 ) {\n\t\t\t\tdom.wrapper.scrollTop = 0;\n\t\t\t\tdom.wrapper.scrollLeft = 0;\n\t\t\t}\n\t\t}, 1000 );\n\n\t}\n\n\t/**\n\t * Registers a listener to postMessage events, this makes it\n\t * possible to call all reveal.js API methods from another\n\t * window. For example:\n\t *\n\t * revealWindow.postMessage( JSON.stringify({\n\t * method: 'slide',\n\t * args: [ 2 ]\n\t * }), '*' );\n\t */\n\tfunction setupPostMessage() {\n\n\t\tif( config.postMessage ) {\n\t\t\twindow.addEventListener( 'message', event => {\n\t\t\t\tlet data = event.data;\n\n\t\t\t\t// Make sure we're dealing with JSON\n\t\t\t\tif( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {\n\t\t\t\t\tdata = JSON.parse( data );\n\n\t\t\t\t\t// Check if the requested method can be found\n\t\t\t\t\tif( data.method && typeof Reveal[data.method] === 'function' ) {\n\n\t\t\t\t\t\tif( POST_MESSAGE_METHOD_BLACKLIST.test( data.method ) === false ) {\n\n\t\t\t\t\t\t\tconst result = Reveal[data.method].apply( Reveal, data.args );\n\n\t\t\t\t\t\t\t// Dispatch a postMessage event with the returned value from\n\t\t\t\t\t\t\t// our method invocation for getter functions\n\t\t\t\t\t\t\tdispatchPostMessage( 'callback', { method: data.method, result: result } );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.warn( 'reveal.js: \"'+ data.method +'\" is is blacklisted from the postMessage API' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies the configuration settings from the config\n\t * object. May be called multiple times.\n\t *\n\t * @param {object} options\n\t */\n\tfunction configure( options ) {\n\n\t\tconst oldConfig = { ...config }\n\n\t\t// New config options may be passed when this method\n\t\t// is invoked through the API after initialization\n\t\tif( typeof options === 'object' ) Util.extend( config, options );\n\n\t\t// Abort if reveal.js hasn't finished loading, config\n\t\t// changes will be applied automatically once ready\n\t\tif( Reveal.isReady() === false ) return;\n\n\t\tconst numberOfSlides = dom.wrapper.querySelectorAll( SLIDES_SELECTOR ).length;\n\n\t\t// The transition is added as a class on the .reveal element\n\t\tdom.wrapper.classList.remove( oldConfig.transition );\n\t\tdom.wrapper.classList.add( config.transition );\n\n\t\tdom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );\n\t\tdom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );\n\n\t\t// Expose our configured slide dimensions as custom props\n\t\tdom.viewport.style.setProperty( '--slide-width', config.width + 'px' );\n\t\tdom.viewport.style.setProperty( '--slide-height', config.height + 'px' );\n\n\t\tif( config.shuffle ) {\n\t\t\tshuffle();\n\t\t}\n\n\t\tUtil.toggleClass( dom.wrapper, 'embedded', config.embedded );\n\t\tUtil.toggleClass( dom.wrapper, 'rtl', config.rtl );\n\t\tUtil.toggleClass( dom.wrapper, 'center', config.center );\n\n\t\t// Exit the paused mode if it was configured off\n\t\tif( config.pause === false ) {\n\t\t\tresume();\n\t\t}\n\n\t\t// Iframe link previews\n\t\tif( config.previewLinks ) {\n\t\t\tenablePreviewLinks();\n\t\t\tdisablePreviewLinks( '[data-preview-link=false]' );\n\t\t}\n\t\telse {\n\t\t\tdisablePreviewLinks();\n\t\t\tenablePreviewLinks( '[data-preview-link]:not([data-preview-link=false])' );\n\t\t}\n\n\t\t// Reset all changes made by auto-animations\n\t\tautoAnimate.reset();\n\n\t\t// Remove existing auto-slide controls\n\t\tif( autoSlidePlayer ) {\n\t\t\tautoSlidePlayer.destroy();\n\t\t\tautoSlidePlayer = null;\n\t\t}\n\n\t\t// Generate auto-slide controls if needed\n\t\tif( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable ) {\n\t\t\tautoSlidePlayer = new Playback( dom.wrapper, () => {\n\t\t\t\treturn Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );\n\t\t\t} );\n\n\t\t\tautoSlidePlayer.on( 'click', onAutoSlidePlayerClick );\n\t\t\tautoSlidePaused = false;\n\t\t}\n\n\t\t// Add the navigation mode to the DOM so we can adjust styling\n\t\tif( config.navigationMode !== 'default' ) {\n\t\t\tdom.wrapper.setAttribute( 'data-navigation-mode', config.navigationMode );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.removeAttribute( 'data-navigation-mode' );\n\t\t}\n\n\t\tnotes.configure( config, oldConfig );\n\t\tfocus.configure( config, oldConfig );\n\t\tpointer.configure( config, oldConfig );\n\t\tcontrols.configure( config, oldConfig );\n\t\tprogress.configure( config, oldConfig );\n\t\tkeyboard.configure( config, oldConfig );\n\t\tfragments.configure( config, oldConfig );\n\t\tslideNumber.configure( config, oldConfig );\n\n\t\tsync();\n\n\t}\n\n\t/**\n\t * Binds all event listeners.\n\t */\n\tfunction addEventListeners() {\n\n\t\teventsAreBound = true;\n\n\t\twindow.addEventListener( 'resize', onWindowResize, false );\n\n\t\tif( config.touch ) touch.bind();\n\t\tif( config.keyboard ) keyboard.bind();\n\t\tif( config.progress ) progress.bind();\n\t\tif( config.respondToHashChanges ) location.bind();\n\t\tcontrols.bind();\n\t\tfocus.bind();\n\n\t\tdom.slides.addEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.addEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.addEventListener( 'click', resume, false );\n\n\t\tif( config.focusBodyOnPageVisibilityChange ) {\n\t\t\tdocument.addEventListener( 'visibilitychange', onPageVisibilityChange, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Unbinds all event listeners.\n\t */\n\tfunction removeEventListeners() {\n\n\t\teventsAreBound = false;\n\n\t\ttouch.unbind();\n\t\tfocus.unbind();\n\t\tkeyboard.unbind();\n\t\tcontrols.unbind();\n\t\tprogress.unbind();\n\t\tlocation.unbind();\n\n\t\twindow.removeEventListener( 'resize', onWindowResize, false );\n\n\t\tdom.slides.removeEventListener( 'click', onSlidesClicked, false );\n\t\tdom.slides.removeEventListener( 'transitionend', onTransitionEnd, false );\n\t\tdom.pauseOverlay.removeEventListener( 'click', resume, false );\n\n\t}\n\n\t/**\n\t * Adds a listener to one of our custom reveal.js events,\n\t * like slidechanged.\n\t */\n\tfunction on( type, listener, useCapture ) {\n\n\t\trevealElement.addEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Unsubscribes from a reveal.js event.\n\t */\n\tfunction off( type, listener, useCapture ) {\n\n\t\trevealElement.removeEventListener( type, listener, useCapture );\n\n\t}\n\n\t/**\n\t * Applies CSS transforms to the slides container. The container\n\t * is transformed from two separate sources: layout and the overview\n\t * mode.\n\t *\n\t * @param {object} transforms\n\t */\n\tfunction transformSlides( transforms ) {\n\n\t\t// Pick up new transforms from arguments\n\t\tif( typeof transforms.layout === 'string' ) slidesTransform.layout = transforms.layout;\n\t\tif( typeof transforms.overview === 'string' ) slidesTransform.overview = transforms.overview;\n\n\t\t// Apply the transforms to the slides container\n\t\tif( slidesTransform.layout ) {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );\n\t\t}\n\t\telse {\n\t\t\tUtil.transformElement( dom.slides, slidesTransform.overview );\n\t\t}\n\n\t}\n\n\t/**\n\t * Dispatches an event of the specified type from the\n\t * reveal DOM element.\n\t */\n\tfunction dispatchEvent({ target=dom.wrapper, type, data, bubbles=true }) {\n\n\t\tlet event = document.createEvent( 'HTMLEvents', 1, 2 );\n\t\tevent.initEvent( type, bubbles, true );\n\t\tUtil.extend( event, data );\n\t\ttarget.dispatchEvent( event );\n\n\t\tif( target === dom.wrapper ) {\n\t\t\t// If we're in an iframe, post each reveal.js event to the\n\t\t\t// parent window. Used by the notes plugin\n\t\t\tdispatchPostMessage( type );\n\t\t}\n\n\t\treturn event;\n\n\t}\n\n\t/**\n\t * Dispatched a postMessage of the given type from our window.\n\t */\n\tfunction dispatchPostMessage( type, data ) {\n\n\t\tif( config.postMessageEvents && window.parent !== window.self ) {\n\t\t\tlet message = {\n\t\t\t\tnamespace: 'reveal',\n\t\t\t\teventName: type,\n\t\t\t\tstate: getState()\n\t\t\t};\n\n\t\t\tUtil.extend( message, data );\n\n\t\t\twindow.parent.postMessage( JSON.stringify( message ), '*' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Bind preview frame links.\n\t *\n\t * @param {string} [selector=a] - selector for anchors\n\t */\n\tfunction enablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.addEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unbind preview frame links.\n\t */\n\tfunction disablePreviewLinks( selector = 'a' ) {\n\n\t\tArray.from( dom.wrapper.querySelectorAll( selector ) ).forEach( element => {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.removeEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Opens a preview window for the target URL.\n\t *\n\t * @param {string} url - url for preview iframe src\n\t */\n\tfunction showPreview( url ) {\n\n\t\tcloseOverlay();\n\n\t\tdom.overlay = document.createElement( 'div' );\n\t\tdom.overlay.classList.add( 'overlay' );\n\t\tdom.overlay.classList.add( 'overlay-preview' );\n\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\tdom.overlay.innerHTML =\n\t\t\t`
\n\t\t\t\t \n\t\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options). \n\t\t\t\t \n\t\t\t
`;\n\n\t\tdom.overlay.querySelector( 'iframe' ).addEventListener( 'load', event => {\n\t\t\tdom.overlay.classList.add( 'loaded' );\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t\tevent.preventDefault();\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.external' ).addEventListener( 'click', event => {\n\t\t\tcloseOverlay();\n\t\t}, false );\n\n\t}\n\n\t/**\n\t * Open or close help overlay window.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * help is open, false means it's closed.\n\t */\n\tfunction toggleHelp( override ){\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? showHelp() : closeOverlay();\n\t\t}\n\t\telse {\n\t\t\tif( dom.overlay ) {\n\t\t\t\tcloseOverlay();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshowHelp();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Opens an overlay window with help material.\n\t */\n\tfunction showHelp() {\n\n\t\tif( config.help ) {\n\n\t\t\tcloseOverlay();\n\n\t\t\tdom.overlay = document.createElement( 'div' );\n\t\t\tdom.overlay.classList.add( 'overlay' );\n\t\t\tdom.overlay.classList.add( 'overlay-help' );\n\t\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\t\tlet html = '
Keyboard Shortcuts
';\n\n\t\t\tlet shortcuts = keyboard.getShortcuts(),\n\t\t\t\tbindings = keyboard.getBindings();\n\n\t\t\thtml += '
KEY ACTION ';\n\t\t\tfor( let key in shortcuts ) {\n\t\t\t\thtml += `${key} ${shortcuts[ key ]} `;\n\t\t\t}\n\n\t\t\t// Add custom key bindings that have associated descriptions\n\t\t\tfor( let binding in bindings ) {\n\t\t\t\tif( bindings[binding].key && bindings[binding].description ) {\n\t\t\t\t\thtml += `${bindings[binding].key} ${bindings[binding].description} `;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml += '
';\n\n\t\t\tdom.overlay.innerHTML = `\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${html}
\n\t\t\t\t
\n\t\t\t`;\n\n\t\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', event => {\n\t\t\t\tcloseOverlay();\n\t\t\t\tevent.preventDefault();\n\t\t\t}, false );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Closes any currently open overlay.\n\t */\n\tfunction closeOverlay() {\n\n\t\tif( dom.overlay ) {\n\t\t\tdom.overlay.parentNode.removeChild( dom.overlay );\n\t\t\tdom.overlay = null;\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Applies JavaScript-controlled layout rules to the\n\t * presentation.\n\t */\n\tfunction layout() {\n\n\t\tif( dom.wrapper && !print.isPrintingPDF() ) {\n\n\t\t\tif( !config.disableLayout ) {\n\n\t\t\t\t// On some mobile devices '100vh' is taller than the visible\n\t\t\t\t// viewport which leads to part of the presentation being\n\t\t\t\t// cut off. To work around this we define our own '--vh' custom\n\t\t\t\t// property where 100x adds up to the correct height.\n\t\t\t\t//\n\t\t\t\t// https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\t\t\t\tif( Device.isMobile && !config.embedded ) {\n\t\t\t\t\tdocument.documentElement.style.setProperty( '--vh', ( window.innerHeight * 0.01 ) + 'px' );\n\t\t\t\t}\n\n\t\t\t\tconst size = getComputedSlideSize();\n\n\t\t\t\tconst oldScale = scale;\n\n\t\t\t\t// Layout the contents of the slides\n\t\t\t\tlayoutSlideContents( config.width, config.height );\n\n\t\t\t\tdom.slides.style.width = size.width + 'px';\n\t\t\t\tdom.slides.style.height = size.height + 'px';\n\n\t\t\t\t// Determine scale of content to fit within available space\n\t\t\t\tscale = Math.min( size.presentationWidth / size.width, size.presentationHeight / size.height );\n\n\t\t\t\t// Respect max/min scale settings\n\t\t\t\tscale = Math.max( scale, config.minScale );\n\t\t\t\tscale = Math.min( scale, config.maxScale );\n\n\t\t\t\t// Don't apply any scaling styles if scale is 1\n\t\t\t\tif( scale === 1 ) {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '';\n\t\t\t\t\tdom.slides.style.top = '';\n\t\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\t\tdom.slides.style.right = '';\n\t\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Zoom Scaling\n\t\t\t\t\t// Content remains crisp no matter how much we scale. Side\n\t\t\t\t\t// effects are minor differences in text layout and iframe\n\t\t\t\t\t// viewports changing size. A 200x200 iframe viewport in a\n\t\t\t\t\t// 2x zoomed presentation ends up having a 400x400 viewport.\n\t\t\t\t\tif( scale > 1 && Device.supportsZoom && window.devicePixelRatio < 2 ) {\n\t\t\t\t\t\tdom.slides.style.zoom = scale;\n\t\t\t\t\t\tdom.slides.style.left = '';\n\t\t\t\t\t\tdom.slides.style.top = '';\n\t\t\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\t\t\tdom.slides.style.right = '';\n\t\t\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t\t\t}\n\t\t\t\t\t// Transform Scaling\n\t\t\t\t\t// Content layout remains the exact same when scaled up.\n\t\t\t\t\t// Side effect is content becoming blurred, especially with\n\t\t\t\t\t// high scale values on ldpi screens.\n\t\t\t\t\telse {\n\t\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\t\tdom.slides.style.left = '50%';\n\t\t\t\t\t\tdom.slides.style.top = '50%';\n\t\t\t\t\t\tdom.slides.style.bottom = 'auto';\n\t\t\t\t\t\tdom.slides.style.right = 'auto';\n\t\t\t\t\t\ttransformSlides( { layout: 'translate(-50%, -50%) scale('+ scale +')' } );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Select all slides, vertical and horizontal\n\t\t\t\tconst slides = Array.from( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) );\n\n\t\t\t\tfor( let i = 0, len = slides.length; i < len; i++ ) {\n\t\t\t\t\tconst slide = slides[ i ];\n\n\t\t\t\t\t// Don't bother updating invisible slides\n\t\t\t\t\tif( slide.style.display === 'none' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( config.center || slide.classList.contains( 'center' ) ) {\n\t\t\t\t\t\t// Vertical stacks are not centred since their section\n\t\t\t\t\t\t// children will be\n\t\t\t\t\t\tif( slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\t\t\tslide.style.top = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslide.style.top = Math.max( ( size.height - slide.scrollHeight ) / 2, 0 ) + 'px';\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\tslide.style.top = '';\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif( oldScale !== scale ) {\n\t\t\t\t\tdispatchEvent({\n\t\t\t\t\t\ttype: 'resize',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\toldScale,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\tsize\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tprogress.update();\n\t\t\tbackgrounds.updateParallax();\n\n\t\t\tif( overview.isActive() ) {\n\t\t\t\toverview.update();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies layout logic to the contents of all slides in\n\t * the presentation.\n\t *\n\t * @param {string|number} width\n\t * @param {string|number} height\n\t */\n\tfunction layoutSlideContents( width, height ) {\n\n\t\t// Handle sizing of elements with the 'r-stretch' class\n\t\tUtil.queryAll( dom.slides, 'section > .stretch, section > .r-stretch' ).forEach( element => {\n\n\t\t\t// Determine how much vertical space we can use\n\t\t\tlet remainingHeight = Util.getRemainingHeight( element, height );\n\n\t\t\t// Consider the aspect ratio of media elements\n\t\t\tif( /(img|video)/gi.test( element.nodeName ) ) {\n\t\t\t\tconst nw = element.naturalWidth || element.videoWidth,\n\t\t\t\t\t nh = element.naturalHeight || element.videoHeight;\n\n\t\t\t\tconst es = Math.min( width / nw, remainingHeight / nh );\n\n\t\t\t\telement.style.width = ( nw * es ) + 'px';\n\t\t\t\telement.style.height = ( nh * es ) + 'px';\n\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.width = width + 'px';\n\t\t\t\telement.style.height = remainingHeight + 'px';\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Calculates the computed pixel size of our slides. These\n\t * values are based on the width and height configuration\n\t * options.\n\t *\n\t * @param {number} [presentationWidth=dom.wrapper.offsetWidth]\n\t * @param {number} [presentationHeight=dom.wrapper.offsetHeight]\n\t */\n\tfunction getComputedSlideSize( presentationWidth, presentationHeight ) {\n\n\t\tconst size = {\n\t\t\t// Slide size\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\n\t\t\t// Presentation size\n\t\t\tpresentationWidth: presentationWidth || dom.wrapper.offsetWidth,\n\t\t\tpresentationHeight: presentationHeight || dom.wrapper.offsetHeight\n\t\t};\n\n\t\t// Reduce available space by margin\n\t\tsize.presentationWidth -= ( size.presentationWidth * config.margin );\n\t\tsize.presentationHeight -= ( size.presentationHeight * config.margin );\n\n\t\t// Slide width may be a percentage of available width\n\t\tif( typeof size.width === 'string' && /%$/.test( size.width ) ) {\n\t\t\tsize.width = parseInt( size.width, 10 ) / 100 * size.presentationWidth;\n\t\t}\n\n\t\t// Slide height may be a percentage of available height\n\t\tif( typeof size.height === 'string' && /%$/.test( size.height ) ) {\n\t\t\tsize.height = parseInt( size.height, 10 ) / 100 * size.presentationHeight;\n\t\t}\n\n\t\treturn size;\n\n\t}\n\n\t/**\n\t * Stores the vertical index of a stack so that the same\n\t * vertical slide can be selected when navigating to and\n\t * from the stack.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t * @param {string|number} [v=0] Index to memorize\n\t */\n\tfunction setPreviousVerticalIndex( stack, v ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {\n\t\t\tstack.setAttribute( 'data-previous-indexv', v || 0 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Retrieves the vertical index which was stored using\n\t * #setPreviousVerticalIndex() or 0 if no previous index\n\t * exists.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t */\n\tfunction getPreviousVerticalIndex( stack ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {\n\t\t\t// Prefer manually defined start-indexv\n\t\t\tconst attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';\n\n\t\t\treturn parseInt( stack.getAttribute( attributeName ) || 0, 10 );\n\t\t}\n\n\t\treturn 0;\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is vertical\n\t * (nested within another slide).\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide to check\n\t * orientation of\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalSlide( slide = currentSlide ) {\n\n\t\treturn slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );\n\n\t}\n\n\t/**\n\t * Returns true if we're on the last slide in the current\n\t * vertical stack.\n\t */\n\tfunction isLastVerticalSlide() {\n\n\t\tif( currentSlide && isVerticalSlide( currentSlide ) ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the first slide in\n\t * the presentation.\n\t */\n\tfunction isFirstSlide() {\n\n\t\treturn indexh === 0 && indexv === 0;\n\n\t}\n\n\t/**\n\t * Returns true if we're currently on the last slide in\n\t * the presenation. If the last slide is a stack, we only\n\t * consider this the last slide if it's at the end of the\n\t * stack.\n\t */\n\tfunction isLastSlide() {\n\n\t\tif( currentSlide ) {\n\t\t\t// Does this slide have a next sibling?\n\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\t// If it's vertical, does its parent have a next sibling?\n\t\t\tif( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Enters the paused mode which fades everything on screen to\n\t * black.\n\t */\n\tfunction pause() {\n\n\t\tif( config.pause ) {\n\t\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\n\t\t\tcancelAutoSlide();\n\t\t\tdom.wrapper.classList.add( 'paused' );\n\n\t\t\tif( wasPaused === false ) {\n\t\t\t\tdispatchEvent({ type: 'paused' });\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Exits from the paused mode.\n\t */\n\tfunction resume() {\n\n\t\tconst wasPaused = dom.wrapper.classList.contains( 'paused' );\n\t\tdom.wrapper.classList.remove( 'paused' );\n\n\t\tcueAutoSlide();\n\n\t\tif( wasPaused ) {\n\t\t\tdispatchEvent({ type: 'resumed' });\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the paused mode on and off.\n\t */\n\tfunction togglePause( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? pause() : resume();\n\t\t}\n\t\telse {\n\t\t\tisPaused() ? resume() : pause();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if we are currently in the paused mode.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isPaused() {\n\n\t\treturn dom.wrapper.classList.contains( 'paused' );\n\n\t}\n\n\t/**\n\t * Toggles the auto slide mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which sets the desired state.\n\t * True means autoplay starts, false means it stops.\n\t */\n\n\tfunction toggleAutoSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t\telse {\n\t\t\tautoSlidePaused ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the auto slide mode is currently on.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isAutoSliding() {\n\n\t\treturn !!( autoSlide && !autoSlidePaused );\n\n\t}\n\n\t/**\n\t * Steps from the current point in the presentation to the\n\t * slide which matches the specified horizontal and vertical\n\t * indices.\n\t *\n\t * @param {number} [h=indexh] Horizontal index of the target slide\n\t * @param {number} [v=indexv] Vertical index of the target slide\n\t * @param {number} [f] Index of a fragment within the\n\t * target slide to activate\n\t * @param {number} [origin] Origin for use in multimaster environments\n\t */\n\tfunction slide( h, v, f, origin ) {\n\n\t\t// Dispatch an event before hte slide\n\t\tconst slidechange = dispatchEvent({\n\t\t\ttype: 'beforeslidechange',\n\t\t\tdata: {\n\t\t\t\tindexh: h === undefined ? indexh : h,\n\t\t\t\tindexv: v === undefined ? indexv : v,\n\t\t\t\torigin\n\t\t\t}\n\t\t});\n\n\t\t// Abort if this slide change was prevented by an event listener\n\t\tif( slidechange.defaultPrevented ) return;\n\n\t\t// Remember where we were at before\n\t\tpreviousSlide = currentSlide;\n\n\t\t// Query all horizontal slides in the deck\n\t\tconst horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );\n\n\t\t// Abort if there are no slides\n\t\tif( horizontalSlides.length === 0 ) return;\n\n\t\t// If no vertical index is specified and the upcoming slide is a\n\t\t// stack, resume at its previous vertical index\n\t\tif( v === undefined && !overview.isActive() ) {\n\t\t\tv = getPreviousVerticalIndex( horizontalSlides[ h ] );\n\t\t}\n\n\t\t// If we were on a vertical stack, remember what vertical index\n\t\t// it was on so we can resume at the same position when returning\n\t\tif( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {\n\t\t\tsetPreviousVerticalIndex( previousSlide.parentNode, indexv );\n\t\t}\n\n\t\t// Remember the state before this slide\n\t\tconst stateBefore = state.concat();\n\n\t\t// Reset the state array\n\t\tstate.length = 0;\n\n\t\tlet indexhBefore = indexh || 0,\n\t\t\tindexvBefore = indexv || 0;\n\n\t\t// Activate and transition to the new slide\n\t\tindexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );\n\t\tindexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );\n\n\t\t// Dispatch an event if the slide changed\n\t\tlet slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );\n\n\t\t// Ensure that the previous slide is never the same as the current\n\t\tif( !slideChanged ) previousSlide = null;\n\n\t\t// Find the current horizontal slide and any possible vertical slides\n\t\t// within it\n\t\tlet currentHorizontalSlide = horizontalSlides[ indexh ],\n\t\t\tcurrentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );\n\n\t\t// Store references to the previous and current slides\n\t\tcurrentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;\n\n\t\tlet autoAnimateTransition = false;\n\n\t\t// Detect if we're moving between two auto-animated slides\n\t\tif( slideChanged && previousSlide && currentSlide && !overview.isActive() ) {\n\n\t\t\t// If this is an auto-animated transition, we disable the\n\t\t\t// regular slide transition\n\t\t\t//\n\t\t\t// Note 20-03-2020:\n\t\t\t// This needs to happen before we update slide visibility,\n\t\t\t// otherwise transitions will still run in Safari.\n\t\t\tif( previousSlide.hasAttribute( 'data-auto-animate' ) && currentSlide.hasAttribute( 'data-auto-animate' )\n\t\t\t\t\t&& previousSlide.getAttribute( 'data-auto-animate-id' ) === currentSlide.getAttribute( 'data-auto-animate-id' )\n\t\t\t\t\t&& !( ( indexh > indexhBefore || indexv > indexvBefore ) ? currentSlide : previousSlide ).hasAttribute( 'data-auto-animate-restart' ) ) {\n\n\t\t\t\tautoAnimateTransition = true;\n\t\t\t\tdom.slides.classList.add( 'disable-slide-transitions' );\n\t\t\t}\n\n\t\t\ttransition = 'running';\n\n\t\t}\n\n\t\t// Update the visibility of slides now that the indices have changed\n\t\tupdateSlidesVisibility();\n\n\t\tlayout();\n\n\t\t// Update the overview if it's currently active\n\t\tif( overview.isActive() ) {\n\t\t\toverview.update();\n\t\t}\n\n\t\t// Show fragment, if specified\n\t\tif( typeof f !== 'undefined' ) {\n\t\t\tfragments.goto( f );\n\t\t}\n\n\t\t// Solves an edge case where the previous slide maintains the\n\t\t// 'present' class when navigating between adjacent vertical\n\t\t// stacks\n\t\tif( previousSlide && previousSlide !== currentSlide ) {\n\t\t\tpreviousSlide.classList.remove( 'present' );\n\t\t\tpreviousSlide.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t// Reset all slides upon navigate to home\n\t\t\tif( isFirstSlide() ) {\n\t\t\t\t// Launch async task\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tgetVerticalStacks().forEach( slide => {\n\t\t\t\t\t\tsetPreviousVerticalIndex( slide, 0 );\n\t\t\t\t\t} );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t}\n\n\t\t// Apply the new state\n\t\tstateLoop: for( let i = 0, len = state.length; i < len; i++ ) {\n\t\t\t// Check if this state existed on the previous slide. If it\n\t\t\t// did, we will avoid adding it repeatedly\n\t\t\tfor( let j = 0; j < stateBefore.length; j++ ) {\n\t\t\t\tif( stateBefore[j] === state[i] ) {\n\t\t\t\t\tstateBefore.splice( j, 1 );\n\t\t\t\t\tcontinue stateLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdom.viewport.classList.add( state[i] );\n\n\t\t\t// Dispatch custom event matching the state's name\n\t\t\tdispatchEvent({ type: state[i] });\n\t\t}\n\n\t\t// Clean up the remains of the previous state\n\t\twhile( stateBefore.length ) {\n\t\t\tdom.viewport.classList.remove( stateBefore.pop() );\n\t\t}\n\n\t\tif( slideChanged ) {\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'slidechanged',\n\t\t\t\tdata: {\n\t\t\t\t\tindexh,\n\t\t\t\t\tindexv,\n\t\t\t\t\tpreviousSlide,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\torigin\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Handle embedded content\n\t\tif( slideChanged || !previousSlide ) {\n\t\t\tslideContent.stopEmbeddedContent( previousSlide );\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\t// Announce the current slide contents to screen readers\n\t\t// Use animation frame to prevent getComputedStyle in getStatusText\n\t\t// from triggering layout mid-frame\n\t\trequestAnimationFrame( () => {\n\t\t\tannounceStatus( getStatusText( currentSlide ) );\n\t\t});\n\n\t\tprogress.update();\n\t\tcontrols.update();\n\t\tnotes.update();\n\t\tbackgrounds.update();\n\t\tbackgrounds.updateParallax();\n\t\tslideNumber.update();\n\t\tfragments.update();\n\n\t\t// Update the URL hash\n\t\tlocation.writeURL();\n\n\t\tcueAutoSlide();\n\n\t\t// Auto-animation\n\t\tif( autoAnimateTransition ) {\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tdom.slides.classList.remove( 'disable-slide-transitions' );\n\t\t\t}, 0 );\n\n\t\t\tif( config.autoAnimate ) {\n\t\t\t\t// Run the auto-animation between our slides\n\t\t\t\tautoAnimate.run( previousSlide, currentSlide );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Syncs the presentation with the current DOM. Useful\n\t * when new slides or control elements are added or when\n\t * the configuration has changed.\n\t */\n\tfunction sync() {\n\n\t\t// Subscribe to input\n\t\tremoveEventListeners();\n\t\taddEventListeners();\n\n\t\t// Force a layout to make sure the current config is accounted for\n\t\tlayout();\n\n\t\t// Reflect the current autoSlide value\n\t\tautoSlide = config.autoSlide;\n\n\t\t// Start auto-sliding if it's enabled\n\t\tcueAutoSlide();\n\n\t\t// Re-create all slide backgrounds\n\t\tbackgrounds.create();\n\n\t\t// Write the current hash to the URL\n\t\tlocation.writeURL();\n\n\t\tfragments.sortAll();\n\n\t\tcontrols.update();\n\t\tprogress.update();\n\n\t\tupdateSlidesVisibility();\n\n\t\tnotes.update();\n\t\tnotes.updateVisibility();\n\t\tbackgrounds.update( true );\n\t\tslideNumber.update();\n\t\tslideContent.formatEmbeddedContent();\n\n\t\t// Start or stop embedded content depending on global config\n\t\tif( config.autoPlayMedia === false ) {\n\t\t\tslideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } );\n\t\t}\n\t\telse {\n\t\t\tslideContent.startEmbeddedContent( currentSlide );\n\t\t}\n\n\t\tif( overview.isActive() ) {\n\t\t\toverview.layout();\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates reveal.js to keep in sync with new slide attributes. For\n\t * example, if you add a new `data-background-image` you can call\n\t * this to have reveal.js render the new background image.\n\t *\n\t * Similar to #sync() but more efficient when you only need to\n\t * refresh a specific slide.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tfunction syncSlide( slide = currentSlide ) {\n\n\t\tbackgrounds.sync( slide );\n\t\tfragments.sync( slide );\n\n\t\tslideContent.load( slide );\n\n\t\tbackgrounds.update();\n\t\tnotes.update();\n\n\t}\n\n\t/**\n\t * Resets all vertical slides so that only the first\n\t * is visible.\n\t */\n\tfunction resetVerticalSlides() {\n\n\t\tgetHorizontalSlides().forEach( horizontalSlide => {\n\n\t\t\tUtil.queryAll( horizontalSlide, 'section' ).forEach( ( verticalSlide, y ) => {\n\n\t\t\t\tif( y > 0 ) {\n\t\t\t\t\tverticalSlide.classList.remove( 'present' );\n\t\t\t\t\tverticalSlide.classList.remove( 'past' );\n\t\t\t\t\tverticalSlide.classList.add( 'future' );\n\t\t\t\t\tverticalSlide.setAttribute( 'aria-hidden', 'true' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Randomly shuffles all slides in the deck.\n\t */\n\tfunction shuffle( slides = getHorizontalSlides() ) {\n\n\t\tslides.forEach( ( slide, i ) => {\n\n\t\t\t// Insert the slide next to a randomly picked sibling slide\n\t\t\t// slide. This may cause the slide to insert before itself,\n\t\t\t// but that's not an issue.\n\t\t\tlet beforeSlide = slides[ Math.floor( Math.random() * slides.length ) ];\n\t\t\tif( beforeSlide.parentNode === slide.parentNode ) {\n\t\t\t\tslide.parentNode.insertBefore( slide, beforeSlide );\n\t\t\t}\n\n\t\t\t// Randomize the order of vertical slides (if there are any)\n\t\t\tlet verticalSlides = slide.querySelectorAll( 'section' );\n\t\t\tif( verticalSlides.length ) {\n\t\t\t\tshuffle( verticalSlides );\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Updates one dimension of slides by showing the slide\n\t * with the specified index.\n\t *\n\t * @param {string} selector A CSS selector that will fetch\n\t * the group of slides we are working with\n\t * @param {number} index The index of the slide that should be\n\t * shown\n\t *\n\t * @return {number} The index of the slide that is now shown,\n\t * might differ from the passed in index if it was out of\n\t * bounds.\n\t */\n\tfunction updateSlides( selector, index ) {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet slides = Util.queryAll( dom.wrapper, selector ),\n\t\t\tslidesLength = slides.length;\n\n\t\tlet printMode = print.isPrintingPDF();\n\n\t\tif( slidesLength ) {\n\n\t\t\t// Should the index loop?\n\t\t\tif( config.loop ) {\n\t\t\t\tindex %= slidesLength;\n\n\t\t\t\tif( index < 0 ) {\n\t\t\t\t\tindex = slidesLength + index;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Enforce max and minimum index bounds\n\t\t\tindex = Math.max( Math.min( index, slidesLength - 1 ), 0 );\n\n\t\t\tfor( let i = 0; i < slidesLength; i++ ) {\n\t\t\t\tlet element = slides[i];\n\n\t\t\t\tlet reverse = config.rtl && !isVerticalSlide( element );\n\n\t\t\t\t// Avoid .remove() with multiple args for IE11 support\n\t\t\t\telement.classList.remove( 'past' );\n\t\t\t\telement.classList.remove( 'present' );\n\t\t\t\telement.classList.remove( 'future' );\n\n\t\t\t\t// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute\n\t\t\t\telement.setAttribute( 'hidden', '' );\n\t\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t\t// If this element contains vertical slides\n\t\t\t\tif( element.querySelector( 'section' ) ) {\n\t\t\t\t\telement.classList.add( 'stack' );\n\t\t\t\t}\n\n\t\t\t\t// If we're printing static slides, all slides are \"present\"\n\t\t\t\tif( printMode ) {\n\t\t\t\t\telement.classList.add( 'present' );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif( i < index ) {\n\t\t\t\t\t// Any element previous to index is given the 'past' class\n\t\t\t\t\telement.classList.add( reverse ? 'future' : 'past' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Show all fragments in prior slides\n\t\t\t\t\t\tUtil.queryAll( element, '.fragment' ).forEach( fragment => {\n\t\t\t\t\t\t\tfragment.classList.add( 'visible' );\n\t\t\t\t\t\t\tfragment.classList.remove( 'current-fragment' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( i > index ) {\n\t\t\t\t\t// Any element subsequent to index is given the 'future' class\n\t\t\t\t\telement.classList.add( reverse ? 'past' : 'future' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\t// Hide all fragments in future slides\n\t\t\t\t\t\tUtil.queryAll( element, '.fragment.visible' ).forEach( fragment => {\n\t\t\t\t\t\t\tfragment.classList.remove( 'visible', 'current-fragment' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet slide = slides[index];\n\t\t\tlet wasPresent = slide.classList.contains( 'present' );\n\n\t\t\t// Mark the current slide as present\n\t\t\tslide.classList.add( 'present' );\n\t\t\tslide.removeAttribute( 'hidden' );\n\t\t\tslide.removeAttribute( 'aria-hidden' );\n\n\t\t\tif( !wasPresent ) {\n\t\t\t\t// Dispatch an event indicating the slide is now visible\n\t\t\t\tdispatchEvent({\n\t\t\t\t\ttarget: slide,\n\t\t\t\t\ttype: 'visible',\n\t\t\t\t\tbubbles: false\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If this slide has a state associated with it, add it\n\t\t\t// onto the current state of the deck\n\t\t\tlet slideState = slide.getAttribute( 'data-state' );\n\t\t\tif( slideState ) {\n\t\t\t\tstate = state.concat( slideState.split( ' ' ) );\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Since there are no slides we can't be anywhere beyond the\n\t\t\t// zeroth index\n\t\t\tindex = 0;\n\t\t}\n\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Optimization method; hide all slides that are far away\n\t * from the present slide.\n\t */\n\tfunction updateSlidesVisibility() {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tlet horizontalSlides = getHorizontalSlides(),\n\t\t\thorizontalSlidesLength = horizontalSlides.length,\n\t\t\tdistanceX,\n\t\t\tdistanceY;\n\n\t\tif( horizontalSlidesLength && typeof indexh !== 'undefined' ) {\n\n\t\t\t// The number of steps away from the present slide that will\n\t\t\t// be visible\n\t\t\tlet viewDistance = overview.isActive() ? 10 : config.viewDistance;\n\n\t\t\t// Shorten the view distance on devices that typically have\n\t\t\t// less resources\n\t\t\tif( Device.isMobile ) {\n\t\t\t\tviewDistance = overview.isActive() ? 6 : config.mobileViewDistance;\n\t\t\t}\n\n\t\t\t// All slides need to be visible when exporting to PDF\n\t\t\tif( print.isPrintingPDF() ) {\n\t\t\t\tviewDistance = Number.MAX_VALUE;\n\t\t\t}\n\n\t\t\tfor( let x = 0; x < horizontalSlidesLength; x++ ) {\n\t\t\t\tlet horizontalSlide = horizontalSlides[x];\n\n\t\t\t\tlet verticalSlides = Util.queryAll( horizontalSlide, 'section' ),\n\t\t\t\t\tverticalSlidesLength = verticalSlides.length;\n\n\t\t\t\t// Determine how far away this slide is from the present\n\t\t\t\tdistanceX = Math.abs( ( indexh || 0 ) - x ) || 0;\n\n\t\t\t\t// If the presentation is looped, distance should measure\n\t\t\t\t// 1 between the first and last slides\n\t\t\t\tif( config.loop ) {\n\t\t\t\t\tdistanceX = Math.abs( ( ( indexh || 0 ) - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;\n\t\t\t\t}\n\n\t\t\t\t// Show the horizontal slide if it's within the view distance\n\t\t\t\tif( distanceX < viewDistance ) {\n\t\t\t\t\tslideContent.load( horizontalSlide );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslideContent.unload( horizontalSlide );\n\t\t\t\t}\n\n\t\t\t\tif( verticalSlidesLength ) {\n\n\t\t\t\t\tlet oy = getPreviousVerticalIndex( horizontalSlide );\n\n\t\t\t\t\tfor( let y = 0; y < verticalSlidesLength; y++ ) {\n\t\t\t\t\t\tlet verticalSlide = verticalSlides[y];\n\n\t\t\t\t\t\tdistanceY = x === ( indexh || 0 ) ? Math.abs( ( indexv || 0 ) - y ) : Math.abs( y - oy );\n\n\t\t\t\t\t\tif( distanceX + distanceY < viewDistance ) {\n\t\t\t\t\t\t\tslideContent.load( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tslideContent.unload( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Flag if there are ANY vertical slides, anywhere in the deck\n\t\t\tif( hasVerticalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-vertical-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-vertical-slides' );\n\t\t\t}\n\n\t\t\t// Flag if there are ANY horizontal slides, anywhere in the deck\n\t\t\tif( hasHorizontalSlides() ) {\n\t\t\t\tdom.wrapper.classList.add( 'has-horizontal-slides' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdom.wrapper.classList.remove( 'has-horizontal-slides' );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Determine what available routes there are for navigation.\n\t *\n\t * @return {{left: boolean, right: boolean, up: boolean, down: boolean}}\n\t */\n\tfunction availableRoutes({ includeFragments = false } = {}) {\n\n\t\tlet horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),\n\t\t\tverticalSlides = dom.wrapper.querySelectorAll( VERTICAL_SLIDES_SELECTOR );\n\n\t\tlet routes = {\n\t\t\tleft: indexh > 0,\n\t\t\tright: indexh < horizontalSlides.length - 1,\n\t\t\tup: indexv > 0,\n\t\t\tdown: indexv < verticalSlides.length - 1\n\t\t};\n\n\t\t// Looped presentations can always be navigated as long as\n\t\t// there are slides available\n\t\tif( config.loop ) {\n\t\t\tif( horizontalSlides.length > 1 ) {\n\t\t\t\troutes.left = true;\n\t\t\t\troutes.right = true;\n\t\t\t}\n\n\t\t\tif( verticalSlides.length > 1 ) {\n\t\t\t\troutes.up = true;\n\t\t\t\troutes.down = true;\n\t\t\t}\n\t\t}\n\n\t\tif ( horizontalSlides.length > 1 && config.navigationMode === 'linear' ) {\n\t\t\troutes.right = routes.right || routes.down;\n\t\t\troutes.left = routes.left || routes.up;\n\t\t}\n\n\t\t// If includeFragments is set, a route will be considered\n\t\t// availalbe if either a slid OR fragment is available in\n\t\t// the given direction\n\t\tif( includeFragments === true ) {\n\t\t\tlet fragmentRoutes = fragments.availableRoutes();\n\t\t\troutes.left = routes.left || fragmentRoutes.prev;\n\t\t\troutes.up = routes.up || fragmentRoutes.prev;\n\t\t\troutes.down = routes.down || fragmentRoutes.next;\n\t\t\troutes.right = routes.right || fragmentRoutes.next;\n\t\t}\n\n\t\t// Reverse horizontal controls for rtl\n\t\tif( config.rtl ) {\n\t\t\tlet left = routes.left;\n\t\t\troutes.left = routes.right;\n\t\t\troutes.right = left;\n\t\t}\n\n\t\treturn routes;\n\n\t}\n\n\t/**\n\t * Returns the number of past slides. This can be used as a global\n\t * flattened index for slides.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide we're counting before\n\t *\n\t * @return {number} Past slide count\n\t */\n\tfunction getSlidePastCount( slide = currentSlide ) {\n\n\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t// The number of past slides\n\t\tlet pastCount = 0;\n\n\t\t// Step through all slides and count the past ones\n\t\tmainLoop: for( let i = 0; i < horizontalSlides.length; i++ ) {\n\n\t\t\tlet horizontalSlide = horizontalSlides[i];\n\t\t\tlet verticalSlides = horizontalSlide.querySelectorAll( 'section' );\n\n\t\t\tfor( let j = 0; j < verticalSlides.length; j++ ) {\n\n\t\t\t\t// Stop as soon as we arrive at the present\n\t\t\t\tif( verticalSlides[j] === slide ) {\n\t\t\t\t\tbreak mainLoop;\n\t\t\t\t}\n\n\t\t\t\t// Don't count slides with the \"uncounted\" class\n\t\t\t\tif( verticalSlides[j].dataset.visibility !== 'uncounted' ) {\n\t\t\t\t\tpastCount++;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Stop as soon as we arrive at the present\n\t\t\tif( horizontalSlide === slide ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Don't count the wrapping section for vertical slides and\n\t\t\t// slides marked as uncounted\n\t\t\tif( horizontalSlide.classList.contains( 'stack' ) === false && horizontalSlide.dataset.visibility !== 'uncounted' ) {\n\t\t\t\tpastCount++;\n\t\t\t}\n\n\t\t}\n\n\t\treturn pastCount;\n\n\t}\n\n\t/**\n\t * Returns a value ranging from 0-1 that represents\n\t * how far into the presentation we have navigated.\n\t *\n\t * @return {number}\n\t */\n\tfunction getProgress() {\n\n\t\t// The number of past and total slides\n\t\tlet totalCount = getTotalSlides();\n\t\tlet pastCount = getSlidePastCount();\n\n\t\tif( currentSlide ) {\n\n\t\t\tlet allFragments = currentSlide.querySelectorAll( '.fragment' );\n\n\t\t\t// If there are fragments in the current slide those should be\n\t\t\t// accounted for in the progress.\n\t\t\tif( allFragments.length > 0 ) {\n\t\t\t\tlet visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );\n\n\t\t\t\t// This value represents how big a portion of the slide progress\n\t\t\t\t// that is made up by its fragments (0-1)\n\t\t\t\tlet fragmentWeight = 0.9;\n\n\t\t\t\t// Add fragment progress to the past slide count\n\t\t\t\tpastCount += ( visibleFragments.length / allFragments.length ) * fragmentWeight;\n\t\t\t}\n\n\t\t}\n\n\t\treturn Math.min( pastCount / ( totalCount - 1 ), 1 );\n\n\t}\n\n\t/**\n\t * Retrieves the h/v location and fragment of the current,\n\t * or specified, slide.\n\t *\n\t * @param {HTMLElement} [slide] If specified, the returned\n\t * index will be for this slide rather than the currently\n\t * active one\n\t *\n\t * @return {{h: number, v: number, f: number}}\n\t */\n\tfunction getIndices( slide ) {\n\n\t\t// By default, return the current indices\n\t\tlet h = indexh,\n\t\t\tv = indexv,\n\t\t\tf;\n\n\t\t// If a slide is specified, return the indices of that slide\n\t\tif( slide ) {\n\t\t\tlet isVertical = isVerticalSlide( slide );\n\t\t\tlet slideh = isVertical ? slide.parentNode : slide;\n\n\t\t\t// Select all horizontal slides\n\t\t\tlet horizontalSlides = getHorizontalSlides();\n\n\t\t\t// Now that we know which the horizontal slide is, get its index\n\t\t\th = Math.max( horizontalSlides.indexOf( slideh ), 0 );\n\n\t\t\t// Assume we're not vertical\n\t\t\tv = undefined;\n\n\t\t\t// If this is a vertical slide, grab the vertical index\n\t\t\tif( isVertical ) {\n\t\t\t\tv = Math.max( Util.queryAll( slide.parentNode, 'section' ).indexOf( slide ), 0 );\n\t\t\t}\n\t\t}\n\n\t\tif( !slide && currentSlide ) {\n\t\t\tlet hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;\n\t\t\tif( hasFragments ) {\n\t\t\t\tlet currentFragment = currentSlide.querySelector( '.current-fragment' );\n\t\t\t\tif( currentFragment && currentFragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\tf = parseInt( currentFragment.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf = currentSlide.querySelectorAll( '.fragment.visible' ).length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { h, v, f };\n\n\t}\n\n\t/**\n\t * Retrieves all slides in this presentation.\n\t */\n\tfunction getSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, SLIDES_SELECTOR + ':not(.stack):not([data-visibility=\"uncounted\"])' );\n\n\t}\n\n\t/**\n\t * Returns a list of all horizontal slides in the deck. Each\n\t * vertical stack is included as one horizontal slide in the\n\t * resulting array.\n\t */\n\tfunction getHorizontalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR );\n\n\t}\n\n\t/**\n\t * Returns all vertical slides that exist within this deck.\n\t */\n\tfunction getVerticalSlides() {\n\n\t\treturn Util.queryAll( dom.wrapper, '.slides>section>section' );\n\n\t}\n\n\t/**\n\t * Returns all vertical stacks (each stack can contain multiple slides).\n\t */\n\tfunction getVerticalStacks() {\n\n\t\treturn Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.stack');\n\n\t}\n\n\t/**\n\t * Returns true if there are at least two horizontal slides.\n\t */\n\tfunction hasHorizontalSlides() {\n\n\t\treturn getHorizontalSlides().length > 1;\n\t}\n\n\t/**\n\t * Returns true if there are at least two vertical slides.\n\t */\n\tfunction hasVerticalSlides() {\n\n\t\treturn getVerticalSlides().length > 1;\n\n\t}\n\n\t/**\n\t * Returns an array of objects where each object represents the\n\t * attributes on its respective slide.\n\t */\n\tfunction getSlidesAttributes() {\n\n\t\treturn getSlides().map( slide => {\n\n\t\t\tlet attributes = {};\n\t\t\tfor( let i = 0; i < slide.attributes.length; i++ ) {\n\t\t\t\tlet attribute = slide.attributes[ i ];\n\t\t\t\tattributes[ attribute.name ] = attribute.value;\n\t\t\t}\n\t\t\treturn attributes;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Retrieves the total number of slides in this presentation.\n\t *\n\t * @return {number}\n\t */\n\tfunction getTotalSlides() {\n\n\t\treturn getSlides().length;\n\n\t}\n\n\t/**\n\t * Returns the slide element matching the specified index.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction getSlide( x, y ) {\n\n\t\tlet horizontalSlide = getHorizontalSlides()[ x ];\n\t\tlet verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );\n\n\t\tif( verticalSlides && verticalSlides.length && typeof y === 'number' ) {\n\t\t\treturn verticalSlides ? verticalSlides[ y ] : undefined;\n\t\t}\n\n\t\treturn horizontalSlide;\n\n\t}\n\n\t/**\n\t * Returns the background element for the given slide.\n\t * All slides, even the ones with no background properties\n\t * defined, have a background element so as long as the\n\t * index is valid an element will be returned.\n\t *\n\t * @param {mixed} x Horizontal background index OR a slide\n\t * HTML element\n\t * @param {number} y Vertical background index\n\t * @return {(HTMLElement[]|*)}\n\t */\n\tfunction getSlideBackground( x, y ) {\n\n\t\tlet slide = typeof x === 'number' ? getSlide( x, y ) : x;\n\t\tif( slide ) {\n\t\t\treturn slide.slideBackgroundElement;\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\t/**\n\t * Retrieves the current state of the presentation as\n\t * an object. This state can then be restored at any\n\t * time.\n\t *\n\t * @return {{indexh: number, indexv: number, indexf: number, paused: boolean, overview: boolean}}\n\t */\n\tfunction getState() {\n\n\t\tlet indices = getIndices();\n\n\t\treturn {\n\t\t\tindexh: indices.h,\n\t\t\tindexv: indices.v,\n\t\t\tindexf: indices.f,\n\t\t\tpaused: isPaused(),\n\t\t\toverview: overview.isActive()\n\t\t};\n\n\t}\n\n\t/**\n\t * Restores the presentation to the given state.\n\t *\n\t * @param {object} state As generated by getState()\n\t * @see {@link getState} generates the parameter `state`\n\t */\n\tfunction setState( state ) {\n\n\t\tif( typeof state === 'object' ) {\n\t\t\tslide( Util.deserialize( state.indexh ), Util.deserialize( state.indexv ), Util.deserialize( state.indexf ) );\n\n\t\t\tlet pausedFlag = Util.deserialize( state.paused ),\n\t\t\t\toverviewFlag = Util.deserialize( state.overview );\n\n\t\t\tif( typeof pausedFlag === 'boolean' && pausedFlag !== isPaused() ) {\n\t\t\t\ttogglePause( pausedFlag );\n\t\t\t}\n\n\t\t\tif( typeof overviewFlag === 'boolean' && overviewFlag !== overview.isActive() ) {\n\t\t\t\toverview.toggle( overviewFlag );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Cues a new automated slide if enabled in the config.\n\t */\n\tfunction cueAutoSlide() {\n\n\t\tcancelAutoSlide();\n\n\t\tif( currentSlide && config.autoSlide !== false ) {\n\n\t\t\tlet fragment = currentSlide.querySelector( '.current-fragment' );\n\n\t\t\t// When the slide first appears there is no \"current\" fragment so\n\t\t\t// we look for a data-autoslide timing on the first fragment\n\t\t\tif( !fragment ) fragment = currentSlide.querySelector( '.fragment' );\n\n\t\t\tlet fragmentAutoSlide = fragment ? fragment.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;\n\t\t\tlet slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );\n\n\t\t\t// Pick value in the following priority order:\n\t\t\t// 1. Current fragment's data-autoslide\n\t\t\t// 2. Current slide's data-autoslide\n\t\t\t// 3. Parent slide's data-autoslide\n\t\t\t// 4. Global autoSlide setting\n\t\t\tif( fragmentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( fragmentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( slideAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( slideAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( parentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( parentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tautoSlide = config.autoSlide;\n\n\t\t\t\t// If there are media elements with data-autoplay,\n\t\t\t\t// automatically set the autoSlide duration to the\n\t\t\t\t// length of that media. Not applicable if the slide\n\t\t\t\t// is divided up into fragments.\n\t\t\t\t// playbackRate is accounted for in the duration.\n\t\t\t\tif( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {\n\t\t\t\t\tUtil.queryAll( currentSlide, 'video, audio' ).forEach( el => {\n\t\t\t\t\t\tif( el.hasAttribute( 'data-autoplay' ) ) {\n\t\t\t\t\t\t\tif( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {\n\t\t\t\t\t\t\t\tautoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Cue the next auto-slide if:\n\t\t\t// - There is an autoSlide value\n\t\t\t// - Auto-sliding isn't paused by the user\n\t\t\t// - The presentation isn't paused\n\t\t\t// - The overview isn't active\n\t\t\t// - The presentation isn't over\n\t\t\tif( autoSlide && !autoSlidePaused && !isPaused() && !overview.isActive() && ( !isLastSlide() || fragments.availableRoutes().next || config.loop === true ) ) {\n\t\t\t\tautoSlideTimeout = setTimeout( () => {\n\t\t\t\t\tif( typeof config.autoSlideMethod === 'function' ) {\n\t\t\t\t\t\tconfig.autoSlideMethod()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnavigateNext();\n\t\t\t\t\t}\n\t\t\t\t\tcueAutoSlide();\n\t\t\t\t}, autoSlide );\n\t\t\t\tautoSlideStartTime = Date.now();\n\t\t\t}\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Cancels any ongoing request to auto-slide.\n\t */\n\tfunction cancelAutoSlide() {\n\n\t\tclearTimeout( autoSlideTimeout );\n\t\tautoSlideTimeout = -1;\n\n\t}\n\n\tfunction pauseAutoSlide() {\n\n\t\tif( autoSlide && !autoSlidePaused ) {\n\t\t\tautoSlidePaused = true;\n\t\t\tdispatchEvent({ type: 'autoslidepaused' });\n\t\t\tclearTimeout( autoSlideTimeout );\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( false );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfunction resumeAutoSlide() {\n\n\t\tif( autoSlide && autoSlidePaused ) {\n\t\t\tautoSlidePaused = false;\n\t\t\tdispatchEvent({ type: 'autoslideresumed' });\n\t\t\tcueAutoSlide();\n\t\t}\n\n\t}\n\n\tfunction navigateLeft({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().left ) {\n\t\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().left ) {\n\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateRight({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().right ) {\n\t\t\t\tslide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().right ) {\n\t\t\tslide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );\n\t\t}\n\n\t}\n\n\tfunction navigateUp({skipFragments=false}={}) {\n\n\t\t// Prioritize hiding fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.prev() === false ) && availableRoutes().up ) {\n\t\t\tslide( indexh, indexv - 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateDown({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Prioritize revealing fragments\n\t\tif( ( overview.isActive() || skipFragments || fragments.next() === false ) && availableRoutes().down ) {\n\t\t\tslide( indexh, indexv + 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Navigates backwards, prioritized in the following order:\n\t * 1) Previous fragment\n\t * 2) Previous vertical slide\n\t * 3) Previous horizontal slide\n\t */\n\tfunction navigatePrev({skipFragments=false}={}) {\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.prev() === false ) {\n\t\t\tif( availableRoutes().up ) {\n\t\t\t\tnavigateUp({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Fetch the previous horizontal slide, if there is one\n\t\t\t\tlet previousSlide;\n\n\t\t\t\tif( config.rtl ) {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.future' ).pop();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpreviousSlide = Util.queryAll( dom.wrapper, HORIZONTAL_SLIDES_SELECTOR + '.past' ).pop();\n\t\t\t\t}\n\n\t\t\t\t// When going backwards and arriving on a stack we start\n\t\t\t\t// at the bottom of the stack\n\t\t\t\tif( previousSlide && previousSlide.classList.contains( 'stack' ) ) {\n\t\t\t\t\tlet v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;\n\t\t\t\t\tlet h = indexh - 1;\n\t\t\t\t\tslide( h, v );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * The reverse of #navigatePrev().\n\t */\n\tfunction navigateNext({skipFragments=false}={}) {\n\n\t\tnavigationHistory.hasNavigatedHorizontally = true;\n\t\tnavigationHistory.hasNavigatedVertically = true;\n\n\t\t// Prioritize revealing fragments\n\t\tif( skipFragments || fragments.next() === false ) {\n\n\t\t\tlet routes = availableRoutes();\n\n\t\t\t// When looping is enabled `routes.down` is always available\n\t\t\t// so we need a separate check for when we've reached the\n\t\t\t// end of a stack and should move horizontally\n\t\t\tif( routes.down && routes.right && config.loop && isLastVerticalSlide() ) {\n\t\t\t\troutes.down = false;\n\t\t\t}\n\n\t\t\tif( routes.down ) {\n\t\t\t\tnavigateDown({skipFragments});\n\t\t\t}\n\t\t\telse if( config.rtl ) {\n\t\t\t\tnavigateLeft({skipFragments});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnavigateRight({skipFragments});\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ----------------------------- EVENTS -------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t/**\n\t * Called by all event handlers that are based on user\n\t * input.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onUserInput( event ) {\n\n\t\tif( config.autoSlideStoppable ) {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Event listener for transition end on the current slide.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onTransitionEnd( event ) {\n\n\t\tif( transition === 'running' && /section/gi.test( event.target.nodeName ) ) {\n\t\t\ttransition = 'idle';\n\t\t\tdispatchEvent({\n\t\t\t\ttype: 'slidetransitionend',\n\t\t\t\tdata: { indexh, indexv, previousSlide, currentSlide }\n\t\t\t});\n\t\t}\n\n\t}\n\n\t/**\n\t * A global listener for all click events inside of the\n\t * .slides container.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onSlidesClicked( event ) {\n\n\t\tconst anchor = Util.closest( event.target, 'a[href^=\"#\"]' );\n\n\t\t// If a hash link is clicked, we find the target slide\n\t\t// and navigate to it. We previously relied on 'hashchange'\n\t\t// for links like these but that prevented media with\n\t\t// audio tracks from playing in mobile browsers since it\n\t\t// wasn't considered a direct interaction with the document.\n\t\tif( anchor ) {\n\t\t\tconst hash = anchor.getAttribute( 'href' );\n\t\t\tconst indices = location.getIndicesFromHash( hash );\n\n\t\t\tif( indices ) {\n\t\t\t\tReveal.slide( indices.h, indices.v, indices.f );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the window level 'resize' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onWindowResize( event ) {\n\n\t\tlayout();\n\n\t}\n\n\t/**\n\t * Handle for the window level 'visibilitychange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onPageVisibilityChange( event ) {\n\n\t\t// If, after clicking a link or similar and we're coming back,\n\t\t// focus the document.body to ensure we can use keyboard shortcuts\n\t\tif( document.hidden === false && document.activeElement !== document.body ) {\n\t\t\t// Not all elements support .blur() - SVGs among them.\n\t\t\tif( typeof document.activeElement.blur === 'function' ) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\t\t\tdocument.body.focus();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles clicks on links that are set to preview in the\n\t * iframe overlay.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPreviewLinkClicked( event ) {\n\n\t\tif( event.currentTarget && event.currentTarget.hasAttribute( 'href' ) ) {\n\t\t\tlet url = event.currentTarget.getAttribute( 'href' );\n\t\t\tif( url ) {\n\t\t\t\tshowPreview( url );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles click on the auto-sliding controls element.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onAutoSlidePlayerClick( event ) {\n\n\t\t// Replay\n\t\tif( isLastSlide() && config.loop === false ) {\n\t\t\tslide( 0, 0 );\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Resume\n\t\telse if( autoSlidePaused ) {\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Pause\n\t\telse {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ------------------------------- API --------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t// The public reveal.js API\n\tconst API = {\n\t\tVERSION,\n\n\t\tinitialize,\n\t\tconfigure,\n\n\t\tsync,\n\t\tsyncSlide,\n\t\tsyncFragments: fragments.sync.bind( fragments ),\n\n\t\t// Navigation methods\n\t\tslide,\n\t\tleft: navigateLeft,\n\t\tright: navigateRight,\n\t\tup: navigateUp,\n\t\tdown: navigateDown,\n\t\tprev: navigatePrev,\n\t\tnext: navigateNext,\n\n\t\t// Navigation aliases\n\t\tnavigateLeft, navigateRight, navigateUp, navigateDown, navigatePrev, navigateNext,\n\n\t\t// Fragment methods\n\t\tnavigateFragment: fragments.goto.bind( fragments ),\n\t\tprevFragment: fragments.prev.bind( fragments ),\n\t\tnextFragment: fragments.next.bind( fragments ),\n\n\t\t// Event binding\n\t\ton,\n\t\toff,\n\n\t\t// Legacy event binding methods left in for backwards compatibility\n\t\taddEventListener: on,\n\t\tremoveEventListener: off,\n\n\t\t// Forces an update in slide layout\n\t\tlayout,\n\n\t\t// Randomizes the order of slides\n\t\tshuffle,\n\n\t\t// Returns an object with the available routes as booleans (left/right/top/bottom)\n\t\tavailableRoutes,\n\n\t\t// Returns an object with the available fragments as booleans (prev/next)\n\t\tavailableFragments: fragments.availableRoutes.bind( fragments ),\n\n\t\t// Toggles a help overlay with keyboard shortcuts\n\t\ttoggleHelp,\n\n\t\t// Toggles the overview mode on/off\n\t\ttoggleOverview: overview.toggle.bind( overview ),\n\n\t\t// Toggles the \"black screen\" mode on/off\n\t\ttogglePause,\n\n\t\t// Toggles the auto slide mode on/off\n\t\ttoggleAutoSlide,\n\n\t\t// Slide navigation checks\n\t\tisFirstSlide,\n\t\tisLastSlide,\n\t\tisLastVerticalSlide,\n\t\tisVerticalSlide,\n\n\t\t// State checks\n\t\tisPaused,\n\t\tisAutoSliding,\n\t\tisSpeakerNotes: notes.isSpeakerNotesWindow.bind( notes ),\n\t\tisOverview: overview.isActive.bind( overview ),\n\t\tisFocused: focus.isFocused.bind( focus ),\n\t\tisPrintingPDF: print.isPrintingPDF.bind( print ),\n\n\t\t// Checks if reveal.js has been loaded and is ready for use\n\t\tisReady: () => ready,\n\n\t\t// Slide preloading\n\t\tloadSlide: slideContent.load.bind( slideContent ),\n\t\tunloadSlide: slideContent.unload.bind( slideContent ),\n\n\t\t// Preview management\n\t\tshowPreview,\n\t\thidePreview: closeOverlay,\n\n\t\t// Adds or removes all internal event listeners\n\t\taddEventListeners,\n\t\tremoveEventListeners,\n\t\tdispatchEvent,\n\n\t\t// Facility for persisting and restoring the presentation state\n\t\tgetState,\n\t\tsetState,\n\n\t\t// Presentation progress on range of 0-1\n\t\tgetProgress,\n\n\t\t// Returns the indices of the current, or specified, slide\n\t\tgetIndices,\n\n\t\t// Returns an Array of key:value maps of the attributes of each\n\t\t// slide in the deck\n\t\tgetSlidesAttributes,\n\n\t\t// Returns the number of slides that we have passed\n\t\tgetSlidePastCount,\n\n\t\t// Returns the total number of slides\n\t\tgetTotalSlides,\n\n\t\t// Returns the slide element at the specified index\n\t\tgetSlide,\n\n\t\t// Returns the previous slide element, may be null\n\t\tgetPreviousSlide: () => previousSlide,\n\n\t\t// Returns the current slide element\n\t\tgetCurrentSlide: () => currentSlide,\n\n\t\t// Returns the slide background element at the specified index\n\t\tgetSlideBackground,\n\n\t\t// Returns the speaker notes string for a slide, or null\n\t\tgetSlideNotes: notes.getSlideNotes.bind( notes ),\n\n\t\t// Returns an Array of all slides\n\t\tgetSlides,\n\n\t\t// Returns an array with all horizontal/vertical slides in the deck\n\t\tgetHorizontalSlides,\n\t\tgetVerticalSlides,\n\n\t\t// Checks if the presentation contains two or more horizontal\n\t\t// and vertical slides\n\t\thasHorizontalSlides,\n\t\thasVerticalSlides,\n\n\t\t// Checks if the deck has navigated on either axis at least once\n\t\thasNavigatedHorizontally: () => navigationHistory.hasNavigatedHorizontally,\n\t\thasNavigatedVertically: () => navigationHistory.hasNavigatedVertically,\n\n\t\t// Adds/removes a custom key binding\n\t\taddKeyBinding: keyboard.addKeyBinding.bind( keyboard ),\n\t\tremoveKeyBinding: keyboard.removeKeyBinding.bind( keyboard ),\n\n\t\t// Programmatically triggers a keyboard event\n\t\ttriggerKey: keyboard.triggerKey.bind( keyboard ),\n\n\t\t// Registers a new shortcut to include in the help overlay\n\t\tregisterKeyboardShortcut: keyboard.registerKeyboardShortcut.bind( keyboard ),\n\n\t\tgetComputedSlideSize,\n\n\t\t// Returns the current scale of the presentation content\n\t\tgetScale: () => scale,\n\n\t\t// Returns the current configuration object\n\t\tgetConfig: () => config,\n\n\t\t// Helper method, retrieves query string as a key:value map\n\t\tgetQueryHash: Util.getQueryHash,\n\n\t\t// Returns reveal.js DOM elements\n\t\tgetRevealElement: () => revealElement,\n\t\tgetSlidesElement: () => dom.slides,\n\t\tgetViewportElement: () => dom.viewport,\n\t\tgetBackgroundsElement: () => backgrounds.element,\n\n\t\t// API for registering and retrieving plugins\n\t\tregisterPlugin: plugins.registerPlugin.bind( plugins ),\n\t\thasPlugin: plugins.hasPlugin.bind( plugins ),\n\t\tgetPlugin: plugins.getPlugin.bind( plugins ),\n\t\tgetPlugins: plugins.getRegisteredPlugins.bind( plugins )\n\n\t};\n\n\t// Our internal API which controllers have access to\n\tUtil.extend( Reveal, {\n\t\t...API,\n\n\t\t// Methods for announcing content to screen readers\n\t\tannounceStatus,\n\t\tgetStatusText,\n\n\t\t// Controllers\n\t\tprint,\n\t\tfocus,\n\t\tprogress,\n\t\tcontrols,\n\t\tlocation,\n\t\toverview,\n\t\tfragments,\n\t\tslideContent,\n\t\tslideNumber,\n\n\t\tonUserInput,\n\t\tcloseOverlay,\n\t\tupdateSlidesVisibility,\n\t\tlayoutSlideContents,\n\t\ttransformSlides,\n\t\tcueAutoSlide,\n\t\tcancelAutoSlide\n\t} );\n\n\treturn API;\n\n};\n","import Deck, { VERSION } from './reveal.js'\n\n/**\n * Expose the Reveal class to the window. To create a\n * new instance:\n * let deck = new Reveal( document.querySelector( '.reveal' ), {\n * controls: false\n * } );\n * deck.initialize().then(() => {\n * // reveal.js is ready\n * });\n */\nlet Reveal = Deck;\n\n\n/**\n * The below is a thin shell that mimics the pre 4.0\n * reveal.js API and ensures backwards compatibility.\n * This API only allows for one Reveal instance per\n * page, whereas the new API above lets you run many\n * presentations on the same page.\n *\n * Reveal.initialize( { controls: false } ).then(() => {\n * // reveal.js is ready\n * });\n */\n\nlet enqueuedAPICalls = [];\n\nReveal.initialize = options => {\n\n\t// Create our singleton reveal.js instance\n\tObject.assign( Reveal, new Deck( document.querySelector( '.reveal' ), options ) );\n\n\t// Invoke any enqueued API calls\n\tenqueuedAPICalls.map( method => method( Reveal ) );\n\n\treturn Reveal.initialize();\n\n}\n\n/**\n * The pre 4.0 API let you add event listener before\n * initializing. We maintain the same behavior by\n * queuing up premature API calls and invoking all\n * of them when Reveal.initialize is called.\n */\n[ 'configure', 'on', 'off', 'addEventListener', 'removeEventListener', 'registerPlugin' ].forEach( method => {\n\tReveal[method] = ( ...args ) => {\n\t\tenqueuedAPICalls.push( deck => deck[method].call( null, ...args ) );\n\t}\n} );\n\nReveal.isReady = () => false;\n\nReveal.VERSION = VERSION;\n\nexport default Reveal;"],"names":["POST_MESSAGE_METHOD_BLACKLIST","FRAGMENT_STYLE_REGEX","extend","a","b","i","queryAll","el","selector","Array","from","querySelectorAll","toggleClass","className","value","classList","add","remove","deserialize","match","parseFloat","transformElement","element","transform","style","matches","target","matchesMethod","matchesSelector","msMatchesSelector","call","closest","parentNode","createSingletonNode","container","tagname","classname","innerHTML","nodes","length","testNode","node","document","createElement","appendChild","createStyleSheet","tag","type","styleSheet","cssText","createTextNode","head","getQueryHash","query","location","search","replace","split","shift","pop","unescape","getRemainingHeight","height","newHeight","oldHeight","offsetHeight","removeProperty","UA","navigator","userAgent","testElement","isMobile","test","platform","maxTouchPoints","isChrome","isAndroid","supportsZoom","Object","defineProperty","fitty_module","_extends","assign","arguments","source","key","prototype","hasOwnProperty","w","toArray","nl","slice","DrawState","fitties","redrawFrame","requestRedraw","cancelAnimationFrame","requestAnimationFrame","redraw","filter","f","dirty","active","redrawAll","forEach","styleComputed","computeStyle","shouldPreStyle","applyStyle","fittiesToRedraw","shouldRedraw","calculateStyles","markAsClean","dispatchFitEvent","availableWidth","clientWidth","currentWidth","scrollWidth","previousFontSize","currentFontSize","Math","min","max","minSize","maxSize","whiteSpace","multiLine","getComputedStyle","getPropertyValue","display","preStyle","preStyleTestCompleted","fontSize","dispatchEvent","CustomEvent","detail","oldValue","newValue","scaleFactor","fit","destroy","_","observeMutations","observer","disconnect","originalStyle","subscribe","unsubscribe","MutationObserver","observe","defaultOptions","subtree","childList","characterData","resizeDebounce","onWindowResized","clearTimeout","setTimeout","fitty","observeWindowDelay","events","set","enabled","method","e","observeWindow","fitAll","fittyCreate","elements","options","fittyOptions","publicFitties","map","newbie","push","init","unfreeze","freeze","undefined","window","SlideContent","constructor","Reveal","startEmbeddedIframe","this","bind","shouldPreload","preload","getConfig","preloadIframes","hasAttribute","load","slide","tagName","setAttribute","getAttribute","removeAttribute","media","sources","background","slideBackgroundElement","backgroundContent","slideBackgroundContentElement","backgroundIframe","backgroundImage","backgroundVideo","backgroundVideoLoop","backgroundVideoMuted","trim","encodeURI","join","isSpeakerNotes","video","muted","excludeIframes","iframe","width","maxHeight","maxWidth","backgroundIframeElement","querySelector","layout","unload","getSlideBackground","formatEmbeddedContent","_appendParamToIframeSource","sourceAttribute","sourceURL","param","getSlidesElement","src","indexOf","startEmbeddedContent","autoplay","autoPlayMedia","play","readyState","startEmbeddedMedia","promise","catch","controls","addEventListener","removeEventListener","event","isAttachedToDOM","isVisible","currentTime","contentWindow","postMessage","stopEmbeddedContent","unloadIframes","pause","SlideNumber","render","getRevealElement","configure","config","oldConfig","slideNumberDisplay","slideNumber","isPrintingPDF","showSlideNumber","update","getSlideNumber","getCurrentSlide","format","getHorizontalSlides","horizontalOffset","dataset","visibility","getSlidePastCount","getTotalSlides","indices","getIndices","h","sep","isVerticalSlide","v","url","getHash","formatNumber","delimiter","isNaN","colorToRgb","color","hex3","r","parseInt","charAt","g","hex6","substr","rgb","rgba","Backgrounds","create","slideh","backgroundStack","createBackground","slidev","parallaxBackgroundImage","backgroundSize","parallaxBackgroundSize","backgroundRepeat","parallaxBackgroundRepeat","backgroundPosition","parallaxBackgroundPosition","contentElement","sync","data","backgroundColor","backgroundTransition","backgroundOpacity","dataPreload","opacity","contrastColor","computedBackgroundStyle","includeAll","currentSlide","currentBackground","horizontalPast","rtl","horizontalFuture","childNodes","backgroundh","backgroundv","previousBackground","slideContent","currentBackgroundContent","backgroundImageURL","previousBackgroundHash","currentBackgroundHash","classToBubble","contains","updateParallax","backgroundWidth","backgroundHeight","horizontalSlides","verticalSlides","getVerticalSlides","horizontalOffsetMultiplier","slideWidth","offsetWidth","horizontalSlideCount","parallaxBackgroundHorizontal","verticalOffsetMultiplier","verticalOffset","slideHeight","verticalSlideCount","parallaxBackgroundVertical","autoAnimateCounter","AutoAnimate","run","fromSlide","toSlide","reset","allSlides","getSlides","toSlideIndex","fromSlideIndex","autoAnimateStyleSheet","animationOptions","getAutoAnimateOptions","autoAnimate","slideDirection","css","getAutoAnimatableElements","autoAnimateElements","to","autoAnimateUnmatched","defaultUnmatchedDuration","duration","defaultUnmatchedDelay","getUnmatchedAutoAnimateElements","unmatchedElement","unmatchedOptions","id","delay","autoAnimateTarget","fontWeight","sheet","removeChild","elementOptions","easing","fromProps","getAutoAnimatableProperties","toProps","styles","translate","scale","presentationScale","getScale","delta","x","y","scaleX","scaleY","round","propertyName","toValue","fromValue","explicitValue","toStyleProperties","keys","inheritedOptions","autoAnimateEasing","autoAnimateDuration","autoAnimatedParent","autoAnimateDelay","direction","properties","bounds","measure","center","getBoundingClientRect","offsetLeft","offsetTop","computedStyles","autoAnimateStyles","property","pairs","autoAnimateMatcher","getAutoAnimatePairs","reserved","pair","index","textNodes","findAutoAnimateMatches","nodeName","innerText","textContent","getLocalBoundingBox","fromScope","toScope","serializer","fromMatches","toMatches","fromElement","pimaryIndex","secondaryIndex","rootElement","children","reduce","result","containsAnimatedElements","concat","Fragments","fragments","disable","enable","availableRoutes","hiddenFragments","prev","next","sort","grouped","ordered","unordered","sorted","fragment","group","sortAll","horizontalSlide","verticalSlide","changedFragments","shown","hidden","maxIndex","currentFragment","wasVisible","announceStatus","getStatusText","bubbles","goto","offset","lastVisibleFragment","progress","fragmentInURL","writeURL","Overview","onSlideClicked","activate","overview","isActive","cancelAutoSlide","getBackgroundsElement","margin","slideSize","getComputedSlideSize","overviewSlideWidth","overviewSlideHeight","updateSlidesVisibility","hslide","vslide","hbackground","vbackground","vmin","innerWidth","innerHeight","transformSlides","deactivate","cueAutoSlide","toggle","override","preventDefault","Keyboard","shortcuts","bindings","onDocumentKeyDown","onDocumentKeyPress","navigationMode","unbind","addKeyBinding","binding","callback","keyCode","description","removeKeyBinding","triggerKey","registerKeyboardShortcut","getShortcuts","getBindings","shiftKey","charCode","toggleHelp","keyboardCondition","isFocused","autoSlideWasPaused","isAutoSliding","onUserInput","activeElementIsCE","activeElement","isContentEditable","activeElementIsInput","activeElementIsNotes","unusedModifier","altKey","ctrlKey","metaKey","resumeKeyCodes","keyboard","isPaused","useLinearMode","hasHorizontalSlides","hasVerticalSlides","triggered","apply","action","skipFragments","left","right","up","Number","MAX_VALUE","down","togglePause","requestMethod","documentElement","requestFullscreen","webkitRequestFullscreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","enterFullscreen","embedded","getViewportElement","autoSlideStoppable","toggleAutoSlide","closeOverlay","Location","writeURLTimeout","onWindowHashChange","getIndicesFromHash","hash","name","bits","hashIndexBase","hashOneBasedIndex","getElementById","decodeURIComponent","error","readURL","currentIndices","newIndices","history","replaceState","pathname","s","encodeURIComponent","Controls","onNavigateLeftClicked","onNavigateRightClicked","onNavigateUpClicked","onNavigateDownClicked","onNavigatePrevClicked","onNavigateNextClicked","revealElement","controlsLeft","controlsRight","controlsUp","controlsDown","controlsPrev","controlsNext","controlsRightArrow","controlsLeftArrow","controlsDownArrow","controlsLayout","controlsBackArrows","pointerEvents","eventName","routes","fragmentsRoutes","controlsTutorial","hasNavigatedVertically","hasNavigatedHorizontally","Progress","onProgressClicked","bar","getProgress","getMaxWidth","slides","slidesTotal","slideIndex","floor","clientX","targetIndices","Pointer","lastMouseWheelStep","cursorHidden","cursorInactiveTimeout","onDocumentCursorActive","onDocumentMouseScroll","mouseWheel","hideInactiveCursor","showCursor","cursor","hideCursor","hideCursorTime","Date","now","wheelDelta","loadScript","script","async","defer","onload","onreadystatechange","onerror","err","Error","insertBefore","lastChild","Plugins","reveal","state","registeredPlugins","asyncDependencies","plugins","dependencies","registerPlugin","Promise","resolve","scripts","scriptsToLoad","condition","scriptLoadedCallback","initPlugins","then","console","warn","pluginValues","values","pluginsToInitialize","loadAsync","initNextPlugin","afterPlugInitialized","plugin","hasPlugin","getPlugin","getRegisteredPlugins","Print","doingSlideNumbers","pageWidth","pageHeight","body","layoutSlideContents","slideScrollHeights","scrollHeight","pages","pageContainer","top","contentHeight","numberOfPages","ceil","pdfMaxPagesPerSlide","page","pdfPageHeightOffset","showNotes","notes","getSlideNotes","notesSpacing","notesLayout","notesElement","bottom","numberElement","pdfSeparateFragments","fragmentGroups","previousFragmentStep","clonedPage","cloneNode","Touch","touchStartX","touchStartY","touchStartCount","touchCaptured","onPointerDown","onPointerMove","onPointerUp","onTouchStart","onTouchMove","onTouchEnd","msPointerEnabled","isSwipePrevented","touches","clientY","currentX","currentY","includeFragments","deltaX","deltaY","abs","pointerType","MSPOINTER_TYPE_TOUCH","Focus","onRevealPointerDown","onDocumentPointerDown","blur","focus","Notes","print","updateVisibility","hasNotes","isSpeakerNotesWindow","Playback","progressCheck","diameter","diameter2","thickness","playing","progressOffset","canvas","context","getContext","setPlaying","wasPlaying","animate","progressBefore","radius","iconSize","endAngle","PI","startAngle","save","clearRect","beginPath","arc","fillStyle","fill","lineWidth","strokeStyle","stroke","fillRect","moveTo","lineTo","restore","on","listener","off","minScale","maxScale","respondToHashChanges","disableLayout","touch","loop","shuffle","help","showHiddenSlides","autoSlide","autoSlideMethod","defaultTiming","previewLinks","postMessageEvents","focusBodyOnPageVisibilityChange","transition","transitionSpeed","POSITIVE_INFINITY","viewDistance","mobileViewDistance","indexh","indexv","previousSlide","autoSlidePlayer","ready","navigationHistory","slidesTransform","dom","autoSlideTimeout","autoSlideStartTime","autoSlidePaused","backgrounds","pointer","initialize","initOptions","wrapper","defaultConfig","Util","setViewport","start","viewport","removeHiddenSlides","setupDOM","setupPostMessage","setupScrollPrevention","resetVerticalSlides","removeEventListeners","setupPDF","Device","pauseOverlay","statusElement","createStatusElement","position","overflow","clip","text","nodeType","isAriaHidden","isDisplayHidden","child","setInterval","scrollTop","scrollLeft","JSON","parse","args","dispatchPostMessage","isReady","numberOfSlides","setProperty","resume","enablePreviewLinks","disablePreviewLinks","onAutoSlidePlayerClick","addEventListeners","onWindowResize","onSlidesClicked","onTransitionEnd","onPageVisibilityChange","useCapture","transforms","createEvent","initEvent","parent","self","message","namespace","getState","stringify","onPreviewLinkClicked","showPreview","overlay","showHelp","html","size","oldScale","presentationWidth","presentationHeight","zoom","devicePixelRatio","len","remainingHeight","nw","naturalWidth","videoWidth","nh","naturalHeight","videoHeight","es","setPreviousVerticalIndex","stack","getPreviousVerticalIndex","attributeName","isLastVerticalSlide","nextElementSibling","isFirstSlide","isLastSlide","wasPaused","resumeAutoSlide","pauseAutoSlide","origin","defaultPrevented","stateBefore","indexhBefore","indexvBefore","updateSlides","slideChanged","currentHorizontalSlide","currentVerticalSlides","autoAnimateTransition","getVerticalStacks","stateLoop","j","splice","syncSlide","beforeSlide","random","slidesLength","printMode","reverse","wasPresent","slideState","distanceX","distanceY","horizontalSlidesLength","verticalSlidesLength","oy","fragmentRoutes","pastCount","mainLoop","totalCount","allFragments","fragmentWeight","isVertical","SLIDES_SELECTOR","HORIZONTAL_SLIDES_SELECTOR","getSlidesAttributes","attributes","attribute","getSlide","indexf","paused","setState","pausedFlag","overviewFlag","fragmentAutoSlide","parentAutoSlide","slideAutoSlide","playbackRate","navigateNext","navigateLeft","navigateRight","navigateUp","navigateDown","navigatePrev","anchor","currentTarget","API","VERSION","syncFragments","navigateFragment","prevFragment","nextFragment","availableFragments","toggleOverview","isOverview","loadSlide","unloadSlide","hidePreview","getPreviousSlide","getPlugins","Deck","enqueuedAPICalls","deck"],"mappings":"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"}
\ No newline at end of file
diff --git a/a40555d8/site_libs/revealjs/dist/reveal.js b/a40555d8/site_libs/revealjs/dist/reveal.js
new file mode 100644
index 0000000..658fa99
--- /dev/null
+++ b/a40555d8/site_libs/revealjs/dist/reveal.js
@@ -0,0 +1,9 @@
+/*!
+* reveal.js 4.2.0
+* https://revealjs.com
+* MIT licensed
+*
+* Copyright (C) 2011-2021 Hakim El Hattab, https://hakim.se
+*/
+!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).Reveal=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=function(e){return e&&e.Math==Math&&e},n=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i={},r=function(e){try{return!!e()}catch(e){return!0}},a=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={},s={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,c=l&&!s.call({1:2},1);o.f=c?function(e){var t=l(this,e);return!!t&&t.enumerable}:s;var u=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},d={}.toString,h=function(e){return d.call(e).slice(8,-1)},f=h,v="".split,g=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==f(e)?v.call(e,""):Object(e)}:Object,p=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},m=g,y=p,b=function(e){return m(y(e))},w=function(e){return"object"==typeof e?null!==e:"function"==typeof e},S=w,E=function(e,t){if(!S(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!S(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!S(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!S(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")},k=p,A=function(e){return Object(k(e))},R=A,x={}.hasOwnProperty,L=function(e,t){return x.call(R(e),t)},P=w,C=n.document,N=P(C)&&P(C.createElement),I=function(e){return N?C.createElement(e):{}},M=I,T=!a&&!r((function(){return 7!=Object.defineProperty(M("div"),"a",{get:function(){return 7}}).a})),O=a,D=o,j=u,F=b,z=E,H=L,U=T,B=Object.getOwnPropertyDescriptor;i.f=O?B:function(e,t){if(e=F(e),t=z(t,!0),U)try{return B(e,t)}catch(e){}if(H(e,t))return j(!D.f.call(e,t),e[t])};var _={},q=w,W=function(e){if(!q(e))throw TypeError(String(e)+" is not an object");return e},V=a,K=T,Y=W,$=E,X=Object.defineProperty;_.f=V?X:function(e,t,n){if(Y(e),t=$(t,!0),Y(n),K)try{return X(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};var G=_,J=u,Q=a?function(e,t,n){return G.f(e,t,J(1,n))}:function(e,t,n){return e[t]=n,e},Z={exports:{}},ee=n,te=Q,ne=function(e,t){try{te(ee,e,t)}catch(n){ee[e]=t}return t},ie=ne,re="__core-js_shared__",ae=n[re]||ie(re,{}),oe=ae,se=Function.toString;"function"!=typeof oe.inspectSource&&(oe.inspectSource=function(e){return se.call(e)});var le=oe.inspectSource,ce=le,ue=n.WeakMap,de="function"==typeof ue&&/native code/.test(ce(ue)),he={exports:{}},fe=ae;(he.exports=function(e,t){return fe[e]||(fe[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"Β© 2021 Denis Pushkarev (zloirock.ru)"});var ve,ge,pe,me=0,ye=Math.random(),be=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++me+ye).toString(36)},we=he.exports,Se=be,Ee=we("keys"),ke=function(e){return Ee[e]||(Ee[e]=Se(e))},Ae={},Re=de,xe=w,Le=Q,Pe=L,Ce=ae,Ne=ke,Ie=Ae,Me="Object already initialized",Te=n.WeakMap;if(Re||Ce.state){var Oe=Ce.state||(Ce.state=new Te),De=Oe.get,je=Oe.has,Fe=Oe.set;ve=function(e,t){if(je.call(Oe,e))throw new TypeError(Me);return t.facade=e,Fe.call(Oe,e,t),t},ge=function(e){return De.call(Oe,e)||{}},pe=function(e){return je.call(Oe,e)}}else{var ze=Ne("state");Ie[ze]=!0,ve=function(e,t){if(Pe(e,ze))throw new TypeError(Me);return t.facade=e,Le(e,ze,t),t},ge=function(e){return Pe(e,ze)?e[ze]:{}},pe=function(e){return Pe(e,ze)}}var He={set:ve,get:ge,has:pe,enforce:function(e){return pe(e)?ge(e):ve(e,{})},getterFor:function(e){return function(t){var n;if(!xe(t)||(n=ge(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Ue=n,Be=Q,_e=L,qe=ne,We=le,Ve=He.get,Ke=He.enforce,Ye=String(String).split("String");(Z.exports=function(e,t,n,i){var r,a=!!i&&!!i.unsafe,o=!!i&&!!i.enumerable,s=!!i&&!!i.noTargetGet;"function"==typeof n&&("string"!=typeof t||_e(n,"name")||Be(n,"name",t),(r=Ke(n)).source||(r.source=Ye.join("string"==typeof t?t:""))),e!==Ue?(a?!s&&e[t]&&(o=!0):delete e[t],o?e[t]=n:Be(e,t,n)):o?e[t]=n:qe(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ve(this).source||We(this)}));var $e=n,Xe=$e,Ge=n,Je=function(e){return"function"==typeof e?e:void 0},Qe=function(e,t){return arguments.length<2?Je(Xe[e])||Je(Ge[e]):Xe[e]&&Xe[e][t]||Ge[e]&&Ge[e][t]},Ze={},et=Math.ceil,tt=Math.floor,nt=function(e){return isNaN(e=+e)?0:(e>0?tt:et)(e)},it=nt,rt=Math.min,at=function(e){return e>0?rt(it(e),9007199254740991):0},ot=nt,st=Math.max,lt=Math.min,ct=function(e,t){var n=ot(e);return n<0?st(n+t,0):lt(n,t)},ut=b,dt=at,ht=ct,ft=function(e){return function(t,n,i){var r,a=ut(t),o=dt(a.length),s=ht(i,o);if(e&&n!=n){for(;o>s;)if((r=a[s++])!=r)return!0}else for(;o>s;s++)if((e||s in a)&&a[s]===n)return e||s||0;return!e&&-1}},vt={includes:ft(!0),indexOf:ft(!1)},gt=L,pt=b,mt=vt.indexOf,yt=Ae,bt=function(e,t){var n,i=pt(e),r=0,a=[];for(n in i)!gt(yt,n)&>(i,n)&&a.push(n);for(;t.length>r;)gt(i,n=t[r++])&&(~mt(a,n)||a.push(n));return a},wt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],St=bt,Et=wt.concat("length","prototype");Ze.f=Object.getOwnPropertyNames||function(e){return St(e,Et)};var kt={};kt.f=Object.getOwnPropertySymbols;var At=Ze,Rt=kt,xt=W,Lt=Qe("Reflect","ownKeys")||function(e){var t=At.f(xt(e)),n=Rt.f;return n?t.concat(n(e)):t},Pt=L,Ct=Lt,Nt=i,It=_,Mt=function(e,t){for(var n=Ct(t),i=It.f,r=Nt.f,a=0;a
r;)for(var s,l=an(arguments[r++]),c=a?en(l).concat(a(l)):en(l),u=c.length,d=0;u>d;)s=c[d++],Qt&&!o.call(l,s)||(n[s]=l[s]);return n}:on;$t({target:"Object",stat:!0,forced:Object.assign!==ln},{assign:ln});var cn,un,dn=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},hn=dn,fn=function(e,t,n){if(hn(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,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}},vn=h,gn=Array.isArray||function(e){return"Array"==vn(e)},pn=Qe("navigator","userAgent")||"",mn=pn,yn=n.process,bn=yn&&yn.versions,wn=bn&&bn.v8;wn?un=(cn=wn.split("."))[0]<4?1:cn[0]+cn[1]:mn&&(!(cn=mn.match(/Edge\/(\d+)/))||cn[1]>=74)&&(cn=mn.match(/Chrome\/(\d+)/))&&(un=cn[1]);var Sn=un&&+un,En=Sn,kn=r,An=!!Object.getOwnPropertySymbols&&!kn((function(){return!String(Symbol())||!Symbol.sham&&En&&En<41})),Rn=An&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,xn=n,Ln=he.exports,Pn=L,Cn=be,Nn=An,In=Rn,Mn=Ln("wks"),Tn=xn.Symbol,On=In?Tn:Tn&&Tn.withoutSetter||Cn,Dn=function(e){return Pn(Mn,e)&&(Nn||"string"==typeof Mn[e])||(Nn&&Pn(Tn,e)?Mn[e]=Tn[e]:Mn[e]=On("Symbol."+e)),Mn[e]},jn=w,Fn=gn,zn=Dn("species"),Hn=function(e,t){var n;return Fn(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Fn(n.prototype)?jn(n)&&null===(n=n[zn])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Un=fn,Bn=g,_n=A,qn=at,Wn=Hn,Vn=[].push,Kn=function(e){var t=1==e,n=2==e,i=3==e,r=4==e,a=6==e,o=7==e,s=5==e||a;return function(l,c,u,d){for(var h,f,v=_n(l),g=Bn(v),p=Un(c,u,3),m=qn(g.length),y=0,b=d||Wn,w=t?b(l,m):n||o?b(l,0):void 0;m>y;y++)if((s||y in g)&&(f=p(h=g[y],y,v),e))if(t)w[y]=f;else if(f)switch(e){case 3:return!0;case 5:return h;case 6:return y;case 2:Vn.call(w,h)}else switch(e){case 4:return!1;case 7:Vn.call(w,h)}return a?-1:i||r?r:w}},Yn={forEach:Kn(0),map:Kn(1),filter:Kn(2),some:Kn(3),every:Kn(4),find:Kn(5),findIndex:Kn(6),filterOut:Kn(7)},$n=r,Xn=Sn,Gn=Dn("species"),Jn=function(e){return Xn>=51||!$n((function(){var t=[];return(t.constructor={})[Gn]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Qn=Yn.map;$t({target:"Array",proto:!0,forced:!Jn("map")},{map:function(e){return Qn(this,e,arguments.length>1?arguments[1]:void 0)}});var Zn=E,ei=_,ti=u,ni=function(e,t,n){var i=Zn(t);i in e?ei.f(e,i,ti(0,n)):e[i]=n},ii=$t,ri=r,ai=gn,oi=w,si=A,li=at,ci=ni,ui=Hn,di=Jn,hi=Sn,fi=Dn("isConcatSpreadable"),vi=9007199254740991,gi="Maximum allowed index exceeded",pi=hi>=51||!ri((function(){var e=[];return e[fi]=!1,e.concat()[0]!==e})),mi=di("concat"),yi=function(e){if(!oi(e))return!1;var t=e[fi];return void 0!==t?!!t:ai(e)};function bi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function wi(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,i=new Array(t);nvi)throw TypeError(gi);for(n=0;n=vi)throw TypeError(gi);ci(s,l++,a)}return s.length=l,s}});var Ci={};Ci[Dn("toStringTag")]="z";var Ni="[object z]"===String(Ci),Ii=Ni,Mi=h,Ti=Dn("toStringTag"),Oi="Arguments"==Mi(function(){return arguments}()),Di=Ii?Mi:function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),Ti))?n:Oi?Mi(t):"Object"==(i=Mi(t))&&"function"==typeof t.callee?"Arguments":i},ji=Di,Fi=Ni?{}.toString:function(){return"[object "+ji(this)+"]"},zi=Ni,Hi=Z.exports,Ui=Fi;zi||Hi(Object.prototype,"toString",Ui,{unsafe:!0});var Bi=n.Promise,_i=Z.exports,qi=w,Wi=W,Vi=function(e){if(!qi(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},Ki=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,i){return Wi(n),Vi(i),t?e.call(n,i):n.__proto__=i,n}}():void 0),Yi=_.f,$i=L,Xi=Dn("toStringTag"),Gi=function(e,t,n){e&&!$i(e=n?e:e.prototype,Xi)&&Yi(e,Xi,{configurable:!0,value:t})},Ji=Qe,Qi=_,Zi=a,er=Dn("species"),tr={},nr=tr,ir=Dn("iterator"),rr=Array.prototype,ar=function(e){return void 0!==e&&(nr.Array===e||rr[ir]===e)},or=Di,sr=tr,lr=Dn("iterator"),cr=function(e){if(null!=e)return e[lr]||e["@@iterator"]||sr[or(e)]},ur=W,dr=function(e){var t=e.return;if(void 0!==t)return ur(t.call(e)).value},hr=W,fr=ar,vr=at,gr=fn,pr=cr,mr=dr,yr=function(e,t){this.stopped=e,this.result=t},br=Dn("iterator"),wr=!1;try{var Sr=0,Er={next:function(){return{done:!!Sr++}},return:function(){wr=!0}};Er[br]=function(){return this},Array.from(Er,(function(){throw 2}))}catch(e){}var kr,Ar,Rr,xr=function(e,t){if(!t&&!wr)return!1;var n=!1;try{var i={};i[br]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(e){}return n},Lr=W,Pr=dn,Cr=Dn("species"),Nr=function(e,t){var n,i=Lr(e).constructor;return void 0===i||null==(n=Lr(i)[Cr])?t:Pr(n)},Ir=Qe("document","documentElement"),Mr=/(?:iphone|ipod|ipad).*applewebkit/i.test(pn),Tr="process"==h(n.process),Or=n,Dr=r,jr=fn,Fr=Ir,zr=I,Hr=Mr,Ur=Tr,Br=Or.location,_r=Or.setImmediate,qr=Or.clearImmediate,Wr=Or.process,Vr=Or.MessageChannel,Kr=Or.Dispatch,Yr=0,$r={},Xr="onreadystatechange",Gr=function(e){if($r.hasOwnProperty(e)){var t=$r[e];delete $r[e],t()}},Jr=function(e){return function(){Gr(e)}},Qr=function(e){Gr(e.data)},Zr=function(e){Or.postMessage(e+"",Br.protocol+"//"+Br.host)};_r&&qr||(_r=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return $r[++Yr]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},kr(Yr),Yr},qr=function(e){delete $r[e]},Ur?kr=function(e){Wr.nextTick(Jr(e))}:Kr&&Kr.now?kr=function(e){Kr.now(Jr(e))}:Vr&&!Hr?(Rr=(Ar=new Vr).port2,Ar.port1.onmessage=Qr,kr=jr(Rr.postMessage,Rr,1)):Or.addEventListener&&"function"==typeof postMessage&&!Or.importScripts&&Br&&"file:"!==Br.protocol&&!Dr(Zr)?(kr=Zr,Or.addEventListener("message",Qr,!1)):kr=Xr in zr("script")?function(e){Fr.appendChild(zr("script")).onreadystatechange=function(){Fr.removeChild(this),Gr(e)}}:function(e){setTimeout(Jr(e),0)});var ea,ta,na,ia,ra,aa,oa,sa,la={set:_r,clear:qr},ca=/web0s(?!.*chrome)/i.test(pn),ua=n,da=i.f,ha=la.set,fa=Mr,va=ca,ga=Tr,pa=ua.MutationObserver||ua.WebKitMutationObserver,ma=ua.document,ya=ua.process,ba=ua.Promise,wa=da(ua,"queueMicrotask"),Sa=wa&&wa.value;Sa||(ea=function(){var e,t;for(ga&&(e=ya.domain)&&e.exit();ta;){t=ta.fn,ta=ta.next;try{t()}catch(e){throw ta?ia():na=void 0,e}}na=void 0,e&&e.enter()},fa||ga||va||!pa||!ma?ba&&ba.resolve?((oa=ba.resolve(void 0)).constructor=ba,sa=oa.then,ia=function(){sa.call(oa,ea)}):ia=ga?function(){ya.nextTick(ea)}:function(){ha.call(ua,ea)}:(ra=!0,aa=ma.createTextNode(""),new pa(ea).observe(aa,{characterData:!0}),ia=function(){aa.data=ra=!ra}));var Ea=Sa||function(e){var t={fn:e,next:void 0};na&&(na.next=t),ta||(ta=t,ia()),na=t},ka={},Aa=dn,Ra=function(e){var t,n;this.promise=new e((function(e,i){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=i})),this.resolve=Aa(t),this.reject=Aa(n)};ka.f=function(e){return new Ra(e)};var xa,La,Pa,Ca,Na=W,Ia=w,Ma=ka,Ta=n,Oa="object"==typeof window,Da=$t,ja=n,Fa=Qe,za=Bi,Ha=Z.exports,Ua=function(e,t,n){for(var i in t)_i(e,i,t[i],n);return e},Ba=Ki,_a=Gi,qa=function(e){var t=Ji(e),n=Qi.f;Zi&&t&&!t[er]&&n(t,er,{configurable:!0,get:function(){return this}})},Wa=w,Va=dn,Ka=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},Ya=le,$a=function(e,t,n){var i,r,a,o,s,l,c,u=n&&n.that,d=!(!n||!n.AS_ENTRIES),h=!(!n||!n.IS_ITERATOR),f=!(!n||!n.INTERRUPTED),v=gr(t,u,1+d+f),g=function(e){return i&&mr(i),new yr(!0,e)},p=function(e){return d?(hr(e),f?v(e[0],e[1],g):v(e[0],e[1])):f?v(e,g):v(e)};if(h)i=e;else{if("function"!=typeof(r=pr(e)))throw TypeError("Target is not iterable");if(fr(r)){for(a=0,o=vr(e.length);o>a;a++)if((s=p(e[a]))&&s instanceof yr)return s;return new yr(!1)}i=r.call(e)}for(l=i.next;!(c=l.call(i)).done;){try{s=p(c.value)}catch(e){throw mr(i),e}if("object"==typeof s&&s&&s instanceof yr)return s}return new yr(!1)},Xa=xr,Ga=Nr,Ja=la.set,Qa=Ea,Za=function(e,t){if(Na(e),Ia(t)&&t.constructor===e)return t;var n=Ma.f(e);return(0,n.resolve)(t),n.promise},eo=function(e,t){var n=Ta.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},to=ka,no=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},io=He,ro=Ut,ao=Oa,oo=Tr,so=Sn,lo=Dn("species"),co="Promise",uo=io.get,ho=io.set,fo=io.getterFor(co),vo=za&&za.prototype,go=za,po=vo,mo=ja.TypeError,yo=ja.document,bo=ja.process,wo=to.f,So=wo,Eo=!!(yo&&yo.createEvent&&ja.dispatchEvent),ko="function"==typeof PromiseRejectionEvent,Ao="unhandledrejection",Ro=!1,xo=ro(co,(function(){var e=Ya(go)!==String(go);if(!e&&66===so)return!0;if(so>=51&&/native code/.test(go))return!1;var t=new go((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[lo]=n,!(Ro=t.then((function(){}))instanceof n)||!e&&ao&&!ko})),Lo=xo||!Xa((function(e){go.all(e).catch((function(){}))})),Po=function(e){var t;return!(!Wa(e)||"function"!=typeof(t=e.then))&&t},Co=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;Qa((function(){for(var i=e.value,r=1==e.state,a=0;n.length>a;){var o,s,l,c=n[a++],u=r?c.ok:c.fail,d=c.resolve,h=c.reject,f=c.domain;try{u?(r||(2===e.rejection&&To(e),e.rejection=1),!0===u?o=i:(f&&f.enter(),o=u(i),f&&(f.exit(),l=!0)),o===c.promise?h(mo("Promise-chain cycle")):(s=Po(o))?s.call(o,d,h):d(o)):h(i)}catch(e){f&&!l&&f.exit(),h(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&Io(e)}))}},No=function(e,t,n){var i,r;Eo?((i=yo.createEvent("Event")).promise=t,i.reason=n,i.initEvent(e,!1,!0),ja.dispatchEvent(i)):i={promise:t,reason:n},!ko&&(r=ja["on"+e])?r(i):e===Ao&&eo("Unhandled promise rejection",n)},Io=function(e){Ja.call(ja,(function(){var t,n=e.facade,i=e.value;if(Mo(e)&&(t=no((function(){oo?bo.emit("unhandledRejection",i,n):No(Ao,n,i)})),e.rejection=oo||Mo(e)?2:1,t.error))throw t.value}))},Mo=function(e){return 1!==e.rejection&&!e.parent},To=function(e){Ja.call(ja,(function(){var t=e.facade;oo?bo.emit("rejectionHandled",t):No("rejectionhandled",t,e.value)}))},Oo=function(e,t,n){return function(i){e(t,i,n)}},Do=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,Co(e,!0))},jo=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw mo("Promise can't be resolved itself");var i=Po(t);i?Qa((function(){var n={done:!1};try{i.call(t,Oo(jo,n,e),Oo(Do,n,e))}catch(t){Do(n,t,e)}})):(e.value=t,e.state=1,Co(e,!1))}catch(t){Do({done:!1},t,e)}}};if(xo&&(po=(go=function(e){Ka(this,go,co),Va(e),xa.call(this);var t=uo(this);try{e(Oo(jo,t),Oo(Do,t))}catch(e){Do(t,e)}}).prototype,(xa=function(e){ho(this,{type:co,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Ua(po,{then:function(e,t){var n=fo(this),i=wo(Ga(this,go));return i.ok="function"!=typeof e||e,i.fail="function"==typeof t&&t,i.domain=oo?bo.domain:void 0,n.parent=!0,n.reactions.push(i),0!=n.state&&Co(n,!1),i.promise},catch:function(e){return this.then(void 0,e)}}),La=function(){var e=new xa,t=uo(e);this.promise=e,this.resolve=Oo(jo,t),this.reject=Oo(Do,t)},to.f=wo=function(e){return e===go||e===Pa?new La(e):So(e)},"function"==typeof za&&vo!==Object.prototype)){Ca=vo.then,Ro||(Ha(vo,"then",(function(e,t){var n=this;return new go((function(e,t){Ca.call(n,e,t)})).then(e,t)}),{unsafe:!0}),Ha(vo,"catch",po.catch,{unsafe:!0}));try{delete vo.constructor}catch(e){}Ba&&Ba(vo,po)}Da({global:!0,wrap:!0,forced:xo},{Promise:go}),_a(go,co,!1),qa(co),Pa=Fa(co),Da({target:co,stat:!0,forced:xo},{reject:function(e){var t=wo(this);return t.reject.call(void 0,e),t.promise}}),Da({target:co,stat:!0,forced:xo},{resolve:function(e){return Za(this,e)}}),Da({target:co,stat:!0,forced:Lo},{all:function(e){var t=this,n=wo(t),i=n.resolve,r=n.reject,a=no((function(){var n=Va(t.resolve),a=[],o=0,s=1;$a(e,(function(e){var l=o++,c=!1;a.push(void 0),s++,n.call(t,e).then((function(e){c||(c=!0,a[l]=e,--s||i(a))}),r)})),--s||i(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=wo(t),i=n.reject,r=no((function(){var r=Va(t.resolve);$a(e,(function(e){r.call(t,e).then(n.resolve,i)}))}));return r.error&&i(r.value),n.promise}});var Fo=r,zo=function(e,t){var n=[][e];return!!n&&Fo((function(){n.call(null,t||function(){throw 1},1)}))},Ho=Yn.forEach,Uo=n,Bo={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},_o=zo("forEach")?[].forEach:function(e){return Ho(this,e,arguments.length>1?arguments[1]:void 0)},qo=Q;for(var Wo in Bo){var Vo=Uo[Wo],Ko=Vo&&Vo.prototype;if(Ko&&Ko.forEach!==_o)try{qo(Ko,"forEach",_o)}catch(e){Ko.forEach=_o}}var Yo=W,$o=dr,Xo=fn,Go=A,Jo=function(e,t,n,i){try{return i?t(Yo(n)[0],n[1]):t(n)}catch(t){throw $o(e),t}},Qo=ar,Zo=at,es=ni,ts=cr,ns=function(e){var t,n,i,r,a,o,s=Go(e),l="function"==typeof this?this:Array,c=arguments.length,u=c>1?arguments[1]:void 0,d=void 0!==u,h=ts(s),f=0;if(d&&(u=Xo(u,c>2?arguments[2]:void 0,2)),null==h||l==Array&&Qo(h))for(n=new l(t=Zo(s.length));t>f;f++)o=d?u(s[f],f):s[f],es(n,f,o);else for(a=(r=h.call(s)).next,n=new l;!(i=a.call(r)).done;f++)o=d?Jo(r,u,[i.value,f],!0):i.value,es(n,f,o);return n.length=f,n};$t({target:"Array",stat:!0,forced:!xr((function(e){Array.from(e)}))},{from:ns});var is,rs,as,os=nt,ss=p,ls=function(e){return function(t,n){var i,r,a=String(ss(t)),o=os(n),s=a.length;return o<0||o>=s?e?"":void 0:(i=a.charCodeAt(o))<55296||i>56319||o+1===s||(r=a.charCodeAt(o+1))<56320||r>57343?e?a.charAt(o):i:e?a.slice(o,o+2):r-56320+(i-55296<<10)+65536}},cs={codeAt:ls(!1),charAt:ls(!0)},us=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),ds=L,hs=A,fs=us,vs=ke("IE_PROTO"),gs=Object.prototype,ps=fs?Object.getPrototypeOf:function(e){return e=hs(e),ds(e,vs)?e[vs]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?gs:null},ms=r,ys=ps,bs=Q,ws=L,Ss=Dn("iterator"),Es=!1;[].keys&&("next"in(as=[].keys())?(rs=ys(ys(as)))!==Object.prototype&&(is=rs):Es=!0),(null==is||ms((function(){var e={};return is[Ss].call(e)!==e})))&&(is={}),ws(is,Ss)||bs(is,Ss,(function(){return this}));var ks,As={IteratorPrototype:is,BUGGY_SAFARI_ITERATORS:Es},Rs=_,xs=W,Ls=Jt,Ps=a?Object.defineProperties:function(e,t){xs(e);for(var n,i=Ls(t),r=i.length,a=0;r>a;)Rs.f(e,n=i[a++],t[n]);return e},Cs=W,Ns=Ps,Is=wt,Ms=Ae,Ts=Ir,Os=I,Ds=ke("IE_PROTO"),js=function(){},Fs=function(e){return"' );
+
+ 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] + '' + marked(notesMatch[1].trim()) + ' ';
+ }
+
+ // prevent script end tags in the content from interfering
+ // with parsing
+ content = content.replace( /<\/script>/g, SCRIPT_END_PLACEHOLDER );
+
+ return '';
+
+ }
+
+ /**
+ * 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 tags
+ for( var i = 0, len = sectionStack.length; i < len; i++ ) {
+ // vertical
+ if( sectionStack[i] instanceof Array ) {
+ markdownSections += '';
+
+ sectionStack[i].forEach( function( child ) {
+ markdownSections += '' + createMarkdownSlide( child, options ) + ' ';
+ } );
+
+ markdownSections += ' ';
+ }
+ else {
+ markdownSections += '' + createMarkdownSlide( sectionStack[i], options ) + ' ';
+ }
+ }
+
+ 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( 'section[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 = '' +
+ 'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
+ 'Check your browser\'s JavaScript console for more details.' +
+ 'Remember that you need to serve the presentation HTML from a HTTP server.
' +
+ ' ';
+ }
+
+ ) );
+
+ }
+ else {
+
+ 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 )
+ });
+
+ }
+
+ });
+
+ 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, animateLists, ...markedOptions } = deck.getConfig().markdown || {};
+
+ if( !renderer ) {
+ 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 `${code}
`;
+ };
+ }
+
+ if( animateLists === true ) {
+ renderer.listitem = text => `${text} `;
+ }
+
+ marked.setOptions( {
+ renderer,
+ ...markedOptions
+ } );
+
+ return processSlides( deck.getRevealElement() ).then( convertSlides );
+
+ },
+
+ // TODO: Do these belong in the API?
+ processSlides: processSlides,
+ convertSlides: convertSlides,
+ slidify: slidify,
+ marked: marked
+ }
+
+};
+
+export default Plugin;
diff --git a/a40555d8/site_libs/revealjs/plugin/math/katex.js b/a40555d8/site_libs/revealjs/plugin/math/katex.js
new file mode 100755
index 0000000..a8b47c4
--- /dev/null
+++ b/a40555d8/site_libs/revealjs/plugin/math/katex.js
@@ -0,0 +1,96 @@
+/**
+ * A plugin which enables rendering of math equations inside
+ * of reveal.js slides. Essentially a thin wrapper for KaTeX.
+ *
+ * @author Hakim El Hattab
+ * @author Gerhard Burger
+ */
+export const KaTeX = () => {
+ let deck;
+
+ let defaultOptions = {
+ version: 'latest',
+ delimiters: [
+ {left: '$$', right: '$$', display: true}, // Note: $$ has to come before $
+ {left: '$', right: '$', display: false},
+ {left: '\\(', right: '\\)', display: false},
+ {left: '\\[', right: '\\]', display: true}
+ ],
+ ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre']
+ }
+
+ const loadCss = src => {
+ let link = document.createElement('link');
+ link.rel = 'stylesheet';
+ link.href = src;
+ document.head.appendChild(link);
+ };
+
+ /**
+ * Loads a JavaScript file and returns a Promise for when it is loaded
+ * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/
+ */
+ const loadScript = src => {
+ return new Promise((resolve, reject) => {
+ const script = document.createElement('script')
+ script.type = 'text/javascript'
+ script.onload = resolve
+ script.onerror = reject
+ script.src = src
+ document.head.append(script)
+ })
+ };
+
+ async function loadScripts(urls) {
+ for(const url of urls) {
+ await loadScript(url);
+ }
+ }
+
+ return {
+ id: 'katex',
+
+ init: function (reveal) {
+
+ deck = reveal;
+
+ let revealOptions = deck.getConfig().katex || {};
+
+ let options = {...defaultOptions, ...revealOptions};
+ const {local, version, extensions, ...katexOptions} = options;
+
+ let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex';
+ let versionString = options.local ? '' : '@' + options.version;
+
+ let cssUrl = baseUrl + versionString + '/dist/katex.min.css';
+ let katexUrl = baseUrl + versionString + '/dist/katex.min.js';
+ let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js'
+ let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js';
+
+ let katexScripts = [katexUrl];
+ if(options.extensions && options.extensions.includes("mhchem")) {
+ katexScripts.push(mhchemUrl);
+ }
+ katexScripts.push(karUrl);
+
+ const renderMath = () => {
+ renderMathInElement(reveal.getSlidesElement(), katexOptions);
+ deck.layout();
+ }
+
+ loadCss(cssUrl);
+
+ // For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does
+ loadScripts(katexScripts).then(() => {
+ if( deck.isReady() ) {
+ renderMath();
+ }
+ else {
+ deck.on( 'ready', renderMath.bind( this ) );
+ }
+ });
+
+ }
+ }
+
+};
diff --git a/a40555d8/site_libs/revealjs/plugin/math/math.esm.js b/a40555d8/site_libs/revealjs/plugin/math/math.esm.js
new file mode 100644
index 0000000..84699b3
--- /dev/null
+++ b/a40555d8/site_libs/revealjs/plugin/math/math.esm.js
@@ -0,0 +1 @@
+var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=function(t){return t&&t.Math==Math&&t},n=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof t&&t)||function(){return this}()||Function("return this")(),r={},o=function(t){try{return!!t()}catch(t){return!0}},i=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={},c={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,f=u&&!c.call({1:2},1);a.f=f?function(t){var e=u(this,t);return!!e&&e.enumerable}:c;var s=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},l={}.toString,p=function(t){return l.call(t).slice(8,-1)},h=p,v="".split,d=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==h(t)?v.call(t,""):Object(t)}:Object,y=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=d,m=y,b=function(t){return g(m(t))},w=function(t){return"object"==typeof t?null!==t:"function"==typeof t},j=w,x=function(t,e){if(!j(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!j(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},O=y,E=function(t){return Object(O(t))},S=E,T={}.hasOwnProperty,P=function(t,e){return T.call(S(t),e)},_=w,k=n.document,L=_(k)&&_(k.createElement),M=function(t){return L?k.createElement(t):{}},A=M,I=!i&&!o((function(){return 7!=Object.defineProperty(A("div"),"a",{get:function(){return 7}}).a})),R=i,C=a,N=s,F=b,J=x,D=P,$=I,G=Object.getOwnPropertyDescriptor;r.f=R?G:function(t,e){if(t=F(t),e=J(e,!0),$)try{return G(t,e)}catch(t){}if(D(t,e))return N(!C.f.call(t,e),t[e])};var H={},z=w,W=function(t){if(!z(t))throw TypeError(String(t)+" is not an object");return t},q=i,U=I,K=W,Q=x,X=Object.defineProperty;H.f=q?X:function(t,e,n){if(K(t),e=Q(e,!0),K(n),U)try{return X(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};var Y=H,B=s,V=i?function(t,e,n){return Y.f(t,e,B(1,n))}:function(t,e,n){return t[e]=n,t},Z={exports:{}},tt=n,et=V,nt=function(t,e){try{et(tt,t,e)}catch(n){tt[t]=e}return e},rt=nt,ot=n["__core-js_shared__"]||rt("__core-js_shared__",{}),it=ot,at=Function.toString;"function"!=typeof it.inspectSource&&(it.inspectSource=function(t){return at.call(t)});var ct=it.inspectSource,ut=ct,ft=n.WeakMap,st="function"==typeof ft&&/native code/.test(ut(ft)),lt={exports:{}},pt=ot;(lt.exports=function(t,e){return pt[t]||(pt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"Β© 2021 Denis Pushkarev (zloirock.ru)"});var ht,vt,dt,yt=0,gt=Math.random(),mt=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++yt+gt).toString(36)},bt=lt.exports,wt=mt,jt=bt("keys"),xt=function(t){return jt[t]||(jt[t]=wt(t))},Ot={},Et=st,St=w,Tt=V,Pt=P,_t=ot,kt=xt,Lt=Ot,Mt=n.WeakMap;if(Et||_t.state){var At=_t.state||(_t.state=new Mt),It=At.get,Rt=At.has,Ct=At.set;ht=function(t,e){if(Rt.call(At,t))throw new TypeError("Object already initialized");return e.facade=t,Ct.call(At,t,e),e},vt=function(t){return It.call(At,t)||{}},dt=function(t){return Rt.call(At,t)}}else{var Nt=kt("state");Lt[Nt]=!0,ht=function(t,e){if(Pt(t,Nt))throw new TypeError("Object already initialized");return e.facade=t,Tt(t,Nt,e),e},vt=function(t){return Pt(t,Nt)?t[Nt]:{}},dt=function(t){return Pt(t,Nt)}}var Ft={set:ht,get:vt,has:dt,enforce:function(t){return dt(t)?vt(t):ht(t,{})},getterFor:function(t){return function(e){var n;if(!St(e)||(n=vt(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},Jt=n,Dt=V,$t=P,Gt=nt,Ht=ct,zt=Ft.get,Wt=Ft.enforce,qt=String(String).split("String");(Z.exports=function(t,e,n,r){var o,i=!!r&&!!r.unsafe,a=!!r&&!!r.enumerable,c=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof e||$t(n,"name")||Dt(n,"name",e),(o=Wt(n)).source||(o.source=qt.join("string"==typeof e?e:""))),t!==Jt?(i?!c&&t[e]&&(a=!0):delete t[e],a?t[e]=n:Dt(t,e,n)):a?t[e]=n:Gt(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&zt(this).source||Ht(this)}));var Ut=n,Kt=n,Qt=function(t){return"function"==typeof t?t:void 0},Xt=function(t,e){return arguments.length<2?Qt(Ut[t])||Qt(Kt[t]):Ut[t]&&Ut[t][e]||Kt[t]&&Kt[t][e]},Yt={},Bt=Math.ceil,Vt=Math.floor,Zt=function(t){return isNaN(t=+t)?0:(t>0?Vt:Bt)(t)},te=Zt,ee=Math.min,ne=function(t){return t>0?ee(te(t),9007199254740991):0},re=Zt,oe=Math.max,ie=Math.min,ae=b,ce=ne,ue=function(t,e){var n=re(t);return n<0?oe(n+e,0):ie(n,e)},fe=function(t){return function(e,n,r){var o,i=ae(e),a=ce(i.length),c=ue(r,a);if(t&&n!=n){for(;a>c;)if((o=i[c++])!=o)return!0}else for(;a>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},se={includes:fe(!0),indexOf:fe(!1)},le=P,pe=b,he=se.indexOf,ve=Ot,de=function(t,e){var n,r=pe(t),o=0,i=[];for(n in r)!le(ve,n)&&le(r,n)&&i.push(n);for(;e.length>o;)le(r,n=e[o++])&&(~he(i,n)||i.push(n));return i},ye=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],ge=de,me=ye.concat("length","prototype");Yt.f=Object.getOwnPropertyNames||function(t){return ge(t,me)};var be={};be.f=Object.getOwnPropertySymbols;var we=Yt,je=be,xe=W,Oe=Xt("Reflect","ownKeys")||function(t){var e=we.f(xe(t)),n=je.f;return n?e.concat(n(t)):e},Ee=P,Se=Oe,Te=r,Pe=H,_e=o,ke=/#|\.prototype\./,Le=function(t,e){var n=Ae[Me(t)];return n==Re||n!=Ie&&("function"==typeof e?_e(e):!!e)},Me=Le.normalize=function(t){return String(t).replace(ke,".").toLowerCase()},Ae=Le.data={},Ie=Le.NATIVE="N",Re=Le.POLYFILL="P",Ce=Le,Ne=n,Fe=r.f,Je=V,De=Z.exports,$e=nt,Ge=function(t,e){for(var n=Se(e),r=Pe.f,o=Te.f,i=0;io;)for(var c,u=Ze(arguments[o++]),f=i?Xe(u).concat(i(u)):Xe(u),s=f.length,l=0;s>l;)c=f[l++],Ke&&!a.call(u,c)||(n[c]=u[c]);return n}:tn;function rn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function on(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function sn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}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 i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}ze({target:"Object",stat:!0,forced:Object.assign!==nn},{assign:nn});!function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function f(t,e,n,r){var o=e&&e.prototype instanceof y?e:y,i=Object.create(o.prototype),a=new _(r||[]);return i._invoke=function(t,e,n){var r=l;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===v){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=S(a,n);if(c){if(c===d)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=s(t,e,n);if("normal"===u.type){if(r=n.done?v:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}(t,n,a),i}function s(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var l="suspendedStart",p="suspendedYield",h="executing",v="completed",d={};function y(){}function g(){}function m(){}var b={};b[i]=function(){return this};var w=Object.getPrototypeOf,j=w&&w(w(k([])));j&&j!==n&&r.call(j,i)&&(b=j);var x=m.prototype=y.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function n(o,i,a,c){var u=s(t[o],t,i);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,r){function i(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(i,i):i()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=s(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function k(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),f=r.call(a,"finallyLoc");if(u&&f){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:k(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}({exports:{}});var pn,hn,vn=Xt("navigator","userAgent")||"",dn=vn,yn=n.process,gn=yn&&yn.versions,mn=gn&&gn.v8;mn?hn=(pn=mn.split("."))[0]<4?1:pn[0]+pn[1]:dn&&(!(pn=dn.match(/Edge\/(\d+)/))||pn[1]>=74)&&(pn=dn.match(/Chrome\/(\d+)/))&&(hn=pn[1]);var bn=hn&&+hn,wn=bn,jn=o,xn=!!Object.getOwnPropertySymbols&&!jn((function(){return!String(Symbol())||!Symbol.sham&&wn&&wn<41})),On=xn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,En=n,Sn=lt.exports,Tn=P,Pn=mt,_n=xn,kn=On,Ln=Sn("wks"),Mn=En.Symbol,An=kn?Mn:Mn&&Mn.withoutSetter||Pn,In=function(t){return Tn(Ln,t)&&(_n||"string"==typeof Ln[t])||(_n&&Tn(Mn,t)?Ln[t]=Mn[t]:Ln[t]=An("Symbol."+t)),Ln[t]},Rn={};Rn[In("toStringTag")]="z";var Cn="[object z]"===String(Rn),Nn=Cn,Fn=p,Jn=In("toStringTag"),Dn="Arguments"==Fn(function(){return arguments}()),$n=Nn?Fn: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),Jn))?n:Dn?Fn(e):"Object"==(r=Fn(e))&&"function"==typeof e.callee?"Arguments":r},Gn=$n,Hn=Cn?{}.toString:function(){return"[object "+Gn(this)+"]"},zn=Cn,Wn=Z.exports,qn=Hn;zn||Wn(Object.prototype,"toString",qn,{unsafe:!0});var Un=n.Promise,Kn=Z.exports,Qn=w,Xn=W,Yn=function(t){if(!Qn(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},Bn=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 Xn(n),Yn(r),e?t.call(n,r):n.__proto__=r,n}}():void 0),Vn=H.f,Zn=P,tr=In("toStringTag"),er=Xt,nr=H,rr=i,or=In("species"),ir=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},ar={},cr=ar,ur=In("iterator"),fr=Array.prototype,sr=ir,lr=function(t,e,n){if(sr(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,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}},pr=$n,hr=ar,vr=In("iterator"),dr=W,yr=W,gr=function(t){return void 0!==t&&(cr.Array===t||fr[ur]===t)},mr=ne,br=lr,wr=function(t){if(null!=t)return t[vr]||t["@@iterator"]||hr[pr(t)]},jr=function(t){var e=t.return;if(void 0!==e)return dr(e.call(t)).value},xr=function(t,e){this.stopped=t,this.result=e},Or=In("iterator"),Er=!1;try{var Sr=0,Tr={next:function(){return{done:!!Sr++}},return:function(){Er=!0}};Tr[Or]=function(){return this},Array.from(Tr,(function(){throw 2}))}catch(t){}var Pr,_r,kr,Lr=W,Mr=ir,Ar=In("species"),Ir=Xt("document","documentElement"),Rr=/(?:iphone|ipod|ipad).*applewebkit/i.test(vn),Cr="process"==p(n.process),Nr=n,Fr=o,Jr=lr,Dr=Ir,$r=M,Gr=Rr,Hr=Cr,zr=Nr.location,Wr=Nr.setImmediate,qr=Nr.clearImmediate,Ur=Nr.process,Kr=Nr.MessageChannel,Qr=Nr.Dispatch,Xr=0,Yr={},Br=function(t){if(Yr.hasOwnProperty(t)){var e=Yr[t];delete Yr[t],e()}},Vr=function(t){return function(){Br(t)}},Zr=function(t){Br(t.data)},to=function(t){Nr.postMessage(t+"",zr.protocol+"//"+zr.host)};Wr&&qr||(Wr=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Yr[++Xr]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},Pr(Xr),Xr},qr=function(t){delete Yr[t]},Hr?Pr=function(t){Ur.nextTick(Vr(t))}:Qr&&Qr.now?Pr=function(t){Qr.now(Vr(t))}:Kr&&!Gr?(kr=(_r=new Kr).port2,_r.port1.onmessage=Zr,Pr=Jr(kr.postMessage,kr,1)):Nr.addEventListener&&"function"==typeof postMessage&&!Nr.importScripts&&zr&&"file:"!==zr.protocol&&!Fr(to)?(Pr=to,Nr.addEventListener("message",Zr,!1)):Pr="onreadystatechange"in $r("script")?function(t){Dr.appendChild($r("script")).onreadystatechange=function(){Dr.removeChild(this),Br(t)}}:function(t){setTimeout(Vr(t),0)});var eo,no,ro,oo,io,ao,co,uo,fo={set:Wr,clear:qr},so=/web0s(?!.*chrome)/i.test(vn),lo=n,po=r.f,ho=fo.set,vo=Rr,yo=so,go=Cr,mo=lo.MutationObserver||lo.WebKitMutationObserver,bo=lo.document,wo=lo.process,jo=lo.Promise,xo=po(lo,"queueMicrotask"),Oo=xo&&xo.value;Oo||(eo=function(){var t,e;for(go&&(t=wo.domain)&&t.exit();no;){e=no.fn,no=no.next;try{e()}catch(t){throw no?oo():ro=void 0,t}}ro=void 0,t&&t.enter()},vo||go||yo||!mo||!bo?jo&&jo.resolve?((co=jo.resolve(void 0)).constructor=jo,uo=co.then,oo=function(){uo.call(co,eo)}):oo=go?function(){wo.nextTick(eo)}:function(){ho.call(lo,eo)}:(io=!0,ao=bo.createTextNode(""),new mo(eo).observe(ao,{characterData:!0}),oo=function(){ao.data=io=!io}));var Eo=Oo||function(t){var e={fn:t,next:void 0};ro&&(ro.next=e),no||(no=e,oo()),ro=e},So={},To=ir,Po=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=To(e),this.reject=To(n)};So.f=function(t){return new Po(t)};var _o,ko,Lo,Mo,Ao=W,Io=w,Ro=So,Co=n,No="object"==typeof window,Fo=ze,Jo=n,Do=Xt,$o=Un,Go=Z.exports,Ho=function(t,e,n){for(var r in e)Kn(t,r,e[r],n);return t},zo=Bn,Wo=function(t,e,n){t&&!Zn(t=n?t:t.prototype,tr)&&Vn(t,tr,{configurable:!0,value:e})},qo=function(t){var e=er(t),n=nr.f;rr&&e&&!e[or]&&n(e,or,{configurable:!0,get:function(){return this}})},Uo=w,Ko=ir,Qo=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t},Xo=ct,Yo=function(t,e,n){var r,o,i,a,c,u,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),v=br(e,s,1+l+h),d=function(t){return r&&jr(r),new xr(!0,t)},y=function(t){return l?(yr(t),h?v(t[0],t[1],d):v(t[0],t[1])):h?v(t,d):v(t)};if(p)r=t;else{if("function"!=typeof(o=wr(t)))throw TypeError("Target is not iterable");if(gr(o)){for(i=0,a=mr(t.length);a>i;i++)if((c=y(t[i]))&&c instanceof xr)return c;return new xr(!1)}r=o.call(t)}for(u=r.next;!(f=u.call(r)).done;){try{c=y(f.value)}catch(t){throw jr(r),t}if("object"==typeof c&&c&&c instanceof xr)return c}return new xr(!1)},Bo=function(t,e){if(!e&&!Er)return!1;var n=!1;try{var r={};r[Or]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Vo=function(t,e){var n,r=Lr(t).constructor;return void 0===r||null==(n=Lr(r)[Ar])?e:Mr(n)},Zo=fo.set,ti=Eo,ei=function(t,e){if(Ao(t),Io(e)&&e.constructor===t)return e;var n=Ro.f(t);return(0,n.resolve)(e),n.promise},ni=function(t,e){var n=Co.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))},ri=So,oi=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ii=Ft,ai=Ce,ci=No,ui=Cr,fi=bn,si=In("species"),li="Promise",pi=ii.get,hi=ii.set,vi=ii.getterFor(li),di=$o&&$o.prototype,yi=$o,gi=di,mi=Jo.TypeError,bi=Jo.document,wi=Jo.process,ji=ri.f,xi=ji,Oi=!!(bi&&bi.createEvent&&Jo.dispatchEvent),Ei="function"==typeof PromiseRejectionEvent,Si=!1,Ti=ai(li,(function(){var t=Xo(yi)!==String(yi);if(!t&&66===fi)return!0;if(fi>=51&&/native code/.test(yi))return!1;var e=new yi((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};return(e.constructor={})[si]=n,!(Si=e.then((function(){}))instanceof n)||!t&&ci&&!Ei})),Pi=Ti||!Bo((function(t){yi.all(t).catch((function(){}))})),_i=function(t){var e;return!(!Uo(t)||"function"!=typeof(e=t.then))&&e},ki=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;ti((function(){for(var r=t.value,o=1==t.state,i=0;n.length>i;){var a,c,u,f=n[i++],s=o?f.ok:f.fail,l=f.resolve,p=f.reject,h=f.domain;try{s?(o||(2===t.rejection&&Ii(t),t.rejection=1),!0===s?a=r:(h&&h.enter(),a=s(r),h&&(h.exit(),u=!0)),a===f.promise?p(mi("Promise-chain cycle")):(c=_i(a))?c.call(a,l,p):l(a)):p(r)}catch(t){h&&!u&&h.exit(),p(t)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&Mi(t)}))}},Li=function(t,e,n){var r,o;Oi?((r=bi.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),Jo.dispatchEvent(r)):r={promise:e,reason:n},!Ei&&(o=Jo["on"+t])?o(r):"unhandledrejection"===t&&ni("Unhandled promise rejection",n)},Mi=function(t){Zo.call(Jo,(function(){var e,n=t.facade,r=t.value;if(Ai(t)&&(e=oi((function(){ui?wi.emit("unhandledRejection",r,n):Li("unhandledrejection",n,r)})),t.rejection=ui||Ai(t)?2:1,e.error))throw e.value}))},Ai=function(t){return 1!==t.rejection&&!t.parent},Ii=function(t){Zo.call(Jo,(function(){var e=t.facade;ui?wi.emit("rejectionHandled",e):Li("rejectionhandled",e,t.value)}))},Ri=function(t,e,n){return function(r){t(e,r,n)}},Ci=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ki(t,!0))},Ni=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw mi("Promise can't be resolved itself");var r=_i(e);r?ti((function(){var n={done:!1};try{r.call(e,Ri(Ni,n,t),Ri(Ci,n,t))}catch(e){Ci(n,e,t)}})):(t.value=e,t.state=1,ki(t,!1))}catch(e){Ci({done:!1},e,t)}}};if(Ti&&(gi=(yi=function(t){Qo(this,yi,li),Ko(t),_o.call(this);var e=pi(this);try{t(Ri(Ni,e),Ri(Ci,e))}catch(t){Ci(e,t)}}).prototype,(_o=function(t){hi(this,{type:li,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Ho(gi,{then:function(t,e){var n=vi(this),r=ji(Vo(this,yi));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=ui?wi.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&ki(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),ko=function(){var t=new _o,e=pi(t);this.promise=t,this.resolve=Ri(Ni,e),this.reject=Ri(Ci,e)},ri.f=ji=function(t){return t===yi||t===Lo?new ko(t):xi(t)},"function"==typeof $o&&di!==Object.prototype)){Mo=di.then,Si||(Go(di,"then",(function(t,e){var n=this;return new yi((function(t,e){Mo.call(n,t,e)})).then(t,e)}),{unsafe:!0}),Go(di,"catch",gi.catch,{unsafe:!0}));try{delete di.constructor}catch(t){}zo&&zo(di,gi)}Fo({global:!0,wrap:!0,forced:Ti},{Promise:yi}),Wo(yi,li,!1),qo(li),Lo=Do(li),Fo({target:li,stat:!0,forced:Ti},{reject:function(t){var e=ji(this);return e.reject.call(void 0,t),e.promise}}),Fo({target:li,stat:!0,forced:Ti},{resolve:function(t){return ei(this,t)}}),Fo({target:li,stat:!0,forced:Pi},{all:function(t){var e=this,n=ji(e),r=n.resolve,o=n.reject,i=oi((function(){var n=Ko(e.resolve),i=[],a=0,c=1;Yo(t,(function(t){var u=a++,f=!1;i.push(void 0),c++,n.call(e,t).then((function(t){f||(f=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=ji(e),r=n.reject,o=oi((function(){var o=Ko(e.resolve);Yo(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Fi,Ji=H,Di=W,$i=Ue,Gi=i?Object.defineProperties:function(t,e){Di(t);for(var n,r=$i(e),o=r.length,i=0;o>i;)Ji.f(t,n=r[i++],e[n]);return t},Hi=W,zi=Gi,Wi=ye,qi=Ot,Ui=Ir,Ki=M,Qi=xt("IE_PROTO"),Xi=function(){},Yi=function(t){return"
+
+