aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2020-05-18 20:36:34 +0200
committerHakim El Hattab <hakim.elhattab@gmail.com>2020-05-18 20:36:34 +0200
commitf618de81de9b218c618058b8e4aa22f5f2bc488e (patch)
tree302520457afac9a4e74c4ea00a9488f8639b60ed
parent13f7e69c9ccef71385c3e3ad60f7403a4de9e085 (diff)
downloadfosdem-2021-minimalism-presentation-f618de81de9b218c618058b8e4aa22f5f2bc488e.tar
fosdem-2021-minimalism-presentation-f618de81de9b218c618058b8e4aa22f5f2bc488e.tar.gz
restore support for markdown speaker notes
-rw-r--r--dist/reveal.esm.js2
-rw-r--r--dist/reveal.js2
-rw-r--r--js/reveal.js2
-rw-r--r--package.json2
-rw-r--r--plugin/notes/notes.esm.js2
-rw-r--r--plugin/notes/notes.js2
-rw-r--r--plugin/notes/plugin.js3
-rw-r--r--plugin/notes/speaker-view.html1
8 files changed, 9 insertions, 7 deletions
diff --git a/dist/reveal.esm.js b/dist/reveal.esm.js
index 7a89603..bad1167 100644
--- a/dist/reveal.esm.js
+++ b/dist/reveal.esm.js
@@ -5,5 +5,5 @@
*
* Copyright (C) 2020 Hakim El Hattab, https://hakim.se
*/
-function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function i(i){for(var a=1;a<arguments.length;a++){var s=null!=arguments[a]?arguments[a]:{};a%2?t(Object(s),!0).forEach((function(t){e(i,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):t(Object(s)).forEach((function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))}))}return i}var a=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/,s=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/,n=(e,t)=>{for(var i in t)e[i]=t[i];return e},r=(e,t)=>Array.from(e.querySelectorAll(t)),o=(e,t,i)=>{i?e.classList.add(t):e.classList.remove(t)},l=e=>{if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},d=(e,t)=>{e.style.transform=t},c=(e,t)=>{for(var i=e.parentNode;i;){var a=i.matches||i.matchesSelector||i.msMatchesSelector;if(a&&a.call(i,t))return i;i=i.parentNode}return null},h=function(e,t,i){for(var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",s=e.querySelectorAll("."+i),n=0;n<s.length;n++){var r=s[n];if(r.parentNode===e)return r}var o=document.createElement(t);return o.className=i,o.innerHTML=a,e.appendChild(o),o},u=e=>{var t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},v=()=>{var e={};for(var t in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()}),e){var i=e[t];e[t]=l(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e){var i,a=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",i=t-e.parentNode.offsetHeight,e.style.height=a+"px",e.parentNode.style.removeProperty("height"),i}return t},p=navigator.userAgent,m=document.createElement("div"),f=/(iphone|ipod|ipad|android)/gi.test(p)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,b=/chrome/i.test(p)&&!/edge/i.test(p),y=/android/gi.test(p),w="zoom"in m.style&&!f&&(b||/Version\/[\d\.]+.*Safari/.test(p)),R="function"==typeof window.history.replaceState&&!/PhantomJS/.test(p);class A{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(e){var t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.style.display=this.Reveal.getConfig().display,r(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(e=>{("IFRAME"!==e.tagName||this.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))}),r(e,"video, audio").forEach(e=>{var t=0;r(e,"source[data-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1}),t>0&&e.load()});var i=e.slideBackgroundElement;if(i){i.style.display="block";var a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===i.hasAttribute("data-loaded")){i.setAttribute("data-loaded","true");var n=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),l=e.hasAttribute("data-background-video-loop"),d=e.hasAttribute("data-background-video-muted");if(n)a.style.backgroundImage="url("+encodeURI(n)+")";else if(o&&!this.Reveal.isSpeakerNotes()){var c=document.createElement("video");l&&c.setAttribute("loop",""),d&&(c.muted=!0),f&&(c.muted=!0,c.autoplay=!0,c.setAttribute("playsinline","")),o.split(",").forEach(e=>{c.innerHTML+='<source src="'+e+'">'}),a.appendChild(c)}else if(s&&!0!==t.excludeIframes){var h=document.createElement("iframe");h.setAttribute("allowfullscreen",""),h.setAttribute("mozallowfullscreen",""),h.setAttribute("webkitallowfullscreen",""),h.setAttribute("allow","autoplay"),h.setAttribute("data-src",s),h.style.width="100%",h.style.height="100%",h.style.maxHeight="100%",h.style.maxWidth="100%",a.appendChild(h)}}var u=a.querySelector("iframe[data-src]");u&&this.shouldPreload(i)&&!/autoplay=(1|true|yes)/gi.test(s)&&u.getAttribute("src")!==s&&u.setAttribute("src",s)}}unload(e){e.style.display="none";var t=this.Reveal.getSlideBackground(e);t&&(t.style.display="none",r(t,"iframe[src]").forEach(e=>{e.removeAttribute("src")})),r(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),r(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}formatEmbeddedContent(){var e=(e,t,i)=>{r(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+t+'"]').forEach(t=>{var a=t.getAttribute(e);a&&-1===a.indexOf(i)&&t.setAttribute(e,a+(/\?/.test(a)?"&":"?")+i)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){e&&!this.Reveal.isSpeakerNotes()&&(r(e,'img[src$=".gif"]').forEach(e=>{e.setAttribute("src",e.getAttribute("src"))}),r(e,"video, audio").forEach(e=>{if(!c(e,".fragment")||c(e,".fragment.visible")){var t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!c(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(f){var i=e.play();i&&"function"==typeof i.catch&&!1===e.controls&&i.catch(()=>{e.controls=!0,e.addEventListener("play",()=>{e.controls=!1})})}else e.removeEventListener("loadeddata",this.startEmbeddedMedia),e.addEventListener("loadeddata",this.startEmbeddedMedia)}}),r(e,"iframe[src]").forEach(e=>{c(e,".fragment")&&!c(e,".fragment.visible")||this.startEmbeddedIframe({target:e})}),r(e,"iframe[data-src]").forEach(e=>{c(e,".fragment")&&!c(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",this.startEmbeddedIframe),e.addEventListener("load",this.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))}))}startEmbeddedMedia(e){var t=!!c(e.target,"html"),i=!!c(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){var t=e.target;if(t&&t.contentWindow){var i=!!c(e.target,"html"),a=!!c(e.target,".present");if(i&&a){var s=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof s&&(s=t.hasAttribute("data-autoplay")||!!c(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&s?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&s?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=n({unloadIframes:!0},t),e&&e.parentNode&&(r(e,"video, audio").forEach(e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),r(e,"iframe").forEach(e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",this.startEmbeddedIframe)}),r(e,'iframe[src*="youtube.com/embed/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),r(e,'iframe[src*="player.vimeo.com/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===t.unloadIframes&&r(e,"iframe[data-src]").forEach(e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}}class E{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){var i="none";e.slideNumber&&!this.Reveal.isPrintingPDF()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(i="block"),this.element.style.display=i}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide(),i=this.Reveal.getConfig(),a="h.v";if("function"==typeof i.slideNumber)e=i.slideNumber(t);else switch("string"==typeof i.slideNumber&&(a=i.slideNumber),/c/.test(a)||1!==this.Reveal.getHorizontalSlides().length||(a="c"),e=[],a){case"c":e.push(this.Reveal.getSlidePastCount(t)+1);break;case"c/t":e.push(this.Reveal.getSlidePastCount(t)+1,"/",this.Reveal.getTotalSlides());break;default:var s=this.Reveal.getIndices(t);e.push(s.h+1);var n="h/v"===a?"/":".";this.Reveal.isVerticalSlide(t)&&e.push(n,s.v+1)}var r="#"+this.Reveal.location.getHash(t);return this.formatNumber(e[0],e[1],e[2],r)}formatNumber(e,t,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#"+this.Reveal.location.getHash();return"number"!=typeof i||isNaN(i)?'<a href="'.concat(a,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,"</span>\n\t\t\t\t\t</a>"):'<a href="'.concat(a,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,'</span>\n\t\t\t\t\t<span class="slide-number-delimiter">').concat(t,'</span>\n\t\t\t\t\t<span class="slide-number-b">').concat(i,"</span>\n\t\t\t\t\t</a>")}}var S=e=>{var t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};var i=e.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16)};var a=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(a)return{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10)};var s=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return s?{r:parseInt(s[1],10),g:parseInt(s[2],10),b:parseInt(s[3],10),a:parseFloat(s[4])}:null};class k{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.Reveal.isPrintingPDF();this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach(e=>{var t=this.createBackground(e,this.element);r(e,"section").forEach(e=>{this.createBackground(e,t),t.classList.add("stack")})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")},1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,t){var i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");var a=document.createElement("div");return a.className="slide-background-content",i.appendChild(a),t.appendChild(i),e.slideBackgroundElement=i,e.slideBackgroundContentElement=a,this.sync(e),i}sync(e){var t=e.slideBackgroundElement,i=e.slideBackgroundContentElement;e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",i.style.backgroundSize="",i.style.backgroundRepeat="",i.style.backgroundPosition="",i.style.backgroundImage="",i.style.opacity="",i.innerHTML="";var a={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")};a.background&&(/^(http|file|\/\/)/gi.test(a.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(a.background)?e.setAttribute("data-background-image",a.background):t.style.background=a.background),(a.background||a.backgroundColor||a.backgroundImage||a.backgroundVideo||a.backgroundIframe)&&t.setAttribute("data-background-hash",a.background+a.backgroundSize+a.backgroundImage+a.backgroundVideo+a.backgroundIframe+a.backgroundColor+a.backgroundRepeat+a.backgroundPosition+a.backgroundTransition+a.backgroundOpacity),a.backgroundSize&&t.setAttribute("data-background-size",a.backgroundSize),a.backgroundColor&&(t.style.backgroundColor=a.backgroundColor),a.backgroundTransition&&t.setAttribute("data-background-transition",a.backgroundTransition),e.hasAttribute("data-preload")&&t.setAttribute("data-preload",""),a.backgroundSize&&(i.style.backgroundSize=a.backgroundSize),a.backgroundRepeat&&(i.style.backgroundRepeat=a.backgroundRepeat),a.backgroundPosition&&(i.style.backgroundPosition=a.backgroundPosition),a.backgroundOpacity&&(i.style.opacity=a.backgroundOpacity);var s,n=a.backgroundColor;if(!n){var r=window.getComputedStyle(t);r&&r.backgroundColor&&(n=r.backgroundColor)}if(n){var o=S(n);o&&0!==o.a&&("string"==typeof(s=n)&&(s=S(s)),(s?(299*s.r+587*s.g+114*s.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}}update(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Reveal.getCurrentSlide(),i=this.Reveal.getIndices(),a=null,s=this.Reveal.getConfig().rtl?"future":"past",n=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((t,o)=>{t.classList.remove("past","present","future"),o<i.h?t.classList.add(s):o>i.h?t.classList.add(n):(t.classList.add("present"),a=t),(e||o===i.h)&&r(t,".slide-background").forEach((e,t)=>{e.classList.remove("past","present","future"),t<i.v?e.classList.add("past"):t>i.v?e.classList.add("future"):(e.classList.add("present"),o===i.h&&(a=e))})}),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),a){this.Reveal.slideContent.startEmbeddedContent(a);var o=a.querySelector(".slide-background-content");if(o){var l=o.style.backgroundImage||"";/\.gif/i.test(l)&&(o.style.backgroundImage="",window.getComputedStyle(o).opacity,o.style.backgroundImage=l)}var d=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,c=a.getAttribute("data-background-hash");c&&c===d&&a!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=a}t&&["has-light-background","has-dark-background"].forEach(e=>{t.classList.contains(e)?this.Reveal.getRevealElement().classList.add(e):this.Reveal.getRevealElement().classList.remove(e)},this),setTimeout(()=>{this.element.classList.remove("no-transition")},1)}updateParallax(){var e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){var t,i,a=this.Reveal.getHorizontalSlides(),s=this.Reveal.getVerticalSlides(),n=this.element.style.backgroundSize.split(" ");1===n.length?t=i=parseInt(n[0],10):(t=parseInt(n[0],10),i=parseInt(n[1],10));var r,o=this.element.offsetWidth,l=a.length;r=("number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:l>1?(t-o)/(l-1):0)*e.h*-1;var d,c,h=this.element.offsetHeight,u=s.length;d="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-h)/(u-1),c=u>0?d*e.v:0,this.element.style.backgroundPosition=r+"px "+-c+"px"}}}class L{constructor(e){this.Reveal=e,this.autoAnimateCounter=0}run(e,t){if(this.reset(),e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||u();var i=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";var a=this.Reveal.getSlides();i.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";var s=this.getAutoAnimatableElements(e,t).map(e=>this.autoAnimateElements(e.from,e.to,e.options||{},i,this.autoAnimateCounter++));if("false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){var n=.8*i.duration,r=.2*i.duration;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{var t=this.getAutoAnimateOptions(e,i),a="unmatched";t.duration===i.duration&&t.delay===i.delay||(a="unmatched-"+this.autoAnimateCounter++,s.push('[data-auto-animate="running"] [data-auto-animate-target="'.concat(a,'"] { transition: opacity ').concat(t.duration,"s ease ").concat(t.delay,"s; }"))),e.dataset.autoAnimateTarget=a},this),s.push('[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity '.concat(n,"s ease ").concat(r,"s; }"))}this.autoAnimateStyleSheet.innerHTML=s.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}reset(){r(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(e=>{e.dataset.autoAnimate=""}),r(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,t,i,a,n){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=n;var r=this.getAutoAnimateOptions(t,a);void 0!==i.delay&&(r.delay=i.delay),void 0!==i.duration&&(r.duration=i.duration),void 0!==i.easing&&(r.easing=i.easing);var o=this.getAutoAnimatableProperties("from",e,i),l=this.getAutoAnimatableProperties("to",t,i);t.classList.contains("fragment")&&(delete l.styles.opacity,e.classList.contains("fragment")&&(e.className.match(s)||[""])[0]===(t.className.match(s)||[""])[0]&&"forward"===a.slideDirection&&t.classList.add("visible","disabled"));if(!1!==i.translate||!1!==i.scale){var d=this.Reveal.getScale(),c={x:(o.x-l.x)/d,y:(o.y-l.y)/d,scaleX:o.width/l.width,scaleY:o.height/l.height};c.x=Math.round(1e3*c.x)/1e3,c.y=Math.round(1e3*c.y)/1e3,c.scaleX=Math.round(1e3*c.scaleX)/1e3,c.scaleX=Math.round(1e3*c.scaleX)/1e3;var h=!1!==i.translate&&(0!==c.x||0!==c.y),u=!1!==i.scale&&(0!==c.scaleX||0!==c.scaleY);if(h||u){var v=[];h&&v.push("translate(".concat(c.x,"px, ").concat(c.y,"px)")),u&&v.push("scale(".concat(c.scaleX,", ").concat(c.scaleY,")")),o.styles.transform=v.join(" "),o.styles["transform-origin"]="top left",l.styles.transform="none"}}for(var g in l.styles){var p=l.styles[g],m=o.styles[g];p===m?delete l.styles[g]:(!0===p.explicitValue&&(l.styles[g]=p.value),!0===m.explicitValue&&(o.styles[g]=m.value))}var f="",b=Object.keys(l.styles);b.length>0&&(o.styles.transition="none",l.styles.transition="all ".concat(r.duration,"s ").concat(r.easing," ").concat(r.delay,"s"),l.styles["transition-property"]=b.join(", "),l.styles["will-change"]=b.join(", "),f='[data-auto-animate-target="'+n+'"] {'+Object.keys(o.styles).map(e=>e+": "+o.styles[e]+" !important;").join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+n+'"] {'+Object.keys(l.styles).map(e=>e+": "+l.styles[e]+" !important;").join("")+"}");return f}getAutoAnimateOptions(e,t){var i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=n(i,t),e.closest&&e.parentNode){var a=e.parentNode.closest("[data-auto-animate-target]");a&&(i=this.getAutoAnimateOptions(a,i))}return e.dataset.autoAnimateEasing&&(i.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(i.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(i.delay=parseFloat(e.dataset.autoAnimateDelay)),i}getAutoAnimatableProperties(e,t,i){var a=this.Reveal.getConfig(),s={styles:[]};if(!1!==i.translate||!1!==i.scale){var n;if("function"==typeof i.measure)n=i.measure(t);else if(a.center)n=t.getBoundingClientRect();else{var r=this.Reveal.getScale();n={x:t.offsetLeft*r,y:t.offsetTop*r,width:t.offsetWidth*r,height:t.offsetHeight*r}}s.x=n.x,s.y=n.y,s.width=n.width,s.height=n.height}var o=getComputedStyle(t);return(i.styles||a.autoAnimateStyles).forEach(t=>{var i;"string"==typeof t&&(t={property:t}),""!==(i=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:o[t.property])&&(s.styles[t.property]=i)}),s}getAutoAnimatableElements(e,t){var i=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),a=[];return i.filter((e,t)=>{if(-1===a.indexOf(e.to))return a.push(e.to),!0})}getAutoAnimatePairs(e,t){var i=[],a="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(i,e,t,"[data-id]",e=>e.nodeName+":::"+e.getAttribute("data-id")),this.findAutoAnimateMatches(i,e,t,a,e=>e.nodeName+":::"+e.innerText),this.findAutoAnimateMatches(i,e,t,"img, video, iframe",e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))),this.findAutoAnimateMatches(i,e,t,"pre",e=>e.nodeName+":::"+e.innerText),i.forEach(e=>{e.from.matches(a)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-code",e=>e.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",e=>e.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),i}getLocalBoundingBox(e){var t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}findAutoAnimateMatches(e,t,i,a,s,n){var r={},o={};[].slice.call(t.querySelectorAll(a)).forEach((e,t)=>{var i=s(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))}),[].slice.call(i.querySelectorAll(a)).forEach((t,i)=>{var a,l=s(t);if(o[l]=o[l]||[],o[l].push(t),r[l]){var d=o[l].length-1,c=r[l].length-1;r[l][d]?(a=r[l][d],r[l][d]=null):r[l][c]&&(a=r[l][c],r[l][c]=null)}a&&e.push({from:a,to:t,options:n})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{var i=t.querySelector("[data-auto-animate-target]");return t.hasAttribute("data-auto-animate-target")||i||e.push(t),t.querySelector("[data-auto-animate-target]")&&(e=e.concat(this.getUnmatchedAutoAnimateElements(t))),e},[])}}class x{constructor(e){this.Reveal=e}configure(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}disable(){r(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}enable(){r(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")})}availableRoutes(){var e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){var t=e.querySelectorAll(".fragment:not(.disabled)"),i=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-i.length>0,next:!!i.length}}return{prev:!1,next:!1}}sort(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e=Array.from(e);var i=[],a=[],s=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){var t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else a.push([e])}),i=i.concat(a);var n=0;return i.forEach(e=>{e.forEach(e=>{s.push(e),e.setAttribute("data-fragment-index",n)}),n++}),!0===t?i:s}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{var t=r(e,"section");t.forEach((e,t)=>{this.sort(e.querySelectorAll(".fragment"))},this),0===t.length&&this.sort(e.querySelectorAll(".fragment"))})}update(e,t){var i={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){var s=0;if("number"!=typeof e){var n=this.sort(a.querySelectorAll(".fragment.visible")).pop();n&&(e=parseInt(n.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach((t,a)=>{if(t.hasAttribute("data-fragment-index")&&(a=parseInt(t.getAttribute("data-fragment-index"),10)),s=Math.max(s,a),a<=e){var n=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),a===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(t)),t.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(t)),n||(i.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{var r=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),r&&(i.hidden.push(t),this.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}}),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,s),-1),a.setAttribute("data-fragment",e)}return i}sync(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();return this.sort(e.querySelectorAll(".fragment"))}goto(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){var a=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(a.length){if("number"!=typeof e){var s=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=s?parseInt(s.getAttribute("data-fragment-index")||0,10):-1}e+=t;var n=this.update(e,a);return n.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:n.hidden[0],fragments:n.hidden}}),n.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:n.shown[0],fragments:n.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!n.shown.length&&!n.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class C{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),r(this.Reveal.getRevealElement(),".slides section").forEach(e=>{e.classList.contains("stack")||e.addEventListener("click",this.onSlideClicked,!0)});var e=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=e.width+70,this.overviewSlideHeight=e.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();var t=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,t)=>{e.setAttribute("data-index-h",t),d(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&r(e,"section").forEach((e,i)=>{e.setAttribute("data-index-h",t),e.setAttribute("data-index-v",i),d(e,"translate3d(0, "+i*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{d(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),r(e,".slide-background").forEach((e,t)=>{d(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})})}update(){var e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,i=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-i.h*this.overviewSlideWidth+"px)","translateY("+-i.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),r(this.Reveal.getRevealElement(),".slides section").forEach(e=>{d(e,""),e.removeEventListener("click",this.onSlideClicked,!0)}),r(this.Reveal.getBackgroundsElement(),".slide-background").forEach(e=>{d(e,"")}),this.Reveal.transformSlides({overview:""});var e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){var i=parseInt(t.getAttribute("data-index-h"),10),a=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(i,a)}}}}class P{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}configure(e,t){"linear"===e.navigationMode?(this.shortcuts["&#8594; , &#8595; , SPACE , N , L , J"]="Next slide",this.shortcuts["&#8592; , &#8593; , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["&#8592; , H"]="Navigate left",this.shortcuts["&#8594; , L"]="Navigate right",this.shortcuts["&#8593; , K"]="Navigate up",this.shortcuts["&#8595; , J"]="Navigate down"),this.shortcuts["Home , Shift &#8592;"]="First slide",this.shortcuts["End , Shift &#8594;"]="Last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}addKeyBinding(e,t){"object"==typeof e&&e.keyCode?this.bindings[e.keyCode]={callback:t,key:e.key,description:e.description}:this.bindings[e]={callback:t,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,t){this.shortcuts[e]=t}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyPress(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}onDocumentKeyDown(e){var t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e))return!0;if("focused"===t.keyboardCondition&&!this.Reveal.isFocused())return!0;var i=e.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);var s=document.activeElement&&!0===document.activeElement.isContentEditable,n=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),r=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),o=e.shiftKey&&32===e.keyCode,l=e.shiftKey&&37===i,d=e.shiftKey&&39===i,c=!o&&!l&&!d&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(!(s||n||r||c)){var h,u=[66,86,190,191];if("object"==typeof t.keyboard)for(h in t.keyboard)"togglePause"===t.keyboard[h]&&u.push(parseInt(h,10));if(this.Reveal.isPaused()&&-1===u.indexOf(i))return!1;var v,g,p="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),m=!1;if("object"==typeof t.keyboard)for(h in t.keyboard)if(parseInt(h,10)===i){var f=t.keyboard[h];"function"==typeof f?f.apply(null,[e]):"string"==typeof f&&"function"==typeof this.Reveal[f]&&this.Reveal[f].call(),m=!0}if(!1===m)for(h in this.bindings)if(parseInt(h,10)===i){var b=this.bindings[h].callback;"function"==typeof b?b.apply(null,[e]):"string"==typeof b&&"function"==typeof this.Reveal[b]&&this.Reveal[b].call(),m=!0}!1===m&&(m=!0,80===i||33===i?this.Reveal.prev():78===i||34===i?this.Reveal.next():72===i||37===i?l?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.left():76===i||39===i?d?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.right():75===i||38===i?!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.up():74===i||40===i?!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.down():36===i?this.Reveal.slide(0):35===i?this.Reveal.slide(Number.MAX_VALUE):32===i?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev():this.Reveal.next()):58===i||59===i||66===i||86===i||190===i||191===i?this.Reveal.togglePause():70===i?(v=t.embedded?this.Reveal.getViewportElement():document.documentElement,(g=(v=v||document.documentElement).requestFullscreen||v.webkitRequestFullscreen||v.webkitRequestFullScreen||v.mozRequestFullScreen||v.msRequestFullscreen)&&g.apply(v)):65===i?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):m=!1),m?e.preventDefault&&e.preventDefault():27!==i&&79!==i||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}}class N{constructor(e){this.Reveal=e,this.writeURLTimeout=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}readURL(){var e=this.Reveal.getConfig(),t=this.Reveal.getIndices(),i=this.Reveal.getCurrentSlide(),a=window.location.hash,s=a.slice(2).split("/"),n=a.replace(/#\/?/gi,"");if(!/^[0-9]*$/.test(s[0])&&n.length){var r,o;/\/[-\d]+$/g.test(n)&&(o=parseInt(n.split("/").pop(),10),o=isNaN(o)?void 0:o,n=n.split("/").shift());try{r=document.getElementById(decodeURIComponent(n))}catch(e){}var l=!!i&&i.getAttribute("id")===n;if(r){if(!l||void 0!==o){var d=this.Reveal.getIndices(r);this.Reveal.slide(d.h,d.v,o)}}else this.Reveal.slide(t.h||0,t.v||0)}else{var c,h=e.hashOneBasedIndex?1:0,u=parseInt(s[0],10)-h||0,v=parseInt(s[1],10)-h||0;e.fragmentInURL&&(c=parseInt(s[2],10),isNaN(c)&&(c=void 0)),u===t.h&&v===t.v&&void 0===c||this.Reveal.slide(u,v,c)}}writeURL(e){var t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!1===R?window.location.hash=this.getHash():t.hash&&window.history.replaceState(null,null,"#"+this.getHash()))}getHash(e){var t="/",i=e||this.Reveal.getCurrentSlide(),a=i?i.getAttribute("id"):null;a&&(a=encodeURIComponent(a));var s=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(s.f=void 0),"string"==typeof a&&a.length)t="/"+a,s.f>=0&&(t+="/"+s.f);else{var n=this.Reveal.getConfig().hashOneBasedIndex?1:0;(s.h>0||s.v>0||s.f>=0)&&(t+=s.h+n),(s.v>0||s.f>=0)&&(t+="/"+(s.v+n)),s.f>=0&&(t+="/"+s.f)}return t}onWindowHashChange(e){this.readURL()}}class M{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this)}render(){var e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML='<button class="navigate-left" aria-label="'.concat(e?"next slide":"previous slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-right" aria-label="').concat(e?"previous slide":"next slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>'),this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=r(t,".navigate-left"),this.controlsRight=r(t,".navigate-right"),this.controlsUp=r(t,".navigate-up"),this.controlsDown=r(t,".navigate-down"),this.controlsPrev=r(t,".navigate-prev"),this.controlsNext=r(t,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){var e=["touchstart","click"];y&&(e=["touchstart"]),e.forEach(e=>{this.controlsLeft.forEach(t=>t.addEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(e,this.onNavigateNextClicked,!1))})}unbind(){["touchstart","click"].forEach(e=>{this.controlsLeft.forEach(t=>t.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.removeEventListener(e,this.onNavigateNextClicked,!1))})}update(){var e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")}),e.left&&this.controlsLeft.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&this.controlsRight.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&this.controlsUp.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&this.controlsDown.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&this.controlsPrev.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&this.controlsNext.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")});var t=this.Reveal.getCurrentSlide();if(t){var i=this.Reveal.fragments.availableRoutes();i.prev&&this.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(t)?(i.prev&&this.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(i.prev&&this.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){var a=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===a.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===a.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}class D{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,t){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){this.Reveal.getConfig().progress&&this.bar&&(this.bar.style.width=this.Reveal.getProgress()*this.getMaxWidth()+"px")}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();var t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}class I{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,t){e.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();var t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}var T=(e,t)=>{var i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=e,"function"==typeof t&&(i.onload=i.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,t())},i.onerror=e=>{i.onload=i.onreadystatechange=i.onerror=null,t(new Error("Failed loading script: "+i.src+"\n"+e))});var a=document.querySelector("head");a.insertBefore(i,a.lastChild)};class H{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,t){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise(e=>{var i=[],a=0;if(t.forEach(e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):i.push(e))}),i.length){a=i.length;var s=t=>{t&&"function"==typeof t.callback&&t.callback(),0==--a&&this.initPlugins().then(e)};i.forEach(e=>{"string"==typeof e.id?(this.registerPlugin(e),s(e)):"string"==typeof e.src?T(e.src,()=>s(e)):(console.warn("Unrecognized plugin format",e),s())})}else this.initPlugins().then(e)})}initPlugins(){return new Promise(e=>{var t=Object.values(this.registeredPlugins),i=t.length;if(0===i)this.loadAsync().then(e);else{var a,s=()=>{0==--i?this.loadAsync().then(e):a()},n=0;(a=()=>{var e=t[n++];if("function"==typeof e.init){var i=e.init(this.Reveal);i&&"function"==typeof i.then?i.then(s):s()}else s()})()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{T(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){2===arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());var t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}}class B{constructor(e){this.Reveal=e}setupPDF(){var e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),i=Math.floor(t.width*(1+e.margin)),a=Math.floor(t.height*(1+e.margin)),s=t.width,n=t.height;u("@page{size:"+i+"px "+a+"px; margin: 0px;}"),u(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+s+"px; max-height:"+n+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=i+"px",document.body.style.height=a+"px",this.Reveal.layoutSlideContents(s,n);var o=e.slideNumber&&/all|print/i.test(e.showSlideNumber);r(this.Reveal.getRevealElement(),".slides section").forEach((function(e){e.setAttribute("data-slide-number",this.Reveal.slideNumber.getSlideNumber(e))}),this),r(this.Reveal.getRevealElement(),".slides section").forEach((function(t){if(!1===t.classList.contains("stack")){var l=(i-s)/2,d=(a-n)/2,c=t.scrollHeight,h=Math.max(Math.ceil(c/a),1);(1===(h=Math.min(h,e.pdfMaxPagesPerSlide))&&e.center||t.classList.contains("center"))&&(d=Math.max((a-c)/2,0));var u=document.createElement("div");if(u.className="pdf-page",u.style.height=(a+e.pdfPageHeightOffset)*h+"px",t.parentNode.insertBefore(u,t),u.appendChild(t),t.style.left=l+"px",t.style.top=d+"px",t.style.width=s+"px",t.slideBackgroundElement&&u.insertBefore(t.slideBackgroundElement,t),e.showNotes){var v=getSlideNotes(t);if(v){var g="string"==typeof e.showNotes?e.showNotes:"inline",p=document.createElement("div");p.classList.add("speaker-notes"),p.classList.add("speaker-notes-pdf"),p.setAttribute("data-layout",g),p.innerHTML=v,"separate-page"===g?u.parentNode.insertBefore(p,u.nextSibling):(p.style.left="8px",p.style.bottom="8px",p.style.width=i-16+"px",u.appendChild(p))}}if(o){var m=document.createElement("div");m.classList.add("slide-number"),m.classList.add("slide-number-pdf"),m.innerHTML=t.getAttribute("data-slide-number"),u.appendChild(m)}if(e.pdfSeparateFragments){var f,b,y=this.Reveal.fragments.sort(u.querySelectorAll(".fragment"),!0);y.forEach((function(e){f&&f.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}),this);var t=u.cloneNode(!0);u.parentNode.insertBefore(t,(b||u).nextSibling),f=e,b=t}),this),y.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else r(u,".fragment:not(.fade-out)").forEach((function(e){e.classList.add("visible")}))}}),this),this.Reveal.dispatchEvent({type:"pdf-ready"})}isPrintingPDF(){return/print-pdf/gi.test(window.location.search)}}class O{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){var e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){var e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;var t=this.Reveal.getConfig();if(this.touchCaptured)y&&e.preventDefault();else{this.Reveal.onUserInput(e);var i=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){var s=this.Reveal.availableRoutes({includeFragments:!0}),n=i-this.touchStartX,r=a-this.touchStartY;n>40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):n<-40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):r>40&&s.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):r<-40&&s.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured=!1}onPointerDown(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}class U{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){"focus"!==this.state&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="focus"}blur(){"blur"!==this.state&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="blur"}isFocused(){return"focus"===this.state}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){var t=e.target.closest(".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}class z{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");var t=e.querySelector("aside.notes");return t?t.innerHTML:null}}class q{constructor(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){var e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){var e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,a=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);var s=-Math.PI/2+e*(2*Math.PI),n=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(i,a,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(i,a,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(i,a,t,n,s,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(i-14,a-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var W={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[],plugins:[]};function F(e,t){arguments.length<2&&(t=arguments[0],e=document.querySelector(".reveal"));var s,c,u,p,m,b,y={},R="4.0.0-dev",S=!1,T={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},F=[],V=1,j={layout:"",overview:""},K={},X="idle",Y=0,$=0,_=-1,J=!1,Q=new A(y),Z=new E(y),G=new L(y),ee=new k(y),te=new x(y),ie=new C(y),ae=new P(y),se=new N(y),ne=new M(y),re=new D(y),oe=new I(y),le=new H(y),de=new B(y),ce=new U(y),he=new O(y),ue=new z(y);function ve(a){return K.wrapper=e,K.slides=e.querySelector(".slides"),s=i({},W,{},t,{},a,{},v()),ge(),window.addEventListener("load",Be,!1),le.load(s.plugins,s.dependencies).then(pe),new Promise(e=>y.on("ready",e))}function ge(){!0===s.embedded?K.viewport=e.closest(".reveal-viewport")||e:(K.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),K.viewport.classList.add("reveal-viewport")}function pe(){S=!0,me(),Re(),we(),et(),Ae(),se.readURL(),ee.update(!0),setTimeout(()=>{K.slides.classList.remove("no-transition"),K.wrapper.classList.add("ready"),Ce({type:"ready",data:{indexh:c,indexv:u,currentSlide:m}})},1),de.isPrintingPDF()&&(Se(),"complete"===document.readyState?de.setupPDF():window.addEventListener("load",()=>{de.setupPDF()}))}function me(){K.slides.classList.add("no-transition"),f?K.wrapper.classList.add("no-hover"):K.wrapper.classList.remove("no-hover"),ee.render(),Z.render(),ne.render(),re.render(),ue.render(),K.pauseOverlay=h(K.wrapper,"div","pause-overlay",s.controls?'<button class="resume-button">Resume presentation</button>':null),K.statusElement=fe(),K.wrapper.setAttribute("role","application")}function fe(){var e=K.wrapper.querySelector(".aria-status");return e||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),K.wrapper.appendChild(e)),e}function be(e){K.statusElement.textContent=e}function ye(e){var t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){var i=e.getAttribute("aria-hidden"),a="none"===window.getComputedStyle(e).display;"true"===i||a||Array.from(e.childNodes).forEach(e=>{t+=ye(e)})}return""===(t=t.trim())?"":t+" "}function we(){setInterval(()=>{0===K.wrapper.scrollTop&&0===K.wrapper.scrollLeft||(K.wrapper.scrollTop=0,K.wrapper.scrollLeft=0)},1e3)}function Re(){s.postMessage&&window.addEventListener("message",e=>{var t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof y[t.method])if(!1===a.test(t.method)){var i=y[t.method].apply(y,t.args);Pe("callback",{method:t.method,result:i})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1)}function Ae(e){var t=i({},s);if("object"==typeof e&&n(s,e),!1!==y.isReady()){var a=K.wrapper.querySelectorAll(".slides section").length;K.wrapper.classList.remove(t.transition),K.wrapper.classList.add(s.transition),K.wrapper.setAttribute("data-transition-speed",s.transitionSpeed),K.wrapper.setAttribute("data-background-transition",s.backgroundTransition),s.shuffle&&tt(),o(K.wrapper,"embedded",s.embedded),o(K.wrapper,"rtl",s.rtl),o(K.wrapper,"center",s.center),!1===s.pause&&Xe(),s.previewLinks?(Ne(),Me("[data-preview-link=false]")):(Me(),Ne("[data-preview-link]:not([data-preview-link=false])")),G.reset(),b&&(b.destroy(),b=null),a>1&&s.autoSlide&&s.autoSlideStoppable&&((b=new q(K.wrapper,()=>Math.min(Math.max((Date.now()-_)/Y,0),1))).on("click",Ht),J=!1),"default"!==s.navigationMode?K.wrapper.setAttribute("data-navigation-mode",s.navigationMode):K.wrapper.removeAttribute("data-navigation-mode"),ue.configure(s,t),ce.configure(s,t),oe.configure(s,t),ne.configure(s,t),re.configure(s,t),ae.configure(s,t),te.configure(s,t),Z.configure(s,t),Ze()}}function Ee(){window.addEventListener("resize",Dt,!1),s.touch&&he.bind(),s.keyboard&&ae.bind(),s.progress&&re.bind(),s.respondToHashChanges&&se.bind(),ne.bind(),ce.bind(),K.slides.addEventListener("transitionend",Mt,!1),K.pauseOverlay.addEventListener("click",Xe,!1),s.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",It,!1)}function Se(){he.unbind(),ce.unbind(),ae.unbind(),ne.unbind(),re.unbind(),se.unbind(),window.removeEventListener("resize",Dt,!1),K.slides.removeEventListener("transitionend",Mt,!1),K.pauseOverlay.removeEventListener("click",Xe,!1)}function ke(t,i,a){e.addEventListener(t,i,a)}function Le(t,i,a){e.removeEventListener(t,i,a)}function xe(e){"string"==typeof e.layout&&(j.layout=e.layout),"string"==typeof e.overview&&(j.overview=e.overview),j.layout?d(K.slides,j.layout+" "+j.overview):d(K.slides,j.overview)}function Ce(e){var{target:t=K.wrapper,type:i,data:a,bubbles:s=!0}=e,r=document.createEvent("HTMLEvents",1,2);r.initEvent(i,s,!0),n(r,a),t.dispatchEvent(r),t===K.wrapper&&Pe(i)}function Pe(e,t){if(s.postMessageEvents&&window.parent!==window.self){var i={namespace:"reveal",eventName:e,state:bt()};n(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function Ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(K.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Tt,!1)})}function Me(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(K.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Tt,!1)})}function De(e){He(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-preview"),K.wrapper.appendChild(K.overlay),K.overlay.innerHTML='<header>\n\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t<a class="external" href="'.concat(e,'" target="_blank"><span class="icon"></span></a>\n\t\t\t</header>\n\t\t\t<div class="spinner"></div>\n\t\t\t<div class="viewport">\n\t\t\t\t<iframe src="').concat(e,'"></iframe>\n\t\t\t\t<small class="viewport-inner">\n\t\t\t\t\t<span class="x-frame-error">Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).</span>\n\t\t\t\t</small>\n\t\t\t</div>'),K.overlay.querySelector("iframe").addEventListener("load",e=>{K.overlay.classList.add("loaded")},!1),K.overlay.querySelector(".close").addEventListener("click",e=>{He(),e.preventDefault()},!1),K.overlay.querySelector(".external").addEventListener("click",e=>{He()},!1)}function Ie(e){"boolean"==typeof e?e?Te():He():K.overlay?He():Te()}function Te(){if(s.help){He(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-help"),K.wrapper.appendChild(K.overlay);var e='<p class="title">Keyboard Shortcuts</p><br/>',t=ae.getShortcuts(),i=ae.getBindings();for(var a in e+="<table><th>KEY</th><th>ACTION</th>",t)e+="<tr><td>".concat(a,"</td><td>").concat(t[a],"</td></tr>");for(var n in i)i[n].key&&i[n].description&&(e+="<tr><td>".concat(i[n].key,"</td><td>").concat(i[n].description,"</td></tr>"));e+="</table>",K.overlay.innerHTML='\n\t\t\t\t<header>\n\t\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t</header>\n\t\t\t\t<div class="viewport">\n\t\t\t\t\t<div class="viewport-inner">'.concat(e,"</div>\n\t\t\t\t</div>\n\t\t\t"),K.overlay.querySelector(".close").addEventListener("click",e=>{He(),e.preventDefault()},!1)}}function He(){return!!K.overlay&&(K.overlay.parentNode.removeChild(K.overlay),K.overlay=null,!0)}function Be(){if(K.wrapper&&!de.isPrintingPDF()){if(!s.disableLayout){f&&!s.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");var e=Ue(),t=V;Oe(s.width,s.height),K.slides.style.width=e.width+"px",K.slides.style.height=e.height+"px",V=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),V=Math.max(V,s.minScale),1===(V=Math.min(V,s.maxScale))?(K.slides.style.zoom="",K.slides.style.left="",K.slides.style.top="",K.slides.style.bottom="",K.slides.style.right="",xe({layout:""})):V>1&&w&&window.devicePixelRatio<2?(K.slides.style.zoom=V,K.slides.style.left="",K.slides.style.top="",K.slides.style.bottom="",K.slides.style.right="",xe({layout:""})):(K.slides.style.zoom="",K.slides.style.left="50%",K.slides.style.top="50%",K.slides.style.bottom="auto",K.slides.style.right="auto",xe({layout:"translate(-50%, -50%) scale("+V+")"}));for(var i=Array.from(K.wrapper.querySelectorAll(".slides section")),a=0,n=i.length;a<n;a++){var r=i[a];"none"!==r.style.display&&(s.center||r.classList.contains("center")?r.classList.contains("stack")?r.style.top=0:r.style.top=Math.max((e.height-r.scrollHeight)/2,0)+"px":r.style.top="")}t!==V&&Ce({type:"resize",data:{oldScale:t,scale:V,size:e}})}re.update(),ee.updateParallax(),ie.isActive()&&ie.update()}}function Oe(e,t){r(K.slides,"section > .stretch, section > .r-stretch").forEach(i=>{var a=g(i,t);if(/(img|video)/gi.test(i.nodeName)){var s=i.naturalWidth||i.videoWidth,n=i.naturalHeight||i.videoHeight,r=Math.min(e/s,a/n);i.style.width=s*r+"px",i.style.height=n*r+"px"}else i.style.width=e+"px",i.style.height=a+"px"})}function Ue(e,t){var i={width:s.width,height:s.height,presentationWidth:e||K.wrapper.offsetWidth,presentationHeight:t||K.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*s.margin,i.presentationHeight-=i.presentationHeight*s.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function ze(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function qe(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function We(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Fe(){return!(!m||!We(m))&&!m.nextElementSibling}function Ve(){return 0===c&&0===u}function je(){return!!m&&(!m.nextElementSibling&&(!We(m)||!m.parentNode.nextElementSibling))}function Ke(){if(s.pause){var e=K.wrapper.classList.contains("paused");Rt(),K.wrapper.classList.add("paused"),!1===e&&Ce({type:"paused"})}}function Xe(){var e=K.wrapper.classList.contains("paused");K.wrapper.classList.remove("paused"),wt(),e&&Ce({type:"resumed"})}function Ye(e){"boolean"==typeof e?e?Ke():Xe():$e()?Xe():Ke()}function $e(){return K.wrapper.classList.contains("paused")}function _e(e){"boolean"==typeof e?e?Et():At():J?Et():At()}function Je(){return!(!Y||J)}function Qe(e,t,i,a){p=m;var n=K.wrapper.querySelectorAll(".slides>section");if(0!==n.length){void 0!==t||ie.isActive()||(t=qe(n[e])),p&&p.parentNode&&p.parentNode.classList.contains("stack")&&ze(p.parentNode,u);var r=F.concat();F.length=0;var o=c||0,l=u||0;c=it(".slides>section",void 0===e?c:e),u=it(".slides>section.present>section",void 0===t?u:t);var d=c!==o||u!==l;d||(p=null);var h=n[c],v=h.querySelectorAll("section");m=v[u]||h;var g=!1;d&&p&&m&&!ie.isActive()&&(p.hasAttribute("data-auto-animate")&&m.hasAttribute("data-auto-animate")&&(g=!0,K.slides.classList.add("disable-slide-transitions")),X="running"),at(),Be(),ie.isActive()&&ie.update(),void 0!==i&&te.goto(i),p&&p!==m&&(p.classList.remove("present"),p.setAttribute("aria-hidden","true"),Ve()&&setTimeout(()=>{ht().forEach(e=>{ze(e,0)})},0));e:for(var f=0,b=F.length;f<b;f++){for(var y=0;y<r.length;y++)if(r[y]===F[f]){r.splice(y,1);continue e}K.viewport.classList.add(F[f]),Ce({type:F[f]})}for(;r.length;)K.viewport.classList.remove(r.pop());d&&Ce({type:"slidechanged",data:{indexh:c,indexv:u,previousSlide:p,currentSlide:m,origin:a}}),!d&&p||(Q.stopEmbeddedContent(p),Q.startEmbeddedContent(m)),be(ye(m)),re.update(),ne.update(),ue.update(),ee.update(),ee.updateParallax(),Z.update(),te.update(),se.writeURL(),wt(),g&&(setTimeout(()=>{K.slides.classList.remove("disable-slide-transitions")},0),s.autoAnimate&&G.run(p,m))}}function Ze(){Se(),Ee(),Be(),Y=s.autoSlide,wt(),ee.create(),se.writeURL(),te.sortAll(),ne.update(),re.update(),at(),ue.update(),ue.updateVisibility(),ee.update(!0),Z.update(),Q.formatEmbeddedContent(),!1===s.autoPlayMedia?Q.stopEmbeddedContent(m,{unloadIframes:!1}):Q.startEmbeddedContent(m),ie.isActive()&&ie.layout()}function Ge(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;ee.sync(e),te.sync(e),Q.load(e),ee.update(),ue.update()}function et(){dt().forEach(e=>{r(e,"section").forEach((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})})}function tt(){dt().forEach((e,t,i)=>{K.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])})}function it(e,t){var i=r(K.wrapper,e),a=i.length,n=de.isPrintingPDF();if(a){s.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(var o=0;o<a;o++){var l=i[o],d=s.rtl&&!We(l);l.classList.remove("past","present","future"),l.setAttribute("hidden",""),l.setAttribute("aria-hidden","true"),l.querySelector("section")&&l.classList.add("stack"),n?l.classList.add("present"):o<t?(l.classList.add(d?"future":"past"),s.fragments&&r(l,".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})):o>t&&(l.classList.add(d?"past":"future"),s.fragments&&r(l,".fragment.visible").forEach(e=>{e.classList.remove("visible","current-fragment")}))}var c=i[t],h=c.classList.contains("present");c.classList.add("present"),c.removeAttribute("hidden"),c.removeAttribute("aria-hidden"),h||Ce({target:c,type:"visible",bubbles:!1});var u=c.getAttribute("data-state");u&&(F=F.concat(u.split(" ")))}else t=0;return t}function at(){var e,t=dt(),i=t.length;if(i&&void 0!==c){var a=ie.isActive()?10:s.viewDistance;f&&(a=ie.isActive()?6:s.mobileViewDistance),de.isPrintingPDF()&&(a=Number.MAX_VALUE);for(var n=0;n<i;n++){var o=t[n],l=r(o,"section"),d=l.length;if(e=Math.abs((c||0)-n)||0,s.loop&&(e=Math.abs(((c||0)-n)%(i-a))||0),e<a?Q.load(o):Q.unload(o),d)for(var h=qe(o),v=0;v<d;v++){var g=l[v];e+(n===(c||0)?Math.abs((u||0)-v):Math.abs(v-h))<a?Q.load(g):Q.unload(g)}}vt()?K.wrapper.classList.add("has-vertical-slides"):K.wrapper.classList.remove("has-vertical-slides"),ut()?K.wrapper.classList.add("has-horizontal-slides"):K.wrapper.classList.remove("has-horizontal-slides")}}function st(){var{includeFragments:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=K.wrapper.querySelectorAll(".slides>section"),i=K.wrapper.querySelectorAll(".slides>section.present>section"),a={left:c>0,right:c<t.length-1,up:u>0,down:u<i.length-1};if(s.loop&&(t.length>1&&(a.left=!0,a.right=!0),i.length>1&&(a.up=!0,a.down=!0)),t.length>1&&"linear"===s.navigationMode&&(a.right=a.right||a.down,a.left=a.left||a.up),!0===e){var n=te.availableRoutes();a.left=a.left||n.prev,a.up=a.up||n.prev,a.down=a.down||n.next,a.right=a.right||n.next}if(s.rtl){var r=a.left;a.left=a.right,a.right=r}return a}function nt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=dt(),i=0;e:for(var a=0;a<t.length;a++){for(var s=t[a],n=s.querySelectorAll("section"),r=0;r<n.length;r++){if(n[r]===e)break e;"uncounted"!==n[r].dataset.visibility&&i++}if(s===e)break;!1===s.classList.contains("stack")&&"uncounted"!==!s.dataset.visibility&&i++}return i}function rt(){var e=pt(),t=nt();if(m){var i=m.querySelectorAll(".fragment");if(i.length>0){t+=m.querySelectorAll(".fragment.visible").length/i.length*.9}}return Math.min(t/(e-1),1)}function ot(e){var t,i=c,a=u;if(e){var s=We(e),n=s?e.parentNode:e,o=dt();i=Math.max(o.indexOf(n),0),a=void 0,s&&(a=Math.max(r(e.parentNode,"section").indexOf(e),0))}if(!e&&m&&m.querySelectorAll(".fragment").length>0){var l=m.querySelector(".current-fragment");t=l&&l.hasAttribute("data-fragment-index")?parseInt(l.getAttribute("data-fragment-index"),10):m.querySelectorAll(".fragment.visible").length-1}return{h:i,v:a,f:t}}function lt(){return r(K.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function dt(){return r(K.wrapper,".slides>section")}function ct(){return r(K.wrapper,".slides>section>section")}function ht(){return r(K.wrapper,".slides>section.stack")}function ut(){return dt().length>1}function vt(){return ct().length>1}function gt(){return lt().map(e=>{for(var t={},i=0;i<e.attributes.length;i++){var a=e.attributes[i];t[a.name]=a.value}return t})}function pt(){return lt().length}function mt(e,t){var i=dt()[e],a=i&&i.querySelectorAll("section");return a&&a.length&&"number"==typeof t?a?a[t]:void 0:i}function ft(e,t){var i="number"==typeof e?mt(e,t):e;if(i)return i.slideBackgroundElement}function bt(){var e=ot();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:$e(),overview:ie.isActive()}}function yt(e){if("object"==typeof e){Qe(l(e.indexh),l(e.indexv),l(e.indexf));var t=l(e.paused),i=l(e.overview);"boolean"==typeof t&&t!==$e()&&Ye(t),"boolean"==typeof i&&i!==ie.isActive()&&ie.toggle(i)}}function wt(){if(Rt(),m&&!1!==s.autoSlide){var e=m.querySelector(".current-fragment");e||(e=m.querySelector(".fragment"));var t=e?e.getAttribute("data-autoslide"):null,i=m.parentNode?m.parentNode.getAttribute("data-autoslide"):null,a=m.getAttribute("data-autoslide");Y=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):s.autoSlide,0===m.querySelectorAll(".fragment").length&&r(m,"video, audio").forEach(e=>{e.hasAttribute("data-autoplay")&&Y&&1e3*e.duration/e.playbackRate>Y&&(Y=1e3*e.duration/e.playbackRate+1e3)}),!Y||J||$e()||ie.isActive()||je()&&!te.availableRoutes().next&&!0!==s.loop||($=setTimeout(()=>{"function"==typeof s.autoSlideMethod?s.autoSlideMethod():Pt(),wt()},Y),_=Date.now()),b&&b.setPlaying(-1!==$)}}function Rt(){clearTimeout($),$=-1}function At(){Y&&!J&&(J=!0,Ce({type:"autoslidepaused"}),clearTimeout($),b&&b.setPlaying(!1))}function Et(){Y&&J&&(J=!1,Ce({type:"autoslideresumed"}),wt())}function St(){T.hasNavigatedHorizontally=!0,s.rtl?(ie.isActive()||!1===te.next())&&st().left&&Qe(c+1,"grid"===s.navigationMode?u:void 0):(ie.isActive()||!1===te.prev())&&st().left&&Qe(c-1,"grid"===s.navigationMode?u:void 0)}function kt(){T.hasNavigatedHorizontally=!0,s.rtl?(ie.isActive()||!1===te.prev())&&st().right&&Qe(c-1,"grid"===s.navigationMode?u:void 0):(ie.isActive()||!1===te.next())&&st().right&&Qe(c+1,"grid"===s.navigationMode?u:void 0)}function Lt(){(ie.isActive()||!1===te.prev())&&st().up&&Qe(c,u-1)}function xt(){T.hasNavigatedVertically=!0,(ie.isActive()||!1===te.next())&&st().down&&Qe(c,u+1)}function Ct(){var e;if(!1===te.prev())if(st().up)Lt();else if(e=s.rtl?r(K.wrapper,".slides>section.future").pop():r(K.wrapper,".slides>section.past").pop()){var t=e.querySelectorAll("section").length-1||void 0;Qe(c-1,t)}}function Pt(){if(T.hasNavigatedHorizontally=!0,T.hasNavigatedVertically=!0,!1===te.next()){var e=st();e.down&&e.right&&s.loop&&Fe()&&(e.down=!1),e.down?xt():s.rtl?St():kt()}}function Nt(e){s.autoSlideStoppable&&At()}function Mt(e){"running"===X&&/section/gi.test(e.target.nodeName)&&(X="idle",Ce({type:"slidetransitionend",data:{indexh:c,indexv:u,previousSlide:p,currentSlide:m}}))}function Dt(e){Be()}function It(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Tt(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){var t=e.currentTarget.getAttribute("href");t&&(De(t),e.preventDefault())}}function Ht(e){je()&&!1===s.loop?(Qe(0,0),Et()):J?Et():At()}var Bt={VERSION:R,initialize:ve,configure:Ae,sync:Ze,syncSlide:Ge,syncFragments:te.sync.bind(te),slide:Qe,left:St,right:kt,up:Lt,down:xt,prev:Ct,next:Pt,navigateLeft:St,navigateRight:kt,navigateUp:Lt,navigateDown:xt,navigatePrev:Ct,navigateNext:Pt,navigateFragment:te.goto.bind(te),prevFragment:te.prev.bind(te),nextFragment:te.next.bind(te),on:ke,off:Le,addEventListener:ke,removeEventListener:Le,layout:Be,shuffle:tt,availableRoutes:st,availableFragments:te.availableRoutes.bind(te),toggleHelp:Ie,toggleOverview:ie.toggle.bind(ie),togglePause:Ye,toggleAutoSlide:_e,isFirstSlide:Ve,isLastSlide:je,isLastVerticalSlide:Fe,isVerticalSlide:We,isPaused:$e,isAutoSliding:Je,isSpeakerNotes:ue.isSpeakerNotesWindow.bind(ue),isOverview:ie.isActive.bind(ie),isFocused:ce.isFocused.bind(ce),isPrintingPDF:de.isPrintingPDF.bind(de),isReady:()=>S,loadSlide:Q.load.bind(Q),unloadSlide:Q.unload.bind(Q),addEventListeners:Ee,removeEventListeners:Se,dispatchEvent:Ce,getState:bt,setState:yt,getProgress:rt,getIndices:ot,getSlidesAttributes:gt,getSlidePastCount:nt,getTotalSlides:pt,getSlide:mt,getPreviousSlide:()=>p,getCurrentSlide:()=>m,getSlideBackground:ft,getSlideNotes:ue.getSlideNotes.bind(ue),getSlides:lt,getHorizontalSlides:dt,getVerticalSlides:ct,hasHorizontalSlides:ut,hasVerticalSlides:vt,hasNavigatedHorizontally:()=>T.hasNavigatedHorizontally,hasNavigatedVertically:()=>T.hasNavigatedVertically,addKeyBinding:ae.addKeyBinding.bind(ae),removeKeyBinding:ae.removeKeyBinding.bind(ae),triggerKey:ae.triggerKey.bind(ae),registerKeyboardShortcut:ae.registerKeyboardShortcut.bind(ae),getComputedSlideSize:Ue,getScale:()=>V,getConfig:()=>s,getQueryHash:v,getRevealElement:()=>e,getSlidesElement:()=>K.slides,getViewportElement:()=>K.viewport,getBackgroundsElement:()=>ee.element,registerPlugin:le.registerPlugin.bind(le),hasPlugin:le.hasPlugin.bind(le),getPlugin:le.getPlugin.bind(le),getPlugins:le.getRegisteredPlugins.bind(le)};return n(y,i({},Bt,{announceStatus:be,getStatusText:ye,print:de,focus:ce,progress:re,controls:ne,location:se,overview:ie,fragments:te,slideContent:Q,slideNumber:Z,onUserInput:Nt,closeOverlay:He,updateSlidesVisibility:at,layoutSlideContents:Oe,transformSlides:xe,cueAutoSlide:wt,cancelAutoSlide:Rt})),Bt}var V=F,j=[];V.initialize=e=>(Object.assign(V,new F(document.querySelector(".reveal"),e)),j.map(e=>e(V)),V.initialize()),["on","off","addEventListener","removeEventListener","registerPlugin"].forEach(e=>{V[e]=function(){for(var t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];j.push(t=>t[e].call(null,...i))}});export default V;
+function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function i(i){for(var a=1;a<arguments.length;a++){var s=null!=arguments[a]?arguments[a]:{};a%2?t(Object(s),!0).forEach((function(t){e(i,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):t(Object(s)).forEach((function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))}))}return i}var a=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/,s=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/,n=(e,t)=>{for(var i in t)e[i]=t[i];return e},r=(e,t)=>Array.from(e.querySelectorAll(t)),o=(e,t,i)=>{i?e.classList.add(t):e.classList.remove(t)},l=e=>{if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},d=(e,t)=>{e.style.transform=t},c=(e,t)=>{for(var i=e.parentNode;i;){var a=i.matches||i.matchesSelector||i.msMatchesSelector;if(a&&a.call(i,t))return i;i=i.parentNode}return null},h=function(e,t,i){for(var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",s=e.querySelectorAll("."+i),n=0;n<s.length;n++){var r=s[n];if(r.parentNode===e)return r}var o=document.createElement(t);return o.className=i,o.innerHTML=a,e.appendChild(o),o},u=e=>{var t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},v=()=>{var e={};for(var t in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()}),e){var i=e[t];e[t]=l(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e){var i,a=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",i=t-e.parentNode.offsetHeight,e.style.height=a+"px",e.parentNode.style.removeProperty("height"),i}return t},p=navigator.userAgent,m=document.createElement("div"),f=/(iphone|ipod|ipad|android)/gi.test(p)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,b=/chrome/i.test(p)&&!/edge/i.test(p),y=/android/gi.test(p),w="zoom"in m.style&&!f&&(b||/Version\/[\d\.]+.*Safari/.test(p)),R="function"==typeof window.history.replaceState&&!/PhantomJS/.test(p);class A{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(e){var t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.style.display=this.Reveal.getConfig().display,r(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(e=>{("IFRAME"!==e.tagName||this.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))}),r(e,"video, audio").forEach(e=>{var t=0;r(e,"source[data-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1}),t>0&&e.load()});var i=e.slideBackgroundElement;if(i){i.style.display="block";var a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===i.hasAttribute("data-loaded")){i.setAttribute("data-loaded","true");var n=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),l=e.hasAttribute("data-background-video-loop"),d=e.hasAttribute("data-background-video-muted");if(n)a.style.backgroundImage="url("+encodeURI(n)+")";else if(o&&!this.Reveal.isSpeakerNotes()){var c=document.createElement("video");l&&c.setAttribute("loop",""),d&&(c.muted=!0),f&&(c.muted=!0,c.autoplay=!0,c.setAttribute("playsinline","")),o.split(",").forEach(e=>{c.innerHTML+='<source src="'+e+'">'}),a.appendChild(c)}else if(s&&!0!==t.excludeIframes){var h=document.createElement("iframe");h.setAttribute("allowfullscreen",""),h.setAttribute("mozallowfullscreen",""),h.setAttribute("webkitallowfullscreen",""),h.setAttribute("allow","autoplay"),h.setAttribute("data-src",s),h.style.width="100%",h.style.height="100%",h.style.maxHeight="100%",h.style.maxWidth="100%",a.appendChild(h)}}var u=a.querySelector("iframe[data-src]");u&&this.shouldPreload(i)&&!/autoplay=(1|true|yes)/gi.test(s)&&u.getAttribute("src")!==s&&u.setAttribute("src",s)}}unload(e){e.style.display="none";var t=this.Reveal.getSlideBackground(e);t&&(t.style.display="none",r(t,"iframe[src]").forEach(e=>{e.removeAttribute("src")})),r(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),r(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}formatEmbeddedContent(){var e=(e,t,i)=>{r(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+t+'"]').forEach(t=>{var a=t.getAttribute(e);a&&-1===a.indexOf(i)&&t.setAttribute(e,a+(/\?/.test(a)?"&":"?")+i)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){e&&!this.Reveal.isSpeakerNotes()&&(r(e,'img[src$=".gif"]').forEach(e=>{e.setAttribute("src",e.getAttribute("src"))}),r(e,"video, audio").forEach(e=>{if(!c(e,".fragment")||c(e,".fragment.visible")){var t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!c(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(f){var i=e.play();i&&"function"==typeof i.catch&&!1===e.controls&&i.catch(()=>{e.controls=!0,e.addEventListener("play",()=>{e.controls=!1})})}else e.removeEventListener("loadeddata",this.startEmbeddedMedia),e.addEventListener("loadeddata",this.startEmbeddedMedia)}}),r(e,"iframe[src]").forEach(e=>{c(e,".fragment")&&!c(e,".fragment.visible")||this.startEmbeddedIframe({target:e})}),r(e,"iframe[data-src]").forEach(e=>{c(e,".fragment")&&!c(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",this.startEmbeddedIframe),e.addEventListener("load",this.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))}))}startEmbeddedMedia(e){var t=!!c(e.target,"html"),i=!!c(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){var t=e.target;if(t&&t.contentWindow){var i=!!c(e.target,"html"),a=!!c(e.target,".present");if(i&&a){var s=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof s&&(s=t.hasAttribute("data-autoplay")||!!c(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&s?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&s?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=n({unloadIframes:!0},t),e&&e.parentNode&&(r(e,"video, audio").forEach(e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),r(e,"iframe").forEach(e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",this.startEmbeddedIframe)}),r(e,'iframe[src*="youtube.com/embed/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),r(e,'iframe[src*="player.vimeo.com/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===t.unloadIframes&&r(e,"iframe[data-src]").forEach(e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}}class E{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){var i="none";e.slideNumber&&!this.Reveal.isPrintingPDF()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(i="block"),this.element.style.display=i}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide(),i=this.Reveal.getConfig(),a="h.v";if("function"==typeof i.slideNumber)e=i.slideNumber(t);else switch("string"==typeof i.slideNumber&&(a=i.slideNumber),/c/.test(a)||1!==this.Reveal.getHorizontalSlides().length||(a="c"),e=[],a){case"c":e.push(this.Reveal.getSlidePastCount(t)+1);break;case"c/t":e.push(this.Reveal.getSlidePastCount(t)+1,"/",this.Reveal.getTotalSlides());break;default:var s=this.Reveal.getIndices(t);e.push(s.h+1);var n="h/v"===a?"/":".";this.Reveal.isVerticalSlide(t)&&e.push(n,s.v+1)}var r="#"+this.Reveal.location.getHash(t);return this.formatNumber(e[0],e[1],e[2],r)}formatNumber(e,t,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#"+this.Reveal.location.getHash();return"number"!=typeof i||isNaN(i)?'<a href="'.concat(a,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,"</span>\n\t\t\t\t\t</a>"):'<a href="'.concat(a,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,'</span>\n\t\t\t\t\t<span class="slide-number-delimiter">').concat(t,'</span>\n\t\t\t\t\t<span class="slide-number-b">').concat(i,"</span>\n\t\t\t\t\t</a>")}}var S=e=>{var t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};var i=e.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16)};var a=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(a)return{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10)};var s=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return s?{r:parseInt(s[1],10),g:parseInt(s[2],10),b:parseInt(s[3],10),a:parseFloat(s[4])}:null};class k{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.Reveal.isPrintingPDF();this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach(e=>{var t=this.createBackground(e,this.element);r(e,"section").forEach(e=>{this.createBackground(e,t),t.classList.add("stack")})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")},1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,t){var i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");var a=document.createElement("div");return a.className="slide-background-content",i.appendChild(a),t.appendChild(i),e.slideBackgroundElement=i,e.slideBackgroundContentElement=a,this.sync(e),i}sync(e){var t=e.slideBackgroundElement,i=e.slideBackgroundContentElement;e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",i.style.backgroundSize="",i.style.backgroundRepeat="",i.style.backgroundPosition="",i.style.backgroundImage="",i.style.opacity="",i.innerHTML="";var a={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")};a.background&&(/^(http|file|\/\/)/gi.test(a.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(a.background)?e.setAttribute("data-background-image",a.background):t.style.background=a.background),(a.background||a.backgroundColor||a.backgroundImage||a.backgroundVideo||a.backgroundIframe)&&t.setAttribute("data-background-hash",a.background+a.backgroundSize+a.backgroundImage+a.backgroundVideo+a.backgroundIframe+a.backgroundColor+a.backgroundRepeat+a.backgroundPosition+a.backgroundTransition+a.backgroundOpacity),a.backgroundSize&&t.setAttribute("data-background-size",a.backgroundSize),a.backgroundColor&&(t.style.backgroundColor=a.backgroundColor),a.backgroundTransition&&t.setAttribute("data-background-transition",a.backgroundTransition),e.hasAttribute("data-preload")&&t.setAttribute("data-preload",""),a.backgroundSize&&(i.style.backgroundSize=a.backgroundSize),a.backgroundRepeat&&(i.style.backgroundRepeat=a.backgroundRepeat),a.backgroundPosition&&(i.style.backgroundPosition=a.backgroundPosition),a.backgroundOpacity&&(i.style.opacity=a.backgroundOpacity);var s,n=a.backgroundColor;if(!n){var r=window.getComputedStyle(t);r&&r.backgroundColor&&(n=r.backgroundColor)}if(n){var o=S(n);o&&0!==o.a&&("string"==typeof(s=n)&&(s=S(s)),(s?(299*s.r+587*s.g+114*s.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}}update(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Reveal.getCurrentSlide(),i=this.Reveal.getIndices(),a=null,s=this.Reveal.getConfig().rtl?"future":"past",n=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((t,o)=>{t.classList.remove("past","present","future"),o<i.h?t.classList.add(s):o>i.h?t.classList.add(n):(t.classList.add("present"),a=t),(e||o===i.h)&&r(t,".slide-background").forEach((e,t)=>{e.classList.remove("past","present","future"),t<i.v?e.classList.add("past"):t>i.v?e.classList.add("future"):(e.classList.add("present"),o===i.h&&(a=e))})}),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),a){this.Reveal.slideContent.startEmbeddedContent(a);var o=a.querySelector(".slide-background-content");if(o){var l=o.style.backgroundImage||"";/\.gif/i.test(l)&&(o.style.backgroundImage="",window.getComputedStyle(o).opacity,o.style.backgroundImage=l)}var d=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,c=a.getAttribute("data-background-hash");c&&c===d&&a!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=a}t&&["has-light-background","has-dark-background"].forEach(e=>{t.classList.contains(e)?this.Reveal.getRevealElement().classList.add(e):this.Reveal.getRevealElement().classList.remove(e)},this),setTimeout(()=>{this.element.classList.remove("no-transition")},1)}updateParallax(){var e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){var t,i,a=this.Reveal.getHorizontalSlides(),s=this.Reveal.getVerticalSlides(),n=this.element.style.backgroundSize.split(" ");1===n.length?t=i=parseInt(n[0],10):(t=parseInt(n[0],10),i=parseInt(n[1],10));var r,o=this.element.offsetWidth,l=a.length;r=("number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:l>1?(t-o)/(l-1):0)*e.h*-1;var d,c,h=this.element.offsetHeight,u=s.length;d="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-h)/(u-1),c=u>0?d*e.v:0,this.element.style.backgroundPosition=r+"px "+-c+"px"}}}class L{constructor(e){this.Reveal=e,this.autoAnimateCounter=0}run(e,t){if(this.reset(),e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||u();var i=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";var a=this.Reveal.getSlides();i.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";var s=this.getAutoAnimatableElements(e,t).map(e=>this.autoAnimateElements(e.from,e.to,e.options||{},i,this.autoAnimateCounter++));if("false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){var n=.8*i.duration,r=.2*i.duration;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{var t=this.getAutoAnimateOptions(e,i),a="unmatched";t.duration===i.duration&&t.delay===i.delay||(a="unmatched-"+this.autoAnimateCounter++,s.push('[data-auto-animate="running"] [data-auto-animate-target="'.concat(a,'"] { transition: opacity ').concat(t.duration,"s ease ").concat(t.delay,"s; }"))),e.dataset.autoAnimateTarget=a},this),s.push('[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity '.concat(n,"s ease ").concat(r,"s; }"))}this.autoAnimateStyleSheet.innerHTML=s.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}reset(){r(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(e=>{e.dataset.autoAnimate=""}),r(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,t,i,a,n){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=n;var r=this.getAutoAnimateOptions(t,a);void 0!==i.delay&&(r.delay=i.delay),void 0!==i.duration&&(r.duration=i.duration),void 0!==i.easing&&(r.easing=i.easing);var o=this.getAutoAnimatableProperties("from",e,i),l=this.getAutoAnimatableProperties("to",t,i);t.classList.contains("fragment")&&(delete l.styles.opacity,e.classList.contains("fragment")&&(e.className.match(s)||[""])[0]===(t.className.match(s)||[""])[0]&&"forward"===a.slideDirection&&t.classList.add("visible","disabled"));if(!1!==i.translate||!1!==i.scale){var d=this.Reveal.getScale(),c={x:(o.x-l.x)/d,y:(o.y-l.y)/d,scaleX:o.width/l.width,scaleY:o.height/l.height};c.x=Math.round(1e3*c.x)/1e3,c.y=Math.round(1e3*c.y)/1e3,c.scaleX=Math.round(1e3*c.scaleX)/1e3,c.scaleX=Math.round(1e3*c.scaleX)/1e3;var h=!1!==i.translate&&(0!==c.x||0!==c.y),u=!1!==i.scale&&(0!==c.scaleX||0!==c.scaleY);if(h||u){var v=[];h&&v.push("translate(".concat(c.x,"px, ").concat(c.y,"px)")),u&&v.push("scale(".concat(c.scaleX,", ").concat(c.scaleY,")")),o.styles.transform=v.join(" "),o.styles["transform-origin"]="top left",l.styles.transform="none"}}for(var g in l.styles){var p=l.styles[g],m=o.styles[g];p===m?delete l.styles[g]:(!0===p.explicitValue&&(l.styles[g]=p.value),!0===m.explicitValue&&(o.styles[g]=m.value))}var f="",b=Object.keys(l.styles);b.length>0&&(o.styles.transition="none",l.styles.transition="all ".concat(r.duration,"s ").concat(r.easing," ").concat(r.delay,"s"),l.styles["transition-property"]=b.join(", "),l.styles["will-change"]=b.join(", "),f='[data-auto-animate-target="'+n+'"] {'+Object.keys(o.styles).map(e=>e+": "+o.styles[e]+" !important;").join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+n+'"] {'+Object.keys(l.styles).map(e=>e+": "+l.styles[e]+" !important;").join("")+"}");return f}getAutoAnimateOptions(e,t){var i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=n(i,t),e.closest&&e.parentNode){var a=e.parentNode.closest("[data-auto-animate-target]");a&&(i=this.getAutoAnimateOptions(a,i))}return e.dataset.autoAnimateEasing&&(i.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(i.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(i.delay=parseFloat(e.dataset.autoAnimateDelay)),i}getAutoAnimatableProperties(e,t,i){var a=this.Reveal.getConfig(),s={styles:[]};if(!1!==i.translate||!1!==i.scale){var n;if("function"==typeof i.measure)n=i.measure(t);else if(a.center)n=t.getBoundingClientRect();else{var r=this.Reveal.getScale();n={x:t.offsetLeft*r,y:t.offsetTop*r,width:t.offsetWidth*r,height:t.offsetHeight*r}}s.x=n.x,s.y=n.y,s.width=n.width,s.height=n.height}var o=getComputedStyle(t);return(i.styles||a.autoAnimateStyles).forEach(t=>{var i;"string"==typeof t&&(t={property:t}),""!==(i=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:o[t.property])&&(s.styles[t.property]=i)}),s}getAutoAnimatableElements(e,t){var i=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),a=[];return i.filter((e,t)=>{if(-1===a.indexOf(e.to))return a.push(e.to),!0})}getAutoAnimatePairs(e,t){var i=[],a="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(i,e,t,"[data-id]",e=>e.nodeName+":::"+e.getAttribute("data-id")),this.findAutoAnimateMatches(i,e,t,a,e=>e.nodeName+":::"+e.innerText),this.findAutoAnimateMatches(i,e,t,"img, video, iframe",e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))),this.findAutoAnimateMatches(i,e,t,"pre",e=>e.nodeName+":::"+e.innerText),i.forEach(e=>{e.from.matches(a)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-code",e=>e.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",e=>e.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),i}getLocalBoundingBox(e){var t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}findAutoAnimateMatches(e,t,i,a,s,n){var r={},o={};[].slice.call(t.querySelectorAll(a)).forEach((e,t)=>{var i=s(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))}),[].slice.call(i.querySelectorAll(a)).forEach((t,i)=>{var a,l=s(t);if(o[l]=o[l]||[],o[l].push(t),r[l]){var d=o[l].length-1,c=r[l].length-1;r[l][d]?(a=r[l][d],r[l][d]=null):r[l][c]&&(a=r[l][c],r[l][c]=null)}a&&e.push({from:a,to:t,options:n})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{var i=t.querySelector("[data-auto-animate-target]");return t.hasAttribute("data-auto-animate-target")||i||e.push(t),t.querySelector("[data-auto-animate-target]")&&(e=e.concat(this.getUnmatchedAutoAnimateElements(t))),e},[])}}class x{constructor(e){this.Reveal=e}configure(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}disable(){r(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}enable(){r(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")})}availableRoutes(){var e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){var t=e.querySelectorAll(".fragment:not(.disabled)"),i=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-i.length>0,next:!!i.length}}return{prev:!1,next:!1}}sort(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e=Array.from(e);var i=[],a=[],s=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){var t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else a.push([e])}),i=i.concat(a);var n=0;return i.forEach(e=>{e.forEach(e=>{s.push(e),e.setAttribute("data-fragment-index",n)}),n++}),!0===t?i:s}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{var t=r(e,"section");t.forEach((e,t)=>{this.sort(e.querySelectorAll(".fragment"))},this),0===t.length&&this.sort(e.querySelectorAll(".fragment"))})}update(e,t){var i={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){var s=0;if("number"!=typeof e){var n=this.sort(a.querySelectorAll(".fragment.visible")).pop();n&&(e=parseInt(n.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach((t,a)=>{if(t.hasAttribute("data-fragment-index")&&(a=parseInt(t.getAttribute("data-fragment-index"),10)),s=Math.max(s,a),a<=e){var n=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),a===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(t)),t.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(t)),n||(i.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{var r=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),r&&(i.hidden.push(t),this.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}}),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,s),-1),a.setAttribute("data-fragment",e)}return i}sync(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();return this.sort(e.querySelectorAll(".fragment"))}goto(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){var a=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(a.length){if("number"!=typeof e){var s=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=s?parseInt(s.getAttribute("data-fragment-index")||0,10):-1}e+=t;var n=this.update(e,a);return n.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:n.hidden[0],fragments:n.hidden}}),n.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:n.shown[0],fragments:n.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!n.shown.length&&!n.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class C{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),r(this.Reveal.getRevealElement(),".slides section").forEach(e=>{e.classList.contains("stack")||e.addEventListener("click",this.onSlideClicked,!0)});var e=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=e.width+70,this.overviewSlideHeight=e.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();var t=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,t)=>{e.setAttribute("data-index-h",t),d(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&r(e,"section").forEach((e,i)=>{e.setAttribute("data-index-h",t),e.setAttribute("data-index-v",i),d(e,"translate3d(0, "+i*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{d(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),r(e,".slide-background").forEach((e,t)=>{d(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})})}update(){var e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,i=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-i.h*this.overviewSlideWidth+"px)","translateY("+-i.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),r(this.Reveal.getRevealElement(),".slides section").forEach(e=>{d(e,""),e.removeEventListener("click",this.onSlideClicked,!0)}),r(this.Reveal.getBackgroundsElement(),".slide-background").forEach(e=>{d(e,"")}),this.Reveal.transformSlides({overview:""});var e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){var i=parseInt(t.getAttribute("data-index-h"),10),a=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(i,a)}}}}class P{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}configure(e,t){"linear"===e.navigationMode?(this.shortcuts["&#8594; , &#8595; , SPACE , N , L , J"]="Next slide",this.shortcuts["&#8592; , &#8593; , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["&#8592; , H"]="Navigate left",this.shortcuts["&#8594; , L"]="Navigate right",this.shortcuts["&#8593; , K"]="Navigate up",this.shortcuts["&#8595; , J"]="Navigate down"),this.shortcuts["Home , Shift &#8592;"]="First slide",this.shortcuts["End , Shift &#8594;"]="Last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}addKeyBinding(e,t){"object"==typeof e&&e.keyCode?this.bindings[e.keyCode]={callback:t,key:e.key,description:e.description}:this.bindings[e]={callback:t,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,t){this.shortcuts[e]=t}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyPress(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}onDocumentKeyDown(e){var t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e))return!0;if("focused"===t.keyboardCondition&&!this.Reveal.isFocused())return!0;var i=e.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);var s=document.activeElement&&!0===document.activeElement.isContentEditable,n=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),r=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),o=e.shiftKey&&32===e.keyCode,l=e.shiftKey&&37===i,d=e.shiftKey&&39===i,c=!o&&!l&&!d&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(!(s||n||r||c)){var h,u=[66,86,190,191];if("object"==typeof t.keyboard)for(h in t.keyboard)"togglePause"===t.keyboard[h]&&u.push(parseInt(h,10));if(this.Reveal.isPaused()&&-1===u.indexOf(i))return!1;var v,g,p="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),m=!1;if("object"==typeof t.keyboard)for(h in t.keyboard)if(parseInt(h,10)===i){var f=t.keyboard[h];"function"==typeof f?f.apply(null,[e]):"string"==typeof f&&"function"==typeof this.Reveal[f]&&this.Reveal[f].call(),m=!0}if(!1===m)for(h in this.bindings)if(parseInt(h,10)===i){var b=this.bindings[h].callback;"function"==typeof b?b.apply(null,[e]):"string"==typeof b&&"function"==typeof this.Reveal[b]&&this.Reveal[b].call(),m=!0}!1===m&&(m=!0,80===i||33===i?this.Reveal.prev():78===i||34===i?this.Reveal.next():72===i||37===i?l?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.left():76===i||39===i?d?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.right():75===i||38===i?!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.up():74===i||40===i?!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.down():36===i?this.Reveal.slide(0):35===i?this.Reveal.slide(Number.MAX_VALUE):32===i?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev():this.Reveal.next()):58===i||59===i||66===i||86===i||190===i||191===i?this.Reveal.togglePause():70===i?(v=t.embedded?this.Reveal.getViewportElement():document.documentElement,(g=(v=v||document.documentElement).requestFullscreen||v.webkitRequestFullscreen||v.webkitRequestFullScreen||v.mozRequestFullScreen||v.msRequestFullscreen)&&g.apply(v)):65===i?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):m=!1),m?e.preventDefault&&e.preventDefault():27!==i&&79!==i||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}}class N{constructor(e){this.Reveal=e,this.writeURLTimeout=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}readURL(){var e=this.Reveal.getConfig(),t=this.Reveal.getIndices(),i=this.Reveal.getCurrentSlide(),a=window.location.hash,s=a.slice(2).split("/"),n=a.replace(/#\/?/gi,"");if(!/^[0-9]*$/.test(s[0])&&n.length){var r,o;/\/[-\d]+$/g.test(n)&&(o=parseInt(n.split("/").pop(),10),o=isNaN(o)?void 0:o,n=n.split("/").shift());try{r=document.getElementById(decodeURIComponent(n))}catch(e){}var l=!!i&&i.getAttribute("id")===n;if(r){if(!l||void 0!==o){var d=this.Reveal.getIndices(r);this.Reveal.slide(d.h,d.v,o)}}else this.Reveal.slide(t.h||0,t.v||0)}else{var c,h=e.hashOneBasedIndex?1:0,u=parseInt(s[0],10)-h||0,v=parseInt(s[1],10)-h||0;e.fragmentInURL&&(c=parseInt(s[2],10),isNaN(c)&&(c=void 0)),u===t.h&&v===t.v&&void 0===c||this.Reveal.slide(u,v,c)}}writeURL(e){var t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!1===R?window.location.hash=this.getHash():t.hash&&window.history.replaceState(null,null,"#"+this.getHash()))}getHash(e){var t="/",i=e||this.Reveal.getCurrentSlide(),a=i?i.getAttribute("id"):null;a&&(a=encodeURIComponent(a));var s=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(s.f=void 0),"string"==typeof a&&a.length)t="/"+a,s.f>=0&&(t+="/"+s.f);else{var n=this.Reveal.getConfig().hashOneBasedIndex?1:0;(s.h>0||s.v>0||s.f>=0)&&(t+=s.h+n),(s.v>0||s.f>=0)&&(t+="/"+(s.v+n)),s.f>=0&&(t+="/"+s.f)}return t}onWindowHashChange(e){this.readURL()}}class M{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this)}render(){var e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML='<button class="navigate-left" aria-label="'.concat(e?"next slide":"previous slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-right" aria-label="').concat(e?"previous slide":"next slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>'),this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=r(t,".navigate-left"),this.controlsRight=r(t,".navigate-right"),this.controlsUp=r(t,".navigate-up"),this.controlsDown=r(t,".navigate-down"),this.controlsPrev=r(t,".navigate-prev"),this.controlsNext=r(t,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){var e=["touchstart","click"];y&&(e=["touchstart"]),e.forEach(e=>{this.controlsLeft.forEach(t=>t.addEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(e,this.onNavigateNextClicked,!1))})}unbind(){["touchstart","click"].forEach(e=>{this.controlsLeft.forEach(t=>t.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.removeEventListener(e,this.onNavigateNextClicked,!1))})}update(){var e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")}),e.left&&this.controlsLeft.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&this.controlsRight.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&this.controlsUp.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&this.controlsDown.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&this.controlsPrev.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&this.controlsNext.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")});var t=this.Reveal.getCurrentSlide();if(t){var i=this.Reveal.fragments.availableRoutes();i.prev&&this.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(t)?(i.prev&&this.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(i.prev&&this.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),i.next&&this.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){var a=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===a.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===a.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}class D{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,t){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){this.Reveal.getConfig().progress&&this.bar&&(this.bar.style.width=this.Reveal.getProgress()*this.getMaxWidth()+"px")}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();var t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}class I{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,t){e.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();var t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}var T=(e,t)=>{var i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=e,"function"==typeof t&&(i.onload=i.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,t())},i.onerror=e=>{i.onload=i.onreadystatechange=i.onerror=null,t(new Error("Failed loading script: "+i.src+"\n"+e))});var a=document.querySelector("head");a.insertBefore(i,a.lastChild)};class H{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,t){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise(e=>{var i=[],a=0;if(t.forEach(e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):i.push(e))}),i.length){a=i.length;var s=t=>{t&&"function"==typeof t.callback&&t.callback(),0==--a&&this.initPlugins().then(e)};i.forEach(e=>{"string"==typeof e.id?(this.registerPlugin(e),s(e)):"string"==typeof e.src?T(e.src,()=>s(e)):(console.warn("Unrecognized plugin format",e),s())})}else this.initPlugins().then(e)})}initPlugins(){return new Promise(e=>{var t=Object.values(this.registeredPlugins),i=t.length;if(0===i)this.loadAsync().then(e);else{var a,s=()=>{0==--i?this.loadAsync().then(e):a()},n=0;(a=()=>{var e=t[n++];if("function"==typeof e.init){var i=e.init(this.Reveal);i&&"function"==typeof i.then?i.then(s):s()}else s()})()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{T(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){2===arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());var t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}}class B{constructor(e){this.Reveal=e}setupPDF(){var e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),i=Math.floor(t.width*(1+e.margin)),a=Math.floor(t.height*(1+e.margin)),s=t.width,n=t.height;u("@page{size:"+i+"px "+a+"px; margin: 0px;}"),u(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+s+"px; max-height:"+n+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=i+"px",document.body.style.height=a+"px",this.Reveal.layoutSlideContents(s,n);var o=e.slideNumber&&/all|print/i.test(e.showSlideNumber);r(this.Reveal.getRevealElement(),".slides section").forEach((function(e){e.setAttribute("data-slide-number",this.Reveal.slideNumber.getSlideNumber(e))}),this),r(this.Reveal.getRevealElement(),".slides section").forEach((function(t){if(!1===t.classList.contains("stack")){var l=(i-s)/2,d=(a-n)/2,c=t.scrollHeight,h=Math.max(Math.ceil(c/a),1);(1===(h=Math.min(h,e.pdfMaxPagesPerSlide))&&e.center||t.classList.contains("center"))&&(d=Math.max((a-c)/2,0));var u=document.createElement("div");if(u.className="pdf-page",u.style.height=(a+e.pdfPageHeightOffset)*h+"px",t.parentNode.insertBefore(u,t),u.appendChild(t),t.style.left=l+"px",t.style.top=d+"px",t.style.width=s+"px",t.slideBackgroundElement&&u.insertBefore(t.slideBackgroundElement,t),e.showNotes){var v=getSlideNotes(t);if(v){var g="string"==typeof e.showNotes?e.showNotes:"inline",p=document.createElement("div");p.classList.add("speaker-notes"),p.classList.add("speaker-notes-pdf"),p.setAttribute("data-layout",g),p.innerHTML=v,"separate-page"===g?u.parentNode.insertBefore(p,u.nextSibling):(p.style.left="8px",p.style.bottom="8px",p.style.width=i-16+"px",u.appendChild(p))}}if(o){var m=document.createElement("div");m.classList.add("slide-number"),m.classList.add("slide-number-pdf"),m.innerHTML=t.getAttribute("data-slide-number"),u.appendChild(m)}if(e.pdfSeparateFragments){var f,b,y=this.Reveal.fragments.sort(u.querySelectorAll(".fragment"),!0);y.forEach((function(e){f&&f.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}),this);var t=u.cloneNode(!0);u.parentNode.insertBefore(t,(b||u).nextSibling),f=e,b=t}),this),y.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else r(u,".fragment:not(.fade-out)").forEach((function(e){e.classList.add("visible")}))}}),this),this.Reveal.dispatchEvent({type:"pdf-ready"})}isPrintingPDF(){return/print-pdf/gi.test(window.location.search)}}class O{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){var e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){var e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;var t=this.Reveal.getConfig();if(this.touchCaptured)y&&e.preventDefault();else{this.Reveal.onUserInput(e);var i=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){var s=this.Reveal.availableRoutes({includeFragments:!0}),n=i-this.touchStartX,r=a-this.touchStartY;n>40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):n<-40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):r>40&&s.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):r<-40&&s.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured=!1}onPointerDown(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}class U{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){"focus"!==this.state&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="focus"}blur(){"blur"!==this.state&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="blur"}isFocused(){return"focus"===this.state}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){var t=e.target.closest(".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}class z{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");var t=e.querySelector("aside.notes");return t?t.innerHTML:null}}class q{constructor(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){var e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){var e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,a=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);var s=-Math.PI/2+e*(2*Math.PI),n=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(i,a,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(i,a,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(i,a,t,n,s,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(i-14,a-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var W={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[],plugins:[]};function F(e,t){arguments.length<2&&(t=arguments[0],e=document.querySelector(".reveal"));var s,c,u,p,m,b,y={},R="4.0.0-rc.1",S=!1,T={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},F=[],V=1,j={layout:"",overview:""},K={},X="idle",Y=0,$=0,_=-1,J=!1,Q=new A(y),Z=new E(y),G=new L(y),ee=new k(y),te=new x(y),ie=new C(y),ae=new P(y),se=new N(y),ne=new M(y),re=new D(y),oe=new I(y),le=new H(y),de=new B(y),ce=new U(y),he=new O(y),ue=new z(y);function ve(a){return K.wrapper=e,K.slides=e.querySelector(".slides"),s=i({},W,{},t,{},a,{},v()),ge(),window.addEventListener("load",Be,!1),le.load(s.plugins,s.dependencies).then(pe),new Promise(e=>y.on("ready",e))}function ge(){!0===s.embedded?K.viewport=e.closest(".reveal-viewport")||e:(K.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),K.viewport.classList.add("reveal-viewport")}function pe(){S=!0,me(),Re(),we(),et(),Ae(),se.readURL(),ee.update(!0),setTimeout(()=>{K.slides.classList.remove("no-transition"),K.wrapper.classList.add("ready"),Ce({type:"ready",data:{indexh:c,indexv:u,currentSlide:m}})},1),de.isPrintingPDF()&&(Se(),"complete"===document.readyState?de.setupPDF():window.addEventListener("load",()=>{de.setupPDF()}))}function me(){K.slides.classList.add("no-transition"),f?K.wrapper.classList.add("no-hover"):K.wrapper.classList.remove("no-hover"),ee.render(),Z.render(),ne.render(),re.render(),ue.render(),K.pauseOverlay=h(K.wrapper,"div","pause-overlay",s.controls?'<button class="resume-button">Resume presentation</button>':null),K.statusElement=fe(),K.wrapper.setAttribute("role","application")}function fe(){var e=K.wrapper.querySelector(".aria-status");return e||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),K.wrapper.appendChild(e)),e}function be(e){K.statusElement.textContent=e}function ye(e){var t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){var i=e.getAttribute("aria-hidden"),a="none"===window.getComputedStyle(e).display;"true"===i||a||Array.from(e.childNodes).forEach(e=>{t+=ye(e)})}return""===(t=t.trim())?"":t+" "}function we(){setInterval(()=>{0===K.wrapper.scrollTop&&0===K.wrapper.scrollLeft||(K.wrapper.scrollTop=0,K.wrapper.scrollLeft=0)},1e3)}function Re(){s.postMessage&&window.addEventListener("message",e=>{var t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof y[t.method])if(!1===a.test(t.method)){var i=y[t.method].apply(y,t.args);Pe("callback",{method:t.method,result:i})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1)}function Ae(e){var t=i({},s);if("object"==typeof e&&n(s,e),!1!==y.isReady()){var a=K.wrapper.querySelectorAll(".slides section").length;K.wrapper.classList.remove(t.transition),K.wrapper.classList.add(s.transition),K.wrapper.setAttribute("data-transition-speed",s.transitionSpeed),K.wrapper.setAttribute("data-background-transition",s.backgroundTransition),s.shuffle&&tt(),o(K.wrapper,"embedded",s.embedded),o(K.wrapper,"rtl",s.rtl),o(K.wrapper,"center",s.center),!1===s.pause&&Xe(),s.previewLinks?(Ne(),Me("[data-preview-link=false]")):(Me(),Ne("[data-preview-link]:not([data-preview-link=false])")),G.reset(),b&&(b.destroy(),b=null),a>1&&s.autoSlide&&s.autoSlideStoppable&&((b=new q(K.wrapper,()=>Math.min(Math.max((Date.now()-_)/Y,0),1))).on("click",Ht),J=!1),"default"!==s.navigationMode?K.wrapper.setAttribute("data-navigation-mode",s.navigationMode):K.wrapper.removeAttribute("data-navigation-mode"),ue.configure(s,t),ce.configure(s,t),oe.configure(s,t),ne.configure(s,t),re.configure(s,t),ae.configure(s,t),te.configure(s,t),Z.configure(s,t),Ze()}}function Ee(){window.addEventListener("resize",Dt,!1),s.touch&&he.bind(),s.keyboard&&ae.bind(),s.progress&&re.bind(),s.respondToHashChanges&&se.bind(),ne.bind(),ce.bind(),K.slides.addEventListener("transitionend",Mt,!1),K.pauseOverlay.addEventListener("click",Xe,!1),s.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",It,!1)}function Se(){he.unbind(),ce.unbind(),ae.unbind(),ne.unbind(),re.unbind(),se.unbind(),window.removeEventListener("resize",Dt,!1),K.slides.removeEventListener("transitionend",Mt,!1),K.pauseOverlay.removeEventListener("click",Xe,!1)}function ke(t,i,a){e.addEventListener(t,i,a)}function Le(t,i,a){e.removeEventListener(t,i,a)}function xe(e){"string"==typeof e.layout&&(j.layout=e.layout),"string"==typeof e.overview&&(j.overview=e.overview),j.layout?d(K.slides,j.layout+" "+j.overview):d(K.slides,j.overview)}function Ce(e){var{target:t=K.wrapper,type:i,data:a,bubbles:s=!0}=e,r=document.createEvent("HTMLEvents",1,2);r.initEvent(i,s,!0),n(r,a),t.dispatchEvent(r),t===K.wrapper&&Pe(i)}function Pe(e,t){if(s.postMessageEvents&&window.parent!==window.self){var i={namespace:"reveal",eventName:e,state:bt()};n(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function Ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(K.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Tt,!1)})}function Me(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(K.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Tt,!1)})}function De(e){He(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-preview"),K.wrapper.appendChild(K.overlay),K.overlay.innerHTML='<header>\n\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t<a class="external" href="'.concat(e,'" target="_blank"><span class="icon"></span></a>\n\t\t\t</header>\n\t\t\t<div class="spinner"></div>\n\t\t\t<div class="viewport">\n\t\t\t\t<iframe src="').concat(e,'"></iframe>\n\t\t\t\t<small class="viewport-inner">\n\t\t\t\t\t<span class="x-frame-error">Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).</span>\n\t\t\t\t</small>\n\t\t\t</div>'),K.overlay.querySelector("iframe").addEventListener("load",e=>{K.overlay.classList.add("loaded")},!1),K.overlay.querySelector(".close").addEventListener("click",e=>{He(),e.preventDefault()},!1),K.overlay.querySelector(".external").addEventListener("click",e=>{He()},!1)}function Ie(e){"boolean"==typeof e?e?Te():He():K.overlay?He():Te()}function Te(){if(s.help){He(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-help"),K.wrapper.appendChild(K.overlay);var e='<p class="title">Keyboard Shortcuts</p><br/>',t=ae.getShortcuts(),i=ae.getBindings();for(var a in e+="<table><th>KEY</th><th>ACTION</th>",t)e+="<tr><td>".concat(a,"</td><td>").concat(t[a],"</td></tr>");for(var n in i)i[n].key&&i[n].description&&(e+="<tr><td>".concat(i[n].key,"</td><td>").concat(i[n].description,"</td></tr>"));e+="</table>",K.overlay.innerHTML='\n\t\t\t\t<header>\n\t\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t</header>\n\t\t\t\t<div class="viewport">\n\t\t\t\t\t<div class="viewport-inner">'.concat(e,"</div>\n\t\t\t\t</div>\n\t\t\t"),K.overlay.querySelector(".close").addEventListener("click",e=>{He(),e.preventDefault()},!1)}}function He(){return!!K.overlay&&(K.overlay.parentNode.removeChild(K.overlay),K.overlay=null,!0)}function Be(){if(K.wrapper&&!de.isPrintingPDF()){if(!s.disableLayout){f&&!s.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");var e=Ue(),t=V;Oe(s.width,s.height),K.slides.style.width=e.width+"px",K.slides.style.height=e.height+"px",V=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),V=Math.max(V,s.minScale),1===(V=Math.min(V,s.maxScale))?(K.slides.style.zoom="",K.slides.style.left="",K.slides.style.top="",K.slides.style.bottom="",K.slides.style.right="",xe({layout:""})):V>1&&w&&window.devicePixelRatio<2?(K.slides.style.zoom=V,K.slides.style.left="",K.slides.style.top="",K.slides.style.bottom="",K.slides.style.right="",xe({layout:""})):(K.slides.style.zoom="",K.slides.style.left="50%",K.slides.style.top="50%",K.slides.style.bottom="auto",K.slides.style.right="auto",xe({layout:"translate(-50%, -50%) scale("+V+")"}));for(var i=Array.from(K.wrapper.querySelectorAll(".slides section")),a=0,n=i.length;a<n;a++){var r=i[a];"none"!==r.style.display&&(s.center||r.classList.contains("center")?r.classList.contains("stack")?r.style.top=0:r.style.top=Math.max((e.height-r.scrollHeight)/2,0)+"px":r.style.top="")}t!==V&&Ce({type:"resize",data:{oldScale:t,scale:V,size:e}})}re.update(),ee.updateParallax(),ie.isActive()&&ie.update()}}function Oe(e,t){r(K.slides,"section > .stretch, section > .r-stretch").forEach(i=>{var a=g(i,t);if(/(img|video)/gi.test(i.nodeName)){var s=i.naturalWidth||i.videoWidth,n=i.naturalHeight||i.videoHeight,r=Math.min(e/s,a/n);i.style.width=s*r+"px",i.style.height=n*r+"px"}else i.style.width=e+"px",i.style.height=a+"px"})}function Ue(e,t){var i={width:s.width,height:s.height,presentationWidth:e||K.wrapper.offsetWidth,presentationHeight:t||K.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*s.margin,i.presentationHeight-=i.presentationHeight*s.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function ze(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function qe(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){var t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function We(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Fe(){return!(!m||!We(m))&&!m.nextElementSibling}function Ve(){return 0===c&&0===u}function je(){return!!m&&(!m.nextElementSibling&&(!We(m)||!m.parentNode.nextElementSibling))}function Ke(){if(s.pause){var e=K.wrapper.classList.contains("paused");Rt(),K.wrapper.classList.add("paused"),!1===e&&Ce({type:"paused"})}}function Xe(){var e=K.wrapper.classList.contains("paused");K.wrapper.classList.remove("paused"),wt(),e&&Ce({type:"resumed"})}function Ye(e){"boolean"==typeof e?e?Ke():Xe():$e()?Xe():Ke()}function $e(){return K.wrapper.classList.contains("paused")}function _e(e){"boolean"==typeof e?e?Et():At():J?Et():At()}function Je(){return!(!Y||J)}function Qe(e,t,i,a){p=m;var n=K.wrapper.querySelectorAll(".slides>section");if(0!==n.length){void 0!==t||ie.isActive()||(t=qe(n[e])),p&&p.parentNode&&p.parentNode.classList.contains("stack")&&ze(p.parentNode,u);var r=F.concat();F.length=0;var o=c||0,l=u||0;c=it(".slides>section",void 0===e?c:e),u=it(".slides>section.present>section",void 0===t?u:t);var d=c!==o||u!==l;d||(p=null);var h=n[c],v=h.querySelectorAll("section");m=v[u]||h;var g=!1;d&&p&&m&&!ie.isActive()&&(p.hasAttribute("data-auto-animate")&&m.hasAttribute("data-auto-animate")&&(g=!0,K.slides.classList.add("disable-slide-transitions")),X="running"),at(),Be(),ie.isActive()&&ie.update(),void 0!==i&&te.goto(i),p&&p!==m&&(p.classList.remove("present"),p.setAttribute("aria-hidden","true"),Ve()&&setTimeout(()=>{ht().forEach(e=>{ze(e,0)})},0));e:for(var f=0,b=F.length;f<b;f++){for(var y=0;y<r.length;y++)if(r[y]===F[f]){r.splice(y,1);continue e}K.viewport.classList.add(F[f]),Ce({type:F[f]})}for(;r.length;)K.viewport.classList.remove(r.pop());d&&Ce({type:"slidechanged",data:{indexh:c,indexv:u,previousSlide:p,currentSlide:m,origin:a}}),!d&&p||(Q.stopEmbeddedContent(p),Q.startEmbeddedContent(m)),be(ye(m)),re.update(),ne.update(),ue.update(),ee.update(),ee.updateParallax(),Z.update(),te.update(),se.writeURL(),wt(),g&&(setTimeout(()=>{K.slides.classList.remove("disable-slide-transitions")},0),s.autoAnimate&&G.run(p,m))}}function Ze(){Se(),Ee(),Be(),Y=s.autoSlide,wt(),ee.create(),se.writeURL(),te.sortAll(),ne.update(),re.update(),at(),ue.update(),ue.updateVisibility(),ee.update(!0),Z.update(),Q.formatEmbeddedContent(),!1===s.autoPlayMedia?Q.stopEmbeddedContent(m,{unloadIframes:!1}):Q.startEmbeddedContent(m),ie.isActive()&&ie.layout()}function Ge(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;ee.sync(e),te.sync(e),Q.load(e),ee.update(),ue.update()}function et(){dt().forEach(e=>{r(e,"section").forEach((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})})}function tt(){dt().forEach((e,t,i)=>{K.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])})}function it(e,t){var i=r(K.wrapper,e),a=i.length,n=de.isPrintingPDF();if(a){s.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(var o=0;o<a;o++){var l=i[o],d=s.rtl&&!We(l);l.classList.remove("past","present","future"),l.setAttribute("hidden",""),l.setAttribute("aria-hidden","true"),l.querySelector("section")&&l.classList.add("stack"),n?l.classList.add("present"):o<t?(l.classList.add(d?"future":"past"),s.fragments&&r(l,".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})):o>t&&(l.classList.add(d?"past":"future"),s.fragments&&r(l,".fragment.visible").forEach(e=>{e.classList.remove("visible","current-fragment")}))}var c=i[t],h=c.classList.contains("present");c.classList.add("present"),c.removeAttribute("hidden"),c.removeAttribute("aria-hidden"),h||Ce({target:c,type:"visible",bubbles:!1});var u=c.getAttribute("data-state");u&&(F=F.concat(u.split(" ")))}else t=0;return t}function at(){var e,t=dt(),i=t.length;if(i&&void 0!==c){var a=ie.isActive()?10:s.viewDistance;f&&(a=ie.isActive()?6:s.mobileViewDistance),de.isPrintingPDF()&&(a=Number.MAX_VALUE);for(var n=0;n<i;n++){var o=t[n],l=r(o,"section"),d=l.length;if(e=Math.abs((c||0)-n)||0,s.loop&&(e=Math.abs(((c||0)-n)%(i-a))||0),e<a?Q.load(o):Q.unload(o),d)for(var h=qe(o),v=0;v<d;v++){var g=l[v];e+(n===(c||0)?Math.abs((u||0)-v):Math.abs(v-h))<a?Q.load(g):Q.unload(g)}}vt()?K.wrapper.classList.add("has-vertical-slides"):K.wrapper.classList.remove("has-vertical-slides"),ut()?K.wrapper.classList.add("has-horizontal-slides"):K.wrapper.classList.remove("has-horizontal-slides")}}function st(){var{includeFragments:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=K.wrapper.querySelectorAll(".slides>section"),i=K.wrapper.querySelectorAll(".slides>section.present>section"),a={left:c>0,right:c<t.length-1,up:u>0,down:u<i.length-1};if(s.loop&&(t.length>1&&(a.left=!0,a.right=!0),i.length>1&&(a.up=!0,a.down=!0)),t.length>1&&"linear"===s.navigationMode&&(a.right=a.right||a.down,a.left=a.left||a.up),!0===e){var n=te.availableRoutes();a.left=a.left||n.prev,a.up=a.up||n.prev,a.down=a.down||n.next,a.right=a.right||n.next}if(s.rtl){var r=a.left;a.left=a.right,a.right=r}return a}function nt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=dt(),i=0;e:for(var a=0;a<t.length;a++){for(var s=t[a],n=s.querySelectorAll("section"),r=0;r<n.length;r++){if(n[r]===e)break e;"uncounted"!==n[r].dataset.visibility&&i++}if(s===e)break;!1===s.classList.contains("stack")&&"uncounted"!==!s.dataset.visibility&&i++}return i}function rt(){var e=pt(),t=nt();if(m){var i=m.querySelectorAll(".fragment");if(i.length>0){t+=m.querySelectorAll(".fragment.visible").length/i.length*.9}}return Math.min(t/(e-1),1)}function ot(e){var t,i=c,a=u;if(e){var s=We(e),n=s?e.parentNode:e,o=dt();i=Math.max(o.indexOf(n),0),a=void 0,s&&(a=Math.max(r(e.parentNode,"section").indexOf(e),0))}if(!e&&m&&m.querySelectorAll(".fragment").length>0){var l=m.querySelector(".current-fragment");t=l&&l.hasAttribute("data-fragment-index")?parseInt(l.getAttribute("data-fragment-index"),10):m.querySelectorAll(".fragment.visible").length-1}return{h:i,v:a,f:t}}function lt(){return r(K.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function dt(){return r(K.wrapper,".slides>section")}function ct(){return r(K.wrapper,".slides>section>section")}function ht(){return r(K.wrapper,".slides>section.stack")}function ut(){return dt().length>1}function vt(){return ct().length>1}function gt(){return lt().map(e=>{for(var t={},i=0;i<e.attributes.length;i++){var a=e.attributes[i];t[a.name]=a.value}return t})}function pt(){return lt().length}function mt(e,t){var i=dt()[e],a=i&&i.querySelectorAll("section");return a&&a.length&&"number"==typeof t?a?a[t]:void 0:i}function ft(e,t){var i="number"==typeof e?mt(e,t):e;if(i)return i.slideBackgroundElement}function bt(){var e=ot();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:$e(),overview:ie.isActive()}}function yt(e){if("object"==typeof e){Qe(l(e.indexh),l(e.indexv),l(e.indexf));var t=l(e.paused),i=l(e.overview);"boolean"==typeof t&&t!==$e()&&Ye(t),"boolean"==typeof i&&i!==ie.isActive()&&ie.toggle(i)}}function wt(){if(Rt(),m&&!1!==s.autoSlide){var e=m.querySelector(".current-fragment");e||(e=m.querySelector(".fragment"));var t=e?e.getAttribute("data-autoslide"):null,i=m.parentNode?m.parentNode.getAttribute("data-autoslide"):null,a=m.getAttribute("data-autoslide");Y=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):s.autoSlide,0===m.querySelectorAll(".fragment").length&&r(m,"video, audio").forEach(e=>{e.hasAttribute("data-autoplay")&&Y&&1e3*e.duration/e.playbackRate>Y&&(Y=1e3*e.duration/e.playbackRate+1e3)}),!Y||J||$e()||ie.isActive()||je()&&!te.availableRoutes().next&&!0!==s.loop||($=setTimeout(()=>{"function"==typeof s.autoSlideMethod?s.autoSlideMethod():Pt(),wt()},Y),_=Date.now()),b&&b.setPlaying(-1!==$)}}function Rt(){clearTimeout($),$=-1}function At(){Y&&!J&&(J=!0,Ce({type:"autoslidepaused"}),clearTimeout($),b&&b.setPlaying(!1))}function Et(){Y&&J&&(J=!1,Ce({type:"autoslideresumed"}),wt())}function St(){T.hasNavigatedHorizontally=!0,s.rtl?(ie.isActive()||!1===te.next())&&st().left&&Qe(c+1,"grid"===s.navigationMode?u:void 0):(ie.isActive()||!1===te.prev())&&st().left&&Qe(c-1,"grid"===s.navigationMode?u:void 0)}function kt(){T.hasNavigatedHorizontally=!0,s.rtl?(ie.isActive()||!1===te.prev())&&st().right&&Qe(c-1,"grid"===s.navigationMode?u:void 0):(ie.isActive()||!1===te.next())&&st().right&&Qe(c+1,"grid"===s.navigationMode?u:void 0)}function Lt(){(ie.isActive()||!1===te.prev())&&st().up&&Qe(c,u-1)}function xt(){T.hasNavigatedVertically=!0,(ie.isActive()||!1===te.next())&&st().down&&Qe(c,u+1)}function Ct(){var e;if(!1===te.prev())if(st().up)Lt();else if(e=s.rtl?r(K.wrapper,".slides>section.future").pop():r(K.wrapper,".slides>section.past").pop()){var t=e.querySelectorAll("section").length-1||void 0;Qe(c-1,t)}}function Pt(){if(T.hasNavigatedHorizontally=!0,T.hasNavigatedVertically=!0,!1===te.next()){var e=st();e.down&&e.right&&s.loop&&Fe()&&(e.down=!1),e.down?xt():s.rtl?St():kt()}}function Nt(e){s.autoSlideStoppable&&At()}function Mt(e){"running"===X&&/section/gi.test(e.target.nodeName)&&(X="idle",Ce({type:"slidetransitionend",data:{indexh:c,indexv:u,previousSlide:p,currentSlide:m}}))}function Dt(e){Be()}function It(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Tt(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){var t=e.currentTarget.getAttribute("href");t&&(De(t),e.preventDefault())}}function Ht(e){je()&&!1===s.loop?(Qe(0,0),Et()):J?Et():At()}var Bt={VERSION:R,initialize:ve,configure:Ae,sync:Ze,syncSlide:Ge,syncFragments:te.sync.bind(te),slide:Qe,left:St,right:kt,up:Lt,down:xt,prev:Ct,next:Pt,navigateLeft:St,navigateRight:kt,navigateUp:Lt,navigateDown:xt,navigatePrev:Ct,navigateNext:Pt,navigateFragment:te.goto.bind(te),prevFragment:te.prev.bind(te),nextFragment:te.next.bind(te),on:ke,off:Le,addEventListener:ke,removeEventListener:Le,layout:Be,shuffle:tt,availableRoutes:st,availableFragments:te.availableRoutes.bind(te),toggleHelp:Ie,toggleOverview:ie.toggle.bind(ie),togglePause:Ye,toggleAutoSlide:_e,isFirstSlide:Ve,isLastSlide:je,isLastVerticalSlide:Fe,isVerticalSlide:We,isPaused:$e,isAutoSliding:Je,isSpeakerNotes:ue.isSpeakerNotesWindow.bind(ue),isOverview:ie.isActive.bind(ie),isFocused:ce.isFocused.bind(ce),isPrintingPDF:de.isPrintingPDF.bind(de),isReady:()=>S,loadSlide:Q.load.bind(Q),unloadSlide:Q.unload.bind(Q),addEventListeners:Ee,removeEventListeners:Se,dispatchEvent:Ce,getState:bt,setState:yt,getProgress:rt,getIndices:ot,getSlidesAttributes:gt,getSlidePastCount:nt,getTotalSlides:pt,getSlide:mt,getPreviousSlide:()=>p,getCurrentSlide:()=>m,getSlideBackground:ft,getSlideNotes:ue.getSlideNotes.bind(ue),getSlides:lt,getHorizontalSlides:dt,getVerticalSlides:ct,hasHorizontalSlides:ut,hasVerticalSlides:vt,hasNavigatedHorizontally:()=>T.hasNavigatedHorizontally,hasNavigatedVertically:()=>T.hasNavigatedVertically,addKeyBinding:ae.addKeyBinding.bind(ae),removeKeyBinding:ae.removeKeyBinding.bind(ae),triggerKey:ae.triggerKey.bind(ae),registerKeyboardShortcut:ae.registerKeyboardShortcut.bind(ae),getComputedSlideSize:Ue,getScale:()=>V,getConfig:()=>s,getQueryHash:v,getRevealElement:()=>e,getSlidesElement:()=>K.slides,getViewportElement:()=>K.viewport,getBackgroundsElement:()=>ee.element,registerPlugin:le.registerPlugin.bind(le),hasPlugin:le.hasPlugin.bind(le),getPlugin:le.getPlugin.bind(le),getPlugins:le.getRegisteredPlugins.bind(le)};return n(y,i({},Bt,{announceStatus:be,getStatusText:ye,print:de,focus:ce,progress:re,controls:ne,location:se,overview:ie,fragments:te,slideContent:Q,slideNumber:Z,onUserInput:Nt,closeOverlay:He,updateSlidesVisibility:at,layoutSlideContents:Oe,transformSlides:xe,cueAutoSlide:wt,cancelAutoSlide:Rt})),Bt}var V=F,j=[];V.initialize=e=>(Object.assign(V,new F(document.querySelector(".reveal"),e)),j.map(e=>e(V)),V.initialize()),["on","off","addEventListener","removeEventListener","registerPlugin"].forEach(e=>{V[e]=function(){for(var t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];j.push(t=>t[e].call(null,...i))}});export default V;
//# sourceMappingURL=reveal.esm.js.map
diff --git a/dist/reveal.js b/dist/reveal.js
index 34056eb..d246d28 100644
--- a/dist/reveal.js
+++ b/dist/reveal.js
@@ -5,5 +5,5 @@
*
* Copyright (C) 2020 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=e||self).Reveal=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function n(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?s(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):s(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function o(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(i);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var d=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/,u=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/,c=function(e,t){for(var i in t)e[i]=t[i];return e},h=function(e,t){return Array.from(e.querySelectorAll(t))},v=function(e,t,i){i?e.classList.add(t):e.classList.remove(t)},f=function(e){if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},g=function(e,t){e.style.transform=t},p=function(e,t){for(var i=e.parentNode;i;){var n=i.matches||i.matchesSelector||i.msMatchesSelector;if(n&&n.call(i,t))return i;i=i.parentNode}return null},m=function(e,t,i){for(var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=e.querySelectorAll("."+i),s=0;s<a.length;s++){var r=a[s];if(r.parentNode===e)return r}var o=document.createElement(t);return o.className=i,o.innerHTML=n,e.appendChild(o),o},y=function(e){var t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},b=function(){var e={};for(var t in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,(function(t){e[t.split("=").shift()]=t.split("=").pop()})),e){var i=e[t];e[t]=f(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e){var i,n=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",i=t-e.parentNode.offsetHeight,e.style.height=n+"px",e.parentNode.style.removeProperty("height"),i}return t},w=navigator.userAgent,R=document.createElement("div"),A=/(iphone|ipod|ipad|android)/gi.test(w)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,E=/chrome/i.test(w)&&!/edge/i.test(w),S=/android/gi.test(w),L="zoom"in R.style&&!A&&(E||/Version\/[\d\.]+.*Safari/.test(w)),x="function"==typeof window.history.replaceState&&!/PhantomJS/.test(w),C=function(){function e(i){t(this,e),this.Reveal=i,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}return n(e,[{key:"shouldPreload",value:function(e){var t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}},{key:"load",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.style.display=this.Reveal.getConfig().display,h(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((function(e){("IFRAME"!==e.tagName||t.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))})),h(e,"video, audio").forEach((function(e){var t=0;h(e,"source[data-src]").forEach((function(e){e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1})),t>0&&e.load()}));var n=e.slideBackgroundElement;if(n){n.style.display="block";var a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===n.hasAttribute("data-loaded")){n.setAttribute("data-loaded","true");var r=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),l=e.hasAttribute("data-background-video-loop"),d=e.hasAttribute("data-background-video-muted");if(r)a.style.backgroundImage="url("+encodeURI(r)+")";else if(o&&!this.Reveal.isSpeakerNotes()){var u=document.createElement("video");l&&u.setAttribute("loop",""),d&&(u.muted=!0),A&&(u.muted=!0,u.autoplay=!0,u.setAttribute("playsinline","")),o.split(",").forEach((function(e){u.innerHTML+='<source src="'+e+'">'})),a.appendChild(u)}else if(s&&!0!==i.excludeIframes){var c=document.createElement("iframe");c.setAttribute("allowfullscreen",""),c.setAttribute("mozallowfullscreen",""),c.setAttribute("webkitallowfullscreen",""),c.setAttribute("allow","autoplay"),c.setAttribute("data-src",s),c.style.width="100%",c.style.height="100%",c.style.maxHeight="100%",c.style.maxWidth="100%",a.appendChild(c)}}var v=a.querySelector("iframe[data-src]");v&&this.shouldPreload(n)&&!/autoplay=(1|true|yes)/gi.test(s)&&v.getAttribute("src")!==s&&v.setAttribute("src",s)}}},{key:"unload",value:function(e){e.style.display="none";var t=this.Reveal.getSlideBackground(e);t&&(t.style.display="none",h(t,"iframe[src]").forEach((function(e){e.removeAttribute("src")}))),h(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach((function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})),h(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach((function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}))}},{key:"formatEmbeddedContent",value:function(){var e=this,t=function(t,i,n){h(e.Reveal.getSlidesElement(),"iframe["+t+'*="'+i+'"]').forEach((function(e){var i=e.getAttribute(t);i&&-1===i.indexOf(n)&&e.setAttribute(t,i+(/\?/.test(i)?"&":"?")+n)}))};t("src","youtube.com/embed/","enablejsapi=1"),t("data-src","youtube.com/embed/","enablejsapi=1"),t("src","player.vimeo.com/","api=1"),t("data-src","player.vimeo.com/","api=1")}},{key:"startEmbeddedContent",value:function(e){var t=this;e&&!this.Reveal.isSpeakerNotes()&&(h(e,'img[src$=".gif"]').forEach((function(e){e.setAttribute("src",e.getAttribute("src"))})),h(e,"video, audio").forEach((function(e){if(!p(e,".fragment")||p(e,".fragment.visible")){var i=t.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof i&&(i=e.hasAttribute("data-autoplay")||!!p(e,".slide-background")),i&&"function"==typeof e.play)if(e.readyState>1)t.startEmbeddedMedia({target:e});else if(A){var n=e.play();n&&"function"==typeof n.catch&&!1===e.controls&&n.catch((function(){e.controls=!0,e.addEventListener("play",(function(){e.controls=!1}))}))}else e.removeEventListener("loadeddata",t.startEmbeddedMedia),e.addEventListener("loadeddata",t.startEmbeddedMedia)}})),h(e,"iframe[src]").forEach((function(e){p(e,".fragment")&&!p(e,".fragment.visible")||t.startEmbeddedIframe({target:e})})),h(e,"iframe[data-src]").forEach((function(e){p(e,".fragment")&&!p(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",t.startEmbeddedIframe),e.addEventListener("load",t.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))})))}},{key:"startEmbeddedMedia",value:function(e){var t=!!p(e.target,"html"),i=!!p(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}},{key:"startEmbeddedIframe",value:function(e){var t=e.target;if(t&&t.contentWindow){var i=!!p(e.target,"html"),n=!!p(e.target,".present");if(i&&n){var a=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof a&&(a=t.hasAttribute("data-autoplay")||!!p(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}},{key:"stopEmbeddedContent",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i=c({unloadIframes:!0},i),e&&e.parentNode&&(h(e,"video, audio").forEach((function(e){e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())})),h(e,"iframe").forEach((function(e){e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",t.startEmbeddedIframe)})),h(e,'iframe[src*="youtube.com/embed/"]').forEach((function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")})),h(e,'iframe[src*="player.vimeo.com/"]').forEach((function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")})),!0===i.unloadIframes&&h(e,"iframe[data-src]").forEach((function(e){e.setAttribute("src","about:blank"),e.removeAttribute("src")})))}}]),e}(),P=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}},{key:"configure",value:function(e,t){var i="none";e.slideNumber&&!this.Reveal.isPrintingPDF()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(i="block"),this.element.style.display=i}},{key:"update",value:function(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}},{key:"getSlideNumber",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide(),i=this.Reveal.getConfig(),n="h.v";if("function"==typeof i.slideNumber)e=i.slideNumber(t);else switch("string"==typeof i.slideNumber&&(n=i.slideNumber),/c/.test(n)||1!==this.Reveal.getHorizontalSlides().length||(n="c"),e=[],n){case"c":e.push(this.Reveal.getSlidePastCount(t)+1);break;case"c/t":e.push(this.Reveal.getSlidePastCount(t)+1,"/",this.Reveal.getTotalSlides());break;default:var a=this.Reveal.getIndices(t);e.push(a.h+1);var s="h/v"===n?"/":".";this.Reveal.isVerticalSlide(t)&&e.push(s,a.v+1)}var r="#"+this.Reveal.location.getHash(t);return this.formatNumber(e[0],e[1],e[2],r)}},{key:"formatNumber",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#"+this.Reveal.location.getHash();return"number"!=typeof i||isNaN(i)?'<a href="'.concat(n,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,"</span>\n\t\t\t\t\t</a>"):'<a href="'.concat(n,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,'</span>\n\t\t\t\t\t<span class="slide-number-delimiter">').concat(t,'</span>\n\t\t\t\t\t<span class="slide-number-b">').concat(i,"</span>\n\t\t\t\t\t</a>")}}]),e}(),N=function(e){var t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};var i=e.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16)};var n=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(n)return{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)};var a=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return a?{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10),a:parseFloat(a[4])}:null},M=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}},{key:"create",value:function(){var e=this;this.Reveal.isPrintingPDF();this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach((function(t){var i=e.createBackground(t,e.element);h(t,"section").forEach((function(t){e.createBackground(t,i),i.classList.add("stack")}))})),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout((function(){e.Reveal.getRevealElement().classList.add("has-parallax-background")}),1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}},{key:"createBackground",value:function(e,t){var i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");var n=document.createElement("div");return n.className="slide-background-content",i.appendChild(n),t.appendChild(i),e.slideBackgroundElement=i,e.slideBackgroundContentElement=n,this.sync(e),i}},{key:"sync",value:function(e){var t=e.slideBackgroundElement,i=e.slideBackgroundContentElement;e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",i.style.backgroundSize="",i.style.backgroundRepeat="",i.style.backgroundPosition="",i.style.backgroundImage="",i.style.opacity="",i.innerHTML="";var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")};n.background&&(/^(http|file|\/\/)/gi.test(n.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(n.background)?e.setAttribute("data-background-image",n.background):t.style.background=n.background),(n.background||n.backgroundColor||n.backgroundImage||n.backgroundVideo||n.backgroundIframe)&&t.setAttribute("data-background-hash",n.background+n.backgroundSize+n.backgroundImage+n.backgroundVideo+n.backgroundIframe+n.backgroundColor+n.backgroundRepeat+n.backgroundPosition+n.backgroundTransition+n.backgroundOpacity),n.backgroundSize&&t.setAttribute("data-background-size",n.backgroundSize),n.backgroundColor&&(t.style.backgroundColor=n.backgroundColor),n.backgroundTransition&&t.setAttribute("data-background-transition",n.backgroundTransition),e.hasAttribute("data-preload")&&t.setAttribute("data-preload",""),n.backgroundSize&&(i.style.backgroundSize=n.backgroundSize),n.backgroundRepeat&&(i.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(i.style.backgroundPosition=n.backgroundPosition),n.backgroundOpacity&&(i.style.opacity=n.backgroundOpacity);var a,s=n.backgroundColor;if(!s){var r=window.getComputedStyle(t);r&&r.backgroundColor&&(s=r.backgroundColor)}if(s){var o=N(s);o&&0!==o.a&&("string"==typeof(a=s)&&(a=N(a)),(a?(299*a.r+587*a.g+114*a.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}}},{key:"update",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.Reveal.getCurrentSlide(),n=this.Reveal.getIndices(),a=null,s=this.Reveal.getConfig().rtl?"future":"past",r=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((function(e,i){e.classList.remove("past","present","future"),i<n.h?e.classList.add(s):i>n.h?e.classList.add(r):(e.classList.add("present"),a=e),(t||i===n.h)&&h(e,".slide-background").forEach((function(e,t){e.classList.remove("past","present","future"),t<n.v?e.classList.add("past"):t>n.v?e.classList.add("future"):(e.classList.add("present"),i===n.h&&(a=e))}))})),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),a){this.Reveal.slideContent.startEmbeddedContent(a);var o=a.querySelector(".slide-background-content");if(o){var l=o.style.backgroundImage||"";/\.gif/i.test(l)&&(o.style.backgroundImage="",window.getComputedStyle(o).opacity,o.style.backgroundImage=l)}var d=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,u=a.getAttribute("data-background-hash");u&&u===d&&a!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=a}i&&["has-light-background","has-dark-background"].forEach((function(t){i.classList.contains(t)?e.Reveal.getRevealElement().classList.add(t):e.Reveal.getRevealElement().classList.remove(t)}),this),setTimeout((function(){e.element.classList.remove("no-transition")}),1)}},{key:"updateParallax",value:function(){var e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){var t,i,n=this.Reveal.getHorizontalSlides(),a=this.Reveal.getVerticalSlides(),s=this.element.style.backgroundSize.split(" ");1===s.length?t=i=parseInt(s[0],10):(t=parseInt(s[0],10),i=parseInt(s[1],10));var r,o=this.element.offsetWidth,l=n.length;r=("number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:l>1?(t-o)/(l-1):0)*e.h*-1;var d,u,c=this.element.offsetHeight,h=a.length;d="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-c)/(h-1),u=h>0?d*e.v:0,this.element.style.backgroundPosition=r+"px "+-u+"px"}}}]),e}(),D=function(){function e(i){t(this,e),this.Reveal=i,this.autoAnimateCounter=0}return n(e,[{key:"run",value:function(e,t){var i=this;if(this.reset(),e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||y();var n=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";var a=this.Reveal.getSlides();n.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";var s=this.getAutoAnimatableElements(e,t).map((function(e){return i.autoAnimateElements(e.from,e.to,e.options||{},n,i.autoAnimateCounter++)}));if("false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){var r=.8*n.duration,o=.2*n.duration;this.getUnmatchedAutoAnimateElements(t).forEach((function(e){var t=i.getAutoAnimateOptions(e,n),a="unmatched";t.duration===n.duration&&t.delay===n.delay||(a="unmatched-"+i.autoAnimateCounter++,s.push('[data-auto-animate="running"] [data-auto-animate-target="'.concat(a,'"] { transition: opacity ').concat(t.duration,"s ease ").concat(t.delay,"s; }"))),e.dataset.autoAnimateTarget=a}),this),s.push('[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity '.concat(r,"s ease ").concat(o,"s; }"))}this.autoAnimateStyleSheet.innerHTML=s.join(""),requestAnimationFrame((function(){i.autoAnimateStyleSheet&&(getComputedStyle(i.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")})),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}},{key:"reset",value:function(){h(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach((function(e){e.dataset.autoAnimate=""})),h(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach((function(e){delete e.dataset.autoAnimateTarget})),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}},{key:"autoAnimateElements",value:function(e,t,i,n,a){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=a;var s=this.getAutoAnimateOptions(t,n);void 0!==i.delay&&(s.delay=i.delay),void 0!==i.duration&&(s.duration=i.duration),void 0!==i.easing&&(s.easing=i.easing);var r=this.getAutoAnimatableProperties("from",e,i),o=this.getAutoAnimatableProperties("to",t,i);t.classList.contains("fragment")&&(delete o.styles.opacity,e.classList.contains("fragment")&&(e.className.match(u)||[""])[0]===(t.className.match(u)||[""])[0]&&"forward"===n.slideDirection&&t.classList.add("visible","disabled"));if(!1!==i.translate||!1!==i.scale){var l=this.Reveal.getScale(),d={x:(r.x-o.x)/l,y:(r.y-o.y)/l,scaleX:r.width/o.width,scaleY:r.height/o.height};d.x=Math.round(1e3*d.x)/1e3,d.y=Math.round(1e3*d.y)/1e3,d.scaleX=Math.round(1e3*d.scaleX)/1e3,d.scaleX=Math.round(1e3*d.scaleX)/1e3;var c=!1!==i.translate&&(0!==d.x||0!==d.y),h=!1!==i.scale&&(0!==d.scaleX||0!==d.scaleY);if(c||h){var v=[];c&&v.push("translate(".concat(d.x,"px, ").concat(d.y,"px)")),h&&v.push("scale(".concat(d.scaleX,", ").concat(d.scaleY,")")),r.styles.transform=v.join(" "),r.styles["transform-origin"]="top left",o.styles.transform="none"}}for(var f in o.styles){var g=o.styles[f],p=r.styles[f];g===p?delete o.styles[f]:(!0===g.explicitValue&&(o.styles[f]=g.value),!0===p.explicitValue&&(r.styles[f]=p.value))}var m="",y=Object.keys(o.styles);y.length>0&&(r.styles.transition="none",o.styles.transition="all ".concat(s.duration,"s ").concat(s.easing," ").concat(s.delay,"s"),o.styles["transition-property"]=y.join(", "),o.styles["will-change"]=y.join(", "),m='[data-auto-animate-target="'+a+'"] {'+Object.keys(r.styles).map((function(e){return e+": "+r.styles[e]+" !important;"})).join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+a+'"] {'+Object.keys(o.styles).map((function(e){return e+": "+o.styles[e]+" !important;"})).join("")+"}");return m}},{key:"getAutoAnimateOptions",value:function(e,t){var i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=c(i,t),e.closest&&e.parentNode){var n=e.parentNode.closest("[data-auto-animate-target]");n&&(i=this.getAutoAnimateOptions(n,i))}return e.dataset.autoAnimateEasing&&(i.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(i.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(i.delay=parseFloat(e.dataset.autoAnimateDelay)),i}},{key:"getAutoAnimatableProperties",value:function(e,t,i){var n=this.Reveal.getConfig(),a={styles:[]};if(!1!==i.translate||!1!==i.scale){var s;if("function"==typeof i.measure)s=i.measure(t);else if(n.center)s=t.getBoundingClientRect();else{var r=this.Reveal.getScale();s={x:t.offsetLeft*r,y:t.offsetTop*r,width:t.offsetWidth*r,height:t.offsetHeight*r}}a.x=s.x,a.y=s.y,a.width=s.width,a.height=s.height}var o=getComputedStyle(t);return(i.styles||n.autoAnimateStyles).forEach((function(t){var i;"string"==typeof t&&(t={property:t}),""!==(i=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:o[t.property])&&(a.styles[t.property]=i)})),a}},{key:"getAutoAnimatableElements",value:function(e,t){var i=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),n=[];return i.filter((function(e,t){if(-1===n.indexOf(e.to))return n.push(e.to),!0}))}},{key:"getAutoAnimatePairs",value:function(e,t){var i=this,n=[],a="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(n,e,t,"[data-id]",(function(e){return e.nodeName+":::"+e.getAttribute("data-id")})),this.findAutoAnimateMatches(n,e,t,a,(function(e){return e.nodeName+":::"+e.innerText})),this.findAutoAnimateMatches(n,e,t,"img, video, iframe",(function(e){return e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))})),this.findAutoAnimateMatches(n,e,t,"pre",(function(e){return e.nodeName+":::"+e.innerText})),n.forEach((function(e){e.from.matches(a)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},i.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-code",(function(e){return e.textContent}),{scale:!1,styles:[],measure:i.getLocalBoundingBox.bind(i)}),i.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",(function(e){return e.getAttribute("data-line-number")}),{scale:!1,styles:["width"],measure:i.getLocalBoundingBox.bind(i)}))}),this),n}},{key:"getLocalBoundingBox",value:function(e){var t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}},{key:"findAutoAnimateMatches",value:function(e,t,i,n,a,s){var r={},o={};[].slice.call(t.querySelectorAll(n)).forEach((function(e,t){var i=a(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))})),[].slice.call(i.querySelectorAll(n)).forEach((function(t,i){var n,l=a(t);if(o[l]=o[l]||[],o[l].push(t),r[l]){var d=o[l].length-1,u=r[l].length-1;r[l][d]?(n=r[l][d],r[l][d]=null):r[l][u]&&(n=r[l][u],r[l][u]=null)}n&&e.push({from:n,to:t,options:s})}))}},{key:"getUnmatchedAutoAnimateElements",value:function(e){var t=this;return[].slice.call(e.children).reduce((function(e,i){var n=i.querySelector("[data-auto-animate-target]");return i.hasAttribute("data-auto-animate-target")||n||e.push(i),i.querySelector("[data-auto-animate-target]")&&(e=e.concat(t.getUnmatchedAutoAnimateElements(i))),e}),[])}}]),e}(),I=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"configure",value:function(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}},{key:"disable",value:function(){h(this.Reveal.getSlidesElement(),".fragment").forEach((function(e){e.classList.add("visible"),e.classList.remove("current-fragment")}))}},{key:"enable",value:function(){h(this.Reveal.getSlidesElement(),".fragment").forEach((function(e){e.classList.remove("visible"),e.classList.remove("current-fragment")}))}},{key:"availableRoutes",value:function(){var e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){var t=e.querySelectorAll(".fragment:not(.disabled)"),i=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-i.length>0,next:!!i.length}}return{prev:!1,next:!1}}},{key:"sort",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e=Array.from(e);var i=[],n=[],a=[];e.forEach((function(e){if(e.hasAttribute("data-fragment-index")){var t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else n.push([e])})),i=i.concat(n);var s=0;return i.forEach((function(e){e.forEach((function(e){a.push(e),e.setAttribute("data-fragment-index",s)})),s++})),!0===t?i:a}},{key:"sortAll",value:function(){var e=this;this.Reveal.getHorizontalSlides().forEach((function(t){var i=h(t,"section");i.forEach((function(t,i){e.sort(t.querySelectorAll(".fragment"))}),e),0===i.length&&e.sort(t.querySelectorAll(".fragment"))}))}},{key:"update",value:function(e,t){var i=this,n={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){var s=0;if("number"!=typeof e){var r=this.sort(a.querySelectorAll(".fragment.visible")).pop();r&&(e=parseInt(r.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach((function(t,a){if(t.hasAttribute("data-fragment-index")&&(a=parseInt(t.getAttribute("data-fragment-index"),10)),s=Math.max(s,a),a<=e){var r=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),a===e&&(i.Reveal.announceStatus(i.Reveal.getStatusText(t)),t.classList.add("current-fragment"),i.Reveal.slideContent.startEmbeddedContent(t)),r||(n.shown.push(t),i.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{var o=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),o&&(n.hidden.push(t),i.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}})),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,s),-1),a.setAttribute("data-fragment",e)}return n}},{key:"sync",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();return this.sort(e.querySelectorAll(".fragment"))}},{key:"goto",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){var n=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(n.length){if("number"!=typeof e){var a=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=a?parseInt(a.getAttribute("data-fragment-index")||0,10):-1}e+=t;var s=this.update(e,n);return s.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:s.hidden[0],fragments:s.hidden}}),s.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:s.shown[0],fragments:s.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!s.shown.length&&!s.hidden.length)}}return!1}},{key:"next",value:function(){return this.goto(null,1)}},{key:"prev",value:function(){return this.goto(null,-1)}}]),e}(),T=function(){function e(i){t(this,e),this.Reveal=i,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}return n(e,[{key:"activate",value:function(){var e=this;if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){t.classList.contains("stack")||t.addEventListener("click",e.onSlideClicked,!0)}));var t=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=t.width+70,this.overviewSlideHeight=t.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();var i=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:i.h,indexv:i.v,currentSlide:this.Reveal.getCurrentSlide()}})}}},{key:"layout",value:function(){var e=this;this.Reveal.getHorizontalSlides().forEach((function(t,i){t.setAttribute("data-index-h",i),g(t,"translate3d("+i*e.overviewSlideWidth+"px, 0, 0)"),t.classList.contains("stack")&&h(t,"section").forEach((function(t,n){t.setAttribute("data-index-h",i),t.setAttribute("data-index-v",n),g(t,"translate3d(0, "+n*e.overviewSlideHeight+"px, 0)")}))})),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((function(t,i){g(t,"translate3d("+i*e.overviewSlideWidth+"px, 0, 0)"),h(t,".slide-background").forEach((function(t,i){g(t,"translate3d(0, "+i*e.overviewSlideHeight+"px, 0)")}))}))}},{key:"update",value:function(){var e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,i=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-i.h*this.overviewSlideWidth+"px)","translateY("+-i.v*this.overviewSlideHeight+"px)"].join(" ")})}},{key:"deactivate",value:function(){var e=this;if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout((function(){e.Reveal.getRevealElement().classList.remove("overview-deactivating")}),1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){g(t,""),t.removeEventListener("click",e.onSlideClicked,!0)})),h(this.Reveal.getBackgroundsElement(),".slide-background").forEach((function(e){g(e,"")})),this.Reveal.transformSlides({overview:""});var t=this.Reveal.getIndices();this.Reveal.slide(t.h,t.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}},{key:"toggle",value:function(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}},{key:"isActive",value:function(){return this.active}},{key:"onSlideClicked",value:function(e){if(this.isActive()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){var i=parseInt(t.getAttribute("data-index-h"),10),n=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(i,n)}}}}]),e}(),H=function(){function i(e){t(this,i),this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}return n(i,[{key:"configure",value:function(e,t){"linear"===e.navigationMode?(this.shortcuts["&#8594; , &#8595; , SPACE , N , L , J"]="Next slide",this.shortcuts["&#8592; , &#8593; , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["&#8592; , H"]="Navigate left",this.shortcuts["&#8594; , L"]="Navigate right",this.shortcuts["&#8593; , K"]="Navigate up",this.shortcuts["&#8595; , J"]="Navigate down"),this.shortcuts["Home , Shift &#8592;"]="First slide",this.shortcuts["End , Shift &#8594;"]="Last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts["ESC, O"]="Slide overview"}},{key:"bind",value:function(){document.addEventListener("keydown",this.onDocumentKeyDown,!1),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}},{key:"unbind",value:function(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}},{key:"addKeyBinding",value:function(t,i){"object"===e(t)&&t.keyCode?this.bindings[t.keyCode]={callback:i,key:t.key,description:t.description}:this.bindings[t]={callback:i,key:null,description:null}}},{key:"removeKeyBinding",value:function(e){delete this.bindings[e]}},{key:"triggerKey",value:function(e){this.onDocumentKeyDown({keyCode:e})}},{key:"registerKeyboardShortcut",value:function(e,t){this.shortcuts[e]=t}},{key:"getShortcuts",value:function(){return this.shortcuts}},{key:"getBindings",value:function(){return this.bindings}},{key:"onDocumentKeyPress",value:function(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}},{key:"onDocumentKeyDown",value:function(t){var i=this.Reveal.getConfig();if("function"==typeof i.keyboardCondition&&!1===i.keyboardCondition(t))return!0;if("focused"===i.keyboardCondition&&!this.Reveal.isFocused())return!0;var n=t.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(t);var s=document.activeElement&&!0===document.activeElement.isContentEditable,r=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),o=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),l=t.shiftKey&&32===t.keyCode,d=t.shiftKey&&37===n,u=t.shiftKey&&39===n,c=!l&&!d&&!u&&(t.shiftKey||t.altKey||t.ctrlKey||t.metaKey);if(!(s||r||o||c)){var h,v=[66,86,190,191];if("object"===e(i.keyboard))for(h in i.keyboard)"togglePause"===i.keyboard[h]&&v.push(parseInt(h,10));if(this.Reveal.isPaused()&&-1===v.indexOf(n))return!1;var f,g,p="linear"===i.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),m=!1;if("object"===e(i.keyboard))for(h in i.keyboard)if(parseInt(h,10)===n){var y=i.keyboard[h];"function"==typeof y?y.apply(null,[t]):"string"==typeof y&&"function"==typeof this.Reveal[y]&&this.Reveal[y].call(),m=!0}if(!1===m)for(h in this.bindings)if(parseInt(h,10)===n){var b=this.bindings[h].callback;"function"==typeof b?b.apply(null,[t]):"string"==typeof b&&"function"==typeof this.Reveal[b]&&this.Reveal[b].call(),m=!0}!1===m&&(m=!0,80===n||33===n?this.Reveal.prev():78===n||34===n?this.Reveal.next():72===n||37===n?d?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.left():76===n||39===n?u?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.right():75===n||38===n?!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.up():74===n||40===n?!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.down():36===n?this.Reveal.slide(0):35===n?this.Reveal.slide(Number.MAX_VALUE):32===n?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),t.shiftKey?this.Reveal.prev():this.Reveal.next()):58===n||59===n||66===n||86===n||190===n||191===n?this.Reveal.togglePause():70===n?(f=i.embedded?this.Reveal.getViewportElement():document.documentElement,(g=(f=f||document.documentElement).requestFullscreen||f.webkitRequestFullscreen||f.webkitRequestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen)&&g.apply(f)):65===n?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):m=!1),m?t.preventDefault&&t.preventDefault():27!==n&&79!==n||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),t.preventDefault&&t.preventDefault()),this.Reveal.cueAutoSlide()}}}]),i}(),O=function(){function e(i){t(this,e),this.Reveal=i,this.writeURLTimeout=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}return n(e,[{key:"bind",value:function(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}},{key:"unbind",value:function(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}},{key:"readURL",value:function(){var e=this.Reveal.getConfig(),t=this.Reveal.getIndices(),i=this.Reveal.getCurrentSlide(),n=window.location.hash,a=n.slice(2).split("/"),s=n.replace(/#\/?/gi,"");if(!/^[0-9]*$/.test(a[0])&&s.length){var r,o;/\/[-\d]+$/g.test(s)&&(o=parseInt(s.split("/").pop(),10),o=isNaN(o)?void 0:o,s=s.split("/").shift());try{r=document.getElementById(decodeURIComponent(s))}catch(e){}var l=!!i&&i.getAttribute("id")===s;if(r){if(!l||void 0!==o){var d=this.Reveal.getIndices(r);this.Reveal.slide(d.h,d.v,o)}}else this.Reveal.slide(t.h||0,t.v||0)}else{var u,c=e.hashOneBasedIndex?1:0,h=parseInt(a[0],10)-c||0,v=parseInt(a[1],10)-c||0;e.fragmentInURL&&(u=parseInt(a[2],10),isNaN(u)&&(u=void 0)),h===t.h&&v===t.v&&void 0===u||this.Reveal.slide(h,v,u)}}},{key:"writeURL",value:function(e){var t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!1===x?window.location.hash=this.getHash():t.hash&&window.history.replaceState(null,null,"#"+this.getHash()))}},{key:"getHash",value:function(e){var t="/",i=e||this.Reveal.getCurrentSlide(),n=i?i.getAttribute("id"):null;n&&(n=encodeURIComponent(n));var a=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(a.f=void 0),"string"==typeof n&&n.length)t="/"+n,a.f>=0&&(t+="/"+a.f);else{var s=this.Reveal.getConfig().hashOneBasedIndex?1:0;(a.h>0||a.v>0||a.f>=0)&&(t+=a.h+s),(a.v>0||a.f>=0)&&(t+="/"+(a.v+s)),a.f>=0&&(t+="/"+a.f)}return t}},{key:"onWindowHashChange",value:function(e){this.readURL()}}]),e}(),B=function(){function e(i){t(this,e),this.Reveal=i,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this)}return n(e,[{key:"render",value:function(){var e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML='<button class="navigate-left" aria-label="'.concat(e?"next slide":"previous slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-right" aria-label="').concat(e?"previous slide":"next slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>'),this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=h(t,".navigate-left"),this.controlsRight=h(t,".navigate-right"),this.controlsUp=h(t,".navigate-up"),this.controlsDown=h(t,".navigate-down"),this.controlsPrev=h(t,".navigate-prev"),this.controlsNext=h(t,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}},{key:"configure",value:function(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}},{key:"bind",value:function(){var e=this,t=["touchstart","click"];S&&(t=["touchstart"]),t.forEach((function(t){e.controlsLeft.forEach((function(i){return i.addEventListener(t,e.onNavigateLeftClicked,!1)})),e.controlsRight.forEach((function(i){return i.addEventListener(t,e.onNavigateRightClicked,!1)})),e.controlsUp.forEach((function(i){return i.addEventListener(t,e.onNavigateUpClicked,!1)})),e.controlsDown.forEach((function(i){return i.addEventListener(t,e.onNavigateDownClicked,!1)})),e.controlsPrev.forEach((function(i){return i.addEventListener(t,e.onNavigatePrevClicked,!1)})),e.controlsNext.forEach((function(i){return i.addEventListener(t,e.onNavigateNextClicked,!1)}))}))}},{key:"unbind",value:function(){var e=this;["touchstart","click"].forEach((function(t){e.controlsLeft.forEach((function(i){return i.removeEventListener(t,e.onNavigateLeftClicked,!1)})),e.controlsRight.forEach((function(i){return i.removeEventListener(t,e.onNavigateRightClicked,!1)})),e.controlsUp.forEach((function(i){return i.removeEventListener(t,e.onNavigateUpClicked,!1)})),e.controlsDown.forEach((function(i){return i.removeEventListener(t,e.onNavigateDownClicked,!1)})),e.controlsPrev.forEach((function(i){return i.removeEventListener(t,e.onNavigatePrevClicked,!1)})),e.controlsNext.forEach((function(i){return i.removeEventListener(t,e.onNavigateNextClicked,!1)}))}))}},{key:"update",value:function(){var e=this.Reveal.availableRoutes();[].concat(o(this.controlsLeft),o(this.controlsRight),o(this.controlsUp),o(this.controlsDown),o(this.controlsPrev),o(this.controlsNext)).forEach((function(e){e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")})),e.left&&this.controlsLeft.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.right&&this.controlsRight.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.up&&this.controlsUp.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.down&&this.controlsDown.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.left||e.up)&&this.controlsPrev.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.right||e.down)&&this.controlsNext.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}));var t=this.Reveal.getCurrentSlide();if(t){var i=this.Reveal.fragments.availableRoutes();i.prev&&this.controlsPrev.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsNext.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),this.Reveal.isVerticalSlide(t)?(i.prev&&this.controlsUp.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsDown.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))):(i.prev&&this.controlsLeft.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsRight.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})))}if(this.Reveal.getConfig().controlsTutorial){var n=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===n.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===n.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}},{key:"onNavigateLeftClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}},{key:"onNavigateRightClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}},{key:"onNavigateUpClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}},{key:"onNavigateDownClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}},{key:"onNavigatePrevClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}},{key:"onNavigateNextClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}]),e}(),U=function(){function e(i){t(this,e),this.Reveal=i,this.onProgressClicked=this.onProgressClicked.bind(this)}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}},{key:"configure",value:function(e,t){this.element.style.display=e.progress?"block":"none"}},{key:"bind",value:function(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}},{key:"unbind",value:function(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}},{key:"update",value:function(){this.Reveal.getConfig().progress&&this.bar&&(this.bar.style.width=this.Reveal.getProgress()*this.getMaxWidth()+"px")}},{key:"getMaxWidth",value:function(){return this.Reveal.getRevealElement().offsetWidth}},{key:"onProgressClicked",value:function(e){this.Reveal.onUserInput(e),e.preventDefault();var t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}]),e}(),z=function(){function e(i){t(this,e),this.Reveal=i,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}return n(e,[{key:"configure",value:function(e,t){e.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}},{key:"showCursor",value:function(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}},{key:"hideCursor",value:function(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}},{key:"onDocumentCursorActive",value:function(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}},{key:"onDocumentMouseScroll",value:function(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();var t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}]),e}(),q=function(e,t){var i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=e,"function"==typeof t&&(i.onload=i.onreadystatechange=function(e){("load"===e.type||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,t())},i.onerror=function(e){i.onload=i.onreadystatechange=i.onerror=null,t(new Error("Failed loading script: "+i.src+"\n"+e))});var n=document.querySelector("head");n.insertBefore(i,n.lastChild)},W=function(){function e(i){t(this,e),this.Reveal=i,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}return n(e,[{key:"load",value:function(e,t){var i=this;return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise((function(e){var n=[],a=0;if(t.forEach((function(e){e.condition&&!e.condition()||(e.async?i.asyncDependencies.push(e):n.push(e))})),n.length){a=n.length;var s=function(t){t&&"function"==typeof t.callback&&t.callback(),0==--a&&i.initPlugins().then(e)};n.forEach((function(e){"string"==typeof e.id?(i.registerPlugin(e),s(e)):"string"==typeof e.src?q(e.src,(function(){return s(e)})):(console.warn("Unrecognized plugin format",e),s())}))}else i.initPlugins().then(e)}))}},{key:"initPlugins",value:function(){var e=this;return new Promise((function(t){var i=Object.values(e.registeredPlugins),n=i.length;if(0===n)e.loadAsync().then(t);else{var a,s=function(){0==--n?e.loadAsync().then(t):a()},r=0;(a=function(){var t=i[r++];if("function"==typeof t.init){var n=t.init(e.Reveal);n&&"function"==typeof n.then?n.then(s):s()}else s()})()}}))}},{key:"loadAsync",value:function(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach((function(e){q(e.src,e.callback)})),Promise.resolve()}},{key:"registerPlugin",value:function(e){2===arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());var t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}},{key:"hasPlugin",value:function(e){return!!this.registeredPlugins[e]}},{key:"getPlugin",value:function(e){return this.registeredPlugins[e]}},{key:"getRegisteredPlugins",value:function(){return this.registeredPlugins}}]),e}(),j=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"setupPDF",value:function(){var e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),i=Math.floor(t.width*(1+e.margin)),n=Math.floor(t.height*(1+e.margin)),a=t.width,s=t.height;y("@page{size:"+i+"px "+n+"px; margin: 0px;}"),y(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+a+"px; max-height:"+s+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=i+"px",document.body.style.height=n+"px",this.Reveal.layoutSlideContents(a,s);var r=e.slideNumber&&/all|print/i.test(e.showSlideNumber);h(this.Reveal.getRevealElement(),".slides section").forEach((function(e){e.setAttribute("data-slide-number",this.Reveal.slideNumber.getSlideNumber(e))}),this),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){if(!1===t.classList.contains("stack")){var o=(i-a)/2,l=(n-s)/2,d=t.scrollHeight,u=Math.max(Math.ceil(d/n),1);(1===(u=Math.min(u,e.pdfMaxPagesPerSlide))&&e.center||t.classList.contains("center"))&&(l=Math.max((n-d)/2,0));var c=document.createElement("div");if(c.className="pdf-page",c.style.height=(n+e.pdfPageHeightOffset)*u+"px",t.parentNode.insertBefore(c,t),c.appendChild(t),t.style.left=o+"px",t.style.top=l+"px",t.style.width=a+"px",t.slideBackgroundElement&&c.insertBefore(t.slideBackgroundElement,t),e.showNotes){var v=getSlideNotes(t);if(v){var f="string"==typeof e.showNotes?e.showNotes:"inline",g=document.createElement("div");g.classList.add("speaker-notes"),g.classList.add("speaker-notes-pdf"),g.setAttribute("data-layout",f),g.innerHTML=v,"separate-page"===f?c.parentNode.insertBefore(g,c.nextSibling):(g.style.left="8px",g.style.bottom="8px",g.style.width=i-16+"px",c.appendChild(g))}}if(r){var p=document.createElement("div");p.classList.add("slide-number"),p.classList.add("slide-number-pdf"),p.innerHTML=t.getAttribute("data-slide-number"),c.appendChild(p)}if(e.pdfSeparateFragments){var m,y,b=this.Reveal.fragments.sort(c.querySelectorAll(".fragment"),!0);b.forEach((function(e){m&&m.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}),this);var t=c.cloneNode(!0);c.parentNode.insertBefore(t,(y||c).nextSibling),m=e,y=t}),this),b.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else h(c,".fragment:not(.fade-out)").forEach((function(e){e.classList.add("visible")}))}}),this),this.Reveal.dispatchEvent({type:"pdf-ready"})}},{key:"isPrintingPDF",value:function(){return/print-pdf/gi.test(window.location.search)}}]),e}(),F=function(){function e(i){t(this,e),this.Reveal=i,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}return n(e,[{key:"bind",value:function(){var e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"unbind",value:function(){var e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}},{key:"isSwipePrevented",value:function(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}},{key:"onTouchStart",value:function(e){if(this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}},{key:"onTouchMove",value:function(e){if(this.isSwipePrevented(e.target))return!0;var t=this.Reveal.getConfig();if(this.touchCaptured)S&&e.preventDefault();else{this.Reveal.onUserInput(e);var i=e.touches[0].clientX,n=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){var a=this.Reveal.availableRoutes({includeFragments:!0}),s=i-this.touchStartX,r=n-this.touchStartY;s>40&&Math.abs(s)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):s<-40&&Math.abs(s)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):r>40&&a.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):r<-40&&a.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}},{key:"onTouchEnd",value:function(e){this.touchCaptured=!1}},{key:"onPointerDown",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}},{key:"onPointerMove",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}},{key:"onPointerUp",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}]),e}(),V=function(){function e(i){t(this,e),this.Reveal=i,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}return n(e,[{key:"configure",value:function(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}},{key:"bind",value:function(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}},{key:"unbind",value:function(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}},{key:"focus",value:function(){"focus"!==this.state&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="focus"}},{key:"blur",value:function(){"blur"!==this.state&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="blur"}},{key:"isFocused",value:function(){return"focus"===this.state}},{key:"onRevealPointerDown",value:function(e){this.focus()}},{key:"onDocumentPointerDown",value:function(e){var t=e.target.closest(".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}]),e}(),K=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}},{key:"configure",value:function(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}},{key:"update",value:function(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}},{key:"updateVisibility",value:function(){this.Reveal.getConfig().showNotes&&this.hasNotes()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}},{key:"hasNotes",value:function(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}},{key:"isSpeakerNotesWindow",value:function(){return!!window.location.search.match(/receiver/gi)}},{key:"getSlideNotes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");var t=e.querySelector("aside.notes");return t?t.innerHTML:null}}]),e}(),X=function(){function e(i,n){t(this,e),this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=i,this.progressCheck=n,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}return n(e,[{key:"setPlaying",value:function(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}},{key:"animate",value:function(){var e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}},{key:"render",value:function(){var e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,n=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);var a=-Math.PI/2+e*(2*Math.PI),s=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(i,n,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(i,n,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(i,n,t,s,a,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(i-14,n-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}},{key:"on",value:function(e,t){this.canvas.addEventListener(e,t,!1)}},{key:"off",value:function(e,t){this.canvas.removeEventListener(e,t,!1)}},{key:"destroy",value:function(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}]),e}(),Y={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[],plugins:[]};function $(t,i){arguments.length<2&&(i=arguments[0],t=document.querySelector(".reveal"));var n,a,s,o,l,u,p={},y="4.0.0-dev",w=!1,R={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},E=[],S=1,x={layout:"",overview:""},N={},q="idle",$=0,_=0,J=-1,Q=!1,Z=new C(p),G=new P(p),ee=new D(p),te=new M(p),ie=new I(p),ne=new T(p),ae=new H(p),se=new O(p),re=new B(p),oe=new U(p),le=new z(p),de=new W(p),ue=new j(p),ce=new V(p),he=new F(p),ve=new K(p);function fe(e){return N.wrapper=t,N.slides=t.querySelector(".slides"),n=r({},Y,{},i,{},e,{},b()),ge(),window.addEventListener("load",Be,!1),de.load(n.plugins,n.dependencies).then(pe),new Promise((function(e){return p.on("ready",e)}))}function ge(){!0===n.embedded?N.viewport=t.closest(".reveal-viewport")||t:(N.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),N.viewport.classList.add("reveal-viewport")}function pe(){w=!0,me(),Re(),we(),tt(),Ae(),se.readURL(),te.update(!0),setTimeout((function(){N.slides.classList.remove("no-transition"),N.wrapper.classList.add("ready"),Pe({type:"ready",data:{indexh:a,indexv:s,currentSlide:l}})}),1),ue.isPrintingPDF()&&(Se(),"complete"===document.readyState?ue.setupPDF():window.addEventListener("load",(function(){ue.setupPDF()})))}function me(){N.slides.classList.add("no-transition"),A?N.wrapper.classList.add("no-hover"):N.wrapper.classList.remove("no-hover"),te.render(),G.render(),re.render(),oe.render(),ve.render(),N.pauseOverlay=m(N.wrapper,"div","pause-overlay",n.controls?'<button class="resume-button">Resume presentation</button>':null),N.statusElement=ye(),N.wrapper.setAttribute("role","application")}function ye(){var e=N.wrapper.querySelector(".aria-status");return e||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),N.wrapper.appendChild(e)),e}function be(e){N.statusElement.textContent=e}function ke(e){var t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){var i=e.getAttribute("aria-hidden"),n="none"===window.getComputedStyle(e).display;"true"===i||n||Array.from(e.childNodes).forEach((function(e){t+=ke(e)}))}return""===(t=t.trim())?"":t+" "}function we(){setInterval((function(){0===N.wrapper.scrollTop&&0===N.wrapper.scrollLeft||(N.wrapper.scrollTop=0,N.wrapper.scrollLeft=0)}),1e3)}function Re(){n.postMessage&&window.addEventListener("message",(function(e){var t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof p[t.method])if(!1===d.test(t.method)){var i=p[t.method].apply(p,t.args);Ne("callback",{method:t.method,result:i})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')}),!1)}function Ae(t){var i=r({},n);if("object"===e(t)&&c(n,t),!1!==p.isReady()){var a=N.wrapper.querySelectorAll(".slides section").length;N.wrapper.classList.remove(i.transition),N.wrapper.classList.add(n.transition),N.wrapper.setAttribute("data-transition-speed",n.transitionSpeed),N.wrapper.setAttribute("data-background-transition",n.backgroundTransition),n.shuffle&&it(),v(N.wrapper,"embedded",n.embedded),v(N.wrapper,"rtl",n.rtl),v(N.wrapper,"center",n.center),!1===n.pause&&Ye(),n.previewLinks?(Me(),De("[data-preview-link=false]")):(De(),Me("[data-preview-link]:not([data-preview-link=false])")),ee.reset(),u&&(u.destroy(),u=null),a>1&&n.autoSlide&&n.autoSlideStoppable&&((u=new X(N.wrapper,(function(){return Math.min(Math.max((Date.now()-J)/$,0),1)}))).on("click",Ot),Q=!1),"default"!==n.navigationMode?N.wrapper.setAttribute("data-navigation-mode",n.navigationMode):N.wrapper.removeAttribute("data-navigation-mode"),ve.configure(n,i),ce.configure(n,i),le.configure(n,i),re.configure(n,i),oe.configure(n,i),ae.configure(n,i),ie.configure(n,i),G.configure(n,i),Ge()}}function Ee(){window.addEventListener("resize",It,!1),n.touch&&he.bind(),n.keyboard&&ae.bind(),n.progress&&oe.bind(),n.respondToHashChanges&&se.bind(),re.bind(),ce.bind(),N.slides.addEventListener("transitionend",Dt,!1),N.pauseOverlay.addEventListener("click",Ye,!1),n.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Tt,!1)}function Se(){he.unbind(),ce.unbind(),ae.unbind(),re.unbind(),oe.unbind(),se.unbind(),window.removeEventListener("resize",It,!1),N.slides.removeEventListener("transitionend",Dt,!1),N.pauseOverlay.removeEventListener("click",Ye,!1)}function Le(e,i,n){t.addEventListener(e,i,n)}function xe(e,i,n){t.removeEventListener(e,i,n)}function Ce(e){"string"==typeof e.layout&&(x.layout=e.layout),"string"==typeof e.overview&&(x.overview=e.overview),x.layout?g(N.slides,x.layout+" "+x.overview):g(N.slides,x.overview)}function Pe(e){var t=e.target,i=void 0===t?N.wrapper:t,n=e.type,a=e.data,s=e.bubbles,r=void 0===s||s,o=document.createEvent("HTMLEvents",1,2);o.initEvent(n,r,!0),c(o,a),i.dispatchEvent(o),i===N.wrapper&&Ne(n)}function Ne(e,t){if(n.postMessageEvents&&window.parent!==window.self){var i={namespace:"reveal",eventName:e,state:bt()};c(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function Me(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(N.wrapper.querySelectorAll(e)).forEach((function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Ht,!1)}))}function De(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(N.wrapper.querySelectorAll(e)).forEach((function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Ht,!1)}))}function Ie(e){Oe(),N.overlay=document.createElement("div"),N.overlay.classList.add("overlay"),N.overlay.classList.add("overlay-preview"),N.wrapper.appendChild(N.overlay),N.overlay.innerHTML='<header>\n\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t<a class="external" href="'.concat(e,'" target="_blank"><span class="icon"></span></a>\n\t\t\t</header>\n\t\t\t<div class="spinner"></div>\n\t\t\t<div class="viewport">\n\t\t\t\t<iframe src="').concat(e,'"></iframe>\n\t\t\t\t<small class="viewport-inner">\n\t\t\t\t\t<span class="x-frame-error">Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).</span>\n\t\t\t\t</small>\n\t\t\t</div>'),N.overlay.querySelector("iframe").addEventListener("load",(function(e){N.overlay.classList.add("loaded")}),!1),N.overlay.querySelector(".close").addEventListener("click",(function(e){Oe(),e.preventDefault()}),!1),N.overlay.querySelector(".external").addEventListener("click",(function(e){Oe()}),!1)}function Te(e){"boolean"==typeof e?e?He():Oe():N.overlay?Oe():He()}function He(){if(n.help){Oe(),N.overlay=document.createElement("div"),N.overlay.classList.add("overlay"),N.overlay.classList.add("overlay-help"),N.wrapper.appendChild(N.overlay);var e='<p class="title">Keyboard Shortcuts</p><br/>',t=ae.getShortcuts(),i=ae.getBindings();for(var a in e+="<table><th>KEY</th><th>ACTION</th>",t)e+="<tr><td>".concat(a,"</td><td>").concat(t[a],"</td></tr>");for(var s in i)i[s].key&&i[s].description&&(e+="<tr><td>".concat(i[s].key,"</td><td>").concat(i[s].description,"</td></tr>"));e+="</table>",N.overlay.innerHTML='\n\t\t\t\t<header>\n\t\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t</header>\n\t\t\t\t<div class="viewport">\n\t\t\t\t\t<div class="viewport-inner">'.concat(e,"</div>\n\t\t\t\t</div>\n\t\t\t"),N.overlay.querySelector(".close").addEventListener("click",(function(e){Oe(),e.preventDefault()}),!1)}}function Oe(){return!!N.overlay&&(N.overlay.parentNode.removeChild(N.overlay),N.overlay=null,!0)}function Be(){if(N.wrapper&&!ue.isPrintingPDF()){if(!n.disableLayout){A&&!n.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");var e=ze(),t=S;Ue(n.width,n.height),N.slides.style.width=e.width+"px",N.slides.style.height=e.height+"px",S=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),S=Math.max(S,n.minScale),1===(S=Math.min(S,n.maxScale))?(N.slides.style.zoom="",N.slides.style.left="",N.slides.style.top="",N.slides.style.bottom="",N.slides.style.right="",Ce({layout:""})):S>1&&L&&window.devicePixelRatio<2?(N.slides.style.zoom=S,N.slides.style.left="",N.slides.style.top="",N.slides.style.bottom="",N.slides.style.right="",Ce({layout:""})):(N.slides.style.zoom="",N.slides.style.left="50%",N.slides.style.top="50%",N.slides.style.bottom="auto",N.slides.style.right="auto",Ce({layout:"translate(-50%, -50%) scale("+S+")"}));for(var i=Array.from(N.wrapper.querySelectorAll(".slides section")),a=0,s=i.length;a<s;a++){var r=i[a];"none"!==r.style.display&&(n.center||r.classList.contains("center")?r.classList.contains("stack")?r.style.top=0:r.style.top=Math.max((e.height-r.scrollHeight)/2,0)+"px":r.style.top="")}t!==S&&Pe({type:"resize",data:{oldScale:t,scale:S,size:e}})}oe.update(),te.updateParallax(),ne.isActive()&&ne.update()}}function Ue(e,t){h(N.slides,"section > .stretch, section > .r-stretch").forEach((function(i){var n=k(i,t);if(/(img|video)/gi.test(i.nodeName)){var a=i.naturalWidth||i.videoWidth,s=i.naturalHeight||i.videoHeight,r=Math.min(e/a,n/s);i.style.width=a*r+"px",i.style.height=s*r+"px"}else i.style.width=e+"px",i.style.height=n+"px"}))}function ze(e,t){var i={width:n.width,height:n.height,presentationWidth:e||N.wrapper.offsetWidth,presentationHeight:t||N.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*n.margin,i.presentationHeight-=i.presentationHeight*n.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function qe(t,i){"object"===e(t)&&"function"==typeof t.setAttribute&&t.setAttribute("data-previous-indexv",i||0)}function We(t){if("object"===e(t)&&"function"==typeof t.setAttribute&&t.classList.contains("stack")){var i=t.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(t.getAttribute(i)||0,10)}return 0}function je(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Fe(){return!(!l||!je(l))&&!l.nextElementSibling}function Ve(){return 0===a&&0===s}function Ke(){return!!l&&(!l.nextElementSibling&&(!je(l)||!l.parentNode.nextElementSibling))}function Xe(){if(n.pause){var e=N.wrapper.classList.contains("paused");Rt(),N.wrapper.classList.add("paused"),!1===e&&Pe({type:"paused"})}}function Ye(){var e=N.wrapper.classList.contains("paused");N.wrapper.classList.remove("paused"),wt(),e&&Pe({type:"resumed"})}function $e(e){"boolean"==typeof e?e?Xe():Ye():_e()?Ye():Xe()}function _e(){return N.wrapper.classList.contains("paused")}function Je(e){"boolean"==typeof e?e?Et():At():Q?Et():At()}function Qe(){return!(!$||Q)}function Ze(e,t,i,r){o=l;var d=N.wrapper.querySelectorAll(".slides>section");if(0!==d.length){void 0!==t||ne.isActive()||(t=We(d[e])),o&&o.parentNode&&o.parentNode.classList.contains("stack")&&qe(o.parentNode,s);var u=E.concat();E.length=0;var c=a||0,h=s||0;a=nt(".slides>section",void 0===e?a:e),s=nt(".slides>section.present>section",void 0===t?s:t);var v=a!==c||s!==h;v||(o=null);var f=d[a],g=f.querySelectorAll("section");l=g[s]||f;var p=!1;v&&o&&l&&!ne.isActive()&&(o.hasAttribute("data-auto-animate")&&l.hasAttribute("data-auto-animate")&&(p=!0,N.slides.classList.add("disable-slide-transitions")),q="running"),at(),Be(),ne.isActive()&&ne.update(),void 0!==i&&ie.goto(i),o&&o!==l&&(o.classList.remove("present"),o.setAttribute("aria-hidden","true"),Ve()&&setTimeout((function(){ht().forEach((function(e){qe(e,0)}))}),0));e:for(var m=0,y=E.length;m<y;m++){for(var b=0;b<u.length;b++)if(u[b]===E[m]){u.splice(b,1);continue e}N.viewport.classList.add(E[m]),Pe({type:E[m]})}for(;u.length;)N.viewport.classList.remove(u.pop());v&&Pe({type:"slidechanged",data:{indexh:a,indexv:s,previousSlide:o,currentSlide:l,origin:r}}),!v&&o||(Z.stopEmbeddedContent(o),Z.startEmbeddedContent(l)),be(ke(l)),oe.update(),re.update(),ve.update(),te.update(),te.updateParallax(),G.update(),ie.update(),se.writeURL(),wt(),p&&(setTimeout((function(){N.slides.classList.remove("disable-slide-transitions")}),0),n.autoAnimate&&ee.run(o,l))}}function Ge(){Se(),Ee(),Be(),$=n.autoSlide,wt(),te.create(),se.writeURL(),ie.sortAll(),re.update(),oe.update(),at(),ve.update(),ve.updateVisibility(),te.update(!0),G.update(),Z.formatEmbeddedContent(),!1===n.autoPlayMedia?Z.stopEmbeddedContent(l,{unloadIframes:!1}):Z.startEmbeddedContent(l),ne.isActive()&&ne.layout()}function et(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;te.sync(e),ie.sync(e),Z.load(e),te.update(),ve.update()}function tt(){ut().forEach((function(e){h(e,"section").forEach((function(e,t){t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))}))}))}function it(){ut().forEach((function(e,t,i){N.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])}))}function nt(e,t){var i=h(N.wrapper,e),a=i.length,s=ue.isPrintingPDF();if(a){n.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(var r=0;r<a;r++){var o=i[r],l=n.rtl&&!je(o);o.classList.remove("past","present","future"),o.setAttribute("hidden",""),o.setAttribute("aria-hidden","true"),o.querySelector("section")&&o.classList.add("stack"),s?o.classList.add("present"):r<t?(o.classList.add(l?"future":"past"),n.fragments&&h(o,".fragment").forEach((function(e){e.classList.add("visible"),e.classList.remove("current-fragment")}))):r>t&&(o.classList.add(l?"past":"future"),n.fragments&&h(o,".fragment.visible").forEach((function(e){e.classList.remove("visible","current-fragment")})))}var d=i[t],u=d.classList.contains("present");d.classList.add("present"),d.removeAttribute("hidden"),d.removeAttribute("aria-hidden"),u||Pe({target:d,type:"visible",bubbles:!1});var c=d.getAttribute("data-state");c&&(E=E.concat(c.split(" ")))}else t=0;return t}function at(){var e,t=ut(),i=t.length;if(i&&void 0!==a){var r=ne.isActive()?10:n.viewDistance;A&&(r=ne.isActive()?6:n.mobileViewDistance),ue.isPrintingPDF()&&(r=Number.MAX_VALUE);for(var o=0;o<i;o++){var l=t[o],d=h(l,"section"),u=d.length;if(e=Math.abs((a||0)-o)||0,n.loop&&(e=Math.abs(((a||0)-o)%(i-r))||0),e<r?Z.load(l):Z.unload(l),u)for(var c=We(l),v=0;v<u;v++){var f=d[v];e+(o===(a||0)?Math.abs((s||0)-v):Math.abs(v-c))<r?Z.load(f):Z.unload(f)}}ft()?N.wrapper.classList.add("has-vertical-slides"):N.wrapper.classList.remove("has-vertical-slides"),vt()?N.wrapper.classList.add("has-horizontal-slides"):N.wrapper.classList.remove("has-horizontal-slides")}}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.includeFragments,i=void 0!==t&&t,r=N.wrapper.querySelectorAll(".slides>section"),o=N.wrapper.querySelectorAll(".slides>section.present>section"),l={left:a>0,right:a<r.length-1,up:s>0,down:s<o.length-1};if(n.loop&&(r.length>1&&(l.left=!0,l.right=!0),o.length>1&&(l.up=!0,l.down=!0)),r.length>1&&"linear"===n.navigationMode&&(l.right=l.right||l.down,l.left=l.left||l.up),!0===i){var d=ie.availableRoutes();l.left=l.left||d.prev,l.up=l.up||d.prev,l.down=l.down||d.next,l.right=l.right||d.next}if(n.rtl){var u=l.left;l.left=l.right,l.right=u}return l}function rt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=ut(),i=0;e:for(var n=0;n<t.length;n++){for(var a=t[n],s=a.querySelectorAll("section"),r=0;r<s.length;r++){if(s[r]===e)break e;"uncounted"!==s[r].dataset.visibility&&i++}if(a===e)break;!1===a.classList.contains("stack")&&"uncounted"!==!a.dataset.visibility&&i++}return i}function ot(){var e=pt(),t=rt();if(l){var i=l.querySelectorAll(".fragment");if(i.length>0){t+=l.querySelectorAll(".fragment.visible").length/i.length*.9}}return Math.min(t/(e-1),1)}function lt(e){var t,i=a,n=s;if(e){var r=je(e),o=r?e.parentNode:e,d=ut();i=Math.max(d.indexOf(o),0),n=void 0,r&&(n=Math.max(h(e.parentNode,"section").indexOf(e),0))}if(!e&&l&&l.querySelectorAll(".fragment").length>0){var u=l.querySelector(".current-fragment");t=u&&u.hasAttribute("data-fragment-index")?parseInt(u.getAttribute("data-fragment-index"),10):l.querySelectorAll(".fragment.visible").length-1}return{h:i,v:n,f:t}}function dt(){return h(N.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function ut(){return h(N.wrapper,".slides>section")}function ct(){return h(N.wrapper,".slides>section>section")}function ht(){return h(N.wrapper,".slides>section.stack")}function vt(){return ut().length>1}function ft(){return ct().length>1}function gt(){return dt().map((function(e){for(var t={},i=0;i<e.attributes.length;i++){var n=e.attributes[i];t[n.name]=n.value}return t}))}function pt(){return dt().length}function mt(e,t){var i=ut()[e],n=i&&i.querySelectorAll("section");return n&&n.length&&"number"==typeof t?n?n[t]:void 0:i}function yt(e,t){var i="number"==typeof e?mt(e,t):e;if(i)return i.slideBackgroundElement}function bt(){var e=lt();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:_e(),overview:ne.isActive()}}function kt(t){if("object"===e(t)){Ze(f(t.indexh),f(t.indexv),f(t.indexf));var i=f(t.paused),n=f(t.overview);"boolean"==typeof i&&i!==_e()&&$e(i),"boolean"==typeof n&&n!==ne.isActive()&&ne.toggle(n)}}function wt(){if(Rt(),l&&!1!==n.autoSlide){var e=l.querySelector(".current-fragment");e||(e=l.querySelector(".fragment"));var t=e?e.getAttribute("data-autoslide"):null,i=l.parentNode?l.parentNode.getAttribute("data-autoslide"):null,a=l.getAttribute("data-autoslide");$=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):n.autoSlide,0===l.querySelectorAll(".fragment").length&&h(l,"video, audio").forEach((function(e){e.hasAttribute("data-autoplay")&&$&&1e3*e.duration/e.playbackRate>$&&($=1e3*e.duration/e.playbackRate+1e3)})),!$||Q||_e()||ne.isActive()||Ke()&&!ie.availableRoutes().next&&!0!==n.loop||(_=setTimeout((function(){"function"==typeof n.autoSlideMethod?n.autoSlideMethod():Nt(),wt()}),$),J=Date.now()),u&&u.setPlaying(-1!==_)}}function Rt(){clearTimeout(_),_=-1}function At(){$&&!Q&&(Q=!0,Pe({type:"autoslidepaused"}),clearTimeout(_),u&&u.setPlaying(!1))}function Et(){$&&Q&&(Q=!1,Pe({type:"autoslideresumed"}),wt())}function St(){R.hasNavigatedHorizontally=!0,n.rtl?(ne.isActive()||!1===ie.next())&&st().left&&Ze(a+1,"grid"===n.navigationMode?s:void 0):(ne.isActive()||!1===ie.prev())&&st().left&&Ze(a-1,"grid"===n.navigationMode?s:void 0)}function Lt(){R.hasNavigatedHorizontally=!0,n.rtl?(ne.isActive()||!1===ie.prev())&&st().right&&Ze(a-1,"grid"===n.navigationMode?s:void 0):(ne.isActive()||!1===ie.next())&&st().right&&Ze(a+1,"grid"===n.navigationMode?s:void 0)}function xt(){(ne.isActive()||!1===ie.prev())&&st().up&&Ze(a,s-1)}function Ct(){R.hasNavigatedVertically=!0,(ne.isActive()||!1===ie.next())&&st().down&&Ze(a,s+1)}function Pt(){var e;if(!1===ie.prev())if(st().up)xt();else if(e=n.rtl?h(N.wrapper,".slides>section.future").pop():h(N.wrapper,".slides>section.past").pop()){var t=e.querySelectorAll("section").length-1||void 0;Ze(a-1,t)}}function Nt(){if(R.hasNavigatedHorizontally=!0,R.hasNavigatedVertically=!0,!1===ie.next()){var e=st();e.down&&e.right&&n.loop&&Fe()&&(e.down=!1),e.down?Ct():n.rtl?St():Lt()}}function Mt(e){n.autoSlideStoppable&&At()}function Dt(e){"running"===q&&/section/gi.test(e.target.nodeName)&&(q="idle",Pe({type:"slidetransitionend",data:{indexh:a,indexv:s,previousSlide:o,currentSlide:l}}))}function It(e){Be()}function Tt(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Ht(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){var t=e.currentTarget.getAttribute("href");t&&(Ie(t),e.preventDefault())}}function Ot(e){Ke()&&!1===n.loop?(Ze(0,0),Et()):Q?Et():At()}var Bt={VERSION:y,initialize:fe,configure:Ae,sync:Ge,syncSlide:et,syncFragments:ie.sync.bind(ie),slide:Ze,left:St,right:Lt,up:xt,down:Ct,prev:Pt,next:Nt,navigateLeft:St,navigateRight:Lt,navigateUp:xt,navigateDown:Ct,navigatePrev:Pt,navigateNext:Nt,navigateFragment:ie.goto.bind(ie),prevFragment:ie.prev.bind(ie),nextFragment:ie.next.bind(ie),on:Le,off:xe,addEventListener:Le,removeEventListener:xe,layout:Be,shuffle:it,availableRoutes:st,availableFragments:ie.availableRoutes.bind(ie),toggleHelp:Te,toggleOverview:ne.toggle.bind(ne),togglePause:$e,toggleAutoSlide:Je,isFirstSlide:Ve,isLastSlide:Ke,isLastVerticalSlide:Fe,isVerticalSlide:je,isPaused:_e,isAutoSliding:Qe,isSpeakerNotes:ve.isSpeakerNotesWindow.bind(ve),isOverview:ne.isActive.bind(ne),isFocused:ce.isFocused.bind(ce),isPrintingPDF:ue.isPrintingPDF.bind(ue),isReady:function(){return w},loadSlide:Z.load.bind(Z),unloadSlide:Z.unload.bind(Z),addEventListeners:Ee,removeEventListeners:Se,dispatchEvent:Pe,getState:bt,setState:kt,getProgress:ot,getIndices:lt,getSlidesAttributes:gt,getSlidePastCount:rt,getTotalSlides:pt,getSlide:mt,getPreviousSlide:function(){return o},getCurrentSlide:function(){return l},getSlideBackground:yt,getSlideNotes:ve.getSlideNotes.bind(ve),getSlides:dt,getHorizontalSlides:ut,getVerticalSlides:ct,hasHorizontalSlides:vt,hasVerticalSlides:ft,hasNavigatedHorizontally:function(){return R.hasNavigatedHorizontally},hasNavigatedVertically:function(){return R.hasNavigatedVertically},addKeyBinding:ae.addKeyBinding.bind(ae),removeKeyBinding:ae.removeKeyBinding.bind(ae),triggerKey:ae.triggerKey.bind(ae),registerKeyboardShortcut:ae.registerKeyboardShortcut.bind(ae),getComputedSlideSize:ze,getScale:function(){return S},getConfig:function(){return n},getQueryHash:b,getRevealElement:function(){return t},getSlidesElement:function(){return N.slides},getViewportElement:function(){return N.viewport},getBackgroundsElement:function(){return te.element},registerPlugin:de.registerPlugin.bind(de),hasPlugin:de.hasPlugin.bind(de),getPlugin:de.getPlugin.bind(de),getPlugins:de.getRegisteredPlugins.bind(de)};return c(p,r({},Bt,{announceStatus:be,getStatusText:ke,print:ue,focus:ce,progress:oe,controls:re,location:se,overview:ne,fragments:ie,slideContent:Z,slideNumber:G,onUserInput:Mt,closeOverlay:Oe,updateSlidesVisibility:at,layoutSlideContents:Ue,transformSlides:Ce,cueAutoSlide:wt,cancelAutoSlide:Rt})),Bt}var _=$,J=[];return _.initialize=function(e){return Object.assign(_,new $(document.querySelector(".reveal"),e)),J.map((function(e){return e(_)})),_.initialize()},["on","off","addEventListener","removeEventListener","registerPlugin"].forEach((function(e){_[e]=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];J.push((function(t){var n;return(n=t[e]).call.apply(n,[null].concat(i))}))}})),_}));
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Reveal=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function n(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?s(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):s(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function o(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(i);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var d=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/,u=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/,c=function(e,t){for(var i in t)e[i]=t[i];return e},h=function(e,t){return Array.from(e.querySelectorAll(t))},v=function(e,t,i){i?e.classList.add(t):e.classList.remove(t)},f=function(e){if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},g=function(e,t){e.style.transform=t},p=function(e,t){for(var i=e.parentNode;i;){var n=i.matches||i.matchesSelector||i.msMatchesSelector;if(n&&n.call(i,t))return i;i=i.parentNode}return null},m=function(e,t,i){for(var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=e.querySelectorAll("."+i),s=0;s<a.length;s++){var r=a[s];if(r.parentNode===e)return r}var o=document.createElement(t);return o.className=i,o.innerHTML=n,e.appendChild(o),o},y=function(e){var t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},b=function(){var e={};for(var t in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,(function(t){e[t.split("=").shift()]=t.split("=").pop()})),e){var i=e[t];e[t]=f(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e){var i,n=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",i=t-e.parentNode.offsetHeight,e.style.height=n+"px",e.parentNode.style.removeProperty("height"),i}return t},w=navigator.userAgent,R=document.createElement("div"),A=/(iphone|ipod|ipad|android)/gi.test(w)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,E=/chrome/i.test(w)&&!/edge/i.test(w),S=/android/gi.test(w),L="zoom"in R.style&&!A&&(E||/Version\/[\d\.]+.*Safari/.test(w)),x="function"==typeof window.history.replaceState&&!/PhantomJS/.test(w),C=function(){function e(i){t(this,e),this.Reveal=i,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}return n(e,[{key:"shouldPreload",value:function(e){var t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}},{key:"load",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.style.display=this.Reveal.getConfig().display,h(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((function(e){("IFRAME"!==e.tagName||t.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))})),h(e,"video, audio").forEach((function(e){var t=0;h(e,"source[data-src]").forEach((function(e){e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),t+=1})),t>0&&e.load()}));var n=e.slideBackgroundElement;if(n){n.style.display="block";var a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===n.hasAttribute("data-loaded")){n.setAttribute("data-loaded","true");var r=e.getAttribute("data-background-image"),o=e.getAttribute("data-background-video"),l=e.hasAttribute("data-background-video-loop"),d=e.hasAttribute("data-background-video-muted");if(r)a.style.backgroundImage="url("+encodeURI(r)+")";else if(o&&!this.Reveal.isSpeakerNotes()){var u=document.createElement("video");l&&u.setAttribute("loop",""),d&&(u.muted=!0),A&&(u.muted=!0,u.autoplay=!0,u.setAttribute("playsinline","")),o.split(",").forEach((function(e){u.innerHTML+='<source src="'+e+'">'})),a.appendChild(u)}else if(s&&!0!==i.excludeIframes){var c=document.createElement("iframe");c.setAttribute("allowfullscreen",""),c.setAttribute("mozallowfullscreen",""),c.setAttribute("webkitallowfullscreen",""),c.setAttribute("allow","autoplay"),c.setAttribute("data-src",s),c.style.width="100%",c.style.height="100%",c.style.maxHeight="100%",c.style.maxWidth="100%",a.appendChild(c)}}var v=a.querySelector("iframe[data-src]");v&&this.shouldPreload(n)&&!/autoplay=(1|true|yes)/gi.test(s)&&v.getAttribute("src")!==s&&v.setAttribute("src",s)}}},{key:"unload",value:function(e){e.style.display="none";var t=this.Reveal.getSlideBackground(e);t&&(t.style.display="none",h(t,"iframe[src]").forEach((function(e){e.removeAttribute("src")}))),h(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach((function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})),h(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach((function(e){e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}))}},{key:"formatEmbeddedContent",value:function(){var e=this,t=function(t,i,n){h(e.Reveal.getSlidesElement(),"iframe["+t+'*="'+i+'"]').forEach((function(e){var i=e.getAttribute(t);i&&-1===i.indexOf(n)&&e.setAttribute(t,i+(/\?/.test(i)?"&":"?")+n)}))};t("src","youtube.com/embed/","enablejsapi=1"),t("data-src","youtube.com/embed/","enablejsapi=1"),t("src","player.vimeo.com/","api=1"),t("data-src","player.vimeo.com/","api=1")}},{key:"startEmbeddedContent",value:function(e){var t=this;e&&!this.Reveal.isSpeakerNotes()&&(h(e,'img[src$=".gif"]').forEach((function(e){e.setAttribute("src",e.getAttribute("src"))})),h(e,"video, audio").forEach((function(e){if(!p(e,".fragment")||p(e,".fragment.visible")){var i=t.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof i&&(i=e.hasAttribute("data-autoplay")||!!p(e,".slide-background")),i&&"function"==typeof e.play)if(e.readyState>1)t.startEmbeddedMedia({target:e});else if(A){var n=e.play();n&&"function"==typeof n.catch&&!1===e.controls&&n.catch((function(){e.controls=!0,e.addEventListener("play",(function(){e.controls=!1}))}))}else e.removeEventListener("loadeddata",t.startEmbeddedMedia),e.addEventListener("loadeddata",t.startEmbeddedMedia)}})),h(e,"iframe[src]").forEach((function(e){p(e,".fragment")&&!p(e,".fragment.visible")||t.startEmbeddedIframe({target:e})})),h(e,"iframe[data-src]").forEach((function(e){p(e,".fragment")&&!p(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",t.startEmbeddedIframe),e.addEventListener("load",t.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))})))}},{key:"startEmbeddedMedia",value:function(e){var t=!!p(e.target,"html"),i=!!p(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}},{key:"startEmbeddedIframe",value:function(e){var t=e.target;if(t&&t.contentWindow){var i=!!p(e.target,"html"),n=!!p(e.target,".present");if(i&&n){var a=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof a&&(a=t.hasAttribute("data-autoplay")||!!p(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&a?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}},{key:"stopEmbeddedContent",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i=c({unloadIframes:!0},i),e&&e.parentNode&&(h(e,"video, audio").forEach((function(e){e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())})),h(e,"iframe").forEach((function(e){e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",t.startEmbeddedIframe)})),h(e,'iframe[src*="youtube.com/embed/"]').forEach((function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")})),h(e,'iframe[src*="player.vimeo.com/"]').forEach((function(e){!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")})),!0===i.unloadIframes&&h(e,"iframe[data-src]").forEach((function(e){e.setAttribute("src","about:blank"),e.removeAttribute("src")})))}}]),e}(),P=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}},{key:"configure",value:function(e,t){var i="none";e.slideNumber&&!this.Reveal.isPrintingPDF()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(i="block"),this.element.style.display=i}},{key:"update",value:function(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}},{key:"getSlideNumber",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide(),i=this.Reveal.getConfig(),n="h.v";if("function"==typeof i.slideNumber)e=i.slideNumber(t);else switch("string"==typeof i.slideNumber&&(n=i.slideNumber),/c/.test(n)||1!==this.Reveal.getHorizontalSlides().length||(n="c"),e=[],n){case"c":e.push(this.Reveal.getSlidePastCount(t)+1);break;case"c/t":e.push(this.Reveal.getSlidePastCount(t)+1,"/",this.Reveal.getTotalSlides());break;default:var a=this.Reveal.getIndices(t);e.push(a.h+1);var s="h/v"===n?"/":".";this.Reveal.isVerticalSlide(t)&&e.push(s,a.v+1)}var r="#"+this.Reveal.location.getHash(t);return this.formatNumber(e[0],e[1],e[2],r)}},{key:"formatNumber",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#"+this.Reveal.location.getHash();return"number"!=typeof i||isNaN(i)?'<a href="'.concat(n,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,"</span>\n\t\t\t\t\t</a>"):'<a href="'.concat(n,'">\n\t\t\t\t\t<span class="slide-number-a">').concat(e,'</span>\n\t\t\t\t\t<span class="slide-number-delimiter">').concat(t,'</span>\n\t\t\t\t\t<span class="slide-number-b">').concat(i,"</span>\n\t\t\t\t\t</a>")}}]),e}(),N=function(e){var t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};var i=e.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16)};var n=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(n)return{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)};var a=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return a?{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10),a:parseFloat(a[4])}:null},M=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}},{key:"create",value:function(){var e=this;this.Reveal.isPrintingPDF();this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach((function(t){var i=e.createBackground(t,e.element);h(t,"section").forEach((function(t){e.createBackground(t,i),i.classList.add("stack")}))})),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout((function(){e.Reveal.getRevealElement().classList.add("has-parallax-background")}),1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}},{key:"createBackground",value:function(e,t){var i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");var n=document.createElement("div");return n.className="slide-background-content",i.appendChild(n),t.appendChild(i),e.slideBackgroundElement=i,e.slideBackgroundContentElement=n,this.sync(e),i}},{key:"sync",value:function(e){var t=e.slideBackgroundElement,i=e.slideBackgroundContentElement;e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",i.style.backgroundSize="",i.style.backgroundRepeat="",i.style.backgroundPosition="",i.style.backgroundImage="",i.style.opacity="",i.innerHTML="";var n={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")};n.background&&(/^(http|file|\/\/)/gi.test(n.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(n.background)?e.setAttribute("data-background-image",n.background):t.style.background=n.background),(n.background||n.backgroundColor||n.backgroundImage||n.backgroundVideo||n.backgroundIframe)&&t.setAttribute("data-background-hash",n.background+n.backgroundSize+n.backgroundImage+n.backgroundVideo+n.backgroundIframe+n.backgroundColor+n.backgroundRepeat+n.backgroundPosition+n.backgroundTransition+n.backgroundOpacity),n.backgroundSize&&t.setAttribute("data-background-size",n.backgroundSize),n.backgroundColor&&(t.style.backgroundColor=n.backgroundColor),n.backgroundTransition&&t.setAttribute("data-background-transition",n.backgroundTransition),e.hasAttribute("data-preload")&&t.setAttribute("data-preload",""),n.backgroundSize&&(i.style.backgroundSize=n.backgroundSize),n.backgroundRepeat&&(i.style.backgroundRepeat=n.backgroundRepeat),n.backgroundPosition&&(i.style.backgroundPosition=n.backgroundPosition),n.backgroundOpacity&&(i.style.opacity=n.backgroundOpacity);var a,s=n.backgroundColor;if(!s){var r=window.getComputedStyle(t);r&&r.backgroundColor&&(s=r.backgroundColor)}if(s){var o=N(s);o&&0!==o.a&&("string"==typeof(a=s)&&(a=N(a)),(a?(299*a.r+587*a.g+114*a.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}}},{key:"update",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.Reveal.getCurrentSlide(),n=this.Reveal.getIndices(),a=null,s=this.Reveal.getConfig().rtl?"future":"past",r=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((function(e,i){e.classList.remove("past","present","future"),i<n.h?e.classList.add(s):i>n.h?e.classList.add(r):(e.classList.add("present"),a=e),(t||i===n.h)&&h(e,".slide-background").forEach((function(e,t){e.classList.remove("past","present","future"),t<n.v?e.classList.add("past"):t>n.v?e.classList.add("future"):(e.classList.add("present"),i===n.h&&(a=e))}))})),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),a){this.Reveal.slideContent.startEmbeddedContent(a);var o=a.querySelector(".slide-background-content");if(o){var l=o.style.backgroundImage||"";/\.gif/i.test(l)&&(o.style.backgroundImage="",window.getComputedStyle(o).opacity,o.style.backgroundImage=l)}var d=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,u=a.getAttribute("data-background-hash");u&&u===d&&a!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=a}i&&["has-light-background","has-dark-background"].forEach((function(t){i.classList.contains(t)?e.Reveal.getRevealElement().classList.add(t):e.Reveal.getRevealElement().classList.remove(t)}),this),setTimeout((function(){e.element.classList.remove("no-transition")}),1)}},{key:"updateParallax",value:function(){var e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){var t,i,n=this.Reveal.getHorizontalSlides(),a=this.Reveal.getVerticalSlides(),s=this.element.style.backgroundSize.split(" ");1===s.length?t=i=parseInt(s[0],10):(t=parseInt(s[0],10),i=parseInt(s[1],10));var r,o=this.element.offsetWidth,l=n.length;r=("number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:l>1?(t-o)/(l-1):0)*e.h*-1;var d,u,c=this.element.offsetHeight,h=a.length;d="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-c)/(h-1),u=h>0?d*e.v:0,this.element.style.backgroundPosition=r+"px "+-u+"px"}}}]),e}(),D=function(){function e(i){t(this,e),this.Reveal=i,this.autoAnimateCounter=0}return n(e,[{key:"run",value:function(e,t){var i=this;if(this.reset(),e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||y();var n=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";var a=this.Reveal.getSlides();n.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";var s=this.getAutoAnimatableElements(e,t).map((function(e){return i.autoAnimateElements(e.from,e.to,e.options||{},n,i.autoAnimateCounter++)}));if("false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){var r=.8*n.duration,o=.2*n.duration;this.getUnmatchedAutoAnimateElements(t).forEach((function(e){var t=i.getAutoAnimateOptions(e,n),a="unmatched";t.duration===n.duration&&t.delay===n.delay||(a="unmatched-"+i.autoAnimateCounter++,s.push('[data-auto-animate="running"] [data-auto-animate-target="'.concat(a,'"] { transition: opacity ').concat(t.duration,"s ease ").concat(t.delay,"s; }"))),e.dataset.autoAnimateTarget=a}),this),s.push('[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity '.concat(r,"s ease ").concat(o,"s; }"))}this.autoAnimateStyleSheet.innerHTML=s.join(""),requestAnimationFrame((function(){i.autoAnimateStyleSheet&&(getComputedStyle(i.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")})),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}},{key:"reset",value:function(){h(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach((function(e){e.dataset.autoAnimate=""})),h(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach((function(e){delete e.dataset.autoAnimateTarget})),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}},{key:"autoAnimateElements",value:function(e,t,i,n,a){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=a;var s=this.getAutoAnimateOptions(t,n);void 0!==i.delay&&(s.delay=i.delay),void 0!==i.duration&&(s.duration=i.duration),void 0!==i.easing&&(s.easing=i.easing);var r=this.getAutoAnimatableProperties("from",e,i),o=this.getAutoAnimatableProperties("to",t,i);t.classList.contains("fragment")&&(delete o.styles.opacity,e.classList.contains("fragment")&&(e.className.match(u)||[""])[0]===(t.className.match(u)||[""])[0]&&"forward"===n.slideDirection&&t.classList.add("visible","disabled"));if(!1!==i.translate||!1!==i.scale){var l=this.Reveal.getScale(),d={x:(r.x-o.x)/l,y:(r.y-o.y)/l,scaleX:r.width/o.width,scaleY:r.height/o.height};d.x=Math.round(1e3*d.x)/1e3,d.y=Math.round(1e3*d.y)/1e3,d.scaleX=Math.round(1e3*d.scaleX)/1e3,d.scaleX=Math.round(1e3*d.scaleX)/1e3;var c=!1!==i.translate&&(0!==d.x||0!==d.y),h=!1!==i.scale&&(0!==d.scaleX||0!==d.scaleY);if(c||h){var v=[];c&&v.push("translate(".concat(d.x,"px, ").concat(d.y,"px)")),h&&v.push("scale(".concat(d.scaleX,", ").concat(d.scaleY,")")),r.styles.transform=v.join(" "),r.styles["transform-origin"]="top left",o.styles.transform="none"}}for(var f in o.styles){var g=o.styles[f],p=r.styles[f];g===p?delete o.styles[f]:(!0===g.explicitValue&&(o.styles[f]=g.value),!0===p.explicitValue&&(r.styles[f]=p.value))}var m="",y=Object.keys(o.styles);y.length>0&&(r.styles.transition="none",o.styles.transition="all ".concat(s.duration,"s ").concat(s.easing," ").concat(s.delay,"s"),o.styles["transition-property"]=y.join(", "),o.styles["will-change"]=y.join(", "),m='[data-auto-animate-target="'+a+'"] {'+Object.keys(r.styles).map((function(e){return e+": "+r.styles[e]+" !important;"})).join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+a+'"] {'+Object.keys(o.styles).map((function(e){return e+": "+o.styles[e]+" !important;"})).join("")+"}");return m}},{key:"getAutoAnimateOptions",value:function(e,t){var i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=c(i,t),e.closest&&e.parentNode){var n=e.parentNode.closest("[data-auto-animate-target]");n&&(i=this.getAutoAnimateOptions(n,i))}return e.dataset.autoAnimateEasing&&(i.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(i.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(i.delay=parseFloat(e.dataset.autoAnimateDelay)),i}},{key:"getAutoAnimatableProperties",value:function(e,t,i){var n=this.Reveal.getConfig(),a={styles:[]};if(!1!==i.translate||!1!==i.scale){var s;if("function"==typeof i.measure)s=i.measure(t);else if(n.center)s=t.getBoundingClientRect();else{var r=this.Reveal.getScale();s={x:t.offsetLeft*r,y:t.offsetTop*r,width:t.offsetWidth*r,height:t.offsetHeight*r}}a.x=s.x,a.y=s.y,a.width=s.width,a.height=s.height}var o=getComputedStyle(t);return(i.styles||n.autoAnimateStyles).forEach((function(t){var i;"string"==typeof t&&(t={property:t}),""!==(i=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:o[t.property])&&(a.styles[t.property]=i)})),a}},{key:"getAutoAnimatableElements",value:function(e,t){var i=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),n=[];return i.filter((function(e,t){if(-1===n.indexOf(e.to))return n.push(e.to),!0}))}},{key:"getAutoAnimatePairs",value:function(e,t){var i=this,n=[],a="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(n,e,t,"[data-id]",(function(e){return e.nodeName+":::"+e.getAttribute("data-id")})),this.findAutoAnimateMatches(n,e,t,a,(function(e){return e.nodeName+":::"+e.innerText})),this.findAutoAnimateMatches(n,e,t,"img, video, iframe",(function(e){return e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))})),this.findAutoAnimateMatches(n,e,t,"pre",(function(e){return e.nodeName+":::"+e.innerText})),n.forEach((function(e){e.from.matches(a)?e.options={scale:!1}:e.from.matches("pre")&&(e.options={scale:!1,styles:["width","height"]},i.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-code",(function(e){return e.textContent}),{scale:!1,styles:[],measure:i.getLocalBoundingBox.bind(i)}),i.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",(function(e){return e.getAttribute("data-line-number")}),{scale:!1,styles:["width"],measure:i.getLocalBoundingBox.bind(i)}))}),this),n}},{key:"getLocalBoundingBox",value:function(e){var t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}},{key:"findAutoAnimateMatches",value:function(e,t,i,n,a,s){var r={},o={};[].slice.call(t.querySelectorAll(n)).forEach((function(e,t){var i=a(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))})),[].slice.call(i.querySelectorAll(n)).forEach((function(t,i){var n,l=a(t);if(o[l]=o[l]||[],o[l].push(t),r[l]){var d=o[l].length-1,u=r[l].length-1;r[l][d]?(n=r[l][d],r[l][d]=null):r[l][u]&&(n=r[l][u],r[l][u]=null)}n&&e.push({from:n,to:t,options:s})}))}},{key:"getUnmatchedAutoAnimateElements",value:function(e){var t=this;return[].slice.call(e.children).reduce((function(e,i){var n=i.querySelector("[data-auto-animate-target]");return i.hasAttribute("data-auto-animate-target")||n||e.push(i),i.querySelector("[data-auto-animate-target]")&&(e=e.concat(t.getUnmatchedAutoAnimateElements(i))),e}),[])}}]),e}(),I=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"configure",value:function(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}},{key:"disable",value:function(){h(this.Reveal.getSlidesElement(),".fragment").forEach((function(e){e.classList.add("visible"),e.classList.remove("current-fragment")}))}},{key:"enable",value:function(){h(this.Reveal.getSlidesElement(),".fragment").forEach((function(e){e.classList.remove("visible"),e.classList.remove("current-fragment")}))}},{key:"availableRoutes",value:function(){var e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){var t=e.querySelectorAll(".fragment:not(.disabled)"),i=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-i.length>0,next:!!i.length}}return{prev:!1,next:!1}}},{key:"sort",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e=Array.from(e);var i=[],n=[],a=[];e.forEach((function(e){if(e.hasAttribute("data-fragment-index")){var t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else n.push([e])})),i=i.concat(n);var s=0;return i.forEach((function(e){e.forEach((function(e){a.push(e),e.setAttribute("data-fragment-index",s)})),s++})),!0===t?i:a}},{key:"sortAll",value:function(){var e=this;this.Reveal.getHorizontalSlides().forEach((function(t){var i=h(t,"section");i.forEach((function(t,i){e.sort(t.querySelectorAll(".fragment"))}),e),0===i.length&&e.sort(t.querySelectorAll(".fragment"))}))}},{key:"update",value:function(e,t){var i=this,n={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){var s=0;if("number"!=typeof e){var r=this.sort(a.querySelectorAll(".fragment.visible")).pop();r&&(e=parseInt(r.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach((function(t,a){if(t.hasAttribute("data-fragment-index")&&(a=parseInt(t.getAttribute("data-fragment-index"),10)),s=Math.max(s,a),a<=e){var r=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),a===e&&(i.Reveal.announceStatus(i.Reveal.getStatusText(t)),t.classList.add("current-fragment"),i.Reveal.slideContent.startEmbeddedContent(t)),r||(n.shown.push(t),i.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{var o=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),o&&(n.hidden.push(t),i.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}})),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,s),-1),a.setAttribute("data-fragment",e)}return n}},{key:"sync",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();return this.sort(e.querySelectorAll(".fragment"))}},{key:"goto",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){var n=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(n.length){if("number"!=typeof e){var a=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=a?parseInt(a.getAttribute("data-fragment-index")||0,10):-1}e+=t;var s=this.update(e,n);return s.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:s.hidden[0],fragments:s.hidden}}),s.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:s.shown[0],fragments:s.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!s.shown.length&&!s.hidden.length)}}return!1}},{key:"next",value:function(){return this.goto(null,1)}},{key:"prev",value:function(){return this.goto(null,-1)}}]),e}(),T=function(){function e(i){t(this,e),this.Reveal=i,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}return n(e,[{key:"activate",value:function(){var e=this;if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){t.classList.contains("stack")||t.addEventListener("click",e.onSlideClicked,!0)}));var t=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=t.width+70,this.overviewSlideHeight=t.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();var i=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:i.h,indexv:i.v,currentSlide:this.Reveal.getCurrentSlide()}})}}},{key:"layout",value:function(){var e=this;this.Reveal.getHorizontalSlides().forEach((function(t,i){t.setAttribute("data-index-h",i),g(t,"translate3d("+i*e.overviewSlideWidth+"px, 0, 0)"),t.classList.contains("stack")&&h(t,"section").forEach((function(t,n){t.setAttribute("data-index-h",i),t.setAttribute("data-index-v",n),g(t,"translate3d(0, "+n*e.overviewSlideHeight+"px, 0)")}))})),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((function(t,i){g(t,"translate3d("+i*e.overviewSlideWidth+"px, 0, 0)"),h(t,".slide-background").forEach((function(t,i){g(t,"translate3d(0, "+i*e.overviewSlideHeight+"px, 0)")}))}))}},{key:"update",value:function(){var e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,i=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-i.h*this.overviewSlideWidth+"px)","translateY("+-i.v*this.overviewSlideHeight+"px)"].join(" ")})}},{key:"deactivate",value:function(){var e=this;if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout((function(){e.Reveal.getRevealElement().classList.remove("overview-deactivating")}),1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){g(t,""),t.removeEventListener("click",e.onSlideClicked,!0)})),h(this.Reveal.getBackgroundsElement(),".slide-background").forEach((function(e){g(e,"")})),this.Reveal.transformSlides({overview:""});var t=this.Reveal.getIndices();this.Reveal.slide(t.h,t.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}},{key:"toggle",value:function(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}},{key:"isActive",value:function(){return this.active}},{key:"onSlideClicked",value:function(e){if(this.isActive()){e.preventDefault();for(var t=e.target;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){var i=parseInt(t.getAttribute("data-index-h"),10),n=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(i,n)}}}}]),e}(),H=function(){function i(e){t(this,i),this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}return n(i,[{key:"configure",value:function(e,t){"linear"===e.navigationMode?(this.shortcuts["&#8594; , &#8595; , SPACE , N , L , J"]="Next slide",this.shortcuts["&#8592; , &#8593; , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["&#8592; , H"]="Navigate left",this.shortcuts["&#8594; , L"]="Navigate right",this.shortcuts["&#8593; , K"]="Navigate up",this.shortcuts["&#8595; , J"]="Navigate down"),this.shortcuts["Home , Shift &#8592;"]="First slide",this.shortcuts["End , Shift &#8594;"]="Last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts["ESC, O"]="Slide overview"}},{key:"bind",value:function(){document.addEventListener("keydown",this.onDocumentKeyDown,!1),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}},{key:"unbind",value:function(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}},{key:"addKeyBinding",value:function(t,i){"object"===e(t)&&t.keyCode?this.bindings[t.keyCode]={callback:i,key:t.key,description:t.description}:this.bindings[t]={callback:i,key:null,description:null}}},{key:"removeKeyBinding",value:function(e){delete this.bindings[e]}},{key:"triggerKey",value:function(e){this.onDocumentKeyDown({keyCode:e})}},{key:"registerKeyboardShortcut",value:function(e,t){this.shortcuts[e]=t}},{key:"getShortcuts",value:function(){return this.shortcuts}},{key:"getBindings",value:function(){return this.bindings}},{key:"onDocumentKeyPress",value:function(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}},{key:"onDocumentKeyDown",value:function(t){var i=this.Reveal.getConfig();if("function"==typeof i.keyboardCondition&&!1===i.keyboardCondition(t))return!0;if("focused"===i.keyboardCondition&&!this.Reveal.isFocused())return!0;var n=t.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(t);var s=document.activeElement&&!0===document.activeElement.isContentEditable,r=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),o=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),l=t.shiftKey&&32===t.keyCode,d=t.shiftKey&&37===n,u=t.shiftKey&&39===n,c=!l&&!d&&!u&&(t.shiftKey||t.altKey||t.ctrlKey||t.metaKey);if(!(s||r||o||c)){var h,v=[66,86,190,191];if("object"===e(i.keyboard))for(h in i.keyboard)"togglePause"===i.keyboard[h]&&v.push(parseInt(h,10));if(this.Reveal.isPaused()&&-1===v.indexOf(n))return!1;var f,g,p="linear"===i.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),m=!1;if("object"===e(i.keyboard))for(h in i.keyboard)if(parseInt(h,10)===n){var y=i.keyboard[h];"function"==typeof y?y.apply(null,[t]):"string"==typeof y&&"function"==typeof this.Reveal[y]&&this.Reveal[y].call(),m=!0}if(!1===m)for(h in this.bindings)if(parseInt(h,10)===n){var b=this.bindings[h].callback;"function"==typeof b?b.apply(null,[t]):"string"==typeof b&&"function"==typeof this.Reveal[b]&&this.Reveal[b].call(),m=!0}!1===m&&(m=!0,80===n||33===n?this.Reveal.prev():78===n||34===n?this.Reveal.next():72===n||37===n?d?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.left():76===n||39===n?u?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.right():75===n||38===n?!this.Reveal.overview.isActive()&&p?this.Reveal.prev():this.Reveal.up():74===n||40===n?!this.Reveal.overview.isActive()&&p?this.Reveal.next():this.Reveal.down():36===n?this.Reveal.slide(0):35===n?this.Reveal.slide(Number.MAX_VALUE):32===n?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),t.shiftKey?this.Reveal.prev():this.Reveal.next()):58===n||59===n||66===n||86===n||190===n||191===n?this.Reveal.togglePause():70===n?(f=i.embedded?this.Reveal.getViewportElement():document.documentElement,(g=(f=f||document.documentElement).requestFullscreen||f.webkitRequestFullscreen||f.webkitRequestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen)&&g.apply(f)):65===n?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):m=!1),m?t.preventDefault&&t.preventDefault():27!==n&&79!==n||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),t.preventDefault&&t.preventDefault()),this.Reveal.cueAutoSlide()}}}]),i}(),O=function(){function e(i){t(this,e),this.Reveal=i,this.writeURLTimeout=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}return n(e,[{key:"bind",value:function(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}},{key:"unbind",value:function(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}},{key:"readURL",value:function(){var e=this.Reveal.getConfig(),t=this.Reveal.getIndices(),i=this.Reveal.getCurrentSlide(),n=window.location.hash,a=n.slice(2).split("/"),s=n.replace(/#\/?/gi,"");if(!/^[0-9]*$/.test(a[0])&&s.length){var r,o;/\/[-\d]+$/g.test(s)&&(o=parseInt(s.split("/").pop(),10),o=isNaN(o)?void 0:o,s=s.split("/").shift());try{r=document.getElementById(decodeURIComponent(s))}catch(e){}var l=!!i&&i.getAttribute("id")===s;if(r){if(!l||void 0!==o){var d=this.Reveal.getIndices(r);this.Reveal.slide(d.h,d.v,o)}}else this.Reveal.slide(t.h||0,t.v||0)}else{var u,c=e.hashOneBasedIndex?1:0,h=parseInt(a[0],10)-c||0,v=parseInt(a[1],10)-c||0;e.fragmentInURL&&(u=parseInt(a[2],10),isNaN(u)&&(u=void 0)),h===t.h&&v===t.v&&void 0===u||this.Reveal.slide(h,v,u)}}},{key:"writeURL",value:function(e){var t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!1===x?window.location.hash=this.getHash():t.hash&&window.history.replaceState(null,null,"#"+this.getHash()))}},{key:"getHash",value:function(e){var t="/",i=e||this.Reveal.getCurrentSlide(),n=i?i.getAttribute("id"):null;n&&(n=encodeURIComponent(n));var a=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(a.f=void 0),"string"==typeof n&&n.length)t="/"+n,a.f>=0&&(t+="/"+a.f);else{var s=this.Reveal.getConfig().hashOneBasedIndex?1:0;(a.h>0||a.v>0||a.f>=0)&&(t+=a.h+s),(a.v>0||a.f>=0)&&(t+="/"+(a.v+s)),a.f>=0&&(t+="/"+a.f)}return t}},{key:"onWindowHashChange",value:function(e){this.readURL()}}]),e}(),B=function(){function e(i){t(this,e),this.Reveal=i,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this)}return n(e,[{key:"render",value:function(){var e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML='<button class="navigate-left" aria-label="'.concat(e?"next slide":"previous slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-right" aria-label="').concat(e?"previous slide":"next slide",'"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>\n\t\t\t<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>'),this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=h(t,".navigate-left"),this.controlsRight=h(t,".navigate-right"),this.controlsUp=h(t,".navigate-up"),this.controlsDown=h(t,".navigate-down"),this.controlsPrev=h(t,".navigate-prev"),this.controlsNext=h(t,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}},{key:"configure",value:function(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}},{key:"bind",value:function(){var e=this,t=["touchstart","click"];S&&(t=["touchstart"]),t.forEach((function(t){e.controlsLeft.forEach((function(i){return i.addEventListener(t,e.onNavigateLeftClicked,!1)})),e.controlsRight.forEach((function(i){return i.addEventListener(t,e.onNavigateRightClicked,!1)})),e.controlsUp.forEach((function(i){return i.addEventListener(t,e.onNavigateUpClicked,!1)})),e.controlsDown.forEach((function(i){return i.addEventListener(t,e.onNavigateDownClicked,!1)})),e.controlsPrev.forEach((function(i){return i.addEventListener(t,e.onNavigatePrevClicked,!1)})),e.controlsNext.forEach((function(i){return i.addEventListener(t,e.onNavigateNextClicked,!1)}))}))}},{key:"unbind",value:function(){var e=this;["touchstart","click"].forEach((function(t){e.controlsLeft.forEach((function(i){return i.removeEventListener(t,e.onNavigateLeftClicked,!1)})),e.controlsRight.forEach((function(i){return i.removeEventListener(t,e.onNavigateRightClicked,!1)})),e.controlsUp.forEach((function(i){return i.removeEventListener(t,e.onNavigateUpClicked,!1)})),e.controlsDown.forEach((function(i){return i.removeEventListener(t,e.onNavigateDownClicked,!1)})),e.controlsPrev.forEach((function(i){return i.removeEventListener(t,e.onNavigatePrevClicked,!1)})),e.controlsNext.forEach((function(i){return i.removeEventListener(t,e.onNavigateNextClicked,!1)}))}))}},{key:"update",value:function(){var e=this.Reveal.availableRoutes();[].concat(o(this.controlsLeft),o(this.controlsRight),o(this.controlsUp),o(this.controlsDown),o(this.controlsPrev),o(this.controlsNext)).forEach((function(e){e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")})),e.left&&this.controlsLeft.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.right&&this.controlsRight.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.up&&this.controlsUp.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),e.down&&this.controlsDown.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.left||e.up)&&this.controlsPrev.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.right||e.down)&&this.controlsNext.forEach((function(e){e.classList.add("enabled"),e.removeAttribute("disabled")}));var t=this.Reveal.getCurrentSlide();if(t){var i=this.Reveal.fragments.availableRoutes();i.prev&&this.controlsPrev.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsNext.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),this.Reveal.isVerticalSlide(t)?(i.prev&&this.controlsUp.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsDown.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))):(i.prev&&this.controlsLeft.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),i.next&&this.controlsRight.forEach((function(e){e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})))}if(this.Reveal.getConfig().controlsTutorial){var n=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===n.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===n.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}},{key:"onNavigateLeftClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}},{key:"onNavigateRightClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}},{key:"onNavigateUpClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}},{key:"onNavigateDownClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}},{key:"onNavigatePrevClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}},{key:"onNavigateNextClicked",value:function(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}]),e}(),U=function(){function e(i){t(this,e),this.Reveal=i,this.onProgressClicked=this.onProgressClicked.bind(this)}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}},{key:"configure",value:function(e,t){this.element.style.display=e.progress?"block":"none"}},{key:"bind",value:function(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}},{key:"unbind",value:function(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}},{key:"update",value:function(){this.Reveal.getConfig().progress&&this.bar&&(this.bar.style.width=this.Reveal.getProgress()*this.getMaxWidth()+"px")}},{key:"getMaxWidth",value:function(){return this.Reveal.getRevealElement().offsetWidth}},{key:"onProgressClicked",value:function(e){this.Reveal.onUserInput(e),e.preventDefault();var t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}]),e}(),z=function(){function e(i){t(this,e),this.Reveal=i,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}return n(e,[{key:"configure",value:function(e,t){e.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}},{key:"showCursor",value:function(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}},{key:"hideCursor",value:function(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}},{key:"onDocumentCursorActive",value:function(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}},{key:"onDocumentMouseScroll",value:function(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();var t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}]),e}(),q=function(e,t){var i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=e,"function"==typeof t&&(i.onload=i.onreadystatechange=function(e){("load"===e.type||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,t())},i.onerror=function(e){i.onload=i.onreadystatechange=i.onerror=null,t(new Error("Failed loading script: "+i.src+"\n"+e))});var n=document.querySelector("head");n.insertBefore(i,n.lastChild)},W=function(){function e(i){t(this,e),this.Reveal=i,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}return n(e,[{key:"load",value:function(e,t){var i=this;return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise((function(e){var n=[],a=0;if(t.forEach((function(e){e.condition&&!e.condition()||(e.async?i.asyncDependencies.push(e):n.push(e))})),n.length){a=n.length;var s=function(t){t&&"function"==typeof t.callback&&t.callback(),0==--a&&i.initPlugins().then(e)};n.forEach((function(e){"string"==typeof e.id?(i.registerPlugin(e),s(e)):"string"==typeof e.src?q(e.src,(function(){return s(e)})):(console.warn("Unrecognized plugin format",e),s())}))}else i.initPlugins().then(e)}))}},{key:"initPlugins",value:function(){var e=this;return new Promise((function(t){var i=Object.values(e.registeredPlugins),n=i.length;if(0===n)e.loadAsync().then(t);else{var a,s=function(){0==--n?e.loadAsync().then(t):a()},r=0;(a=function(){var t=i[r++];if("function"==typeof t.init){var n=t.init(e.Reveal);n&&"function"==typeof n.then?n.then(s):s()}else s()})()}}))}},{key:"loadAsync",value:function(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach((function(e){q(e.src,e.callback)})),Promise.resolve()}},{key:"registerPlugin",value:function(e){2===arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());var t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}},{key:"hasPlugin",value:function(e){return!!this.registeredPlugins[e]}},{key:"getPlugin",value:function(e){return this.registeredPlugins[e]}},{key:"getRegisteredPlugins",value:function(){return this.registeredPlugins}}]),e}(),j=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"setupPDF",value:function(){var e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),i=Math.floor(t.width*(1+e.margin)),n=Math.floor(t.height*(1+e.margin)),a=t.width,s=t.height;y("@page{size:"+i+"px "+n+"px; margin: 0px;}"),y(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+a+"px; max-height:"+s+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=i+"px",document.body.style.height=n+"px",this.Reveal.layoutSlideContents(a,s);var r=e.slideNumber&&/all|print/i.test(e.showSlideNumber);h(this.Reveal.getRevealElement(),".slides section").forEach((function(e){e.setAttribute("data-slide-number",this.Reveal.slideNumber.getSlideNumber(e))}),this),h(this.Reveal.getRevealElement(),".slides section").forEach((function(t){if(!1===t.classList.contains("stack")){var o=(i-a)/2,l=(n-s)/2,d=t.scrollHeight,u=Math.max(Math.ceil(d/n),1);(1===(u=Math.min(u,e.pdfMaxPagesPerSlide))&&e.center||t.classList.contains("center"))&&(l=Math.max((n-d)/2,0));var c=document.createElement("div");if(c.className="pdf-page",c.style.height=(n+e.pdfPageHeightOffset)*u+"px",t.parentNode.insertBefore(c,t),c.appendChild(t),t.style.left=o+"px",t.style.top=l+"px",t.style.width=a+"px",t.slideBackgroundElement&&c.insertBefore(t.slideBackgroundElement,t),e.showNotes){var v=getSlideNotes(t);if(v){var f="string"==typeof e.showNotes?e.showNotes:"inline",g=document.createElement("div");g.classList.add("speaker-notes"),g.classList.add("speaker-notes-pdf"),g.setAttribute("data-layout",f),g.innerHTML=v,"separate-page"===f?c.parentNode.insertBefore(g,c.nextSibling):(g.style.left="8px",g.style.bottom="8px",g.style.width=i-16+"px",c.appendChild(g))}}if(r){var p=document.createElement("div");p.classList.add("slide-number"),p.classList.add("slide-number-pdf"),p.innerHTML=t.getAttribute("data-slide-number"),c.appendChild(p)}if(e.pdfSeparateFragments){var m,y,b=this.Reveal.fragments.sort(c.querySelectorAll(".fragment"),!0);b.forEach((function(e){m&&m.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}),this);var t=c.cloneNode(!0);c.parentNode.insertBefore(t,(y||c).nextSibling),m=e,y=t}),this),b.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else h(c,".fragment:not(.fade-out)").forEach((function(e){e.classList.add("visible")}))}}),this),this.Reveal.dispatchEvent({type:"pdf-ready"})}},{key:"isPrintingPDF",value:function(){return/print-pdf/gi.test(window.location.search)}}]),e}(),F=function(){function e(i){t(this,e),this.Reveal=i,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}return n(e,[{key:"bind",value:function(){var e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"unbind",value:function(){var e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}},{key:"isSwipePrevented",value:function(e){for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}},{key:"onTouchStart",value:function(e){if(this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}},{key:"onTouchMove",value:function(e){if(this.isSwipePrevented(e.target))return!0;var t=this.Reveal.getConfig();if(this.touchCaptured)S&&e.preventDefault();else{this.Reveal.onUserInput(e);var i=e.touches[0].clientX,n=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){var a=this.Reveal.availableRoutes({includeFragments:!0}),s=i-this.touchStartX,r=n-this.touchStartY;s>40&&Math.abs(s)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):s<-40&&Math.abs(s)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):r>40&&a.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):r<-40&&a.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}},{key:"onTouchEnd",value:function(e){this.touchCaptured=!1}},{key:"onPointerDown",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}},{key:"onPointerMove",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}},{key:"onPointerUp",value:function(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}]),e}(),V=function(){function e(i){t(this,e),this.Reveal=i,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}return n(e,[{key:"configure",value:function(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}},{key:"bind",value:function(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}},{key:"unbind",value:function(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}},{key:"focus",value:function(){"focus"!==this.state&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="focus"}},{key:"blur",value:function(){"blur"!==this.state&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="blur"}},{key:"isFocused",value:function(){return"focus"===this.state}},{key:"onRevealPointerDown",value:function(e){this.focus()}},{key:"onDocumentPointerDown",value:function(e){var t=e.target.closest(".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}]),e}(),K=function(){function e(i){t(this,e),this.Reveal=i}return n(e,[{key:"render",value:function(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}},{key:"configure",value:function(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}},{key:"update",value:function(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}},{key:"updateVisibility",value:function(){this.Reveal.getConfig().showNotes&&this.hasNotes()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}},{key:"hasNotes",value:function(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}},{key:"isSpeakerNotesWindow",value:function(){return!!window.location.search.match(/receiver/gi)}},{key:"getSlideNotes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.Reveal.getCurrentSlide();if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");var t=e.querySelector("aside.notes");return t?t.innerHTML:null}}]),e}(),X=function(){function e(i,n){t(this,e),this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=i,this.progressCheck=n,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}return n(e,[{key:"setPlaying",value:function(e){var t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}},{key:"animate",value:function(){var e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}},{key:"render",value:function(){var e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,n=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);var a=-Math.PI/2+e*(2*Math.PI),s=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(i,n,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(i,n,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(i,n,t,s,a,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(i-14,n-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}},{key:"on",value:function(e,t){this.canvas.addEventListener(e,t,!1)}},{key:"off",value:function(e,t){this.canvas.removeEventListener(e,t,!1)}},{key:"destroy",value:function(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}]),e}(),Y={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[],plugins:[]};function $(t,i){arguments.length<2&&(i=arguments[0],t=document.querySelector(".reveal"));var n,a,s,o,l,u,p={},y="4.0.0-rc.1",w=!1,R={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},E=[],S=1,x={layout:"",overview:""},N={},q="idle",$=0,_=0,J=-1,Q=!1,Z=new C(p),G=new P(p),ee=new D(p),te=new M(p),ie=new I(p),ne=new T(p),ae=new H(p),se=new O(p),re=new B(p),oe=new U(p),le=new z(p),de=new W(p),ue=new j(p),ce=new V(p),he=new F(p),ve=new K(p);function fe(e){return N.wrapper=t,N.slides=t.querySelector(".slides"),n=r({},Y,{},i,{},e,{},b()),ge(),window.addEventListener("load",Be,!1),de.load(n.plugins,n.dependencies).then(pe),new Promise((function(e){return p.on("ready",e)}))}function ge(){!0===n.embedded?N.viewport=t.closest(".reveal-viewport")||t:(N.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),N.viewport.classList.add("reveal-viewport")}function pe(){w=!0,me(),Re(),we(),tt(),Ae(),se.readURL(),te.update(!0),setTimeout((function(){N.slides.classList.remove("no-transition"),N.wrapper.classList.add("ready"),Pe({type:"ready",data:{indexh:a,indexv:s,currentSlide:l}})}),1),ue.isPrintingPDF()&&(Se(),"complete"===document.readyState?ue.setupPDF():window.addEventListener("load",(function(){ue.setupPDF()})))}function me(){N.slides.classList.add("no-transition"),A?N.wrapper.classList.add("no-hover"):N.wrapper.classList.remove("no-hover"),te.render(),G.render(),re.render(),oe.render(),ve.render(),N.pauseOverlay=m(N.wrapper,"div","pause-overlay",n.controls?'<button class="resume-button">Resume presentation</button>':null),N.statusElement=ye(),N.wrapper.setAttribute("role","application")}function ye(){var e=N.wrapper.querySelector(".aria-status");return e||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),N.wrapper.appendChild(e)),e}function be(e){N.statusElement.textContent=e}function ke(e){var t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){var i=e.getAttribute("aria-hidden"),n="none"===window.getComputedStyle(e).display;"true"===i||n||Array.from(e.childNodes).forEach((function(e){t+=ke(e)}))}return""===(t=t.trim())?"":t+" "}function we(){setInterval((function(){0===N.wrapper.scrollTop&&0===N.wrapper.scrollLeft||(N.wrapper.scrollTop=0,N.wrapper.scrollLeft=0)}),1e3)}function Re(){n.postMessage&&window.addEventListener("message",(function(e){var t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof p[t.method])if(!1===d.test(t.method)){var i=p[t.method].apply(p,t.args);Ne("callback",{method:t.method,result:i})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')}),!1)}function Ae(t){var i=r({},n);if("object"===e(t)&&c(n,t),!1!==p.isReady()){var a=N.wrapper.querySelectorAll(".slides section").length;N.wrapper.classList.remove(i.transition),N.wrapper.classList.add(n.transition),N.wrapper.setAttribute("data-transition-speed",n.transitionSpeed),N.wrapper.setAttribute("data-background-transition",n.backgroundTransition),n.shuffle&&it(),v(N.wrapper,"embedded",n.embedded),v(N.wrapper,"rtl",n.rtl),v(N.wrapper,"center",n.center),!1===n.pause&&Ye(),n.previewLinks?(Me(),De("[data-preview-link=false]")):(De(),Me("[data-preview-link]:not([data-preview-link=false])")),ee.reset(),u&&(u.destroy(),u=null),a>1&&n.autoSlide&&n.autoSlideStoppable&&((u=new X(N.wrapper,(function(){return Math.min(Math.max((Date.now()-J)/$,0),1)}))).on("click",Ot),Q=!1),"default"!==n.navigationMode?N.wrapper.setAttribute("data-navigation-mode",n.navigationMode):N.wrapper.removeAttribute("data-navigation-mode"),ve.configure(n,i),ce.configure(n,i),le.configure(n,i),re.configure(n,i),oe.configure(n,i),ae.configure(n,i),ie.configure(n,i),G.configure(n,i),Ge()}}function Ee(){window.addEventListener("resize",It,!1),n.touch&&he.bind(),n.keyboard&&ae.bind(),n.progress&&oe.bind(),n.respondToHashChanges&&se.bind(),re.bind(),ce.bind(),N.slides.addEventListener("transitionend",Dt,!1),N.pauseOverlay.addEventListener("click",Ye,!1),n.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Tt,!1)}function Se(){he.unbind(),ce.unbind(),ae.unbind(),re.unbind(),oe.unbind(),se.unbind(),window.removeEventListener("resize",It,!1),N.slides.removeEventListener("transitionend",Dt,!1),N.pauseOverlay.removeEventListener("click",Ye,!1)}function Le(e,i,n){t.addEventListener(e,i,n)}function xe(e,i,n){t.removeEventListener(e,i,n)}function Ce(e){"string"==typeof e.layout&&(x.layout=e.layout),"string"==typeof e.overview&&(x.overview=e.overview),x.layout?g(N.slides,x.layout+" "+x.overview):g(N.slides,x.overview)}function Pe(e){var t=e.target,i=void 0===t?N.wrapper:t,n=e.type,a=e.data,s=e.bubbles,r=void 0===s||s,o=document.createEvent("HTMLEvents",1,2);o.initEvent(n,r,!0),c(o,a),i.dispatchEvent(o),i===N.wrapper&&Ne(n)}function Ne(e,t){if(n.postMessageEvents&&window.parent!==window.self){var i={namespace:"reveal",eventName:e,state:bt()};c(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function Me(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(N.wrapper.querySelectorAll(e)).forEach((function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",Ht,!1)}))}function De(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"a";Array.from(N.wrapper.querySelectorAll(e)).forEach((function(e){/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",Ht,!1)}))}function Ie(e){Oe(),N.overlay=document.createElement("div"),N.overlay.classList.add("overlay"),N.overlay.classList.add("overlay-preview"),N.wrapper.appendChild(N.overlay),N.overlay.innerHTML='<header>\n\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t<a class="external" href="'.concat(e,'" target="_blank"><span class="icon"></span></a>\n\t\t\t</header>\n\t\t\t<div class="spinner"></div>\n\t\t\t<div class="viewport">\n\t\t\t\t<iframe src="').concat(e,'"></iframe>\n\t\t\t\t<small class="viewport-inner">\n\t\t\t\t\t<span class="x-frame-error">Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).</span>\n\t\t\t\t</small>\n\t\t\t</div>'),N.overlay.querySelector("iframe").addEventListener("load",(function(e){N.overlay.classList.add("loaded")}),!1),N.overlay.querySelector(".close").addEventListener("click",(function(e){Oe(),e.preventDefault()}),!1),N.overlay.querySelector(".external").addEventListener("click",(function(e){Oe()}),!1)}function Te(e){"boolean"==typeof e?e?He():Oe():N.overlay?Oe():He()}function He(){if(n.help){Oe(),N.overlay=document.createElement("div"),N.overlay.classList.add("overlay"),N.overlay.classList.add("overlay-help"),N.wrapper.appendChild(N.overlay);var e='<p class="title">Keyboard Shortcuts</p><br/>',t=ae.getShortcuts(),i=ae.getBindings();for(var a in e+="<table><th>KEY</th><th>ACTION</th>",t)e+="<tr><td>".concat(a,"</td><td>").concat(t[a],"</td></tr>");for(var s in i)i[s].key&&i[s].description&&(e+="<tr><td>".concat(i[s].key,"</td><td>").concat(i[s].description,"</td></tr>"));e+="</table>",N.overlay.innerHTML='\n\t\t\t\t<header>\n\t\t\t\t\t<a class="close" href="#"><span class="icon"></span></a>\n\t\t\t\t</header>\n\t\t\t\t<div class="viewport">\n\t\t\t\t\t<div class="viewport-inner">'.concat(e,"</div>\n\t\t\t\t</div>\n\t\t\t"),N.overlay.querySelector(".close").addEventListener("click",(function(e){Oe(),e.preventDefault()}),!1)}}function Oe(){return!!N.overlay&&(N.overlay.parentNode.removeChild(N.overlay),N.overlay=null,!0)}function Be(){if(N.wrapper&&!ue.isPrintingPDF()){if(!n.disableLayout){A&&!n.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");var e=ze(),t=S;Ue(n.width,n.height),N.slides.style.width=e.width+"px",N.slides.style.height=e.height+"px",S=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),S=Math.max(S,n.minScale),1===(S=Math.min(S,n.maxScale))?(N.slides.style.zoom="",N.slides.style.left="",N.slides.style.top="",N.slides.style.bottom="",N.slides.style.right="",Ce({layout:""})):S>1&&L&&window.devicePixelRatio<2?(N.slides.style.zoom=S,N.slides.style.left="",N.slides.style.top="",N.slides.style.bottom="",N.slides.style.right="",Ce({layout:""})):(N.slides.style.zoom="",N.slides.style.left="50%",N.slides.style.top="50%",N.slides.style.bottom="auto",N.slides.style.right="auto",Ce({layout:"translate(-50%, -50%) scale("+S+")"}));for(var i=Array.from(N.wrapper.querySelectorAll(".slides section")),a=0,s=i.length;a<s;a++){var r=i[a];"none"!==r.style.display&&(n.center||r.classList.contains("center")?r.classList.contains("stack")?r.style.top=0:r.style.top=Math.max((e.height-r.scrollHeight)/2,0)+"px":r.style.top="")}t!==S&&Pe({type:"resize",data:{oldScale:t,scale:S,size:e}})}oe.update(),te.updateParallax(),ne.isActive()&&ne.update()}}function Ue(e,t){h(N.slides,"section > .stretch, section > .r-stretch").forEach((function(i){var n=k(i,t);if(/(img|video)/gi.test(i.nodeName)){var a=i.naturalWidth||i.videoWidth,s=i.naturalHeight||i.videoHeight,r=Math.min(e/a,n/s);i.style.width=a*r+"px",i.style.height=s*r+"px"}else i.style.width=e+"px",i.style.height=n+"px"}))}function ze(e,t){var i={width:n.width,height:n.height,presentationWidth:e||N.wrapper.offsetWidth,presentationHeight:t||N.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*n.margin,i.presentationHeight-=i.presentationHeight*n.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function qe(t,i){"object"===e(t)&&"function"==typeof t.setAttribute&&t.setAttribute("data-previous-indexv",i||0)}function We(t){if("object"===e(t)&&"function"==typeof t.setAttribute&&t.classList.contains("stack")){var i=t.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(t.getAttribute(i)||0,10)}return 0}function je(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Fe(){return!(!l||!je(l))&&!l.nextElementSibling}function Ve(){return 0===a&&0===s}function Ke(){return!!l&&(!l.nextElementSibling&&(!je(l)||!l.parentNode.nextElementSibling))}function Xe(){if(n.pause){var e=N.wrapper.classList.contains("paused");Rt(),N.wrapper.classList.add("paused"),!1===e&&Pe({type:"paused"})}}function Ye(){var e=N.wrapper.classList.contains("paused");N.wrapper.classList.remove("paused"),wt(),e&&Pe({type:"resumed"})}function $e(e){"boolean"==typeof e?e?Xe():Ye():_e()?Ye():Xe()}function _e(){return N.wrapper.classList.contains("paused")}function Je(e){"boolean"==typeof e?e?Et():At():Q?Et():At()}function Qe(){return!(!$||Q)}function Ze(e,t,i,r){o=l;var d=N.wrapper.querySelectorAll(".slides>section");if(0!==d.length){void 0!==t||ne.isActive()||(t=We(d[e])),o&&o.parentNode&&o.parentNode.classList.contains("stack")&&qe(o.parentNode,s);var u=E.concat();E.length=0;var c=a||0,h=s||0;a=nt(".slides>section",void 0===e?a:e),s=nt(".slides>section.present>section",void 0===t?s:t);var v=a!==c||s!==h;v||(o=null);var f=d[a],g=f.querySelectorAll("section");l=g[s]||f;var p=!1;v&&o&&l&&!ne.isActive()&&(o.hasAttribute("data-auto-animate")&&l.hasAttribute("data-auto-animate")&&(p=!0,N.slides.classList.add("disable-slide-transitions")),q="running"),at(),Be(),ne.isActive()&&ne.update(),void 0!==i&&ie.goto(i),o&&o!==l&&(o.classList.remove("present"),o.setAttribute("aria-hidden","true"),Ve()&&setTimeout((function(){ht().forEach((function(e){qe(e,0)}))}),0));e:for(var m=0,y=E.length;m<y;m++){for(var b=0;b<u.length;b++)if(u[b]===E[m]){u.splice(b,1);continue e}N.viewport.classList.add(E[m]),Pe({type:E[m]})}for(;u.length;)N.viewport.classList.remove(u.pop());v&&Pe({type:"slidechanged",data:{indexh:a,indexv:s,previousSlide:o,currentSlide:l,origin:r}}),!v&&o||(Z.stopEmbeddedContent(o),Z.startEmbeddedContent(l)),be(ke(l)),oe.update(),re.update(),ve.update(),te.update(),te.updateParallax(),G.update(),ie.update(),se.writeURL(),wt(),p&&(setTimeout((function(){N.slides.classList.remove("disable-slide-transitions")}),0),n.autoAnimate&&ee.run(o,l))}}function Ge(){Se(),Ee(),Be(),$=n.autoSlide,wt(),te.create(),se.writeURL(),ie.sortAll(),re.update(),oe.update(),at(),ve.update(),ve.updateVisibility(),te.update(!0),G.update(),Z.formatEmbeddedContent(),!1===n.autoPlayMedia?Z.stopEmbeddedContent(l,{unloadIframes:!1}):Z.startEmbeddedContent(l),ne.isActive()&&ne.layout()}function et(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;te.sync(e),ie.sync(e),Z.load(e),te.update(),ve.update()}function tt(){ut().forEach((function(e){h(e,"section").forEach((function(e,t){t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))}))}))}function it(){ut().forEach((function(e,t,i){N.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])}))}function nt(e,t){var i=h(N.wrapper,e),a=i.length,s=ue.isPrintingPDF();if(a){n.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(var r=0;r<a;r++){var o=i[r],l=n.rtl&&!je(o);o.classList.remove("past","present","future"),o.setAttribute("hidden",""),o.setAttribute("aria-hidden","true"),o.querySelector("section")&&o.classList.add("stack"),s?o.classList.add("present"):r<t?(o.classList.add(l?"future":"past"),n.fragments&&h(o,".fragment").forEach((function(e){e.classList.add("visible"),e.classList.remove("current-fragment")}))):r>t&&(o.classList.add(l?"past":"future"),n.fragments&&h(o,".fragment.visible").forEach((function(e){e.classList.remove("visible","current-fragment")})))}var d=i[t],u=d.classList.contains("present");d.classList.add("present"),d.removeAttribute("hidden"),d.removeAttribute("aria-hidden"),u||Pe({target:d,type:"visible",bubbles:!1});var c=d.getAttribute("data-state");c&&(E=E.concat(c.split(" ")))}else t=0;return t}function at(){var e,t=ut(),i=t.length;if(i&&void 0!==a){var r=ne.isActive()?10:n.viewDistance;A&&(r=ne.isActive()?6:n.mobileViewDistance),ue.isPrintingPDF()&&(r=Number.MAX_VALUE);for(var o=0;o<i;o++){var l=t[o],d=h(l,"section"),u=d.length;if(e=Math.abs((a||0)-o)||0,n.loop&&(e=Math.abs(((a||0)-o)%(i-r))||0),e<r?Z.load(l):Z.unload(l),u)for(var c=We(l),v=0;v<u;v++){var f=d[v];e+(o===(a||0)?Math.abs((s||0)-v):Math.abs(v-c))<r?Z.load(f):Z.unload(f)}}ft()?N.wrapper.classList.add("has-vertical-slides"):N.wrapper.classList.remove("has-vertical-slides"),vt()?N.wrapper.classList.add("has-horizontal-slides"):N.wrapper.classList.remove("has-horizontal-slides")}}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.includeFragments,i=void 0!==t&&t,r=N.wrapper.querySelectorAll(".slides>section"),o=N.wrapper.querySelectorAll(".slides>section.present>section"),l={left:a>0,right:a<r.length-1,up:s>0,down:s<o.length-1};if(n.loop&&(r.length>1&&(l.left=!0,l.right=!0),o.length>1&&(l.up=!0,l.down=!0)),r.length>1&&"linear"===n.navigationMode&&(l.right=l.right||l.down,l.left=l.left||l.up),!0===i){var d=ie.availableRoutes();l.left=l.left||d.prev,l.up=l.up||d.prev,l.down=l.down||d.next,l.right=l.right||d.next}if(n.rtl){var u=l.left;l.left=l.right,l.right=u}return l}function rt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=ut(),i=0;e:for(var n=0;n<t.length;n++){for(var a=t[n],s=a.querySelectorAll("section"),r=0;r<s.length;r++){if(s[r]===e)break e;"uncounted"!==s[r].dataset.visibility&&i++}if(a===e)break;!1===a.classList.contains("stack")&&"uncounted"!==!a.dataset.visibility&&i++}return i}function ot(){var e=pt(),t=rt();if(l){var i=l.querySelectorAll(".fragment");if(i.length>0){t+=l.querySelectorAll(".fragment.visible").length/i.length*.9}}return Math.min(t/(e-1),1)}function lt(e){var t,i=a,n=s;if(e){var r=je(e),o=r?e.parentNode:e,d=ut();i=Math.max(d.indexOf(o),0),n=void 0,r&&(n=Math.max(h(e.parentNode,"section").indexOf(e),0))}if(!e&&l&&l.querySelectorAll(".fragment").length>0){var u=l.querySelector(".current-fragment");t=u&&u.hasAttribute("data-fragment-index")?parseInt(u.getAttribute("data-fragment-index"),10):l.querySelectorAll(".fragment.visible").length-1}return{h:i,v:n,f:t}}function dt(){return h(N.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function ut(){return h(N.wrapper,".slides>section")}function ct(){return h(N.wrapper,".slides>section>section")}function ht(){return h(N.wrapper,".slides>section.stack")}function vt(){return ut().length>1}function ft(){return ct().length>1}function gt(){return dt().map((function(e){for(var t={},i=0;i<e.attributes.length;i++){var n=e.attributes[i];t[n.name]=n.value}return t}))}function pt(){return dt().length}function mt(e,t){var i=ut()[e],n=i&&i.querySelectorAll("section");return n&&n.length&&"number"==typeof t?n?n[t]:void 0:i}function yt(e,t){var i="number"==typeof e?mt(e,t):e;if(i)return i.slideBackgroundElement}function bt(){var e=lt();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:_e(),overview:ne.isActive()}}function kt(t){if("object"===e(t)){Ze(f(t.indexh),f(t.indexv),f(t.indexf));var i=f(t.paused),n=f(t.overview);"boolean"==typeof i&&i!==_e()&&$e(i),"boolean"==typeof n&&n!==ne.isActive()&&ne.toggle(n)}}function wt(){if(Rt(),l&&!1!==n.autoSlide){var e=l.querySelector(".current-fragment");e||(e=l.querySelector(".fragment"));var t=e?e.getAttribute("data-autoslide"):null,i=l.parentNode?l.parentNode.getAttribute("data-autoslide"):null,a=l.getAttribute("data-autoslide");$=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):n.autoSlide,0===l.querySelectorAll(".fragment").length&&h(l,"video, audio").forEach((function(e){e.hasAttribute("data-autoplay")&&$&&1e3*e.duration/e.playbackRate>$&&($=1e3*e.duration/e.playbackRate+1e3)})),!$||Q||_e()||ne.isActive()||Ke()&&!ie.availableRoutes().next&&!0!==n.loop||(_=setTimeout((function(){"function"==typeof n.autoSlideMethod?n.autoSlideMethod():Nt(),wt()}),$),J=Date.now()),u&&u.setPlaying(-1!==_)}}function Rt(){clearTimeout(_),_=-1}function At(){$&&!Q&&(Q=!0,Pe({type:"autoslidepaused"}),clearTimeout(_),u&&u.setPlaying(!1))}function Et(){$&&Q&&(Q=!1,Pe({type:"autoslideresumed"}),wt())}function St(){R.hasNavigatedHorizontally=!0,n.rtl?(ne.isActive()||!1===ie.next())&&st().left&&Ze(a+1,"grid"===n.navigationMode?s:void 0):(ne.isActive()||!1===ie.prev())&&st().left&&Ze(a-1,"grid"===n.navigationMode?s:void 0)}function Lt(){R.hasNavigatedHorizontally=!0,n.rtl?(ne.isActive()||!1===ie.prev())&&st().right&&Ze(a-1,"grid"===n.navigationMode?s:void 0):(ne.isActive()||!1===ie.next())&&st().right&&Ze(a+1,"grid"===n.navigationMode?s:void 0)}function xt(){(ne.isActive()||!1===ie.prev())&&st().up&&Ze(a,s-1)}function Ct(){R.hasNavigatedVertically=!0,(ne.isActive()||!1===ie.next())&&st().down&&Ze(a,s+1)}function Pt(){var e;if(!1===ie.prev())if(st().up)xt();else if(e=n.rtl?h(N.wrapper,".slides>section.future").pop():h(N.wrapper,".slides>section.past").pop()){var t=e.querySelectorAll("section").length-1||void 0;Ze(a-1,t)}}function Nt(){if(R.hasNavigatedHorizontally=!0,R.hasNavigatedVertically=!0,!1===ie.next()){var e=st();e.down&&e.right&&n.loop&&Fe()&&(e.down=!1),e.down?Ct():n.rtl?St():Lt()}}function Mt(e){n.autoSlideStoppable&&At()}function Dt(e){"running"===q&&/section/gi.test(e.target.nodeName)&&(q="idle",Pe({type:"slidetransitionend",data:{indexh:a,indexv:s,previousSlide:o,currentSlide:l}}))}function It(e){Be()}function Tt(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Ht(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){var t=e.currentTarget.getAttribute("href");t&&(Ie(t),e.preventDefault())}}function Ot(e){Ke()&&!1===n.loop?(Ze(0,0),Et()):Q?Et():At()}var Bt={VERSION:y,initialize:fe,configure:Ae,sync:Ge,syncSlide:et,syncFragments:ie.sync.bind(ie),slide:Ze,left:St,right:Lt,up:xt,down:Ct,prev:Pt,next:Nt,navigateLeft:St,navigateRight:Lt,navigateUp:xt,navigateDown:Ct,navigatePrev:Pt,navigateNext:Nt,navigateFragment:ie.goto.bind(ie),prevFragment:ie.prev.bind(ie),nextFragment:ie.next.bind(ie),on:Le,off:xe,addEventListener:Le,removeEventListener:xe,layout:Be,shuffle:it,availableRoutes:st,availableFragments:ie.availableRoutes.bind(ie),toggleHelp:Te,toggleOverview:ne.toggle.bind(ne),togglePause:$e,toggleAutoSlide:Je,isFirstSlide:Ve,isLastSlide:Ke,isLastVerticalSlide:Fe,isVerticalSlide:je,isPaused:_e,isAutoSliding:Qe,isSpeakerNotes:ve.isSpeakerNotesWindow.bind(ve),isOverview:ne.isActive.bind(ne),isFocused:ce.isFocused.bind(ce),isPrintingPDF:ue.isPrintingPDF.bind(ue),isReady:function(){return w},loadSlide:Z.load.bind(Z),unloadSlide:Z.unload.bind(Z),addEventListeners:Ee,removeEventListeners:Se,dispatchEvent:Pe,getState:bt,setState:kt,getProgress:ot,getIndices:lt,getSlidesAttributes:gt,getSlidePastCount:rt,getTotalSlides:pt,getSlide:mt,getPreviousSlide:function(){return o},getCurrentSlide:function(){return l},getSlideBackground:yt,getSlideNotes:ve.getSlideNotes.bind(ve),getSlides:dt,getHorizontalSlides:ut,getVerticalSlides:ct,hasHorizontalSlides:vt,hasVerticalSlides:ft,hasNavigatedHorizontally:function(){return R.hasNavigatedHorizontally},hasNavigatedVertically:function(){return R.hasNavigatedVertically},addKeyBinding:ae.addKeyBinding.bind(ae),removeKeyBinding:ae.removeKeyBinding.bind(ae),triggerKey:ae.triggerKey.bind(ae),registerKeyboardShortcut:ae.registerKeyboardShortcut.bind(ae),getComputedSlideSize:ze,getScale:function(){return S},getConfig:function(){return n},getQueryHash:b,getRevealElement:function(){return t},getSlidesElement:function(){return N.slides},getViewportElement:function(){return N.viewport},getBackgroundsElement:function(){return te.element},registerPlugin:de.registerPlugin.bind(de),hasPlugin:de.hasPlugin.bind(de),getPlugin:de.getPlugin.bind(de),getPlugins:de.getRegisteredPlugins.bind(de)};return c(p,r({},Bt,{announceStatus:be,getStatusText:ke,print:ue,focus:ce,progress:oe,controls:re,location:se,overview:ne,fragments:ie,slideContent:Z,slideNumber:G,onUserInput:Mt,closeOverlay:Oe,updateSlidesVisibility:at,layoutSlideContents:Ue,transformSlides:Ce,cueAutoSlide:wt,cancelAutoSlide:Rt})),Bt}var _=$,J=[];return _.initialize=function(e){return Object.assign(_,new $(document.querySelector(".reveal"),e)),J.map((function(e){return e(_)})),_.initialize()},["on","off","addEventListener","removeEventListener","registerPlugin"].forEach((function(e){_[e]=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];J.push((function(t){var n;return(n=t[e]).call.apply(n,[null].concat(i))}))}})),_}));
//# sourceMappingURL=reveal.js.map
diff --git a/js/reveal.js b/js/reveal.js
index 8ea786e..c492dcd 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -44,7 +44,7 @@ export default function( revealElement, options ) {
const Reveal = {};
// The reveal.js version
- const VERSION = '4.0.0-dev';
+ const VERSION = '4.0.0-rc.1';
// Configuration defaults, can be overridden at initialization time
let config,
diff --git a/package.json b/package.json
index 8c758c8..dfd726d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "reveal.js",
- "version": "4.0.0-dev",
+ "version": "4.0.0-rc.1",
"description": "The HTML Presentation Framework",
"homepage": "https://revealjs.com",
"subdomain": "revealjs",
diff --git a/plugin/notes/notes.esm.js b/plugin/notes/notes.esm.js
index bb34fdd..6439db6 100644
--- a/plugin/notes/notes.esm.js
+++ b/plugin/notes/notes.esm.js
@@ -1 +1 @@
-export default function(){var t,n=null;function e(){var e;!n||n.closed?((n=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script src=\"../../plugin/markdown/marked.js\"><\/script>\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),n?(e=setInterval((function(){n.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(i){var o,s,r,l,d=JSON.parse(i.data);d&&"reveal-notes"===d.namespace&&"connected"===d.type&&(clearInterval(e),t.on("slidechanged",a),t.on("fragmentshown",a),t.on("fragmenthidden",a),t.on("overviewhidden",a),t.on("overviewshown",a),t.on("paused",a),t.on("resumed",a),a()),d&&"reveal-notes"===d.namespace&&"call"===d.type&&(o=d.methodName,s=d.arguments,r=d.callId,l=t[o].apply(t,s),n.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:l,callId:r}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):n.focus();function a(e){var a=t.getCurrentSlide(),i=a.querySelector("aside.notes"),o=a.querySelector(".current-fragment"),s={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(a.hasAttribute("data-notes")&&(s.notes=a.getAttribute("data-notes"),s.whitespace="pre-wrap"),o){var r=o.querySelector("aside.notes");r?i=r:o.hasAttribute("data-notes")&&(s.notes=o.getAttribute("data-notes"),s.whitespace="pre-wrap",i=null)}i&&(s.notes=i.innerHTML,s.markdown="string"==typeof i.getAttribute("data-markdown")),n.postMessage(JSON.stringify(s),"*")}}return{id:"notes",init:function(n){t=n,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&e(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){e()})))},open:e}}
+var t=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,xhtml:!1}}t.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,xhtml:!1},getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}}));t.defaults,t.getDefaults,t.changeDefaults;const e=/[&<>"']/,n=/[&<>"']/g,i=/[<>"']|&(?!#?\w+;)/,s=/[<>"']|&(?!#?\w+;)/g,r={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},a=t=>r[t];const l=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function o(t){return t.replace(l,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const c=/(^|[^\[])\^/g;const d=/[^\w:]/g,u=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const p={},h=/^[^:]+:\/*[^/]*$/,g=/^([^:]+:)[\s\S]*$/,m=/^([^:]+:\/*[^/]*)[\s\S]*$/;function f(t,e){p[" "+t]||(h.test(t)?p[" "+t]=t+"/":p[" "+t]=k(t,"/",!0));const n=-1===(t=p[" "+t]).indexOf(":");return"//"===e.substring(0,2)?n?e:t.replace(g,"$1")+e:"/"===e.charAt(0)?n?e:t.replace(m,"$1")+e:t+e}function k(t,e,n){const i=t.length;if(0===i)return"";let s=0;for(;s<i;){const r=t.charAt(i-s-1);if(r!==e||n){if(r===e||!n)break;s++}else s++}return t.substr(0,i-s)}var b={escape:function(t,r){if(r){if(e.test(t))return t.replace(n,a)}else if(i.test(t))return t.replace(s,a);return t},unescape:o,edit:function(t,e){t=t.source||t,e=e||"";const n={replace:(e,i)=>(i=(i=i.source||i).replace(c,"$1"),t=t.replace(e,i),n),getRegex:()=>new RegExp(t,e)};return n},cleanUrl:function(t,e,n){if(t){let t;try{t=decodeURIComponent(o(n)).replace(d,"").toLowerCase()}catch(t){return null}if(0===t.indexOf("javascript:")||0===t.indexOf("vbscript:")||0===t.indexOf("data:"))return null}e&&!u.test(n)&&(n=f(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(t){return null}return n},resolveUrl:f,noopTest:{exec:function(){}},merge:function(t){let e,n,i=1;for(;i<arguments.length;i++)for(n in e=arguments[i],e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},splitCells:function(t,e){const n=t.replace(/\|/g,(t,e,n)=>{let i=!1,s=e;for(;--s>=0&&"\\"===n[s];)i=!i;return i?"|":" |"}).split(/ \|/);let i=0;if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\|/g,"|");return n},rtrim:k,findClosingBracket:function(t,e){if(-1===t.indexOf(e[1]))return-1;const n=t.length;let i=0,s=0;for(;s<n;s++)if("\\"===t[s])s++;else if(t[s]===e[0])i++;else if(t[s]===e[1]&&(i--,i<0))return s;return-1},checkSanitizeDeprecation:function(t){t&&t.sanitize&&!t.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}};const{defaults:y}=t,{rtrim:w,splitCells:x,escape:v,findClosingBracket:S}=b;function z(t,e,n){const i=e.href,s=e.title?v(e.title):null;return"!"!==t[0].charAt(0)?{type:"link",raw:n,href:i,title:s,text:t[1]}:{type:"image",raw:n,text:v(t[1]),href:i,title:s}}var T=class{constructor(t){this.options=t||y}space(t){const e=this.rules.block.newline.exec(t);if(e)return e[0].length>1?{type:"space",raw:e[0]}:{raw:"\n"}}code(t,e){const n=this.rules.block.code.exec(t);if(n){const t=e[e.length-1];if(t&&"paragraph"===t.type)return e.pop(),t.text+="\n"+n[0].trimRight(),t.raw+="\n"+n[0],t;{const t=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?t:w(t,"\n")}}}}fences(t){const e=this.rules.block.fences.exec(t);if(e)return{type:"code",raw:e[0],lang:e[2]?e[2].trim():e[2],text:e[3]||""}}heading(t){const e=this.rules.block.heading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[1].length,text:e[2]}}nptable(t){const e=this.rules.block.nptable.exec(t);if(e){const t={type:"table",header:x(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(t.header.length===t.align.length){let e,n=t.align.length;for(e=0;e<n;e++)/^ *-+: *$/.test(t.align[e])?t.align[e]="right":/^ *:-+: *$/.test(t.align[e])?t.align[e]="center":/^ *:-+ *$/.test(t.align[e])?t.align[e]="left":t.align[e]=null;for(n=t.cells.length,e=0;e<n;e++)t.cells[e]=x(t.cells[e],t.header.length);return t}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const t=e[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:e[0],text:t}}}list(t){const e=this.rules.block.list.exec(t);if(e){let t=e[0];const n=e[2],i=n.length>1,s={type:"list",raw:t,ordered:i,start:i?+n:"",loose:!1,items:[]},r=e[0].match(this.rules.block.item);let a,l,o,c,d,u,p,h=!1;const g=r.length;for(let e=0;e<g;e++)a=r[e],t=a,l=a.length,a=a.replace(/^ *([*+-]|\d+\.) */,""),~a.indexOf("\n ")&&(l-=a.length,a=this.options.pedantic?a.replace(/^ {1,4}/gm,""):a.replace(new RegExp("^ {1,"+l+"}","gm"),"")),e!==g-1&&(o=this.rules.block.bullet.exec(r[e+1])[0],(n.length>1?1===o.length:o.length>1||this.options.smartLists&&o!==n)&&(c=r.slice(e+1).join("\n"),s.raw=s.raw.substring(0,s.raw.length-c.length),e=g-1)),d=h||/\n\n(?!\s*$)/.test(a),e!==g-1&&(h="\n"===a.charAt(a.length-1),d||(d=h)),d&&(s.loose=!0),u=/^\[[ xX]\] /.test(a),p=void 0,u&&(p=" "!==a[1],a=a.replace(/^\[[ xX]\] +/,"")),s.items.push({raw:t,task:u,checked:p,loose:d,text:a});return s}}html(t){const e=this.rules.block.html.exec(t);if(e)return{type:this.options.sanitize?"paragraph":"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):v(e[0]):e[0]}}def(t){const e=this.rules.block.def.exec(t);if(e){return e[3]&&(e[3]=e[3].substring(1,e[3].length-1)),{tag:e[1].toLowerCase().replace(/\s+/g," "),raw:e[0],href:e[2],title:e[3]}}}table(t){const e=this.rules.block.table.exec(t);if(e){const t={type:"table",header:x(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[]};if(t.header.length===t.align.length){t.raw=e[0];let n,i=t.align.length;for(n=0;n<i;n++)/^ *-+: *$/.test(t.align[n])?t.align[n]="right":/^ *:-+: *$/.test(t.align[n])?t.align[n]="center":/^ *:-+ *$/.test(t.align[n])?t.align[n]="left":t.align[n]=null;for(i=t.cells.length,n=0;n<i;n++)t.cells[n]=x(t.cells[n].replace(/^ *\| *| *\| *$/g,""),t.header.length);return t}}}lheading(t){const e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1]}}paragraph(t){const e=this.rules.block.paragraph.exec(t);if(e)return{type:"paragraph",raw:e[0],text:"\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1]}}text(t){const e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0]}}escape(t){const e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:v(e[1])}}tag(t,e,n){const i=this.rules.inline.tag.exec(t);if(i)return!e&&/^<a /i.test(i[0])?e=!0:e&&/^<\/a>/i.test(i[0])&&(e=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:i[0],inLink:e,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):v(i[0]):i[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const t=S(e[2],"()");if(t>-1){const n=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,n).trim(),e[3]=""}let n=e[2],i="";if(this.options.pedantic){const t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);t?(n=t[1],i=t[3]):i=""}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim().replace(/^<([\s\S]*)>$/,"$1"),z(e,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:i?i.replace(this.rules.inline._escapes,"$1"):i},e[0])}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let t=(n[2]||n[1]).replace(/\s+/g," ");if(t=e[t.toLowerCase()],!t||!t.href){const t=n[0].charAt(0);return{type:"text",raw:t,text:t}}return z(n,t,n[0])}}strong(t){const e=this.rules.inline.strong.exec(t);if(e)return{type:"strong",raw:e[0],text:e[4]||e[3]||e[2]||e[1]}}em(t){const e=this.rules.inline.em.exec(t);if(e)return{type:"em",raw:e[0],text:e[6]||e[5]||e[4]||e[3]||e[2]||e[1]}}codespan(t){const e=this.rules.inline.code.exec(t);if(e)return{type:"codespan",raw:e[0],text:v(e[2].trim(),!0)}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[1]}}autolink(t,e){const n=this.rules.inline.autolink.exec(t);if(n){let t,i;return"@"===n[2]?(t=v(this.options.mangle?e(n[1]):n[1]),i="mailto:"+t):(t=v(n[1]),i=t),{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}url(t,e){let n;if(n=this.rules.inline.url.exec(t)){let t,i;if("@"===n[2])t=v(this.options.mangle?e(n[0]):n[0]),i="mailto:"+t;else{let e;do{e=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(e!==n[0]);t=v(n[0]),i="www."===n[1]?"http://"+t:t}return{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t,e,n){const i=this.rules.inline.text.exec(t);if(i){let t;return t=e?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):v(i[0]):i[0]:v(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:t}}}};const{noopTest:_,edit:A,merge:E}=b,L={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:_,table:_,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};L.def=A(L.def).replace("label",L._label).replace("title",L._title).getRegex(),L.bullet=/(?:[*+-]|\d{1,9}\.)/,L.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,L.item=A(L.item,"gm").replace(/bull/g,L.bullet).getRegex(),L.list=A(L.list).replace(/bull/g,L.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+L.def.source+")").getRegex(),L._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",L._comment=/<!--(?!-?>)[\s\S]*?-->/,L.html=A(L.html,"i").replace("comment",L._comment).replace("tag",L._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),L.paragraph=A(L._paragraph).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.blockquote=A(L.blockquote).replace("paragraph",L.paragraph).getRegex(),L.normal=E({},L),L.gfm=E({},L.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),L.gfm.nptable=A(L.gfm.nptable).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.gfm.table=A(L.gfm.table).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.pedantic=E({},L.normal,{html:A("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",L._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:_,paragraph:A(L.normal._paragraph).replace("hr",L.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",L.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const $={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:_,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:_,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};$.em=A($.em).replace(/punctuation/g,$._punctuation).getRegex(),$._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,$._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,$._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,$.autolink=A($.autolink).replace("scheme",$._scheme).replace("email",$._email).getRegex(),$._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,$.tag=A($.tag).replace("comment",L._comment).replace("attribute",$._attribute).getRegex(),$._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,$._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,$._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,$.link=A($.link).replace("label",$._label).replace("href",$._href).replace("title",$._title).getRegex(),$.reflink=A($.reflink).replace("label",$._label).getRegex(),$.normal=E({},$),$.pedantic=E({},$.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",$._label).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",$._label).getRegex()}),$.gfm=E({},$.normal,{escape:A($.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),$.gfm.url=A($.gfm.url,"i").replace("email",$.gfm._extended_email).getRegex(),$.breaks=E({},$.gfm,{br:A($.br).replace("{2,}","*").getRegex(),text:A($.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var R={block:L,inline:$};const{defaults:C}=t,{block:I,inline:q}=R;function M(t){return t.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function P(t){let e,n,i="";const s=t.length;for(e=0;e<s;e++)n=t.charCodeAt(e),Math.random()>.5&&(n="x"+n.toString(16)),i+="&#"+n+";";return i}var O=class t{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||C,this.options.tokenizer=this.options.tokenizer||new T,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;const e={block:I.normal,inline:q.normal};this.options.pedantic?(e.block=I.pedantic,e.inline=q.pedantic):this.options.gfm&&(e.block=I.gfm,this.options.breaks?e.inline=q.breaks:e.inline=q.gfm),this.tokenizer.rules=e}static get rules(){return{block:I,inline:q}}static lex(e,n){return new t(n).lex(e)}lex(t){return t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(t,this.tokens,!0),this.inline(this.tokens),this.tokens}blockTokens(t,e=[],n=!0){let i,s,r;for(t=t.replace(/^ +$/gm,"");t;)if(i=this.tokenizer.space(t))t=t.substring(i.raw.length),i.type&&e.push(i);else if(i=this.tokenizer.code(t,e))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.fences(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.heading(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.nptable(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.hr(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.blockquote(t))t=t.substring(i.raw.length),i.tokens=this.blockTokens(i.text,[],n),e.push(i);else if(i=this.tokenizer.list(t)){for(t=t.substring(i.raw.length),r=i.items.length,s=0;s<r;s++)i.items[s].tokens=this.blockTokens(i.items[s].text,[],!1);e.push(i)}else if(i=this.tokenizer.html(t))t=t.substring(i.raw.length),e.push(i);else if(n&&(i=this.tokenizer.def(t)))t=t.substring(i.raw.length),this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});else if(i=this.tokenizer.table(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.lheading(t))t=t.substring(i.raw.length),e.push(i);else if(n&&(i=this.tokenizer.paragraph(t)))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.text(t))t=t.substring(i.raw.length),e.push(i);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}return e}inline(t){let e,n,i,s,r,a;const l=t.length;for(e=0;e<l;e++)switch(a=t[e],a.type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},s=a.header.length,n=0;n<s;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(s=a.cells.length,n=0;n<s;n++)for(r=a.cells[n],a.tokens.cells[n]=[],i=0;i<r.length;i++)a.tokens.cells[n][i]=[],this.inlineTokens(r[i],a.tokens.cells[n][i]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(s=a.items.length,n=0;n<s;n++)this.inline(a.items[n].tokens)}return t}inlineTokens(t,e=[],n=!1,i=!1){let s;for(;t;)if(s=this.tokenizer.escape(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.tag(t,n,i))t=t.substring(s.raw.length),n=s.inLink,i=s.inRawBlock,e.push(s);else if(s=this.tokenizer.link(t))t=t.substring(s.raw.length),"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,i)),e.push(s);else if(s=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(s.raw.length),"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,i)),e.push(s);else if(s=this.tokenizer.strong(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.em(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.codespan(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.br(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.del(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.autolink(t,P))t=t.substring(s.raw.length),e.push(s);else if(n||!(s=this.tokenizer.url(t,P))){if(s=this.tokenizer.inlineText(t,i,M))t=t.substring(s.raw.length),e.push(s);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}}else t=t.substring(s.raw.length),e.push(s);return e}};const{defaults:N}=t,{cleanUrl:D,escape:U}=b;var Z=class{constructor(t){this.options=t||N}code(t,e,n){const i=(e||"").match(/\S*/)[0];if(this.options.highlight){const e=this.options.highlight(t,i);null!=e&&e!==t&&(n=!0,t=e)}return i?'<pre><code class="'+this.options.langPrefix+U(i,!0)+'">'+(n?t:U(t,!0))+"</code></pre>\n":"<pre><code>"+(n?t:U(t,!0))+"</code></pre>"}blockquote(t){return"<blockquote>\n"+t+"</blockquote>\n"}html(t){return t}heading(t,e,n,i){return this.options.headerIds?"<h"+e+' id="'+this.options.headerPrefix+i.slug(n)+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(t,e,n){const i=e?"ol":"ul";return"<"+i+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"</"+i+">\n"}listitem(t){return"<li>"+t+"</li>\n"}checkbox(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(t){return"<p>"+t+"</p>\n"}table(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"}tablerow(t){return"<tr>\n"+t+"</tr>\n"}tablecell(t,e){const n=e.header?"th":"td";return(e.align?"<"+n+' align="'+e.align+'">':"<"+n+">")+t+"</"+n+">\n"}strong(t){return"<strong>"+t+"</strong>"}em(t){return"<em>"+t+"</em>"}codespan(t){return"<code>"+t+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(t){return"<del>"+t+"</del>"}link(t,e,n){if(null===(t=D(this.options.sanitize,this.options.baseUrl,t)))return n;let i='<a href="'+U(t)+'"';return e&&(i+=' title="'+e+'"'),i+=">"+n+"</a>",i}image(t,e,n){if(null===(t=D(this.options.sanitize,this.options.baseUrl,t)))return n;let i='<img src="'+t+'" alt="'+n+'"';return e&&(i+=' title="'+e+'"'),i+=this.options.xhtml?"/>":">",i}text(t){return t}},J=class{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,n){return""+n}image(t,e,n){return""+n}br(){return""}},j=class{constructor(){this.seen={}}slug(t){let e=t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(e)){const t=e;do{this.seen[t]++,e=t+"-"+this.seen[t]}while(this.seen.hasOwnProperty(e))}return this.seen[e]=0,e}};const{defaults:H}=t,{unescape:K}=b;var B=class t{constructor(t){this.options=t||H,this.options.renderer=this.options.renderer||new Z,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new J,this.slugger=new j}static parse(e,n){return new t(n).parse(e)}parse(t,e=!0){let n,i,s,r,a,l,o,c,d,u,p,h,g,m,f,k,b,y,w="";const x=t.length;for(n=0;n<x;n++)switch(u=t[n],u.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(u.tokens),u.depth,K(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(c="",o="",r=u.header.length,i=0;i<r;i++)o+=this.renderer.tablecell(this.parseInline(u.tokens.header[i]),{header:!0,align:u.align[i]});for(c+=this.renderer.tablerow(o),d="",r=u.cells.length,i=0;i<r;i++){for(l=u.tokens.cells[i],o="",a=l.length,s=0;s<a;s++)o+=this.renderer.tablecell(this.parseInline(l[s]),{header:!1,align:u.align[s]});d+=this.renderer.tablerow(o)}w+=this.renderer.table(c,d);continue;case"blockquote":d=this.parse(u.tokens),w+=this.renderer.blockquote(d);continue;case"list":for(p=u.ordered,h=u.start,g=u.loose,r=u.items.length,d="",i=0;i<r;i++)f=u.items[i],k=f.checked,b=f.task,m="",f.task&&(y=this.renderer.checkbox(k),g?"text"===f.tokens[0].type?(f.tokens[0].text=y+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&"text"===f.tokens[0].tokens[0].type&&(f.tokens[0].tokens[0].text=y+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:y}):m+=y),m+=this.parse(f.tokens,g),d+=this.renderer.listitem(m,b,k);w+=this.renderer.list(d,p,h);continue;case"html":w+=this.renderer.html(u.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(d=u.tokens?this.parseInline(u.tokens):u.text;n+1<x&&"text"===t[n+1].type;)u=t[++n],d+="\n"+(u.tokens?this.parseInline(u.tokens):u.text);w+=e?this.renderer.paragraph(d):d;continue;default:{const t='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(t);throw new Error(t)}}return w}parseInline(t,e){e=e||this.renderer;let n,i,s="";const r=t.length;for(n=0;n<r;n++)switch(i=t[n],i.type){case"escape":s+=e.text(i.text);break;case"html":s+=e.html(i.text);break;case"link":s+=e.link(i.href,i.title,this.parseInline(i.tokens,e));break;case"image":s+=e.image(i.href,i.title,i.text);break;case"strong":s+=e.strong(this.parseInline(i.tokens,e));break;case"em":s+=e.em(this.parseInline(i.tokens,e));break;case"codespan":s+=e.codespan(i.text);break;case"br":s+=e.br();break;case"del":s+=e.del(this.parseInline(i.tokens,e));break;case"text":s+=e.text(i.text);break;default:{const t='Token with "'+i.type+'" type was not found.';if(this.options.silent)return void console.error(t);throw new Error(t)}}return s}};const{merge:V,checkSanitizeDeprecation:W,escape:F}=b,{getDefaults:Y,changeDefaults:X,defaults:G}=t;function Q(t,e,n){if(null==t)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof t)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected");if(n||"function"==typeof e){n||(n=e,e=null),e=V({},Q.defaults,e||{}),W(e);const i=e.highlight;let s,r,a=0;try{s=O.lex(t,e)}catch(t){return n(t)}r=s.length;const l=function(t){if(t)return e.highlight=i,n(t);let r;try{r=B.parse(s,e)}catch(e){t=e}return e.highlight=i,t?n(t):n(null,r)};if(!i||i.length<3)return l();if(delete e.highlight,!r)return l();for(;a<s.length;a++)!function(t){"code"!==t.type?--r||l():i(t.text,t.lang,(function(e,n){return e?l(e):null==n||n===t.text?--r||l():(t.text=n,t.escaped=!0,void(--r||l()))}))}(s[a])}else try{return e=V({},Q.defaults,e||{}),W(e),B.parse(O.lex(t,e),e)}catch(t){if(t.message+="\nPlease report this to https://github.com/markedjs/marked.",(e||Q.defaults).silent)return"<p>An error occurred:</p><pre>"+F(t.message+"",!0)+"</pre>";throw t}}Q.options=Q.setOptions=function(t){return V(Q.defaults,t),X(Q.defaults),Q},Q.getDefaults=Y,Q.defaults=G,Q.use=function(t){const e=V({},t);if(t.renderer){const n=Q.defaults.renderer||new Z;for(const e in t.renderer){const i=n[e];n[e]=(...s)=>{let r=t.renderer[e].apply(n,s);return!1===r&&(r=i.apply(n,s)),r}}e.renderer=n}if(t.tokenizer){const n=Q.defaults.tokenizer||new T;for(const e in t.tokenizer){const i=n[e];n[e]=(...s)=>{let r=t.tokenizer[e].apply(n,s);return!1===r&&(r=i.apply(n,s)),r}}e.tokenizer=n}Q.setOptions(e)},Q.Parser=B,Q.parser=B.parse,Q.Renderer=Z,Q.TextRenderer=J,Q.Lexer=O,Q.lexer=O.lex,Q.Tokenizer=T,Q.Slugger=j,Q.parse=Q;var tt=Q;export default function(){var t,e=null;function n(){var n;!e||e.closed?((e=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).marked=tt,e.document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\tconsole.log(marked);\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),e?(n=setInterval((function(){e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(s){var r,a,l,o,c=JSON.parse(s.data);c&&"reveal-notes"===c.namespace&&"connected"===c.type&&(clearInterval(n),t.on("slidechanged",i),t.on("fragmentshown",i),t.on("fragmenthidden",i),t.on("overviewhidden",i),t.on("overviewshown",i),t.on("paused",i),t.on("resumed",i),i()),c&&"reveal-notes"===c.namespace&&"call"===c.type&&(r=c.methodName,a=c.arguments,l=c.callId,o=t[r].apply(t,a),e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:o,callId:l}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):e.focus();function i(n){var i=t.getCurrentSlide(),s=i.querySelector("aside.notes"),r=i.querySelector(".current-fragment"),a={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(i.hasAttribute("data-notes")&&(a.notes=i.getAttribute("data-notes"),a.whitespace="pre-wrap"),r){var l=r.querySelector("aside.notes");l?s=l:r.hasAttribute("data-notes")&&(a.notes=r.getAttribute("data-notes"),a.whitespace="pre-wrap",s=null)}s&&(a.notes=s.innerHTML,a.markdown="string"==typeof s.getAttribute("data-markdown")),e.postMessage(JSON.stringify(a),"*")}}return{id:"notes",init:function(e){t=e,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}
diff --git a/plugin/notes/notes.js b/plugin/notes/notes.js
index 5619d47..84cd676 100644
--- a/plugin/notes/notes.js
+++ b/plugin/notes/notes.js
@@ -1 +1 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).RevealNotes=n()}(this,(function(){"use strict";return function(){var t,n=null;function e(){var e;!n||n.closed?((n=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script src=\"../../plugin/markdown/marked.js\"><\/script>\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),n?(e=setInterval((function(){n.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(i){var o,s,r,l,d=JSON.parse(i.data);d&&"reveal-notes"===d.namespace&&"connected"===d.type&&(clearInterval(e),t.on("slidechanged",a),t.on("fragmentshown",a),t.on("fragmenthidden",a),t.on("overviewhidden",a),t.on("overviewshown",a),t.on("paused",a),t.on("resumed",a),a()),d&&"reveal-notes"===d.namespace&&"call"===d.type&&(o=d.methodName,s=d.arguments,r=d.callId,l=t[o].apply(t,s),n.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:l,callId:r}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):n.focus();function a(e){var a=t.getCurrentSlide(),i=a.querySelector("aside.notes"),o=a.querySelector(".current-fragment"),s={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(a.hasAttribute("data-notes")&&(s.notes=a.getAttribute("data-notes"),s.whitespace="pre-wrap"),o){var r=o.querySelector("aside.notes");r?i=r:o.hasAttribute("data-notes")&&(s.notes=o.getAttribute("data-notes"),s.whitespace="pre-wrap",i=null)}i&&(s.notes=i.innerHTML,s.markdown="string"==typeof i.getAttribute("data-markdown")),n.postMessage(JSON.stringify(s),"*")}}return{id:"notes",init:function(n){t=n,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&e(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){e()})))},open:e}}}));
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).RevealNotes=e()}(this,(function(){"use strict";var t=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,xhtml:!1}}t.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,xhtml:!1},getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}}));t.defaults,t.getDefaults,t.changeDefaults;const e=/[&<>"']/,n=/[&<>"']/g,i=/[<>"']|&(?!#?\w+;)/,s=/[<>"']|&(?!#?\w+;)/g,r={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},a=t=>r[t];const l=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function o(t){return t.replace(l,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const c=/(^|[^\[])\^/g;const d=/[^\w:]/g,u=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const p={},h=/^[^:]+:\/*[^/]*$/,g=/^([^:]+:)[\s\S]*$/,m=/^([^:]+:\/*[^/]*)[\s\S]*$/;function f(t,e){p[" "+t]||(h.test(t)?p[" "+t]=t+"/":p[" "+t]=k(t,"/",!0));const n=-1===(t=p[" "+t]).indexOf(":");return"//"===e.substring(0,2)?n?e:t.replace(g,"$1")+e:"/"===e.charAt(0)?n?e:t.replace(m,"$1")+e:t+e}function k(t,e,n){const i=t.length;if(0===i)return"";let s=0;for(;s<i;){const r=t.charAt(i-s-1);if(r!==e||n){if(r===e||!n)break;s++}else s++}return t.substr(0,i-s)}var b={escape:function(t,r){if(r){if(e.test(t))return t.replace(n,a)}else if(i.test(t))return t.replace(s,a);return t},unescape:o,edit:function(t,e){t=t.source||t,e=e||"";const n={replace:(e,i)=>(i=(i=i.source||i).replace(c,"$1"),t=t.replace(e,i),n),getRegex:()=>new RegExp(t,e)};return n},cleanUrl:function(t,e,n){if(t){let t;try{t=decodeURIComponent(o(n)).replace(d,"").toLowerCase()}catch(t){return null}if(0===t.indexOf("javascript:")||0===t.indexOf("vbscript:")||0===t.indexOf("data:"))return null}e&&!u.test(n)&&(n=f(e,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(t){return null}return n},resolveUrl:f,noopTest:{exec:function(){}},merge:function(t){let e,n,i=1;for(;i<arguments.length;i++)for(n in e=arguments[i],e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},splitCells:function(t,e){const n=t.replace(/\|/g,(t,e,n)=>{let i=!1,s=e;for(;--s>=0&&"\\"===n[s];)i=!i;return i?"|":" |"}).split(/ \|/);let i=0;if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;i<n.length;i++)n[i]=n[i].trim().replace(/\\\|/g,"|");return n},rtrim:k,findClosingBracket:function(t,e){if(-1===t.indexOf(e[1]))return-1;const n=t.length;let i=0,s=0;for(;s<n;s++)if("\\"===t[s])s++;else if(t[s]===e[0])i++;else if(t[s]===e[1]&&(i--,i<0))return s;return-1},checkSanitizeDeprecation:function(t){t&&t.sanitize&&!t.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}};const{defaults:y}=t,{rtrim:w,splitCells:x,escape:v,findClosingBracket:S}=b;function z(t,e,n){const i=e.href,s=e.title?v(e.title):null;return"!"!==t[0].charAt(0)?{type:"link",raw:n,href:i,title:s,text:t[1]}:{type:"image",raw:n,text:v(t[1]),href:i,title:s}}var T=class{constructor(t){this.options=t||y}space(t){const e=this.rules.block.newline.exec(t);if(e)return e[0].length>1?{type:"space",raw:e[0]}:{raw:"\n"}}code(t,e){const n=this.rules.block.code.exec(t);if(n){const t=e[e.length-1];if(t&&"paragraph"===t.type)return e.pop(),t.text+="\n"+n[0].trimRight(),t.raw+="\n"+n[0],t;{const t=n[0].replace(/^ {4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?t:w(t,"\n")}}}}fences(t){const e=this.rules.block.fences.exec(t);if(e)return{type:"code",raw:e[0],lang:e[2]?e[2].trim():e[2],text:e[3]||""}}heading(t){const e=this.rules.block.heading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[1].length,text:e[2]}}nptable(t){const e=this.rules.block.nptable.exec(t);if(e){const t={type:"table",header:x(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(t.header.length===t.align.length){let e,n=t.align.length;for(e=0;e<n;e++)/^ *-+: *$/.test(t.align[e])?t.align[e]="right":/^ *:-+: *$/.test(t.align[e])?t.align[e]="center":/^ *:-+ *$/.test(t.align[e])?t.align[e]="left":t.align[e]=null;for(n=t.cells.length,e=0;e<n;e++)t.cells[e]=x(t.cells[e],t.header.length);return t}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const t=e[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:e[0],text:t}}}list(t){const e=this.rules.block.list.exec(t);if(e){let t=e[0];const n=e[2],i=n.length>1,s={type:"list",raw:t,ordered:i,start:i?+n:"",loose:!1,items:[]},r=e[0].match(this.rules.block.item);let a,l,o,c,d,u,p,h=!1;const g=r.length;for(let e=0;e<g;e++)a=r[e],t=a,l=a.length,a=a.replace(/^ *([*+-]|\d+\.) */,""),~a.indexOf("\n ")&&(l-=a.length,a=this.options.pedantic?a.replace(/^ {1,4}/gm,""):a.replace(new RegExp("^ {1,"+l+"}","gm"),"")),e!==g-1&&(o=this.rules.block.bullet.exec(r[e+1])[0],(n.length>1?1===o.length:o.length>1||this.options.smartLists&&o!==n)&&(c=r.slice(e+1).join("\n"),s.raw=s.raw.substring(0,s.raw.length-c.length),e=g-1)),d=h||/\n\n(?!\s*$)/.test(a),e!==g-1&&(h="\n"===a.charAt(a.length-1),d||(d=h)),d&&(s.loose=!0),u=/^\[[ xX]\] /.test(a),p=void 0,u&&(p=" "!==a[1],a=a.replace(/^\[[ xX]\] +/,"")),s.items.push({raw:t,task:u,checked:p,loose:d,text:a});return s}}html(t){const e=this.rules.block.html.exec(t);if(e)return{type:this.options.sanitize?"paragraph":"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):v(e[0]):e[0]}}def(t){const e=this.rules.block.def.exec(t);if(e){return e[3]&&(e[3]=e[3].substring(1,e[3].length-1)),{tag:e[1].toLowerCase().replace(/\s+/g," "),raw:e[0],href:e[2],title:e[3]}}}table(t){const e=this.rules.block.table.exec(t);if(e){const t={type:"table",header:x(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[]};if(t.header.length===t.align.length){t.raw=e[0];let n,i=t.align.length;for(n=0;n<i;n++)/^ *-+: *$/.test(t.align[n])?t.align[n]="right":/^ *:-+: *$/.test(t.align[n])?t.align[n]="center":/^ *:-+ *$/.test(t.align[n])?t.align[n]="left":t.align[n]=null;for(i=t.cells.length,n=0;n<i;n++)t.cells[n]=x(t.cells[n].replace(/^ *\| *| *\| *$/g,""),t.header.length);return t}}}lheading(t){const e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1]}}paragraph(t){const e=this.rules.block.paragraph.exec(t);if(e)return{type:"paragraph",raw:e[0],text:"\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1]}}text(t){const e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0]}}escape(t){const e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:v(e[1])}}tag(t,e,n){const i=this.rules.inline.tag.exec(t);if(i)return!e&&/^<a /i.test(i[0])?e=!0:e&&/^<\/a>/i.test(i[0])&&(e=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:i[0],inLink:e,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):v(i[0]):i[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const t=S(e[2],"()");if(t>-1){const n=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,n).trim(),e[3]=""}let n=e[2],i="";if(this.options.pedantic){const t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);t?(n=t[1],i=t[3]):i=""}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim().replace(/^<([\s\S]*)>$/,"$1"),z(e,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:i?i.replace(this.rules.inline._escapes,"$1"):i},e[0])}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let t=(n[2]||n[1]).replace(/\s+/g," ");if(t=e[t.toLowerCase()],!t||!t.href){const t=n[0].charAt(0);return{type:"text",raw:t,text:t}}return z(n,t,n[0])}}strong(t){const e=this.rules.inline.strong.exec(t);if(e)return{type:"strong",raw:e[0],text:e[4]||e[3]||e[2]||e[1]}}em(t){const e=this.rules.inline.em.exec(t);if(e)return{type:"em",raw:e[0],text:e[6]||e[5]||e[4]||e[3]||e[2]||e[1]}}codespan(t){const e=this.rules.inline.code.exec(t);if(e)return{type:"codespan",raw:e[0],text:v(e[2].trim(),!0)}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[1]}}autolink(t,e){const n=this.rules.inline.autolink.exec(t);if(n){let t,i;return"@"===n[2]?(t=v(this.options.mangle?e(n[1]):n[1]),i="mailto:"+t):(t=v(n[1]),i=t),{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}url(t,e){let n;if(n=this.rules.inline.url.exec(t)){let t,i;if("@"===n[2])t=v(this.options.mangle?e(n[0]):n[0]),i="mailto:"+t;else{let e;do{e=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(e!==n[0]);t=v(n[0]),i="www."===n[1]?"http://"+t:t}return{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t,e,n){const i=this.rules.inline.text.exec(t);if(i){let t;return t=e?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):v(i[0]):i[0]:v(this.options.smartypants?n(i[0]):i[0]),{type:"text",raw:i[0],text:t}}}};const{noopTest:_,edit:A,merge:E}=b,L={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|<![A-Z][\\s\\S]*?>\\n*|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:_,table:_,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};L.def=A(L.def).replace("label",L._label).replace("title",L._title).getRegex(),L.bullet=/(?:[*+-]|\d{1,9}\.)/,L.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,L.item=A(L.item,"gm").replace(/bull/g,L.bullet).getRegex(),L.list=A(L.list).replace(/bull/g,L.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+L.def.source+")").getRegex(),L._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",L._comment=/<!--(?!-?>)[\s\S]*?-->/,L.html=A(L.html,"i").replace("comment",L._comment).replace("tag",L._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),L.paragraph=A(L._paragraph).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.blockquote=A(L.blockquote).replace("paragraph",L.paragraph).getRegex(),L.normal=E({},L),L.gfm=E({},L.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),L.gfm.nptable=A(L.gfm.nptable).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.gfm.table=A(L.gfm.table).replace("hr",L.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)").replace("tag",L._tag).getRegex(),L.pedantic=E({},L.normal,{html:A("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",L._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:_,paragraph:A(L.normal._paragraph).replace("hr",L.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",L.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const $={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:_,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:_,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,_punctuation:"!\"#$%&'()*+\\-./:;<=>?@\\[^_{|}~"};$.em=A($.em).replace(/punctuation/g,$._punctuation).getRegex(),$._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,$._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,$._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,$.autolink=A($.autolink).replace("scheme",$._scheme).replace("email",$._email).getRegex(),$._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,$.tag=A($.tag).replace("comment",L._comment).replace("attribute",$._attribute).getRegex(),$._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,$._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,$._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,$.link=A($.link).replace("label",$._label).replace("href",$._href).replace("title",$._title).getRegex(),$.reflink=A($.reflink).replace("label",$._label).getRegex(),$.normal=E({},$),$.pedantic=E({},$.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",$._label).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",$._label).getRegex()}),$.gfm=E({},$.normal,{escape:A($.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/}),$.gfm.url=A($.gfm.url,"i").replace("email",$.gfm._extended_email).getRegex(),$.breaks=E({},$.gfm,{br:A($.br).replace("{2,}","*").getRegex(),text:A($.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var R={block:L,inline:$};const{defaults:C}=t,{block:I,inline:q}=R;function M(t){return t.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function P(t){let e,n,i="";const s=t.length;for(e=0;e<s;e++)n=t.charCodeAt(e),Math.random()>.5&&(n="x"+n.toString(16)),i+="&#"+n+";";return i}var N=class t{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||C,this.options.tokenizer=this.options.tokenizer||new T,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;const e={block:I.normal,inline:q.normal};this.options.pedantic?(e.block=I.pedantic,e.inline=q.pedantic):this.options.gfm&&(e.block=I.gfm,this.options.breaks?e.inline=q.breaks:e.inline=q.gfm),this.tokenizer.rules=e}static get rules(){return{block:I,inline:q}}static lex(e,n){return new t(n).lex(e)}lex(t){return t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(t,this.tokens,!0),this.inline(this.tokens),this.tokens}blockTokens(t,e=[],n=!0){let i,s,r;for(t=t.replace(/^ +$/gm,"");t;)if(i=this.tokenizer.space(t))t=t.substring(i.raw.length),i.type&&e.push(i);else if(i=this.tokenizer.code(t,e))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.fences(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.heading(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.nptable(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.hr(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.blockquote(t))t=t.substring(i.raw.length),i.tokens=this.blockTokens(i.text,[],n),e.push(i);else if(i=this.tokenizer.list(t)){for(t=t.substring(i.raw.length),r=i.items.length,s=0;s<r;s++)i.items[s].tokens=this.blockTokens(i.items[s].text,[],!1);e.push(i)}else if(i=this.tokenizer.html(t))t=t.substring(i.raw.length),e.push(i);else if(n&&(i=this.tokenizer.def(t)))t=t.substring(i.raw.length),this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});else if(i=this.tokenizer.table(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.lheading(t))t=t.substring(i.raw.length),e.push(i);else if(n&&(i=this.tokenizer.paragraph(t)))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.text(t))t=t.substring(i.raw.length),e.push(i);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}return e}inline(t){let e,n,i,s,r,a;const l=t.length;for(e=0;e<l;e++)switch(a=t[e],a.type){case"paragraph":case"text":case"heading":a.tokens=[],this.inlineTokens(a.text,a.tokens);break;case"table":for(a.tokens={header:[],cells:[]},s=a.header.length,n=0;n<s;n++)a.tokens.header[n]=[],this.inlineTokens(a.header[n],a.tokens.header[n]);for(s=a.cells.length,n=0;n<s;n++)for(r=a.cells[n],a.tokens.cells[n]=[],i=0;i<r.length;i++)a.tokens.cells[n][i]=[],this.inlineTokens(r[i],a.tokens.cells[n][i]);break;case"blockquote":this.inline(a.tokens);break;case"list":for(s=a.items.length,n=0;n<s;n++)this.inline(a.items[n].tokens)}return t}inlineTokens(t,e=[],n=!1,i=!1){let s;for(;t;)if(s=this.tokenizer.escape(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.tag(t,n,i))t=t.substring(s.raw.length),n=s.inLink,i=s.inRawBlock,e.push(s);else if(s=this.tokenizer.link(t))t=t.substring(s.raw.length),"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,i)),e.push(s);else if(s=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(s.raw.length),"link"===s.type&&(s.tokens=this.inlineTokens(s.text,[],!0,i)),e.push(s);else if(s=this.tokenizer.strong(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.em(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.codespan(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.br(t))t=t.substring(s.raw.length),e.push(s);else if(s=this.tokenizer.del(t))t=t.substring(s.raw.length),s.tokens=this.inlineTokens(s.text,[],n,i),e.push(s);else if(s=this.tokenizer.autolink(t,P))t=t.substring(s.raw.length),e.push(s);else if(n||!(s=this.tokenizer.url(t,P))){if(s=this.tokenizer.inlineText(t,i,M))t=t.substring(s.raw.length),e.push(s);else if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw new Error(e)}}else t=t.substring(s.raw.length),e.push(s);return e}};const{defaults:O}=t,{cleanUrl:D,escape:U}=b;var Z=class{constructor(t){this.options=t||O}code(t,e,n){const i=(e||"").match(/\S*/)[0];if(this.options.highlight){const e=this.options.highlight(t,i);null!=e&&e!==t&&(n=!0,t=e)}return i?'<pre><code class="'+this.options.langPrefix+U(i,!0)+'">'+(n?t:U(t,!0))+"</code></pre>\n":"<pre><code>"+(n?t:U(t,!0))+"</code></pre>"}blockquote(t){return"<blockquote>\n"+t+"</blockquote>\n"}html(t){return t}heading(t,e,n,i){return this.options.headerIds?"<h"+e+' id="'+this.options.headerPrefix+i.slug(n)+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(t,e,n){const i=e?"ol":"ul";return"<"+i+(e&&1!==n?' start="'+n+'"':"")+">\n"+t+"</"+i+">\n"}listitem(t){return"<li>"+t+"</li>\n"}checkbox(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(t){return"<p>"+t+"</p>\n"}table(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"}tablerow(t){return"<tr>\n"+t+"</tr>\n"}tablecell(t,e){const n=e.header?"th":"td";return(e.align?"<"+n+' align="'+e.align+'">':"<"+n+">")+t+"</"+n+">\n"}strong(t){return"<strong>"+t+"</strong>"}em(t){return"<em>"+t+"</em>"}codespan(t){return"<code>"+t+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(t){return"<del>"+t+"</del>"}link(t,e,n){if(null===(t=D(this.options.sanitize,this.options.baseUrl,t)))return n;let i='<a href="'+U(t)+'"';return e&&(i+=' title="'+e+'"'),i+=">"+n+"</a>",i}image(t,e,n){if(null===(t=D(this.options.sanitize,this.options.baseUrl,t)))return n;let i='<img src="'+t+'" alt="'+n+'"';return e&&(i+=' title="'+e+'"'),i+=this.options.xhtml?"/>":">",i}text(t){return t}},j=class{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,n){return""+n}image(t,e,n){return""+n}br(){return""}},J=class{constructor(){this.seen={}}slug(t){let e=t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(e)){const t=e;do{this.seen[t]++,e=t+"-"+this.seen[t]}while(this.seen.hasOwnProperty(e))}return this.seen[e]=0,e}};const{defaults:H}=t,{unescape:K}=b;var B=class t{constructor(t){this.options=t||H,this.options.renderer=this.options.renderer||new Z,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new j,this.slugger=new J}static parse(e,n){return new t(n).parse(e)}parse(t,e=!0){let n,i,s,r,a,l,o,c,d,u,p,h,g,m,f,k,b,y,w="";const x=t.length;for(n=0;n<x;n++)switch(u=t[n],u.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(u.tokens),u.depth,K(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(c="",o="",r=u.header.length,i=0;i<r;i++)o+=this.renderer.tablecell(this.parseInline(u.tokens.header[i]),{header:!0,align:u.align[i]});for(c+=this.renderer.tablerow(o),d="",r=u.cells.length,i=0;i<r;i++){for(l=u.tokens.cells[i],o="",a=l.length,s=0;s<a;s++)o+=this.renderer.tablecell(this.parseInline(l[s]),{header:!1,align:u.align[s]});d+=this.renderer.tablerow(o)}w+=this.renderer.table(c,d);continue;case"blockquote":d=this.parse(u.tokens),w+=this.renderer.blockquote(d);continue;case"list":for(p=u.ordered,h=u.start,g=u.loose,r=u.items.length,d="",i=0;i<r;i++)f=u.items[i],k=f.checked,b=f.task,m="",f.task&&(y=this.renderer.checkbox(k),g?"text"===f.tokens[0].type?(f.tokens[0].text=y+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&"text"===f.tokens[0].tokens[0].type&&(f.tokens[0].tokens[0].text=y+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:y}):m+=y),m+=this.parse(f.tokens,g),d+=this.renderer.listitem(m,b,k);w+=this.renderer.list(d,p,h);continue;case"html":w+=this.renderer.html(u.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(d=u.tokens?this.parseInline(u.tokens):u.text;n+1<x&&"text"===t[n+1].type;)u=t[++n],d+="\n"+(u.tokens?this.parseInline(u.tokens):u.text);w+=e?this.renderer.paragraph(d):d;continue;default:{const t='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(t);throw new Error(t)}}return w}parseInline(t,e){e=e||this.renderer;let n,i,s="";const r=t.length;for(n=0;n<r;n++)switch(i=t[n],i.type){case"escape":s+=e.text(i.text);break;case"html":s+=e.html(i.text);break;case"link":s+=e.link(i.href,i.title,this.parseInline(i.tokens,e));break;case"image":s+=e.image(i.href,i.title,i.text);break;case"strong":s+=e.strong(this.parseInline(i.tokens,e));break;case"em":s+=e.em(this.parseInline(i.tokens,e));break;case"codespan":s+=e.codespan(i.text);break;case"br":s+=e.br();break;case"del":s+=e.del(this.parseInline(i.tokens,e));break;case"text":s+=e.text(i.text);break;default:{const t='Token with "'+i.type+'" type was not found.';if(this.options.silent)return void console.error(t);throw new Error(t)}}return s}};const{merge:V,checkSanitizeDeprecation:W,escape:F}=b,{getDefaults:Y,changeDefaults:X,defaults:G}=t;function Q(t,e,n){if(null==t)throw new Error("marked(): input parameter is undefined or null");if("string"!=typeof t)throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected");if(n||"function"==typeof e){n||(n=e,e=null),e=V({},Q.defaults,e||{}),W(e);const i=e.highlight;let s,r,a=0;try{s=N.lex(t,e)}catch(t){return n(t)}r=s.length;const l=function(t){if(t)return e.highlight=i,n(t);let r;try{r=B.parse(s,e)}catch(e){t=e}return e.highlight=i,t?n(t):n(null,r)};if(!i||i.length<3)return l();if(delete e.highlight,!r)return l();for(;a<s.length;a++)!function(t){"code"!==t.type?--r||l():i(t.text,t.lang,(function(e,n){return e?l(e):null==n||n===t.text?--r||l():(t.text=n,t.escaped=!0,void(--r||l()))}))}(s[a])}else try{return e=V({},Q.defaults,e||{}),W(e),B.parse(N.lex(t,e),e)}catch(t){if(t.message+="\nPlease report this to https://github.com/markedjs/marked.",(e||Q.defaults).silent)return"<p>An error occurred:</p><pre>"+F(t.message+"",!0)+"</pre>";throw t}}Q.options=Q.setOptions=function(t){return V(Q.defaults,t),X(Q.defaults),Q},Q.getDefaults=Y,Q.defaults=G,Q.use=function(t){const e=V({},t);if(t.renderer){const n=Q.defaults.renderer||new Z;for(const e in t.renderer){const i=n[e];n[e]=(...s)=>{let r=t.renderer[e].apply(n,s);return!1===r&&(r=i.apply(n,s)),r}}e.renderer=n}if(t.tokenizer){const n=Q.defaults.tokenizer||new T;for(const e in t.tokenizer){const i=n[e];n[e]=(...s)=>{let r=t.tokenizer[e].apply(n,s);return!1===r&&(r=i.apply(n,s)),r}}e.tokenizer=n}Q.setOptions(e)},Q.Parser=B,Q.parser=B.parse,Q.Renderer=Z,Q.TextRenderer=j,Q.Lexer=N,Q.lexer=N.lex,Q.Tokenizer=T,Q.Slugger=J,Q.parse=Q;var tt=Q;return function(){var t,e=null;function n(){var n;!e||e.closed?((e=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).marked=tt,e.document.write("<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>reveal.js - Speaker View</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: Helvetica;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t#current-slide,\n\t\t\t#upcoming-slide,\n\t\t\t#speaker-controls {\n\t\t\t\tpadding: 6px;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\t-moz-box-sizing: border-box;\n\t\t\t}\n\n\t\t\t#current-slide iframe,\n\t\t\t#upcoming-slide iframe {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tborder: 1px solid #ddd;\n\t\t\t}\n\n\t\t\t#current-slide .label,\n\t\t\t#upcoming-slide .label {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tleft: 10px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t#connection-status {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tz-index: 20;\n\t\t\t\tpadding: 30% 20% 20% 20%;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tcolor: #222;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttext-align: center;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tline-height: 1.4;\n\t\t\t}\n\n\t\t\t.overlay-element {\n\t\t\t\theight: 34px;\n\t\t\t\tline-height: 34px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tbackground: rgba( 220, 220, 220, 0.8 );\n\t\t\t\tcolor: #222;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\n\t\t\t.overlay-element.interactive:hover {\n\t\t\t\tbackground: rgba( 220, 220, 220, 1 );\n\t\t\t}\n\n\t\t\t#current-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tpadding-right: 0;\n\t\t\t}\n\n\t\t\t#upcoming-slide {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 40%;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\n\t\t\t/* Speaker controls */\n\t\t\t#speaker-controls {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 40%;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 40%;\n\t\t\t\theight: 60%;\n\t\t\t\toverflow: auto;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t\t.speaker-controls-time.hidden,\n\t\t\t\t.speaker-controls-notes.hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .label,\n\t\t\t\t.speaker-controls-pace .label,\n\t\t\t\t.speaker-controls-notes .label {\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\tfont-size: 0.66em;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time, .speaker-controls-pace {\n\t\t\t\t\tborder-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n\t\t\t\t\tmargin-bottom: 10px;\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t\tpadding-bottom: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .reset-button {\n\t\t\t\t\topacity: 0;\n\t\t\t\t\tfloat: right;\n\t\t\t\t\tcolor: #666;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\t.speaker-controls-time:hover .reset-button {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\twidth: 50%;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer,\n\t\t\t\t.speaker-controls-time .clock,\n\t\t\t\t.speaker-controls-time .pacing .hours-value,\n\t\t\t\t.speaker-controls-time .pacing .minutes-value,\n\t\t\t\t.speaker-controls-time .pacing .seconds-value {\n\t\t\t\t\tfont-size: 1.9em;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .timer {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .clock {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\ttext-align: right;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time span.mute {\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing-title {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.ahead {\n\t\t\t\t\tcolor: blue;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.on-track {\n\t\t\t\t\tcolor: green;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-time .pacing.behind {\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes {\n\t\t\t\t\tpadding: 10px 16px;\n\t\t\t\t}\n\n\t\t\t\t.speaker-controls-notes .value {\n\t\t\t\t\tmargin-top: 5px;\n\t\t\t\t\tline-height: 1.4;\n\t\t\t\t\tfont-size: 1.2em;\n\t\t\t\t}\n\n\t\t\t/* Layout selector */\n\t\t\t#speaker-layout {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 10px;\n\t\t\t\tright: 10px;\n\t\t\t\tcolor: #222;\n\t\t\t\tz-index: 10;\n\t\t\t}\n\t\t\t\t#speaker-layout select {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tbox-shadow: 0;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\topacity: 0;\n\n\t\t\t\t\tfont-size: 1em;\n\t\t\t\t\tbackground-color: transparent;\n\n\t\t\t\t\t-moz-appearance: none;\n\t\t\t\t\t-webkit-appearance: none;\n\t\t\t\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\t\t\t\t}\n\n\t\t\t\t#speaker-layout select:focus {\n\t\t\t\t\toutline: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t}\n\n\t\t\t.clear {\n\t\t\t\tclear: both;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Wide */\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\twidth: 50%;\n\t\t\t\theight: 45%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #upcoming-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"wide\"] #speaker-controls {\n\t\t\t\ttop: 45%;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 50%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Tall */\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\twidth: 45%;\n\t\t\t\theight: 50%;\n\t\t\t\tpadding: 6px;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #current-slide {\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #upcoming-slide {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"tall\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 45%;\n\t\t\t\twidth: 55%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t/* Speaker layout: Notes only */\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #current-slide,\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\tbody[data-speaker-layout=\"notes-only\"] #speaker-controls {\n\t\t\t\tpadding-top: 40px;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tfont-size: 1.25em;\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 1080px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 900px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media screen and (max-width: 800px) {\n\t\t\t\tbody[data-speaker-layout=\"default\"] #speaker-controls {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t</style>\n\t</head>\n\n\t<body>\n\n\t\t<div id=\"connection-status\">Loading speaker view...</div>\n\n\t\t<div id=\"current-slide\"></div>\n\t\t<div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n\t\t<div id=\"speaker-controls\">\n\t\t\t<div class=\"speaker-controls-time\">\n\t\t\t\t<h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n\t\t\t\t<div class=\"clock\">\n\t\t\t\t\t<span class=\"clock-value\">0:00 AM</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timer\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"clear\"></div>\n\n\t\t\t\t<h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n\t\t\t\t<div class=\"pacing\" style=\"display: none\">\n\t\t\t\t\t<span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"speaker-controls-notes hidden\">\n\t\t\t\t<h4 class=\"label\">Notes</h4>\n\t\t\t\t<div class=\"value\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div id=\"speaker-layout\" class=\"overlay-element interactive\">\n\t\t\t<span class=\"speaker-layout-label\"></span>\n\t\t\t<select class=\"speaker-layout-dropdown\"></select>\n\t\t</div>\n\n\t\t<script>\n\n\t\t\t(function() {\n\n\t\t\t\tvar notes,\n\t\t\t\t\tnotesValue,\n\t\t\t\t\tcurrentState,\n\t\t\t\t\tcurrentSlide,\n\t\t\t\t\tupcomingSlide,\n\t\t\t\t\tlayoutLabel,\n\t\t\t\t\tlayoutDropdown,\n\t\t\t\t\tpendingCalls = {},\n\t\t\t\t\tlastRevealApiCallId = 0,\n\t\t\t\t\tconnected = false;\n\n\t\t\t\tvar SPEAKER_LAYOUTS = {\n\t\t\t\t\t'default': 'Default',\n\t\t\t\t\t'wide': 'Wide',\n\t\t\t\t\t'tall': 'Tall',\n\t\t\t\t\t'notes-only': 'Notes only'\n\t\t\t\t};\n\n\t\t\t\tsetupLayout();\n\n\t\t\t\tvar connectionStatus = document.querySelector( '#connection-status' );\n\t\t\t\tvar connectionTimeout = setTimeout( function() {\n\t\t\t\t\tconnectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n\t\t\t\t}, 5000 );\n\n\t\t\t\twindow.addEventListener( 'message', function( event ) {\n\n\t\t\t\t\tclearTimeout( connectionTimeout );\n\t\t\t\t\tconnectionStatus.style.display = 'none';\n\n\t\t\t\t\tvar data = JSON.parse( event.data );\n\n\t\t\t\t\t// The overview mode is only useful to the reveal.js instance\n\t\t\t\t\t// where navigation occurs so we don't sync it\n\t\t\t\t\tif( data.state ) delete data.state.overview;\n\n\t\t\t\t\t// Messages sent by the notes plugin inside of the main window\n\t\t\t\t\tif( data && data.namespace === 'reveal-notes' ) {\n\t\t\t\t\t\tif( data.type === 'connect' ) {\n\t\t\t\t\t\t\thandleConnectMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'state' ) {\n\t\t\t\t\t\t\thandleStateMessage( data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( data.type === 'return' ) {\n\t\t\t\t\t\t\tpendingCalls[data.callId](data.result);\n\t\t\t\t\t\t\tdelete pendingCalls[data.callId];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Messages sent by the reveal.js inside of the current slide preview\n\t\t\t\t\telse if( data && data.namespace === 'reveal' ) {\n\t\t\t\t\t\tif( /ready/.test( data.eventName ) ) {\n\t\t\t\t\t\t\t// Send a message back to notify that the handshake is complete\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n\n\t\t\t\t\t\t\twindow.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Asynchronously calls the Reveal.js API of the main frame.\n\t\t\t\t */\n\t\t\t\tfunction callRevealApi( methodName, methodArguments, callback ) {\n\n\t\t\t\t\tvar callId = ++lastRevealApiCallId;\n\t\t\t\t\tpendingCalls[callId] = callback;\n\t\t\t\t\twindow.opener.postMessage( JSON.stringify( {\n\t\t\t\t\t\tnamespace: 'reveal-notes',\n\t\t\t\t\t\ttype: 'call',\n\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\tmethodName: methodName,\n\t\t\t\t\t\targuments: methodArguments\n\t\t\t\t\t} ), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window is trying to establish a\n\t\t\t\t * connection.\n\t\t\t\t */\n\t\t\t\tfunction handleConnectMessage( data ) {\n\n\t\t\t\t\tif( connected === false ) {\n\t\t\t\t\t\tconnected = true;\n\n\t\t\t\t\t\tsetupIframes( data );\n\t\t\t\t\t\tsetupKeyboard();\n\t\t\t\t\t\tsetupNotes();\n\t\t\t\t\t\tsetupTimer();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Called when the main window sends an updated state.\n\t\t\t\t */\n\t\t\t\tfunction handleStateMessage( data ) {\n\n\t\t\t\t\tconsole.log(marked);\n\n\t\t\t\t\t// Store the most recently set state to avoid circular loops\n\t\t\t\t\t// applying the same state\n\t\t\t\t\tcurrentState = JSON.stringify( data.state );\n\n\t\t\t\t\t// No need for updating the notes in case of fragment changes\n\t\t\t\t\tif ( data.notes ) {\n\t\t\t\t\t\tnotes.classList.remove( 'hidden' );\n\t\t\t\t\t\tnotesValue.style.whiteSpace = data.whitespace;\n\t\t\t\t\t\tif( data.markdown ) {\n\t\t\t\t\t\t\tnotesValue.innerHTML = marked( data.notes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesValue.innerHTML = data.notes;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnotes.classList.add( 'hidden' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Update the note slides\n\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n\t\t\t\t\tupcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit to max one state update per X ms\n\t\t\t\thandleStateMessage = debounce( handleStateMessage, 200 );\n\n\t\t\t\t/**\n\t\t\t\t * Forward keyboard events to the current slide window.\n\t\t\t\t * This enables keyboard events to work even if focus\n\t\t\t\t * isn't set on the current slide iframe.\n\t\t\t\t *\n\t\t\t\t * Block F5 default handling, it reloads and disconnects\n\t\t\t\t * the speaker notes window.\n\t\t\t\t */\n\t\t\t\tfunction setupKeyboard() {\n\n\t\t\t\t\tdocument.addEventListener( 'keydown', function( event ) {\n\t\t\t\t\t\tif( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Creates the preview iframes.\n\t\t\t\t */\n\t\t\t\tfunction setupIframes( data ) {\n\n\t\t\t\t\tvar params = [\n\t\t\t\t\t\t'receiver',\n\t\t\t\t\t\t'progress=false',\n\t\t\t\t\t\t'history=false',\n\t\t\t\t\t\t'transition=none',\n\t\t\t\t\t\t'autoSlide=0',\n\t\t\t\t\t\t'backgroundTransition=none'\n\t\t\t\t\t].join( '&' );\n\n\t\t\t\t\tvar urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n\t\t\t\t\tvar hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n\t\t\t\t\tvar currentURL = data.url + urlSeparator + params + '&postMessageEvents=true' + hash;\n\t\t\t\t\tvar upcomingURL = data.url + urlSeparator + params + '&controls=false' + hash;\n\n\t\t\t\t\tcurrentSlide = document.createElement( 'iframe' );\n\t\t\t\t\tcurrentSlide.setAttribute( 'width', 1280 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'height', 1024 );\n\t\t\t\t\tcurrentSlide.setAttribute( 'src', currentURL );\n\t\t\t\t\tdocument.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n\t\t\t\t\tupcomingSlide = document.createElement( 'iframe' );\n\t\t\t\t\tupcomingSlide.setAttribute( 'width', 640 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'height', 512 );\n\t\t\t\t\tupcomingSlide.setAttribute( 'src', upcomingURL );\n\t\t\t\t\tdocument.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Setup the notes UI.\n\t\t\t\t */\n\t\t\t\tfunction setupNotes() {\n\n\t\t\t\t\tnotes = document.querySelector( '.speaker-controls-notes' );\n\t\t\t\t\tnotesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n\t\t\t\t}\n\n\t\t\t\tfunction getTimings( callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n\t\t\t\t\t\tcallRevealApi( 'getConfig', [], function ( config ) {\n\t\t\t\t\t\t\tvar totalTime = config.totalTime;\n\t\t\t\t\t\t\tvar minTimePerSlide = config.minimumTimePerSlide || 0;\n\t\t\t\t\t\t\tvar defaultTiming = config.defaultTiming;\n\t\t\t\t\t\t\tif ((defaultTiming == null) && (totalTime == null)) {\n\t\t\t\t\t\t\t\tcallback(null);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Setting totalTime overrides defaultTiming\n\t\t\t\t\t\t\tif (totalTime) {\n\t\t\t\t\t\t\t\tdefaultTiming = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar timings = [];\n\t\t\t\t\t\t\tfor ( var i in slideAttributes ) {\n\t\t\t\t\t\t\t\tvar slide = slideAttributes[ i ];\n\t\t\t\t\t\t\t\tvar timing = defaultTiming;\n\t\t\t\t\t\t\t\tif( slide.hasOwnProperty( 'data-timing' )) {\n\t\t\t\t\t\t\t\t\tvar t = slide[ 'data-timing' ];\n\t\t\t\t\t\t\t\t\ttiming = parseInt(t);\n\t\t\t\t\t\t\t\t\tif( isNaN(timing) ) {\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n\t\t\t\t\t\t\t\t\t\ttiming = defaultTiming;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttimings.push(timing);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( totalTime ) {\n\t\t\t\t\t\t\t\t// After we've allocated time to individual slides, we summarize it and\n\t\t\t\t\t\t\t\t// subtract it from the total time\n\t\t\t\t\t\t\t\tvar remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n\t\t\t\t\t\t\t\t// The remaining time is divided by the number of slides that have 0 seconds\n\t\t\t\t\t\t\t\t// allocated at the moment, giving the average time-per-slide on the remaining slides\n\t\t\t\t\t\t\t\tvar remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n\t\t\t\t\t\t\t\tvar timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n\t\t\t\t\t\t\t\t// And now we replace every zero-value timing with that average\n\t\t\t\t\t\t\t\ttimings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n\t\t\t\t\t\t\tif ( slidesUnderMinimum ) {\n\t\t\t\t\t\t\t\tmessage = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n\t\t\t\t\t\t\t\talert(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback( timings );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Return the number of seconds allocated for presenting\n\t\t\t\t * all slides up to and including this one.\n\t\t\t\t */\n\t\t\t\tfunction getTimeAllocated( timings, callback ) {\n\n\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\tvar allocated = 0;\n\t\t\t\t\t\tfor (var i in timings.slice(0, currentSlide + 1)) {\n\t\t\t\t\t\t\tallocated += timings[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback( allocated );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Create the timer and clock and start updating them\n\t\t\t\t * at an interval.\n\t\t\t\t */\n\t\t\t\tfunction setupTimer() {\n\n\t\t\t\t\tvar start = new Date(),\n\t\t\t\t\ttimeEl = document.querySelector( '.speaker-controls-time' ),\n\t\t\t\t\tclockEl = timeEl.querySelector( '.clock-value' ),\n\t\t\t\t\thoursEl = timeEl.querySelector( '.hours-value' ),\n\t\t\t\t\tminutesEl = timeEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tsecondsEl = timeEl.querySelector( '.seconds-value' ),\n\t\t\t\t\tpacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n\t\t\t\t\tpacingEl = timeEl.querySelector( '.pacing' ),\n\t\t\t\t\tpacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n\t\t\t\t\tpacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n\t\t\t\t\tpacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n\t\t\t\t\tvar timings = null;\n\t\t\t\t\tgetTimings( function ( _timings ) {\n\n\t\t\t\t\t\ttimings = _timings;\n\t\t\t\t\t\tif (_timings !== null) {\n\t\t\t\t\t\t\tpacingTitleEl.style.removeProperty('display');\n\t\t\t\t\t\t\tpacingEl.style.removeProperty('display');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update once directly\n\t\t\t\t\t\t_updateTimer();\n\n\t\t\t\t\t\t// Then update every second\n\t\t\t\t\t\tsetInterval( _updateTimer, 1000 );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tfunction _resetTimer() {\n\n\t\t\t\t\t\tif (timings == null) {\n\t\t\t\t\t\t\tstart = new Date();\n\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Reset timer to beginning of current slide\n\t\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\t\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\t\tvar previousSlidesTiming = slideEndTiming - currentSlideTiming;\n\t\t\t\t\t\t\t\t\tvar now = new Date();\n\t\t\t\t\t\t\t\t\tstart = new Date(now.getTime() - previousSlidesTiming);\n\t\t\t\t\t\t\t\t\t_updateTimer();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeEl.addEventListener( 'click', function() {\n\t\t\t\t\t\t_resetTimer();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t\tfunction _displayTime( hrEl, minEl, secEl, time) {\n\n\t\t\t\t\t\tvar sign = Math.sign(time) == -1 ? \"-\" : \"\";\n\t\t\t\t\t\ttime = Math.abs(Math.round(time / 1000));\n\t\t\t\t\t\tvar seconds = time % 60;\n\t\t\t\t\t\tvar minutes = Math.floor( time / 60 ) % 60 ;\n\t\t\t\t\t\tvar hours = Math.floor( time / ( 60 * 60 )) ;\n\t\t\t\t\t\thrEl.innerHTML = sign + zeroPadInteger( hours );\n\t\t\t\t\t\tif (hours == 0) {\n\t\t\t\t\t\t\thrEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thrEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tminEl.innerHTML = ':' + zeroPadInteger( minutes );\n\t\t\t\t\t\tif (hours == 0 && minutes == 0) {\n\t\t\t\t\t\t\tminEl.classList.add( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tminEl.classList.remove( 'mute' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecEl.innerHTML = ':' + zeroPadInteger( seconds );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updateTimer() {\n\n\t\t\t\t\t\tvar diff, hours, minutes, seconds,\n\t\t\t\t\t\tnow = new Date();\n\n\t\t\t\t\t\tdiff = now.getTime() - start.getTime();\n\n\t\t\t\t\t\tclockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n\t\t\t\t\t\t_displayTime( hoursEl, minutesEl, secondsEl, diff );\n\t\t\t\t\t\tif (timings !== null) {\n\t\t\t\t\t\t\t_updatePacing(diff);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _updatePacing(diff) {\n\n\t\t\t\t\t\tgetTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n\t\t\t\t\t\t\tvar slideEndTiming = slideEndTimingSeconds * 1000;\n\n\t\t\t\t\t\t\tcallRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n\t\t\t\t\t\t\t\tvar currentSlideTiming = timings[currentSlide] * 1000;\n\t\t\t\t\t\t\t\tvar timeLeftCurrentSlide = slideEndTiming - diff;\n\t\t\t\t\t\t\t\tif (timeLeftCurrentSlide < 0) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing behind';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (timeLeftCurrentSlide < currentSlideTiming) {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing on-track';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tpacingEl.className = 'pacing ahead';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t_displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the speaker view layout and layout selector.\n\t\t\t\t */\n\t\t\t\tfunction setupLayout() {\n\n\t\t\t\t\tlayoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n\t\t\t\t\tlayoutLabel = document.querySelector( '.speaker-layout-label' );\n\n\t\t\t\t\t// Render the list of available layouts\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\tvar option = document.createElement( 'option' );\n\t\t\t\t\t\toption.setAttribute( 'value', id );\n\t\t\t\t\t\toption.textContent = SPEAKER_LAYOUTS[ id ];\n\t\t\t\t\t\tlayoutDropdown.appendChild( option );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Monitor the dropdown for changes\n\t\t\t\t\tlayoutDropdown.addEventListener( 'change', function( event ) {\n\n\t\t\t\t\t\tsetLayout( layoutDropdown.value );\n\n\t\t\t\t\t}, false );\n\n\t\t\t\t\t// Restore any currently persisted layout\n\t\t\t\t\tsetLayout( getLayout() );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets a new speaker view layout. The layout is persisted\n\t\t\t\t * in local storage.\n\t\t\t\t */\n\t\t\t\tfunction setLayout( value ) {\n\n\t\t\t\t\tvar title = SPEAKER_LAYOUTS[ value ];\n\n\t\t\t\t\tlayoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n\t\t\t\t\tlayoutDropdown.value = value;\n\n\t\t\t\t\tdocument.body.setAttribute( 'data-speaker-layout', value );\n\n\t\t\t\t\t// Persist locally\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\twindow.localStorage.setItem( 'reveal-speaker-layout', value );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Returns the ID of the most recently set speaker layout\n\t\t\t\t * or our default layout if none has been set.\n\t\t\t\t */\n\t\t\t\tfunction getLayout() {\n\n\t\t\t\t\tif( supportsLocalStorage() ) {\n\t\t\t\t\t\tvar layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n\t\t\t\t\t\tif( layout ) {\n\t\t\t\t\t\t\treturn layout;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Default to the first record in the layouts hash\n\t\t\t\t\tfor( var id in SPEAKER_LAYOUTS ) {\n\t\t\t\t\t\treturn id;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction supportsLocalStorage() {\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlocalStorage.setItem('test', 'test');\n\t\t\t\t\t\tlocalStorage.removeItem('test');\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch( e ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfunction zeroPadInteger( num ) {\n\n\t\t\t\t\tvar str = '00' + parseInt( num );\n\t\t\t\t\treturn str.substring( str.length - 2 );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Limits the frequency at which a function can be called.\n\t\t\t\t */\n\t\t\t\tfunction debounce( fn, ms ) {\n\n\t\t\t\t\tvar lastTime = 0,\n\t\t\t\t\t\ttimeout;\n\n\t\t\t\t\treturn function() {\n\n\t\t\t\t\t\tvar args = arguments;\n\t\t\t\t\t\tvar context = this;\n\n\t\t\t\t\t\tclearTimeout( timeout );\n\n\t\t\t\t\t\tvar timeSinceLastCall = Date.now() - lastTime;\n\t\t\t\t\t\tif( timeSinceLastCall > ms ) {\n\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttimeout = setTimeout( function() {\n\t\t\t\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t\t\t\t\tlastTime = Date.now();\n\t\t\t\t\t\t\t}, ms - timeSinceLastCall );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t})();\n\n\t\t<\/script>\n\t</body>\n</html>"),e?(n=setInterval((function(){e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:t.getState()}),"*")}),500),window.addEventListener("message",(function(s){var r,a,l,o,c=JSON.parse(s.data);c&&"reveal-notes"===c.namespace&&"connected"===c.type&&(clearInterval(n),t.on("slidechanged",i),t.on("fragmentshown",i),t.on("fragmenthidden",i),t.on("overviewhidden",i),t.on("overviewshown",i),t.on("paused",i),t.on("resumed",i),i()),c&&"reveal-notes"===c.namespace&&"call"===c.type&&(r=c.methodName,a=c.arguments,l=c.callId,o=t[r].apply(t,a),e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:o,callId:l}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):e.focus();function i(n){var i=t.getCurrentSlide(),s=i.querySelector("aside.notes"),r=i.querySelector(".current-fragment"),a={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:t.getState()};if(i.hasAttribute("data-notes")&&(a.notes=i.getAttribute("data-notes"),a.whitespace="pre-wrap"),r){var l=r.querySelector("aside.notes");l?s=l:r.hasAttribute("data-notes")&&(a.notes=r.getAttribute("data-notes"),a.whitespace="pre-wrap",s=null)}s&&(a.notes=s.innerHTML,a.markdown="string"==typeof s.getAttribute("data-markdown")),e.postMessage(JSON.stringify(a),"*")}}return{id:"notes",init:function(e){t=e,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),t.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}}));
diff --git a/plugin/notes/plugin.js b/plugin/notes/plugin.js
index 1a013ed..f1bede0 100644
--- a/plugin/notes/plugin.js
+++ b/plugin/notes/plugin.js
@@ -1,5 +1,7 @@
import speakerViewHTML from './speaker-view.html';
+import marked from 'marked'
+
/**
* Handles opening of and synchronization with the reveal.js
* notes window.
@@ -25,6 +27,7 @@ const Plugin = () => {
}
popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
+ popup.marked = marked;
popup.document.write( speakerViewHTML );
if( !popup ) {
diff --git a/plugin/notes/speaker-view.html b/plugin/notes/speaker-view.html
index 21d7620..b68fee4 100644
--- a/plugin/notes/speaker-view.html
+++ b/plugin/notes/speaker-view.html
@@ -334,7 +334,6 @@
<select class="speaker-layout-dropdown"></select>
</div>
- <script src="../../plugin/markdown/marked.js"></script>
<script>
(function() {