diff --git a/dist/reveal.min.js b/dist/reveal.min.js index 65a37309..69b52700 100644 --- a/dist/reveal.min.js +++ b/dist/reveal.min.js @@ -1,8 +1,8 @@ /*! -* reveal.js 4.0.0-dev (Mon Mar 30 2020) +* reveal.js 4.0.0-dev (Tue Mar 31 2020) * https://revealjs.com * MIT licensed * * Copyright (C) 2020 Hakim El Hattab, https://hakim.se */ -!function(e){var t={};function i(a){if(t[a])return t[a].exports;var s=t[a]={i:a,l:!1,exports:{}};return e[a].call(s.exports,s,s.exports,i),s.l=!0,s.exports}i.m=e,i.c=t,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(a,s,function(t){return e[t]}.bind(null,s));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){"use strict";i.r(t);const 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(let i in t)e[i]=t[i];return e},r=(e,t)=>Array.from(e.querySelectorAll(t)),o=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},l=(e,t)=>{e.style.transform=t},d=(e,t)=>{let i=e.parentNode;for(;i;){let e=i.matches||i.matchesSelector||i.msMatchesSelector;if(e&&e.call(i,t))return i;i=i.parentNode}return null},c=e=>{let 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},h=()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()});for(let t in e){let i=e[t];e[t]=o(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},u=navigator.userAgent,g=document.createElement("div"),v=/(iphone|ipod|ipad|android)/gi.test(u)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,p=/chrome/i.test(u)&&!/edge/i.test(u),m=/android/gi.test(u),f="zoom"in g.style&&!v&&(p||/Version\/[\d\.]+.*Safari/.test(u));class b{constructor(e){this.Reveal=e}shouldPreload(e){let t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e,t={}){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=>{let 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()});let i=e.slideBackgroundElement;if(i){i.style.display="block";let a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===i.hasAttribute("data-loaded")){i.setAttribute("data-loaded","true");let n=e.getAttribute("data-background-image"),r=e.getAttribute("data-background-video"),o=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(n)a.style.backgroundImage="url("+encodeURI(n)+")";else if(r&&!this.Reveal.isSpeakerNotes()){let e=document.createElement("video");o&&e.setAttribute("loop",""),l&&(e.muted=!0),v&&(e.muted=!0,e.autoplay=!0,e.setAttribute("playsinline","")),r.split(",").forEach(t=>{e.innerHTML+=''}),a.appendChild(e)}else if(s&&!0!==t.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",s),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",a.appendChild(e)}}let n=a.querySelector("iframe[data-src]");n&&this.shouldPreload(i)&&!/autoplay=(1|true|yes)/gi.test(s)&&n.getAttribute("src")!==s&&n.setAttribute("src",s)}}unload(e){e.style.display="none";let 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(){let e=(e,t,i)=>{r(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+t+'"]').forEach(t=>{let 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(d(e,".fragment")&&!d(e,".fragment.visible"))return;let t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!d(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(v){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.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=>{d(e,".fragment")&&!d(e,".fragment.visible")||this.startEmbeddedIframe({target:e})}),r(e,"iframe[data-src]").forEach(e=>{d(e,".fragment")&&!d(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){let t=!!d(e.target,"html"),i=!!d(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let t=e.target;if(t&&t.contentWindow){let i=!!d(e.target,"html"),a=!!d(e.target,".present");if(i&&a){let e=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!d(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,t={}){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 y{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){let 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(e=this.Reveal.getCurrentSlide()){let t,i=this.Reveal.getConfig(),a="h.v";if("function"==typeof i.slideNumber)t=i.slideNumber(e);else switch("string"==typeof i.slideNumber&&(a=i.slideNumber),/c/.test(a)||1!==this.Reveal.getHorizontalSlides().length||(a="c"),t=[],a){case"c":t.push(this.Reveal.getSlidePastCount(e)+1);break;case"c/t":t.push(this.Reveal.getSlidePastCount(e)+1,"/",this.Reveal.getTotalSlides());break;default:let i=this.Reveal.getIndices(e);t.push(i.h+1);let s="h/v"===a?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(s,i.v+1)}let s="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],s)}formatNumber(e,t,i,a="#"+this.Reveal.location.getHash()){return"number"!=typeof i||isNaN(i)?`\n\t\t\t\t\t${e}\n\t\t\t\t\t`:`\n\t\t\t\t\t${e}\n\t\t\t\t\t${t}\n\t\t\t\t\t${i}\n\t\t\t\t\t`}}const w=e=>{let 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)};let 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)};let 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)};let 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 A{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=>{let 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){let i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");let 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){let 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="";let 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);let s=a.backgroundColor;if(!s){let e=window.getComputedStyle(t);e&&e.backgroundColor&&(s=e.backgroundColor)}if(s){let t=w(s);t&&0!==t.a&&("string"==typeof(n=s)&&(n=w(n)),(n?(299*n.r+587*n.g+114*n.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}var n}update(e=!1){let 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"),oi.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"),ti.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);let e=a.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}let t=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,i=a.getAttribute("data-background-hash");i&&i===t&&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(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let 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));let r,o,l=this.element.offsetWidth,d=a.length;r="number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:d>1?(t-l)/(d-1):0,o=r*e.h*-1;let c,h,u=this.element.offsetHeight,g=s.length;c="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-u)/(g-1),h=g>0?c*e.v:0,this.element.style.backgroundPosition=o+"px "+-h+"px"}}}class R{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||c();let i=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";let a=this.Reveal.getSlides();i.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";let 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){let e=.8*i.duration,a=.2*i.duration;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{let 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="${a}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)),e.dataset.autoAnimateTarget=a},this),s.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${a}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;let 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);let o=this.getAutoAnimatableProperties("from",e,i),l=this.getAutoAnimatableProperties("to",t,i);if(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){let e=this.Reveal.getScale(),t={x:(o.x-l.x)/e,y:(o.y-l.y)/e,scaleX:o.width/l.width,scaleY:o.height/l.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let a=!1!==i.translate&&(0!==t.x||0!==t.y),s=!1!==i.scale&&(0!==t.scaleX||0!==t.scaleY);if(a||s){let e=[];a&&e.push(`translate(${t.x}px, ${t.y}px)`),s&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),o.styles.transform=e.join(" "),o.styles["transform-origin"]="top left",l.styles.transform="none"}}for(let e in l.styles){const t=l.styles[e],i=o.styles[e];t===i?delete l.styles[e]:(!0===t.explicitValue&&(l.styles[e]=t.value),!0===i.explicitValue&&(o.styles[e]=i.value))}let d="",c=Object.keys(l.styles);if(c.length>0){o.styles.transition="none",l.styles.transition=`all ${r.duration}s ${r.easing} ${r.delay}s`,l.styles["transition-property"]=c.join(", "),l.styles["will-change"]=c.join(", "),d='[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 d}getAutoAnimateOptions(e,t){let i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=n(i,t),e.closest&&e.parentNode){let t=e.parentNode.closest("[data-auto-animate-target]");t&&(i=this.getAutoAnimateOptions(t,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){let a={styles:[]};if(!1!==i.translate||!1!==i.scale){let e;e="function"==typeof i.measure?i.measure(t):t.getBoundingClientRect(),a.x=e.x,a.y=e.y,a.width=e.width,a.height=e.height}const s=getComputedStyle(t);return(i.styles||this.Reveal.getConfig().autoAnimateStyles).forEach(t=>{let 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}:s[t.property],""!==i&&(a.styles[t.property]=i)}),a}getAutoAnimatableElements(e,t){let 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){let i=[];const 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){const 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){let r={},o={};[].slice.call(t.querySelectorAll(a)).forEach((e,t)=>{const i=s(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))}),[].slice.call(i.querySelectorAll(a)).forEach((t,i)=>{const a=s(t);let l;if(o[a]=o[a]||[],o[a].push(t),r[a]){const e=o[a].length-1,t=r[a].length-1;r[a][e]?(l=r[a][e],r[a][e]=null):r[a][t]&&(l=r[a][t],r[a][t]=null)}l&&e.push({from:l,to:t,options:n})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{const 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 E{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(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let 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,t=!1){e=Array.from(e);let i=[],a=[],s=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else a.push([e])}),i=i.concat(a);let 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=>{let 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){let i={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){let s=0;if("number"!=typeof e){let t=this.sort(a.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.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){let s=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)),s||(i.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{let e=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),e&&(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(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,t=0){let i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){let a=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(a.length){if("number"!=typeof e){let t=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}e+=t;let s=this.update(e,a);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}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class S{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)});const e=70,t=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=t.width+e,this.overviewSlideHeight=t.height+e,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const i=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:i.h,indexv:i.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,t)=>{e.setAttribute("data-index-h",t),l(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),l(e,"translate3d(0, "+i*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{l(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),r(e,".slide-background").forEach((e,t)=>{l(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})})}update(){const 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=>{l(e,""),e.removeEventListener("click",this.onSlideClicked,!0)}),r(this.Reveal.getBackgroundsElement(),".slide-background").forEach(e=>{l(e,"")}),this.Reveal.transformSlides({overview:""});const 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();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){let e=parseInt(t.getAttribute("data-index-h"),10),i=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(e,i)}}}}class k{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["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Home , Shift ←"]="First slide",this.shortcuts["End , Shift →"]="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}onDocumentKeyPress(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}onDocumentKeyDown(e){let t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e))return!0;let i=e.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let s=document.activeElement&&"inherit"!==document.activeElement.contentEditable,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)return;let 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;let g="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),v=!1;if("object"==typeof t.keyboard)for(h in t.keyboard)if(parseInt(h,10)===i){let i=t.keyboard[h];"function"==typeof i?i.apply(null,[e]):"string"==typeof i&&"function"==typeof this.Reveal[i]&&this.Reveal[i].call(),v=!0}if(!1===v)for(h in this.bindings)if(parseInt(h,10)===i){let t=this.bindings[h].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof this.Reveal[t]&&this.Reveal[t].call(),v=!0}!1===v&&(v=!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()&&g?this.Reveal.prev():this.Reveal.left():76===i||39===i?d?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&g?this.Reveal.next():this.Reveal.right():75===i||38===i?!this.Reveal.overview.isActive()&&g?this.Reveal.prev():this.Reveal.up():74===i||40===i?!this.Reveal.overview.isActive()&&g?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?(()=>{let e=document.documentElement,t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)})():65===i?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):v=!1),v?e.preventDefault&&e.preventDefault():27!==i&&79!==i||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class L{constructor(e){this.Reveal=e,this.writeURLTimeout=0}readURL(){let 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){let e;try{e=document.getElementById(decodeURIComponent(n))}catch(e){}let a=!!i&&i.getAttribute("id")===n;if(e){if(!a){let t=this.Reveal.getIndices(e);this.Reveal.slide(t.h,t.v)}}else this.Reveal.slide(t.h||0,t.v||0)}else{let i,a=e.hashOneBasedIndex?1:0,n=parseInt(s[0],10)-a||0,r=parseInt(s[1],10)-a||0;e.fragmentInURL&&(i=parseInt(s[2],10),isNaN(i)&&(i=void 0)),n===t.h&&r===t.v&&void 0===i||this.Reveal.slide(n,r,i)}}writeURL(e){let t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!window.history?window.location.hash=this.getHash():t.hash?window.history.replaceState(null,null,"#"+this.getHash()):window.history.replaceState(null,null,window.location.pathname+window.location.search))}getHash(e){let t="/",i=e||this.Reveal.getCurrentSlide(),a=i?i.getAttribute("id"):null;a&&(a=encodeURIComponent(a));let s=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(s.f=void 0),"string"==typeof a&&a.length&&void 0===s.f)t="/"+a;else{let e=this.Reveal.getConfig().hashOneBasedIndex?1:0;(s.h>0||s.v>0||void 0!==s.f)&&(t+=s.h+e),(s.v>0||void 0!==s.f)&&(t+="/"+(s.v+e)),void 0!==s.f&&(t+="/"+s.f)}return t}}class x{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(){const e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`\n\t\t\t\n\t\t\t\n\t\t\t`,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(){let e=["touchstart","click"];m&&(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(){let 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")});let t=this.Reveal.getCurrentSlide();if(t){let e=this.Reveal.fragments.availableRoutes();e.prev&&this.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(t)?(e.prev&&this.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(e.prev&&this.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let t=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===t.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===t.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 C{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();let t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}const P=(e,t)=>{const 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))});const a=document.querySelector("head");a.insertBefore(i,a.lastChild)};class N{constructor(){this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e){return this.state="loading",new Promise(t=>{let i=[],a=0;if(e.forEach(e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):i.push(e))}),i.length){a=i.length;const e=e=>{"function"==typeof e.callback&&e.callback(),0==--a&&this.initPlugins().then(t)};i.forEach(t=>{t.id?(this.registerPlugin(t.id,t.plugin),e(t)):P(t.src,()=>e(t))})}else this.initPlugins().then(t)})}initPlugins(){return new Promise(e=>{let t=Object.keys(this.registeredPlugins).length;if(0===t)this.loadAsync().then(e);else{let i=()=>{0==--t&&this.loadAsync().then(e)};for(let e in this.registeredPlugins){let t=this.registeredPlugins[e];if("function"==typeof t.init){let e=t.init();e&&"function"==typeof e.then?e.then(i):i()}else i()}}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{e.id?(this.registerPlugin(e.id,e.plugin),"function"==typeof e.plugin.init&&e.plugin.init(),"function"==typeof e.callback&&e.callback()):P(e.src,e.callback)}),Promise.resolve()}registerPlugin(e,t){void 0===this.registeredPlugins[e]?(this.registeredPlugins[e]=t,"loaded"===this.state&&"function"==typeof t.init&&t.init()):console.warn('reveal.js: "'+e+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}}class M{constructor(e){this.Reveal=e}setupPDF(){let 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;c("@page{size:"+i+"px "+a+"px; margin: 0px;}"),c(".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);let 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")){let l=(i-s)/2,d=(a-n)/2,c=t.scrollHeight,h=Math.max(Math.ceil(c/a),1);h=Math.min(h,e.pdfMaxPagesPerSlide),(1===h&&e.center||t.classList.contains("center"))&&(d=Math.max((a-c)/2,0));let 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){let a=getSlideNotes(t);if(a){let t=8,s="string"==typeof e.showNotes?e.showNotes:"inline",n=document.createElement("div");n.classList.add("speaker-notes"),n.classList.add("speaker-notes-pdf"),n.setAttribute("data-layout",s),n.innerHTML=a,"separate-page"===s?u.parentNode.insertBefore(n,u.nextSibling):(n.style.left=t+"px",n.style.bottom=t+"px",n.style.width=i-2*t+"px",u.appendChild(n))}}if(o){let e=document.createElement("div");e.classList.add("slide-number"),e.classList.add("slide-number-pdf"),e.innerHTML=t.getAttribute("data-slide-number"),u.appendChild(e)}if(e.pdfSeparateFragments){let e,t,i=this.Reveal.fragments.sort(u.querySelectorAll(".fragment"),!0);i.forEach((function(i){e&&e.forEach((function(e){e.classList.remove("current-fragment")})),i.forEach((function(e){e.classList.add("visible","current-fragment")}),this);let a=u.cloneNode(!0);u.parentNode.insertBefore(a,(t||u).nextSibling),e=i,t=a}),this),i.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 I{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;let t=this.Reveal.getConfig();if(this.touchCaptured)isAndroid&&e.preventDefault();else{this.Reveal.onUserInput(e);let i=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){let s=i-this.touchStartX,n=a-this.touchStartY;s>40&&Math.abs(s)>Math.abs(n)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev()():this.Reveal.left()):s<-40&&Math.abs(s)>Math.abs(n)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev()():this.Reveal.next():this.Reveal.right()):n>40?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev()():this.Reveal.up()):n<-40&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide(currentSlide))&&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 T{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()||'No notes on this slide.')}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(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelector("aside.notes");return t?t.innerHTML:null}}class D{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){const t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){const 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(){let e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,a=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);const 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 B={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,history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!1,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:[]},H=function(e,t){const i={};let s,d,c,u,g,p,m=!1,w={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},P=[],H=1,z=new b(i),U=new y(i),O=new R(i),q=new A(i),K=new E(i),W=new S(i),V=new k(i),F=new L(i),j=new x(i),$=new C(i),X=new N(i),Y=new M(i),_=new I(i),J=new T(i),Q={layout:"",overview:""},Z={},G=0,ee=!1,te=0,ie=!1,ae=0,se=0,ne=-1,re=!1;function oe(){m=!0,function(){Z.slides.classList.add("no-transition"),v?Z.wrapper.classList.add("no-hover"):Z.wrapper.classList.remove("no-hover");q.render(),U.render(),j.render(),$.render(),J.render(),Z.pauseOverlay=((e,t,i,a="")=>{let s=e.querySelectorAll("."+i);for(let t=0;tResume presentation':null),Z.statusElement=function(){let e=Z.wrapper.querySelector(".aria-status");e||(e=document.createElement("div"),e.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"),Z.wrapper.appendChild(e));return e}(),Z.wrapper.setAttribute("role","application")}(),s.postMessage&&window.addEventListener("message",e=>{let t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t),t.method&&"function"==typeof i[t.method]))if(!1===a.test(t.method)){const e=i[t.method].apply(i,t.args);pe("callback",{method:t.method,result:e})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1),setInterval(()=>{0===Z.wrapper.scrollTop&&0===Z.wrapper.scrollLeft||(Z.wrapper.scrollTop=0,Z.wrapper.scrollLeft=0)},1e3),Fe().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"))})}),ce(),F.readURL(),q.update(!0),setTimeout(()=>{Z.slides.classList.remove("no-transition"),Z.wrapper.classList.add("ready"),ve({type:"ready",data:{indexh:d,indexv:c,currentSlide:g}})},1),Y.isPrintingPDF()&&(ue(),"complete"===document.readyState?Y.setupPDF():window.addEventListener("load",Y.setupPDF))}function le(e){Z.statusElement.textContent=e}function de(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let i=e.getAttribute("aria-hidden"),a="none"===window.getComputedStyle(e).display;"true"===i||a||Array.from(e.childNodes).forEach(e=>{t+=de(e)})}return t=t.trim(),""===t?"":t+" "}function ce(e){const t={...s};if("object"==typeof e&&n(s,e),!1===i.isReady())return;const a=Z.wrapper.querySelectorAll(".slides section").length;Z.wrapper.classList.remove(t.transition),Z.wrapper.classList.add(s.transition),Z.wrapper.setAttribute("data-transition-speed",s.transitionSpeed),Z.wrapper.setAttribute("data-background-transition",s.backgroundTransition),s.shuffle&&ze(),s.rtl?Z.wrapper.classList.add("rtl"):Z.wrapper.classList.remove("rtl"),s.center?Z.wrapper.classList.add("center"):Z.wrapper.classList.remove("center"),!1===s.pause&&Ie(),s.mouseWheel?(document.addEventListener("DOMMouseScroll",lt,!1),document.addEventListener("mousewheel",lt,!1)):(document.removeEventListener("DOMMouseScroll",lt,!1),document.removeEventListener("mousewheel",lt,!1)),s.hideInactiveCursor?(document.addEventListener("mousemove",ot,!1),document.addEventListener("mousedown",ot,!1)):(Pe(),document.removeEventListener("mousemove",ot,!1),document.removeEventListener("mousedown",ot,!1)),s.previewLinks?(me(),fe("[data-preview-link=false]")):(fe(),me("[data-preview-link]:not([data-preview-link=false])")),O.reset(),p&&(p.destroy(),p=null),a>1&&s.autoSlide&&s.autoSlideStoppable&&(p=new D(Z.wrapper,()=>Math.min(Math.max((Date.now()-ne)/ae,0),1)),p.on("click",gt),re=!1),"default"!==s.navigationMode?Z.wrapper.setAttribute("data-navigation-mode",s.navigationMode):Z.wrapper.removeAttribute("data-navigation-mode"),J.configure(s,t),j.configure(s,t),$.configure(s,t),V.configure(s,t),K.configure(s,t),U.configure(s,t),He()}function he(){ie=!0,window.addEventListener("hashchange",dt,!1),window.addEventListener("resize",ct,!1),s.touch&&_.bind(),s.keyboard&&V.bind(),j.bind(),$.bind(),Z.pauseOverlay.addEventListener("click",Ie,!1),s.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",ht,!1)}function ue(){ie=!1,_.unbind(),V.unbind(),j.unbind(),$.unbind(),window.removeEventListener("hashchange",dt,!1),window.removeEventListener("resize",ct,!1),Z.pauseOverlay.removeEventListener("click",Ie,!1)}function ge(e){"string"==typeof e.layout&&(Q.layout=e.layout),"string"==typeof e.overview&&(Q.overview=e.overview),Q.layout?l(Z.slides,Q.layout+" "+Q.overview):l(Z.slides,Q.overview)}function ve({target:e=Z.wrapper,type:t,data:i,bubbles:a=!0}){let s=document.createEvent("HTMLEvents",1,2);s.initEvent(t,a,!0),n(s,i),e.dispatchEvent(s),e===Z.wrapper&&pe(t)}function pe(e,t){if(s.postMessageEvents&&window.parent!==window.self){let i={namespace:"reveal",eventName:e,state:Je()};n(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function me(e="a"){Array.from(Z.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",ut,!1)})}function fe(e="a"){Array.from(Z.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",ut,!1)})}function be(){if(s.help){ye(),Z.overlay=document.createElement("div"),Z.overlay.classList.add("overlay"),Z.overlay.classList.add("overlay-help"),Z.wrapper.appendChild(Z.overlay);let e='

Keyboard Shortcuts


';e+="";for(let t in V.shortcuts)e+=``;for(let t in V.registeredKeyBindings)V.registeredKeyBindings[t].key&&V.registeredKeyBindings[t].description&&(e+=``);e+="
KEYACTION
${t}${V.shortcuts[t]}
${V.registeredKeyBindings[t].key}${V.registeredKeyBindings[t].description}
",Z.overlay.innerHTML=`\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${e}
\n\t\t\t\t
\n\t\t\t`,Z.overlay.querySelector(".close").addEventListener("click",e=>{ye(),e.preventDefault()},!1)}}function ye(){return!!Z.overlay&&(Z.overlay.parentNode.removeChild(Z.overlay),Z.overlay=null,!0)}function we(){if(Z.wrapper&&!Y.isPrintingPDF()){if(!s.disableLayout){v&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const e=Re(),t=H;Ae(s.width,s.height),Z.slides.style.width=e.width+"px",Z.slides.style.height=e.height+"px",H=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),H=Math.max(H,s.minScale),H=Math.min(H,s.maxScale),1===H?(Z.slides.style.zoom="",Z.slides.style.left="",Z.slides.style.top="",Z.slides.style.bottom="",Z.slides.style.right="",ge({layout:""})):H>1&&f&&window.devicePixelRatio<2?(Z.slides.style.zoom=H,Z.slides.style.left="",Z.slides.style.top="",Z.slides.style.bottom="",Z.slides.style.right="",ge({layout:""})):(Z.slides.style.zoom="",Z.slides.style.left="50%",Z.slides.style.top="50%",Z.slides.style.bottom="auto",Z.slides.style.right="auto",ge({layout:"translate(-50%, -50%) scale("+H+")"}));const i=Array.from(Z.wrapper.querySelectorAll(".slides section"));for(let t=0,a=i.length;t .stretch").forEach(i=>{let a=((e,t=0)=>{if(e){let 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})(i,t);if(/(img|video)/gi.test(i.nodeName)){const t=i.naturalWidth||i.videoWidth,s=i.naturalHeight||i.videoHeight,n=Math.min(e/t,a/s);i.style.width=t*n+"px",i.style.height=s*n+"px"}else i.style.width=e+"px",i.style.height=a+"px"})}function Re(e,t){const i={width:s.width,height:s.height,presentationWidth:e||Z.wrapper.offsetWidth,presentationHeight:t||Z.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 Ee(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function Se(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){const t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function ke(e=g){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Le(){return!(!g||!ke(g))&&!g.nextElementSibling}function xe(){return 0===d&&0===c}function Ce(){return!!g&&(!g.nextElementSibling&&(!ke(g)||!g.parentNode.nextElementSibling))}function Pe(){ee&&(ee=!1,Z.wrapper.style.cursor="")}function Ne(){!1===ee&&(ee=!0,Z.wrapper.style.cursor="none")}function Me(){if(s.pause){const e=Z.wrapper.classList.contains("paused");Ze(),Z.wrapper.classList.add("paused"),!1===e&&ve({type:"paused"})}}function Ie(){const e=Z.wrapper.classList.contains("paused");Z.wrapper.classList.remove("paused"),Qe(),e&&ve({type:"resumed"})}function Te(e){"boolean"==typeof e?e?Me():Ie():De()?Ie():Me()}function De(){return Z.wrapper.classList.contains("paused")}function Be(e,t,i,a){u=g;const n=Z.wrapper.querySelectorAll(".slides>section");if(0===n.length)return;void 0!==t||W.isActive()||(t=Se(n[e])),u&&u.parentNode&&u.parentNode.classList.contains("stack")&&Ee(u.parentNode,c);const o=P.concat();P.length=0;let l=d||0,h=c||0;d=Ue(".slides>section",void 0===e?d:e),c=Ue(".slides>section.present>section",void 0===t?c:t);let v=d!==l||c!==h;v||(u=null);let p=n[d],m=p.querySelectorAll("section");g=m[c]||p;let f=!1;v&&u&&g&&!W.isActive()&&u.hasAttribute("data-auto-animate")&&g.hasAttribute("data-auto-animate")&&(f=!0,Z.slides.classList.add("disable-slide-transitions")),Oe(),we(),W.isActive()&&W.update(),void 0!==i&&K.goto(i),u&&u!==g&&(u.classList.remove("present"),u.setAttribute("aria-hidden","true"),xe()&&setTimeout(()=>{r(Z.wrapper,".slides>section.stack").forEach(e=>{Ee(e,0)})},0));e:for(let e=0,t=P.length;e{Z.slides.classList.remove("disable-slide-transitions")},0),s.autoAnimate&&O.run(u,g))}function He(){ue(),he(),we(),ae=s.autoSlide,Qe(),q.create(),F.writeURL(),K.sortAll(),j.update(),$.update(),Oe(),J.update(),J.updateVisibility(),q.update(!0),U.update(),z.formatEmbeddedContent(),!1===s.autoPlayMedia?z.stopEmbeddedContent(g,{unloadIframes:!1}):z.startEmbeddedContent(g),W.isActive()&&W.layout()}function ze(){Fe().forEach((e,t,i)=>{Z.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])})}function Ue(e,t){let i=r(Z.wrapper,e),a=i.length,n=Y.isPrintingPDF();if(a){s.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(let e=0;e{e.classList.add("visible"),e.classList.remove("current-fragment")})):e>t&&(a.classList.add(o?"past":"future"),s.fragments&&r(a,".fragment.visible").forEach(e=>{e.classList.remove("visible","current-fragment")}))}let e=i[t],o=e.classList.contains("present");e.classList.add("present"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),o||ve({target:e,type:"visible",bubbles:!1});let l=e.getAttribute("data-state");l&&(P=P.concat(l.split(" ")))}else t=0;return t}function Oe(){let e,t,i=Fe(),a=i.length;if(a&&void 0!==d){let n=W.isActive()?10:s.viewDistance;v&&(n=W.isActive()?6:s.mobileViewDistance),Y.isPrintingPDF()&&(n=Number.MAX_VALUE);for(let o=0;osection"),t=Z.wrapper.querySelectorAll(".slides>section.present>section"),i={left:d>0,right:d0,down:c1&&(i.left=!0,i.right=!0),t.length>1&&(i.up=!0,i.down=!0)),e.length>1&&"linear"===s.navigationMode&&(i.right=i.right||i.down,i.left=i.left||i.up),s.rtl){let e=i.left;i.left=i.right,i.right=e}return i}function Ke(e=g){let t=Fe(),i=0;e:for(let a=0;a0){let e=g.querySelector(".current-fragment");t=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):g.querySelectorAll(".fragment.visible").length-1}}return{h:i,v:a,f:t}}function Ve(){return r(Z.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function Fe(){return r(Z.wrapper,".slides>section")}function je(){return r(Z.wrapper,".slides>section>section")}function $e(){return Fe().length>1}function Xe(){return je().length>1}function Ye(){return Ve().length}function _e(e,t){let i=Fe()[e],a=i&&i.querySelectorAll("section");return a&&a.length&&"number"==typeof t?a?a[t]:void 0:i}function Je(){let e=We();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:De(),overview:W.isActive()}}function Qe(){if(Ze(),g&&!1!==s.autoSlide){let e=g.querySelector(".current-fragment");e||(e=g.querySelector(".fragment"));let t=e?e.getAttribute("data-autoslide"):null,i=g.parentNode?g.parentNode.getAttribute("data-autoslide"):null,a=g.getAttribute("data-autoslide");ae=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):s.autoSlide,0===g.querySelectorAll(".fragment").length&&r(g,"video, audio").forEach(e=>{e.hasAttribute("data-autoplay")&&ae&&1e3*e.duration/e.playbackRate>ae&&(ae=1e3*e.duration/e.playbackRate+1e3)}),!ae||re||De()||W.isActive()||Ce()&&!K.availableRoutes().next&&!0!==s.loop||(se=setTimeout(()=>{"function"==typeof s.autoSlideMethod?s.autoSlideMethod():rt(),Qe()},ae),ne=Date.now()),p&&p.setPlaying(-1!==se)}}function Ze(){clearTimeout(se),se=-1}function Ge(){ae&&!re&&(re=!0,ve({type:"autoslidepaused"}),clearTimeout(se),p&&p.setPlaying(!1))}function et(){ae&&re&&(re=!1,ve({type:"autoslideresumed"}),Qe())}function tt(){w.hasNavigatedHorizontally=!0,s.rtl?(W.isActive()||!1===K.next())&&qe().left&&Be(d+1,"grid"===s.navigationMode?c:void 0):(W.isActive()||!1===K.prev())&&qe().left&&Be(d-1,"grid"===s.navigationMode?c:void 0)}function it(){w.hasNavigatedHorizontally=!0,s.rtl?(W.isActive()||!1===K.prev())&&qe().right&&Be(d-1,"grid"===s.navigationMode?c:void 0):(W.isActive()||!1===K.next())&&qe().right&&Be(d+1,"grid"===s.navigationMode?c:void 0)}function at(){(W.isActive()||!1===K.prev())&&qe().up&&Be(d,c-1)}function st(){w.hasNavigatedVertically=!0,(W.isActive()||!1===K.next())&&qe().down&&Be(d,c+1)}function nt(){if(!1===K.prev())if(qe().up)at();else{let e;if(e=s.rtl?r(Z.wrapper,".slides>section.future").pop():r(Z.wrapper,".slides>section.past").pop(),e){let t=e.querySelectorAll("section").length-1||void 0;Be(d-1,t)}}}function rt(){if(w.hasNavigatedHorizontally=!0,w.hasNavigatedVertically=!0,!1===K.next()){let e=qe();e.down&&e.right&&s.loop&&Le()&&(e.down=!1),e.down?st():s.rtl?tt():it()}}function ot(e){Pe(),clearTimeout(te),te=setTimeout(Ne,s.hideCursorTime)}function lt(e){if(Date.now()-G>600){G=Date.now();let t=e.detail||-e.wheelDelta;t>0?rt():t<0&&nt()}}function dt(e){F.readURL()}function ct(e){we()}function ht(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function ut(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(!function(e){ye(),Z.overlay=document.createElement("div"),Z.overlay.classList.add("overlay"),Z.overlay.classList.add("overlay-preview"),Z.wrapper.appendChild(Z.overlay),Z.overlay.innerHTML=`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`,Z.overlay.querySelector("iframe").addEventListener("load",e=>{Z.overlay.classList.add("loaded")},!1),Z.overlay.querySelector(".close").addEventListener("click",e=>{ye(),e.preventDefault()},!1),Z.overlay.querySelector(".external").addEventListener("click",e=>{ye()},!1)}(t),e.preventDefault())}}function gt(e){Ce()&&!1===s.loop?(Be(0,0),et()):re?et():Ge()}return n(i,{VERSION:"4.0.0-dev",initialize:function(){if(e)return Z.wrapper=e,Z.slides=e.querySelector(".slides"),window.addEventListener("load",we,!1),s={...B,...t,...h()},X.load(s.dependencies).then(oe),new Promise(e=>i.addEventListener("ready",e));console.warn("reveal.js can not initialize without a valid .reveal element.")},configure:ce,sync:He,syncSlide:function(e=g){q.sync(e),K.sync(e),z.load(e),q.update(),J.update()},syncFragments:K.sync.bind(K),slide:Be,left:tt,right:it,up:at,down:st,prev:nt,next:rt,navigateTo:Be,navigateLeft:tt,navigateRight:it,navigateUp:at,navigateDown:st,navigatePrev:nt,navigateNext:rt,navigateFragment:K.goto.bind(K),prevFragment:K.prev.bind(K),nextFragment:K.next.bind(K),addEventListener:(e,t,a)=>{i.getRevealElement().addEventListener(e,t,a)},removeEventListener:(e,t,a)=>{i.getRevealElement().removeEventListener(e,t,a)},layout:we,shuffle:ze,availableRoutes:qe,availableFragments:K.availableRoutes.bind(K),toggleHelp:function(e){"boolean"==typeof e?e?be():ye():Z.overlay?ye():be()},toggleOverview:W.toggle.bind(W),togglePause:Te,toggleAutoSlide:function(e){"boolean"==typeof e?e?et():Ge():re?et():Ge()},isFirstSlide:xe,isLastSlide:Ce,isLastVerticalSlide:Le,isVerticalSlide:ke,isPaused:De,isAutoSliding:function(){return!(!ae||re)},isSpeakerNotes:J.isSpeakerNotesWindow.bind(J),isOverview:W.isActive.bind(W),isPrintingPDF:Y.isPrintingPDF.bind(Y),loadSlide:z.load.bind(z),unloadSlide:z.unload.bind(z),addEventListeners:he,removeEventListeners:ue,dispatchEvent:ve,getState:Je,setState:function(e){if("object"==typeof e){Be(o(e.indexh),o(e.indexv),o(e.indexf));let t=o(e.paused),i=o(e.overview);"boolean"==typeof t&&t!==De()&&Te(t),"boolean"==typeof i&&i!==W.isActive()&&W.toggle(i)}},getSlidePastCount:Ke,getProgress:function(){let e=Ye(),t=Ke();if(g){let e=g.querySelectorAll(".fragment");if(e.length>0){let i=.9;t+=g.querySelectorAll(".fragment.visible").length/e.length*i}}return Math.min(t/(e-1),1)},getIndices:We,getSlides:Ve,getSlidesAttributes:function(){return Ve().map(e=>{let t={};for(let i=0;iw.hasNavigatedHorizontally,hasNavigatedVertically:()=>w.hasNavigatedVertically,addKeyBinding:V.addKeyBinding.bind(V),removeKeyBinding:V.removeKeyBinding.bind(V),triggerKey:V.triggerKey.bind(V),registerKeyboardShortcut:V.registerKeyboardShortcut.bind(V),registerPlugin:X.registerPlugin.bind(X),hasPlugin:X.hasPlugin.bind(X),getPlugin:X.getPlugin.bind(X),getPlugins:X.getRegisteredPlugins.bind(X),getComputedSlideSize:Re,getPreviousSlide:()=>u,getCurrentSlide:()=>g,getScale:()=>H,getConfig:()=>s,getQueryHash:h,getRevealElement:()=>Z.wrapper||document.querySelector(".reveal"),getSlidesElement:()=>Z.slides,getBackgroundsElement:()=>q.element,isReady:()=>m,announceStatus:le,getStatusText:de,print:Y,progress:$,controls:j,location:F,overview:W,fragments:K,slideContent:z,slideNumber:U,onUserInput:function(e){s.autoSlideStoppable&&Ge()},closeOverlay:ye,updateSlidesVisibility:Oe,layoutSlideContents:Ae,transformSlides:ge,cueAutoSlide:Qe,cancelAutoSlide:Ze})};window.Reveal={initialize:e=>(window.Reveal=new H(document.querySelector(".reveal"),e),window.Reveal.initialize())}}]); \ No newline at end of file +!function(e){var t={};function i(a){if(t[a])return t[a].exports;var s=t[a]={i:a,l:!1,exports:{}};return e[a].call(s.exports,s,s.exports,i),s.l=!0,s.exports}i.m=e,i.c=t,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(a,s,function(t){return e[t]}.bind(null,s));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){"use strict";i.r(t);const 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(let i in t)e[i]=t[i];return e},r=(e,t)=>Array.from(e.querySelectorAll(t)),o=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},l=(e,t)=>{e.style.transform=t},d=(e,t)=>{let i=e.parentNode;for(;i;){let e=i.matches||i.matchesSelector||i.msMatchesSelector;if(e&&e.call(i,t))return i;i=i.parentNode}return null},c=e=>{let 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},h=()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()});for(let t in e){let i=e[t];e[t]=o(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},u=navigator.userAgent,g=document.createElement("div"),v=/(iphone|ipod|ipad|android)/gi.test(u)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,p=/chrome/i.test(u)&&!/edge/i.test(u),m=/android/gi.test(u),f="zoom"in g.style&&!v&&(p||/Version\/[\d\.]+.*Safari/.test(u));class b{constructor(e){this.Reveal=e}shouldPreload(e){let t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e,t={}){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=>{let 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()});let i=e.slideBackgroundElement;if(i){i.style.display="block";let a=e.slideBackgroundContentElement,s=e.getAttribute("data-background-iframe");if(!1===i.hasAttribute("data-loaded")){i.setAttribute("data-loaded","true");let n=e.getAttribute("data-background-image"),r=e.getAttribute("data-background-video"),o=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(n)a.style.backgroundImage="url("+encodeURI(n)+")";else if(r&&!this.Reveal.isSpeakerNotes()){let e=document.createElement("video");o&&e.setAttribute("loop",""),l&&(e.muted=!0),v&&(e.muted=!0,e.autoplay=!0,e.setAttribute("playsinline","")),r.split(",").forEach(t=>{e.innerHTML+=''}),a.appendChild(e)}else if(s&&!0!==t.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",s),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",a.appendChild(e)}}let n=a.querySelector("iframe[data-src]");n&&this.shouldPreload(i)&&!/autoplay=(1|true|yes)/gi.test(s)&&n.getAttribute("src")!==s&&n.setAttribute("src",s)}}unload(e){e.style.display="none";let 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(){let e=(e,t,i)=>{r(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+t+'"]').forEach(t=>{let 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(d(e,".fragment")&&!d(e,".fragment.visible"))return;let t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!d(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(v){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.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=>{d(e,".fragment")&&!d(e,".fragment.visible")||this.startEmbeddedIframe({target:e})}),r(e,"iframe[data-src]").forEach(e=>{d(e,".fragment")&&!d(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){let t=!!d(e.target,"html"),i=!!d(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let t=e.target;if(t&&t.contentWindow){let i=!!d(e.target,"html"),a=!!d(e.target,".present");if(i&&a){let e=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!d(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,t={}){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 y{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){let 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(e=this.Reveal.getCurrentSlide()){let t,i=this.Reveal.getConfig(),a="h.v";if("function"==typeof i.slideNumber)t=i.slideNumber(e);else switch("string"==typeof i.slideNumber&&(a=i.slideNumber),/c/.test(a)||1!==this.Reveal.getHorizontalSlides().length||(a="c"),t=[],a){case"c":t.push(this.Reveal.getSlidePastCount(e)+1);break;case"c/t":t.push(this.Reveal.getSlidePastCount(e)+1,"/",this.Reveal.getTotalSlides());break;default:let i=this.Reveal.getIndices(e);t.push(i.h+1);let s="h/v"===a?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(s,i.v+1)}let s="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],s)}formatNumber(e,t,i,a="#"+this.Reveal.location.getHash()){return"number"!=typeof i||isNaN(i)?`\n\t\t\t\t\t${e}\n\t\t\t\t\t`:`\n\t\t\t\t\t${e}\n\t\t\t\t\t${t}\n\t\t\t\t\t${i}\n\t\t\t\t\t`}}const w=e=>{let 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)};let 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)};let 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)};let 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 A{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=>{let 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){let i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");let 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){let 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="";let 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);let s=a.backgroundColor;if(!s){let e=window.getComputedStyle(t);e&&e.backgroundColor&&(s=e.backgroundColor)}if(s){let t=w(s);t&&0!==t.a&&("string"==typeof(n=s)&&(n=w(n)),(n?(299*n.r+587*n.g+114*n.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}var n}update(e=!1){let 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"),oi.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"),ti.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);let e=a.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}let t=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,i=a.getAttribute("data-background-hash");i&&i===t&&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(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let 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));let r,o,l=this.element.offsetWidth,d=a.length;r="number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:d>1?(t-l)/(d-1):0,o=r*e.h*-1;let c,h,u=this.element.offsetHeight,g=s.length;c="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-u)/(g-1),h=g>0?c*e.v:0,this.element.style.backgroundPosition=o+"px "+-h+"px"}}}class R{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||c();let i=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending";let a=this.Reveal.getSlides();i.slideDirection=a.indexOf(t)>a.indexOf(e)?"forward":"backward";let 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){let e=.8*i.duration,a=.2*i.duration;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{let 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="${a}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)),e.dataset.autoAnimateTarget=a},this),s.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${a}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;let 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);let o=this.getAutoAnimatableProperties("from",e,i),l=this.getAutoAnimatableProperties("to",t,i);if(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){let e=this.Reveal.getScale(),t={x:(o.x-l.x)/e,y:(o.y-l.y)/e,scaleX:o.width/l.width,scaleY:o.height/l.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let a=!1!==i.translate&&(0!==t.x||0!==t.y),s=!1!==i.scale&&(0!==t.scaleX||0!==t.scaleY);if(a||s){let e=[];a&&e.push(`translate(${t.x}px, ${t.y}px)`),s&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),o.styles.transform=e.join(" "),o.styles["transform-origin"]="top left",l.styles.transform="none"}}for(let e in l.styles){const t=l.styles[e],i=o.styles[e];t===i?delete l.styles[e]:(!0===t.explicitValue&&(l.styles[e]=t.value),!0===i.explicitValue&&(o.styles[e]=i.value))}let d="",c=Object.keys(l.styles);if(c.length>0){o.styles.transition="none",l.styles.transition=`all ${r.duration}s ${r.easing} ${r.delay}s`,l.styles["transition-property"]=c.join(", "),l.styles["will-change"]=c.join(", "),d='[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 d}getAutoAnimateOptions(e,t){let i={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(i=n(i,t),e.closest&&e.parentNode){let t=e.parentNode.closest("[data-auto-animate-target]");t&&(i=this.getAutoAnimateOptions(t,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){let a={styles:[]};if(!1!==i.translate||!1!==i.scale){let e;e="function"==typeof i.measure?i.measure(t):t.getBoundingClientRect(),a.x=e.x,a.y=e.y,a.width=e.width,a.height=e.height}const s=getComputedStyle(t);return(i.styles||this.Reveal.getConfig().autoAnimateStyles).forEach(t=>{let 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}:s[t.property],""!==i&&(a.styles[t.property]=i)}),a}getAutoAnimatableElements(e,t){let 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){let i=[];const 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){const 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){let r={},o={};[].slice.call(t.querySelectorAll(a)).forEach((e,t)=>{const i=s(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))}),[].slice.call(i.querySelectorAll(a)).forEach((t,i)=>{const a=s(t);let l;if(o[a]=o[a]||[],o[a].push(t),r[a]){const e=o[a].length-1,t=r[a].length-1;r[a][e]?(l=r[a][e],r[a][e]=null):r[a][t]&&(l=r[a][t],r[a][t]=null)}l&&e.push({from:l,to:t,options:n})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{const 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 E{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(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let 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,t=!1){e=Array.from(e);let i=[],a=[],s=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else a.push([e])}),i=i.concat(a);let 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=>{let 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){let i={shown:[],hidden:[]},a=this.Reveal.getCurrentSlide();if(a&&this.Reveal.getConfig().fragments&&(t=t||this.sort(a.querySelectorAll(".fragment"))).length){let s=0;if("number"!=typeof e){let t=this.sort(a.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.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){let s=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)),s||(i.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{let e=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),e&&(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(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,t=0){let i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){let a=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(a.length){if("number"!=typeof e){let t=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}e+=t;let s=this.update(e,a);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}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class S{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)});const e=70,t=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=t.width+e,this.overviewSlideHeight=t.height+e,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const i=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:i.h,indexv:i.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,t)=>{e.setAttribute("data-index-h",t),l(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),l(e,"translate3d(0, "+i*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,t)=>{l(e,"translate3d("+t*this.overviewSlideWidth+"px, 0, 0)"),r(e,".slide-background").forEach((e,t)=>{l(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})})}update(){const 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=>{l(e,""),e.removeEventListener("click",this.onSlideClicked,!0)}),r(this.Reveal.getBackgroundsElement(),".slide-background").forEach(e=>{l(e,"")}),this.Reveal.transformSlides({overview:""});const 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();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){let e=parseInt(t.getAttribute("data-index-h"),10),i=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(e,i)}}}}class k{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["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts.P="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Home , Shift ←"]="First slide",this.shortcuts["End , Shift →"]="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}onDocumentKeyPress(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}onDocumentKeyDown(e){let t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e))return!0;let i=e.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let s=document.activeElement&&"inherit"!==document.activeElement.contentEditable,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)return;let 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;let g="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),v=!1;if("object"==typeof t.keyboard)for(h in t.keyboard)if(parseInt(h,10)===i){let i=t.keyboard[h];"function"==typeof i?i.apply(null,[e]):"string"==typeof i&&"function"==typeof this.Reveal[i]&&this.Reveal[i].call(),v=!0}if(!1===v)for(h in this.bindings)if(parseInt(h,10)===i){let t=this.bindings[h].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof this.Reveal[t]&&this.Reveal[t].call(),v=!0}!1===v&&(v=!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()&&g?this.Reveal.prev():this.Reveal.left():76===i||39===i?d?this.Reveal.slide(Number.MAX_VALUE):!this.Reveal.overview.isActive()&&g?this.Reveal.next():this.Reveal.right():75===i||38===i?!this.Reveal.overview.isActive()&&g?this.Reveal.prev():this.Reveal.up():74===i||40===i?!this.Reveal.overview.isActive()&&g?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?(()=>{let e=document.documentElement,t=e.requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)})():65===i?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):v=!1),v?e.preventDefault&&e.preventDefault():27!==i&&79!==i||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class L{constructor(e){this.Reveal=e,this.writeURLTimeout=0}readURL(){let 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){let e;try{e=document.getElementById(decodeURIComponent(n))}catch(e){}let a=!!i&&i.getAttribute("id")===n;if(e){if(!a){let t=this.Reveal.getIndices(e);this.Reveal.slide(t.h,t.v)}}else this.Reveal.slide(t.h||0,t.v||0)}else{let i,a=e.hashOneBasedIndex?1:0,n=parseInt(s[0],10)-a||0,r=parseInt(s[1],10)-a||0;e.fragmentInURL&&(i=parseInt(s[2],10),isNaN(i)&&(i=void 0)),n===t.h&&r===t.v&&void 0===i||this.Reveal.slide(n,r,i)}}writeURL(e){let t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();clearTimeout(this.writeURLTimeout),"number"==typeof e?this.writeURLTimeout=setTimeout(this.writeURL,e):i&&(t.history||!window.history?window.location.hash=this.getHash():t.hash?window.history.replaceState(null,null,"#"+this.getHash()):window.history.replaceState(null,null,window.location.pathname+window.location.search))}getHash(e){let t="/",i=e||this.Reveal.getCurrentSlide(),a=i?i.getAttribute("id"):null;a&&(a=encodeURIComponent(a));let s=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(s.f=void 0),"string"==typeof a&&a.length&&void 0===s.f)t="/"+a;else{let e=this.Reveal.getConfig().hashOneBasedIndex?1:0;(s.h>0||s.v>0||void 0!==s.f)&&(t+=s.h+e),(s.v>0||void 0!==s.f)&&(t+="/"+(s.v+e)),void 0!==s.f&&(t+="/"+s.f)}return t}}class x{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(){const e=this.Reveal.getConfig().rtl,t=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`\n\t\t\t\n\t\t\t\n\t\t\t`,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(){let e=["touchstart","click"];m&&(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(){let 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")});let t=this.Reveal.getCurrentSlide();if(t){let e=this.Reveal.fragments.availableRoutes();e.prev&&this.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(t)?(e.prev&&this.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(e.prev&&this.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let t=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===t.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===t.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 C{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();let t=this.Reveal.getHorizontalSlides().length,i=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(i=t-i),this.Reveal.slide(i)}}const P=(e,t)=>{const 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))});const a=document.querySelector("head");a.insertBefore(i,a.lastChild)};class N{constructor(){this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e){return this.state="loading",new Promise(t=>{let i=[],a=0;if(e.forEach(e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):i.push(e))}),i.length){a=i.length;const e=e=>{"function"==typeof e.callback&&e.callback(),0==--a&&this.initPlugins().then(t)};i.forEach(t=>{t.id?(this.registerPlugin(t.id,t.plugin),e(t)):P(t.src,()=>e(t))})}else this.initPlugins().then(t)})}initPlugins(){return new Promise(e=>{let t=Object.keys(this.registeredPlugins).length;if(0===t)this.loadAsync().then(e);else{let i=()=>{0==--t&&this.loadAsync().then(e)};for(let e in this.registeredPlugins){let t=this.registeredPlugins[e];if("function"==typeof t.init){let e=t.init();e&&"function"==typeof e.then?e.then(i):i()}else i()}}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{e.id?(this.registerPlugin(e.id,e.plugin),"function"==typeof e.plugin.init&&e.plugin.init(),"function"==typeof e.callback&&e.callback()):P(e.src,e.callback)}),Promise.resolve()}registerPlugin(e,t){void 0===this.registeredPlugins[e]?(this.registeredPlugins[e]=t,"loaded"===this.state&&"function"==typeof t.init&&t.init()):console.warn('reveal.js: "'+e+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}}class M{constructor(e){this.Reveal=e}setupPDF(){let 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;c("@page{size:"+i+"px "+a+"px; margin: 0px;}"),c(".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);let 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")){let l=(i-s)/2,d=(a-n)/2,c=t.scrollHeight,h=Math.max(Math.ceil(c/a),1);h=Math.min(h,e.pdfMaxPagesPerSlide),(1===h&&e.center||t.classList.contains("center"))&&(d=Math.max((a-c)/2,0));let 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){let a=getSlideNotes(t);if(a){let t=8,s="string"==typeof e.showNotes?e.showNotes:"inline",n=document.createElement("div");n.classList.add("speaker-notes"),n.classList.add("speaker-notes-pdf"),n.setAttribute("data-layout",s),n.innerHTML=a,"separate-page"===s?u.parentNode.insertBefore(n,u.nextSibling):(n.style.left=t+"px",n.style.bottom=t+"px",n.style.width=i-2*t+"px",u.appendChild(n))}}if(o){let e=document.createElement("div");e.classList.add("slide-number"),e.classList.add("slide-number-pdf"),e.innerHTML=t.getAttribute("data-slide-number"),u.appendChild(e)}if(e.pdfSeparateFragments){let e,t,i=this.Reveal.fragments.sort(u.querySelectorAll(".fragment"),!0);i.forEach((function(i){e&&e.forEach((function(e){e.classList.remove("current-fragment")})),i.forEach((function(e){e.classList.add("visible","current-fragment")}),this);let a=u.cloneNode(!0);u.parentNode.insertBefore(a,(t||u).nextSibling),e=i,t=a}),this),i.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 I{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;let t=this.Reveal.getConfig();if(this.touchCaptured)isAndroid&&e.preventDefault();else{this.Reveal.onUserInput(e);let i=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){let s=i-this.touchStartX,n=a-this.touchStartY;s>40&&Math.abs(s)>Math.abs(n)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev()():this.Reveal.left()):s<-40&&Math.abs(s)>Math.abs(n)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev()():this.Reveal.next():this.Reveal.right()):n>40?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev()():this.Reveal.up()):n<-40&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide(currentSlide))&&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 T{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()||'No notes on this slide.')}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(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelector("aside.notes");return t?t.innerHTML:null}}class D{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){const t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){const 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(){let e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,a=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);const 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 B={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,history:!1,keyboard:!0,keyboardCondition:null,overview:!0,disableLayout:!1,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!1,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:[]},H=function(e,t){const i={};let s,d,c,u,g,p,m=!1,w={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},P=[],H=1,z=new b(i),U=new y(i),O=new R(i),q=new A(i),K=new E(i),W=new S(i),V=new k(i),F=new L(i),j=new x(i),$=new C(i),X=new N(i),Y=new M(i),_=new I(i),J=new T(i),Q={layout:"",overview:""},Z={},G=0,ee=!1,te=0,ie=!1,ae=0,se=0,ne=-1,re=!1;function oe(){m=!0,function(){Z.slides.classList.add("no-transition"),v?Z.wrapper.classList.add("no-hover"):Z.wrapper.classList.remove("no-hover");q.render(),U.render(),j.render(),$.render(),J.render(),Z.pauseOverlay=((e,t,i,a="")=>{let s=e.querySelectorAll("."+i);for(let t=0;tResume presentation':null),Z.statusElement=function(){let e=Z.wrapper.querySelector(".aria-status");e||(e=document.createElement("div"),e.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"),Z.wrapper.appendChild(e));return e}(),Z.wrapper.setAttribute("role","application")}(),s.postMessage&&window.addEventListener("message",e=>{let t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t),t.method&&"function"==typeof i[t.method]))if(!1===a.test(t.method)){const e=i[t.method].apply(i,t.args);pe("callback",{method:t.method,result:e})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')},!1),setInterval(()=>{0===Z.wrapper.scrollTop&&0===Z.wrapper.scrollLeft||(Z.wrapper.scrollTop=0,Z.wrapper.scrollLeft=0)},1e3),Fe().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"))})}),ce(),F.readURL(),q.update(!0),setTimeout(()=>{Z.slides.classList.remove("no-transition"),Z.wrapper.classList.add("ready"),ve({type:"ready",data:{indexh:d,indexv:c,currentSlide:g}})},1),Y.isPrintingPDF()&&(ue(),"complete"===document.readyState?Y.setupPDF():window.addEventListener("load",Y.setupPDF))}function le(e){Z.statusElement.textContent=e}function de(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let i=e.getAttribute("aria-hidden"),a="none"===window.getComputedStyle(e).display;"true"===i||a||Array.from(e.childNodes).forEach(e=>{t+=de(e)})}return t=t.trim(),""===t?"":t+" "}function ce(e){const t={...s};if("object"==typeof e&&n(s,e),!1===i.isReady())return;const a=Z.wrapper.querySelectorAll(".slides section").length;Z.wrapper.classList.remove(t.transition),Z.wrapper.classList.add(s.transition),Z.wrapper.setAttribute("data-transition-speed",s.transitionSpeed),Z.wrapper.setAttribute("data-background-transition",s.backgroundTransition),s.shuffle&&ze(),s.rtl?Z.wrapper.classList.add("rtl"):Z.wrapper.classList.remove("rtl"),s.center?Z.wrapper.classList.add("center"):Z.wrapper.classList.remove("center"),!1===s.pause&&Ie(),s.mouseWheel?(document.addEventListener("DOMMouseScroll",lt,!1),document.addEventListener("mousewheel",lt,!1)):(document.removeEventListener("DOMMouseScroll",lt,!1),document.removeEventListener("mousewheel",lt,!1)),s.hideInactiveCursor?(document.addEventListener("mousemove",ot,!1),document.addEventListener("mousedown",ot,!1)):(Pe(),document.removeEventListener("mousemove",ot,!1),document.removeEventListener("mousedown",ot,!1)),s.previewLinks?(me(),fe("[data-preview-link=false]")):(fe(),me("[data-preview-link]:not([data-preview-link=false])")),O.reset(),p&&(p.destroy(),p=null),a>1&&s.autoSlide&&s.autoSlideStoppable&&(p=new D(Z.wrapper,()=>Math.min(Math.max((Date.now()-ne)/ae,0),1)),p.on("click",gt),re=!1),"default"!==s.navigationMode?Z.wrapper.setAttribute("data-navigation-mode",s.navigationMode):Z.wrapper.removeAttribute("data-navigation-mode"),J.configure(s,t),j.configure(s,t),$.configure(s,t),V.configure(s,t),K.configure(s,t),U.configure(s,t),He()}function he(){ie=!0,window.addEventListener("hashchange",dt,!1),window.addEventListener("resize",ct,!1),s.touch&&_.bind(),s.keyboard&&V.bind(),j.bind(),$.bind(),Z.pauseOverlay.addEventListener("click",Ie,!1),s.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",ht,!1)}function ue(){ie=!1,_.unbind(),V.unbind(),j.unbind(),$.unbind(),window.removeEventListener("hashchange",dt,!1),window.removeEventListener("resize",ct,!1),Z.pauseOverlay.removeEventListener("click",Ie,!1)}function ge(e){"string"==typeof e.layout&&(Q.layout=e.layout),"string"==typeof e.overview&&(Q.overview=e.overview),Q.layout?l(Z.slides,Q.layout+" "+Q.overview):l(Z.slides,Q.overview)}function ve({target:e=Z.wrapper,type:t,data:i,bubbles:a=!0}){let s=document.createEvent("HTMLEvents",1,2);s.initEvent(t,a,!0),n(s,i),e.dispatchEvent(s),e===Z.wrapper&&pe(t)}function pe(e,t){if(s.postMessageEvents&&window.parent!==window.self){let i={namespace:"reveal",eventName:e,state:Je()};n(i,t),window.parent.postMessage(JSON.stringify(i),"*")}}function me(e="a"){Array.from(Z.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",ut,!1)})}function fe(e="a"){Array.from(Z.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",ut,!1)})}function be(){if(s.help){ye(),Z.overlay=document.createElement("div"),Z.overlay.classList.add("overlay"),Z.overlay.classList.add("overlay-help"),Z.wrapper.appendChild(Z.overlay);let e='

Keyboard Shortcuts


';e+="";for(let t in V.shortcuts)e+=``;for(let t in V.registeredKeyBindings)V.registeredKeyBindings[t].key&&V.registeredKeyBindings[t].description&&(e+=``);e+="
KEYACTION
${t}${V.shortcuts[t]}
${V.registeredKeyBindings[t].key}${V.registeredKeyBindings[t].description}
",Z.overlay.innerHTML=`\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
${e}
\n\t\t\t\t
\n\t\t\t`,Z.overlay.querySelector(".close").addEventListener("click",e=>{ye(),e.preventDefault()},!1)}}function ye(){return!!Z.overlay&&(Z.overlay.parentNode.removeChild(Z.overlay),Z.overlay=null,!0)}function we(){if(Z.wrapper&&!Y.isPrintingPDF()){if(!s.disableLayout){v&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const e=Re(),t=H;Ae(s.width,s.height),Z.slides.style.width=e.width+"px",Z.slides.style.height=e.height+"px",H=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),H=Math.max(H,s.minScale),H=Math.min(H,s.maxScale),1===H?(Z.slides.style.zoom="",Z.slides.style.left="",Z.slides.style.top="",Z.slides.style.bottom="",Z.slides.style.right="",ge({layout:""})):H>1&&f&&window.devicePixelRatio<2?(Z.slides.style.zoom=H,Z.slides.style.left="",Z.slides.style.top="",Z.slides.style.bottom="",Z.slides.style.right="",ge({layout:""})):(Z.slides.style.zoom="",Z.slides.style.left="50%",Z.slides.style.top="50%",Z.slides.style.bottom="auto",Z.slides.style.right="auto",ge({layout:"translate(-50%, -50%) scale("+H+")"}));const i=Array.from(Z.wrapper.querySelectorAll(".slides section"));for(let t=0,a=i.length;t .stretch").forEach(i=>{let a=((e,t=0)=>{if(e){let 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})(i,t);if(/(img|video)/gi.test(i.nodeName)){const t=i.naturalWidth||i.videoWidth,s=i.naturalHeight||i.videoHeight,n=Math.min(e/t,a/s);i.style.width=t*n+"px",i.style.height=s*n+"px"}else i.style.width=e+"px",i.style.height=a+"px"})}function Re(e,t){const i={width:s.width,height:s.height,presentationWidth:e||Z.wrapper.offsetWidth,presentationHeight:t||Z.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 Ee(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function Se(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){const t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function ke(e=g){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Le(){return!(!g||!ke(g))&&!g.nextElementSibling}function xe(){return 0===d&&0===c}function Ce(){return!!g&&(!g.nextElementSibling&&(!ke(g)||!g.parentNode.nextElementSibling))}function Pe(){ee&&(ee=!1,Z.wrapper.style.cursor="")}function Ne(){!1===ee&&(ee=!0,Z.wrapper.style.cursor="none")}function Me(){if(s.pause){const e=Z.wrapper.classList.contains("paused");Ze(),Z.wrapper.classList.add("paused"),!1===e&&ve({type:"paused"})}}function Ie(){const e=Z.wrapper.classList.contains("paused");Z.wrapper.classList.remove("paused"),Qe(),e&&ve({type:"resumed"})}function Te(e){"boolean"==typeof e?e?Me():Ie():De()?Ie():Me()}function De(){return Z.wrapper.classList.contains("paused")}function Be(e,t,i,a){u=g;const n=Z.wrapper.querySelectorAll(".slides>section");if(0===n.length)return;void 0!==t||W.isActive()||(t=Se(n[e])),u&&u.parentNode&&u.parentNode.classList.contains("stack")&&Ee(u.parentNode,c);const o=P.concat();P.length=0;let l=d||0,h=c||0;d=Ue(".slides>section",void 0===e?d:e),c=Ue(".slides>section.present>section",void 0===t?c:t);let v=d!==l||c!==h;v||(u=null);let p=n[d],m=p.querySelectorAll("section");g=m[c]||p;let f=!1;v&&u&&g&&!W.isActive()&&u.hasAttribute("data-auto-animate")&&g.hasAttribute("data-auto-animate")&&(f=!0,Z.slides.classList.add("disable-slide-transitions")),Oe(),we(),W.isActive()&&W.update(),void 0!==i&&K.goto(i),u&&u!==g&&(u.classList.remove("present"),u.setAttribute("aria-hidden","true"),xe()&&setTimeout(()=>{r(Z.wrapper,".slides>section.stack").forEach(e=>{Ee(e,0)})},0));e:for(let e=0,t=P.length;e{Z.slides.classList.remove("disable-slide-transitions")},0),s.autoAnimate&&O.run(u,g))}function He(){ue(),he(),we(),ae=s.autoSlide,Qe(),q.create(),F.writeURL(),K.sortAll(),j.update(),$.update(),Oe(),J.update(),J.updateVisibility(),q.update(!0),U.update(),z.formatEmbeddedContent(),!1===s.autoPlayMedia?z.stopEmbeddedContent(g,{unloadIframes:!1}):z.startEmbeddedContent(g),W.isActive()&&W.layout()}function ze(){Fe().forEach((e,t,i)=>{Z.slides.insertBefore(e,i[Math.floor(Math.random()*i.length)])})}function Ue(e,t){let i=r(Z.wrapper,e),a=i.length,n=Y.isPrintingPDF();if(a){s.loop&&(t%=a)<0&&(t=a+t),t=Math.max(Math.min(t,a-1),0);for(let e=0;e{e.classList.add("visible"),e.classList.remove("current-fragment")})):e>t&&(a.classList.add(o?"past":"future"),s.fragments&&r(a,".fragment.visible").forEach(e=>{e.classList.remove("visible","current-fragment")}))}let e=i[t],o=e.classList.contains("present");e.classList.add("present"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),o||ve({target:e,type:"visible",bubbles:!1});let l=e.getAttribute("data-state");l&&(P=P.concat(l.split(" ")))}else t=0;return t}function Oe(){let e,t,i=Fe(),a=i.length;if(a&&void 0!==d){let n=W.isActive()?10:s.viewDistance;v&&(n=W.isActive()?6:s.mobileViewDistance),Y.isPrintingPDF()&&(n=Number.MAX_VALUE);for(let o=0;osection"),t=Z.wrapper.querySelectorAll(".slides>section.present>section"),i={left:d>0,right:d0,down:c1&&(i.left=!0,i.right=!0),t.length>1&&(i.up=!0,i.down=!0)),e.length>1&&"linear"===s.navigationMode&&(i.right=i.right||i.down,i.left=i.left||i.up),s.rtl){let e=i.left;i.left=i.right,i.right=e}return i}function Ke(e=g){let t=Fe(),i=0;e:for(let a=0;a0){let e=g.querySelector(".current-fragment");t=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):g.querySelectorAll(".fragment.visible").length-1}}return{h:i,v:a,f:t}}function Ve(){return r(Z.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function Fe(){return r(Z.wrapper,".slides>section")}function je(){return r(Z.wrapper,".slides>section>section")}function $e(){return Fe().length>1}function Xe(){return je().length>1}function Ye(){return Ve().length}function _e(e,t){let i=Fe()[e],a=i&&i.querySelectorAll("section");return a&&a.length&&"number"==typeof t?a?a[t]:void 0:i}function Je(){let e=We();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:De(),overview:W.isActive()}}function Qe(){if(Ze(),g&&!1!==s.autoSlide){let e=g.querySelector(".current-fragment");e||(e=g.querySelector(".fragment"));let t=e?e.getAttribute("data-autoslide"):null,i=g.parentNode?g.parentNode.getAttribute("data-autoslide"):null,a=g.getAttribute("data-autoslide");ae=t?parseInt(t,10):a?parseInt(a,10):i?parseInt(i,10):s.autoSlide,0===g.querySelectorAll(".fragment").length&&r(g,"video, audio").forEach(e=>{e.hasAttribute("data-autoplay")&&ae&&1e3*e.duration/e.playbackRate>ae&&(ae=1e3*e.duration/e.playbackRate+1e3)}),!ae||re||De()||W.isActive()||Ce()&&!K.availableRoutes().next&&!0!==s.loop||(se=setTimeout(()=>{"function"==typeof s.autoSlideMethod?s.autoSlideMethod():rt(),Qe()},ae),ne=Date.now()),p&&p.setPlaying(-1!==se)}}function Ze(){clearTimeout(se),se=-1}function Ge(){ae&&!re&&(re=!0,ve({type:"autoslidepaused"}),clearTimeout(se),p&&p.setPlaying(!1))}function et(){ae&&re&&(re=!1,ve({type:"autoslideresumed"}),Qe())}function tt(){w.hasNavigatedHorizontally=!0,s.rtl?(W.isActive()||!1===K.next())&&qe().left&&Be(d+1,"grid"===s.navigationMode?c:void 0):(W.isActive()||!1===K.prev())&&qe().left&&Be(d-1,"grid"===s.navigationMode?c:void 0)}function it(){w.hasNavigatedHorizontally=!0,s.rtl?(W.isActive()||!1===K.prev())&&qe().right&&Be(d-1,"grid"===s.navigationMode?c:void 0):(W.isActive()||!1===K.next())&&qe().right&&Be(d+1,"grid"===s.navigationMode?c:void 0)}function at(){(W.isActive()||!1===K.prev())&&qe().up&&Be(d,c-1)}function st(){w.hasNavigatedVertically=!0,(W.isActive()||!1===K.next())&&qe().down&&Be(d,c+1)}function nt(){if(!1===K.prev())if(qe().up)at();else{let e;if(e=s.rtl?r(Z.wrapper,".slides>section.future").pop():r(Z.wrapper,".slides>section.past").pop(),e){let t=e.querySelectorAll("section").length-1||void 0;Be(d-1,t)}}}function rt(){if(w.hasNavigatedHorizontally=!0,w.hasNavigatedVertically=!0,!1===K.next()){let e=qe();e.down&&e.right&&s.loop&&Le()&&(e.down=!1),e.down?st():s.rtl?tt():it()}}function ot(e){Pe(),clearTimeout(te),te=setTimeout(Ne,s.hideCursorTime)}function lt(e){if(Date.now()-G>600){G=Date.now();let t=e.detail||-e.wheelDelta;t>0?rt():t<0&&nt()}}function dt(e){F.readURL()}function ct(e){we()}function ht(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function ut(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(!function(e){ye(),Z.overlay=document.createElement("div"),Z.overlay.classList.add("overlay"),Z.overlay.classList.add("overlay-preview"),Z.wrapper.appendChild(Z.overlay),Z.overlay.innerHTML=`
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
`,Z.overlay.querySelector("iframe").addEventListener("load",e=>{Z.overlay.classList.add("loaded")},!1),Z.overlay.querySelector(".close").addEventListener("click",e=>{ye(),e.preventDefault()},!1),Z.overlay.querySelector(".external").addEventListener("click",e=>{ye()},!1)}(t),e.preventDefault())}}function gt(e){Ce()&&!1===s.loop?(Be(0,0),et()):re?et():Ge()}return n(i,{VERSION:"4.0.0-dev",initialize:function(){if(e)return Z.wrapper=e,Z.slides=e.querySelector(".slides"),window.addEventListener("load",we,!1),s={...B,...t,...h()},X.load(s.dependencies).then(oe),new Promise(e=>i.addEventListener("ready",e));console.warn("reveal.js can not initialize without a valid .reveal element.")},configure:ce,sync:He,syncSlide:function(e=g){q.sync(e),K.sync(e),z.load(e),q.update(),J.update()},syncFragments:K.sync.bind(K),slide:Be,left:tt,right:it,up:at,down:st,prev:nt,next:rt,navigateTo:Be,navigateLeft:tt,navigateRight:it,navigateUp:at,navigateDown:st,navigatePrev:nt,navigateNext:rt,navigateFragment:K.goto.bind(K),prevFragment:K.prev.bind(K),nextFragment:K.next.bind(K),addEventListener:(e,t,a)=>{i.getRevealElement().addEventListener(e,t,a)},removeEventListener:(e,t,a)=>{i.getRevealElement().removeEventListener(e,t,a)},layout:we,shuffle:ze,availableRoutes:qe,availableFragments:K.availableRoutes.bind(K),toggleHelp:function(e){"boolean"==typeof e?e?be():ye():Z.overlay?ye():be()},toggleOverview:W.toggle.bind(W),togglePause:Te,toggleAutoSlide:function(e){"boolean"==typeof e?e?et():Ge():re?et():Ge()},isFirstSlide:xe,isLastSlide:Ce,isLastVerticalSlide:Le,isVerticalSlide:ke,isPaused:De,isAutoSliding:function(){return!(!ae||re)},isSpeakerNotes:J.isSpeakerNotesWindow.bind(J),isOverview:W.isActive.bind(W),isPrintingPDF:Y.isPrintingPDF.bind(Y),loadSlide:z.load.bind(z),unloadSlide:z.unload.bind(z),addEventListeners:he,removeEventListeners:ue,dispatchEvent:ve,getState:Je,setState:function(e){if("object"==typeof e){Be(o(e.indexh),o(e.indexv),o(e.indexf));let t=o(e.paused),i=o(e.overview);"boolean"==typeof t&&t!==De()&&Te(t),"boolean"==typeof i&&i!==W.isActive()&&W.toggle(i)}},getSlidePastCount:Ke,getProgress:function(){let e=Ye(),t=Ke();if(g){let e=g.querySelectorAll(".fragment");if(e.length>0){let i=.9;t+=g.querySelectorAll(".fragment.visible").length/e.length*i}}return Math.min(t/(e-1),1)},getIndices:We,getSlides:Ve,getSlidesAttributes:function(){return Ve().map(e=>{let t={};for(let i=0;iw.hasNavigatedHorizontally,hasNavigatedVertically:()=>w.hasNavigatedVertically,addKeyBinding:V.addKeyBinding.bind(V),removeKeyBinding:V.removeKeyBinding.bind(V),triggerKey:V.triggerKey.bind(V),registerKeyboardShortcut:V.registerKeyboardShortcut.bind(V),registerPlugin:X.registerPlugin.bind(X),hasPlugin:X.hasPlugin.bind(X),getPlugin:X.getPlugin.bind(X),getPlugins:X.getRegisteredPlugins.bind(X),getComputedSlideSize:Re,getPreviousSlide:()=>u,getCurrentSlide:()=>g,getScale:()=>H,getConfig:()=>s,getQueryHash:h,getRevealElement:()=>Z.wrapper||document.querySelector(".reveal"),getSlidesElement:()=>Z.slides,getBackgroundsElement:()=>q.element,isReady:()=>m,announceStatus:le,getStatusText:de,print:Y,progress:$,controls:j,location:F,overview:W,fragments:K,slideContent:z,slideNumber:U,onUserInput:function(e){s.autoSlideStoppable&&Ge()},closeOverlay:ye,updateSlidesVisibility:Oe,layoutSlideContents:Ae,transformSlides:ge,cueAutoSlide:Qe,cancelAutoSlide:Ze})};window.Reveal=H,window.Reveal.initialize=e=>(window.Reveal=new H(document.querySelector(".reveal"),e),window.Reveal.initialize())}]); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index a4d8ca63..8cdab047 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,8 +1,16 @@ +const pkg = require('./package.json') +const path = require('path') +const glob = require('glob') +const colors = require('colors') +const yargs = require('yargs') +const webpack = require('webpack-stream') +const { runQunitPuppeteer, printResultSummary, printFailedTests } = require('node-qunit-puppeteer') + const gulp = require('gulp') +const tap = require('gulp-tap') const zip = require('gulp-zip') const sass = require('gulp-sass') const babel = require('gulp-babel') -const qunit = require('gulp-qunit') const header = require('gulp-header') const eslint = require('gulp-eslint') const uglify = require('gulp-uglify') @@ -10,9 +18,6 @@ const rename = require('gulp-rename') const minify = require('gulp-clean-css') const connect = require('gulp-connect') const autoprefixer = require('gulp-autoprefixer') -const yargs = require('yargs') -const pkg = require('./package.json') -const webpack = require('webpack-stream'); const root = yargs.argv.root || '.' const port = yargs.argv.port || 8000 @@ -33,9 +38,7 @@ const swallowError = function(error) { gulp.task('js', () => gulp.src(['./js/index.js']) .pipe(babel({ presets: ['@babel/preset-env'] })) - .pipe(webpack({ - mode: 'production' - })) + .pipe(webpack({ mode: 'production' })) .on('error', swallowError) .pipe(header(license, {pkg: pkg})) .pipe(rename('reveal.min.js')) @@ -62,10 +65,39 @@ gulp.task('css-core', gulp.series( gulp.task('css', gulp.parallel('css-themes', 'css-core')) +gulp.task('test-qunit', function() { + + let testFiles = glob.sync('test/*.html' ) + + return Promise.all( testFiles.map( filename => { + return new Promise( ( resolve, reject ) => { + runQunitPuppeteer({ + targetUrl: `file://${path.join(__dirname, filename)}`, + timeout: 10000, + redirectConsole: true, + puppeteerArgs: ['--allow-file-access-from-files'] + }) + .then(result => { + console.log(`\n\n${('Testing '+filename+'...').bold.blue}`); + printResultSummary(result, console); + if( result.stats.failed > 0 ) { + printFailedTests(result, console); + } + + resolve(); + }) + .catch(ex => { + console.error(ex); + reject(); + }); + } ) + } ) ) +} ) + gulp.task('test', gulp.series( - () => gulp.src(['./js/**', 'gulpfile.js']).pipe(eslint()).pipe(eslint.format()) - // () => gulp.src(['./test/*.html']).pipe(qunit()) + () => gulp.src(['./js/**', 'gulpfile.js']).pipe(eslint()).pipe(eslint.format()), + 'test-qunit' )) diff --git a/js/index.js b/js/index.js index 51b01434..05beb200 100644 --- a/js/index.js +++ b/js/index.js @@ -1,16 +1,14 @@ import Presentation from './reveal.js' +window.Reveal = Presentation; + // Provides a backwards compatible way to initialize // reveal.js when there is only one presentation on // the page. // // Reveal.initialize({ controls: false }) // Reveal.slide(2) -window.Reveal = { - - initialize: options => { - window.Reveal = new Presentation( document.querySelector( '.reveal' ), options ); - return window.Reveal.initialize(); - } - +window.Reveal.initialize = options => { + window.Reveal = new Presentation( document.querySelector( '.reveal' ), options ); + return window.Reveal.initialize(); } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b16be13b..a41780b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -998,6 +998,12 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/mime-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz", + "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -1220,6 +1226,12 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, "ajv": { "version": "6.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", @@ -2375,6 +2387,12 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3109,12 +3127,6 @@ "es6-symbol": "^3.1.1" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -3814,17 +3826,6 @@ "readable-stream": "^2.0.0" } }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, "fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -4929,81 +4930,6 @@ "through2": "^2.0.0" } }, - "gulp-qunit": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gulp-qunit/-/gulp-qunit-2.1.1.tgz", - "integrity": "sha512-CzAtdF9om4p1yijrTtFwE7SA6heo/9JTrhShAqujjHx8DYMLmv/gcmzkz/geN2LBpMIyGwutF41V/DzQ2ed2sA==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "fancy-log": "^1.3.3", - "phantomjs-prebuilt": "^2.1.16", - "plugin-error": "^1.0.1", - "qunit-phantomjs-runner": "^2.4.1", - "through2": "^3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } - } - } - }, "gulp-rename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", @@ -5043,6 +4969,26 @@ } } }, + "gulp-tap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-tap/-/gulp-tap-2.0.0.tgz", + "integrity": "sha512-U5/v1bTozx672QHzrvzPe6fPl2io7Wqyrx2y30AG53eMU/idH4BrY/b2yikOkdyhjDqGgPoMUMnpBg9e9LK8Nw==", + "dev": true, + "requires": { + "through2": "^3.0.1" + }, + "dependencies": { + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dev": true, + "requires": { + "readable-stream": "2 || 3" + } + } + } + }, "gulp-uglify": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", @@ -5221,16 +5167,6 @@ "minimalistic-assert": "^1.0.1" } }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -5293,6 +5229,33 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5693,12 +5656,6 @@ "is-unc-path": "^1.0.0" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -5836,22 +5793,13 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -5870,27 +5818,12 @@ "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", "dev": true }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, "last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", @@ -6015,9 +5948,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -6265,9 +6198,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -6589,6 +6522,16 @@ } } }, + "node-qunit-puppeteer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-qunit-puppeteer/-/node-qunit-puppeteer-2.0.1.tgz", + "integrity": "sha512-+zrhKqv73XcdGfQaneUejqYHyT3H5dYpHi71JWrTryMLrHefAwuRe5u0CxPDjAphmRI0Evshx2tcW9RdwV/+aA==", + "dev": true, + "requires": { + "colors": "^1.4.0", + "puppeteer": "^2.1.0" + } + }, "node-releases": { "version": "1.1.50", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.50.tgz", @@ -7163,31 +7106,6 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, - "phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" - }, - "dependencies": { - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true - } - } - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -7358,6 +7276,12 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -7417,6 +7341,56 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "puppeteer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.1.tgz", + "integrity": "sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg==", + "dev": true, + "requires": { + "@types/mime-types": "^2.1.0", + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^4.0.0", + "mime": "^2.0.3", + "mime-types": "^2.1.25", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -7435,21 +7409,6 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "qunit-phantomjs-runner": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/qunit-phantomjs-runner/-/qunit-phantomjs-runner-2.4.1.tgz", - "integrity": "sha512-UBpfyREVhwSmGlJqG+KHDbA5mXGQnSjpluhhIap+5ElymTegjgsNPtq0qLAVaOA2KjcxeByDdYZ13LYNGfHCgg==", - "dev": true, - "requires": { - "qunit-reporter-junit": "^1.1.1" - } - }, - "qunit-reporter-junit": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/qunit-reporter-junit/-/qunit-reporter-junit-1.1.1.tgz", - "integrity": "sha1-7rYiZFeJaZPnlaEZQPGK9q+lebQ=", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7685,15 +7644,6 @@ } } }, - "request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8765,12 +8715,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -9413,9 +9357,9 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "eslint-scope": { diff --git a/package.json b/package.json index 9c8ba91e..08714437 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,12 @@ "node": ">=9.0.0" }, "devDependencies": { + "@babel/core": "^7.8.7", + "@babel/preset-env": "^7.8.7", + "babel-eslint": "^10.1.0", + "colors": "^1.4.0", + "express": "^4.17.1", + "glob": "^7.1.6", "gulp": "^4.0.2", "gulp-autoprefixer": "^7.0.1", "gulp-babel": "^8.0.0", @@ -31,19 +37,16 @@ "gulp-connect": "^5.7.0", "gulp-eslint": "^6.0.0", "gulp-header": "^2.0.9", - "gulp-qunit": "^2.1.1", "gulp-rename": "^2.0.0", "gulp-sass": "^4.0.2", + "gulp-tap": "^2.0.0", "gulp-uglify": "^3.0.2", "gulp-zip": "^5.0.1", - "express": "^4.17.1", "mustache": "^4.0.0", + "node-qunit-puppeteer": "^2.0.1", "socket.io": "^2.3.0", - "yargs": "^15.1.0", "webpack-stream": "^5.2.1", - "babel-eslint": "^10.1.0", - "@babel/core": "^7.8.7", - "@babel/preset-env": "^7.8.7" + "yargs": "^15.1.0" }, "eslintConfig": { "env": { diff --git a/test/test-plugins.html b/test/test-plugins.html index 47f530bd..4e689066 100644 --- a/test/test-plugins.html +++ b/test/test-plugins.html @@ -58,7 +58,7 @@ var PluginE = {}; - var reveal = new Reveal(); + var reveal = new Reveal( document.querySelector( '.reveal' ) ); reveal.registerPlugin( 'PluginA', PluginA ); reveal.registerPlugin( 'PluginB', PluginB );