Commits

deian  committed 740cbd1

init

  • Participants

Comments (0)

Files changed (202)

File hotos.key

Binary file added.

File hotos.pdf

Binary file added.

File hotos/assets/480x268/images-1/s1.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s1.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s10.b.png

Added
New image

File hotos/assets/480x268/images-1/s2.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s3.1.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s3.1.1.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s3.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s3.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s3.background.jpeg

Added
New image

File hotos/assets/480x268/images-1/s4.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s5.1.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s5.1.1.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s5.1.5.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s5.2.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s5.3.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s5.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s5.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s6.1.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s6.1.1.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s6.2.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s6.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s6.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s7.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s8.1.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s8.1.1.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s8.1.4.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s8.2.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s8.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s8.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/s9.1.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s9.1.1.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s9.1.4.1.fixed.png

Added
New image

File hotos/assets/480x268/images-1/s9.2.1.1.dynamic.png

Added
New image

File hotos/assets/480x268/images-1/s9.a.jpeg

Added
New image

File hotos/assets/480x268/images-1/s9.b.jpeg

Added
New image

File hotos/assets/480x268/images-1/thumbnail.jpeg

Added
New image

File hotos/assets/fallback/bezel-l.png

Added
New image

File hotos/assets/fallback/bezel-m.png

Added
New image

File hotos/assets/fallback/bezel-r.png

Added
New image

File hotos/assets/fallback/close_d.png

Added
New image

File hotos/assets/fallback/close_n.png

Added
New image

File hotos/assets/fallback/close_p.png

Added
New image

File hotos/assets/fallback/control_bg-cap-left.png

Added
New image

File hotos/assets/fallback/control_bg-cap-right.png

Added
New image

File hotos/assets/fallback/control_bg-fill.png

Added
New image

File hotos/assets/fallback/control_iwork_N.png

Added
New image

File hotos/assets/fallback/control_iwork_P.png

Added
New image

File hotos/assets/fallback/control_next_D.png

Added
New image

File hotos/assets/fallback/control_next_N.png

Added
New image

File hotos/assets/fallback/control_next_P.png

Added
New image

File hotos/assets/fallback/control_play-72_N.png

Added
New image

File hotos/assets/fallback/control_play-72_P.png

Added
New image

File hotos/assets/fallback/control_previous_D.png

Added
New image

File hotos/assets/fallback/control_previous_N.png

Added
New image

File hotos/assets/fallback/control_previous_P.png

Added
New image

File hotos/assets/fallback/control_restart_D.png

Added
New image

File hotos/assets/fallback/control_restart_N.png

Added
New image

File hotos/assets/fallback/control_restart_P.png

Added
New image

File hotos/assets/fallback/control_sound-off_N.png

Added
New image

File hotos/assets/fallback/control_sound-off_P.png

Added
New image

File hotos/assets/fallback/control_sound-on_N.png

Added
New image

File hotos/assets/fallback/control_sound-on_P.png

Added
New image

File hotos/assets/fallback/doc_info_mobile_cut.png

Added
New image

File hotos/assets/fallback/index.css

+html,
+body {
+  border:0;
+  background-color: black;
+}
+
+/* waiting spinner */
+
+div#waitingIndicator
+{
+        position: absolute; 
+        visibility: hidden;
+        width: 110px;
+        height: 110px;
+        background-image: url('waiting_bezel.png');
+}
+
+div#waitingSpinner
+{
+        position: absolute; 
+        visibility: hidden;
+        top: 32px;
+        left: 38px;
+        width: 32px;
+        height: 32px;
+        background-image: url('spinner_dkgrey.gif');
+}
+
+/* HUD */
+
+div#hud
+{
+	position: absolute;
+	width: 340px;
+	height: 59px;
+	display: block;
+    visibility: hidden;
+}
+
+/* HUD Background Bezel
+   -------------------- */
+
+.hudBezel
+{
+	position: absolute;
+	top: 0px;
+	height: 59px;
+}
+
+div#hudBezelLeftEndCap
+{
+	left: 0px;
+	width: 10px;
+	background-image: url('bezel-l.png');
+}
+
+div#hudBezelFiller
+{
+	left: 10px;
+	width: 340px;
+	background-image: url('bezel-m.png');
+}
+
+div#hudBezelRightEndCap
+{
+	left: 350px;
+	width: 10px;
+	background-image: url('bezel-r.png');
+}
+
+img#hudBezelLeftDivider
+{
+	left: 95px;
+	width: 2px;
+	background-image: url('doc_info_mobile_cut.png');
+}
+
+img#hudBezelRightDivider
+{
+	left: 285px;
+	width: 2px;
+	background-image: url('doc_info_mobile_cut.png');
+}
+
+/* HUD Mute Button
+   --------------- */
+
+/*
+div.hudMuteButton
+{
+	position: absolute;
+	cursor: pointer;
+	left: 26px;
+	top: 18px;
+	width: 24px;
+	height: 21px;
+	background-image: url('snd_on_n.png');
+}
+
+div#hudMuteButton:active
+{
+	background-image: url('snd_on_p.png');
+}
+*/
+
+/* HUD Prev Button
+   --------------- */
+
+div#hudPreviousButton
+{
+	position: absolute;
+	left: 47px;
+	top: 17px;
+	width: 31px;
+	height: 23px;
+}
+
+div.hudPreviousButtonEnabled
+{
+	cursor: pointer;
+	background-image: url('left_arrow_n.png');
+}
+
+div.hudPreviousButtonEnabled:active
+{
+	background-image: url('left_arrow_p.png');
+}
+
+div.hudPreviousButtonDisabled
+{
+	cursor: default;
+	background-image: url('left_arrow_d.png');
+}
+
+/* HUD Slide Counter
+   ----------------- */
+
+div.hudSlideCounter
+{
+	position: absolute;
+	height: 22px;
+	left: 84px;
+	width: 136px;
+
+	font-family: "Helvetica";
+	text-shadow: 0.0em 0.2em #000000;
+	text-align: center;
+	color: #838383;
+}
+
+div#hudSlideCounterSection
+{
+	top: 19px;
+	height: 22px;
+	text-align: center;
+	font-size: 16px;
+}
+
+/* HUD Next Button
+   --------------- */
+   
+div#hudNextButton
+{
+	position: absolute;
+	left: 223px;
+	top: 17px;
+	width: 31px;
+	height: 23px;
+}
+
+div.hudNextButtonEnabled
+{
+	cursor: pointer;
+	background-image: url('right_arrow_n.png');
+}
+
+div.hudNextButtonEnabled:active
+{
+	background-image: url('right_arrow_p.png');
+}
+
+div.hudNextButtonDisabled
+{
+	cursor: default;
+	background-image: url('right_arrow_d.png');
+}
+
+/* HUD Close Button
+   ---------------- */
+   
+div#hudCloseButton
+{
+	position: absolute;
+	left: 311px;
+	top: 18px;
+	width: 21px;
+	height: 22px;
+}
+
+div.hudCloseButtonEnabled
+{
+	cursor: pointer;
+	background-image: url('close_n.png');
+}
+
+div.hudCloseButtonEnabled:active
+{
+	background-image: url('close_p.png');
+}
+
+/* Embedded Control Bar
+   -------------------- */
+
+div#embed_background
+{
+    position: absolute;
+    display: none;
+    background-color: #000000;
+}
+
+div#embeddedControlBar
+{
+	position: absolute;
+	display: none;
+}
+
+div#embeddedControlBarBackground
+{
+	position: absolute;
+	top: 0px;
+	height: 30px;
+	width: 100%;
+}
+
+div.embeddedControlBarBezel
+{
+	position: absolute;
+	top: 0px;
+	height: 30px;
+}
+
+div#embeddedControlBarBezel_LeftEndCap
+{
+	background-image: url('control_bg-cap-left.png');
+	width: 10px;
+}
+
+div#embeddedControlBarBezel_Filler
+{
+	background-image: url('control_bg-fill.png');
+	background-repeat: repeat-x;
+	left: 10px;
+}
+
+div#embeddedControlBarBezel_RightEndCap
+{
+	background-image: url('control_bg-cap-right.png');
+	width: 10px;
+}
+
+div#embeddedSlideCounterSection
+{
+	position: absolute;
+	top: 8px;
+	height: 14px;
+	width: 80px;
+
+	font-family: "Helvetica";
+	font-size: 12px;
+	text-shadow: 0.0em 0.2em #000000;
+	text-align: center;
+	color: #FFFFFF;
+}
+
+/* Embedded Restart Button
+   ----------------------- */
+
+div#embeddedControls_Restart
+{
+	position: absolute;
+	top: 0px;
+	width: 35px;
+	height: 30px;
+}
+
+div.embeddedControls_Restart_Enabled
+{
+	cursor: pointer;
+	background-image: url('control_restart_N.png');
+}
+
+div.embeddedControls_Restart_Enabled:active
+{
+	cursor: pointer;
+	background-image: url('control_restart_P.png');
+}
+
+div.embeddedControls_Restart_Disabled
+{
+	cursor: default;
+	background-image: url('control_restart_D.png');
+}
+
+/* Embedded Prev Button
+   -------------------- */
+
+div#embeddedControls_Previous
+{
+	position: absolute;
+	top: 0px;
+	width: 35px;
+	height: 30px;
+	left: 100px;
+}
+
+div.embeddedControls_Previous_Enabled
+{
+	cursor: pointer;
+	background-image: url('control_previous_N.png');
+}
+
+div.embeddedControls_Previous_Enabled:active
+{
+	background-image: url('control_previous_P.png');
+}
+
+div.embeddedControls_Previous_Disabled
+{
+	cursor: default;
+	background-image: url('control_previous_D.png');
+}
+
+/* Embedded Next Button
+   -------------------- */
+
+div#embeddedControls_Next
+{
+	position: absolute;
+	top: 0px;
+	width: 35px;
+	height: 30px;
+	left: 200px;
+}
+
+div.embeddedControls_Next_Enabled
+{
+	cursor: pointer;
+	background-image: url('control_next_N.png');
+}
+
+div.embeddedControls_Next_Enabled:active
+{
+	background-image: url('control_next_P.png');
+}
+
+div.embeddedControls_Next_Disabled
+{
+	cursor: default;
+	background-image: url('control_next_D.png');
+}
+
+/* Embedded iWork.com link Button
+   ------------------------------ */
+
+div#embeddedControls_Link
+{
+	position: absolute;
+	top: 0px;
+	width: 35px;
+	height: 30px;
+	left: 425px;
+}
+
+div.embeddedControls_Link_Enabled
+{
+	cursor: pointer;
+	background-image: url('control_link_N.png');
+}
+
+div.embeddedControls_Link_Enabled:active
+{
+	background-image: url('control_link_P.png');
+}

File hotos/assets/fallback/index.html

+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Keynote</title>
+
+<LINK REL=StyleSheet HREF="index.css" TYPE="text/css">
+<script src="../player/prototype.js"> type="text/javascript"></script>
+<script src="player.js"> type="text/javascript"></script>
+
+</head>  
+<body onLoad="fallbackPlayerOnload()" bgcolor="black">
+    <div id="embed_background"></div>
+
+    <div id="playback"></div>
+    
+    <div id="waitingIndicator">
+        <div id="waitingSpinner">
+        </div>
+    </div>
+    
+    <div id="hud">
+        <div id="hudBackground">
+            <div id="hudBezelLeftEndCap" class="hudBezel">
+            </div>
+            
+            <div id="hudBezelFiller" class="hudBezel">
+            </div>
+            
+            <div id="hudBezelRightEndCap" class="hudBezel">
+            </div>
+            
+            <img id="hudBezelRightDivider" class="hudBezel">
+        </div>
+
+        <div id="hudPreviousButton" class="hudPreviousButtonDisabled">
+        </div>
+    
+        <div id="hudSlideCounterSection" class="hudSlideCounter">
+            <span id="hudSlideCounter"></span>
+        </div>
+    
+        <div id="hudNextButton" class="hudNextButtonDisabled">
+        </div>
+    
+        <div id="hudCloseButton" class="hudCloseButtonEnabled"">
+        </div>
+    </div>
+    
+    <div id="embeddedControlBar">
+        <div id="embeddedControlBarBackground">
+            <div id="embeddedControlBarBezel_LeftEndCap" class="embeddedControlBarBezel">
+            </div>
+            
+            <div id="embeddedControlBarBezel_Filler" class="embeddedControlBarBezel">
+            </div>
+            
+            <div id="embeddedControlBarBezel_RightEndCap" class="embeddedControlBarBezel">
+            </div>
+        </div>
+
+        <div id="embeddedControls_Restart" class="embeddedControls_Restart_Disabled">
+        </div>
+
+        <div id="embeddedControls_Previous" class="embeddedControls_Previous_Disabled">
+        </div>
+
+        <div id="embeddedSlideCounterSection" class="embeddedSlideCounter">
+            <span id="embeddedSlideCounter">1/N</span>
+        </div>
+
+        <div id="embeddedControls_Next" class="embeddedControls_Next_Disabled">
+        </div>
+
+        <div id="embeddedControls_Link" class="embeddedControls_Link_Enabled" onclick="handleLinkControl();">
+        </div>
+    </div>
+
+</body>
+</html>

File hotos/assets/fallback/left_arrow_d.png

Added
New image

File hotos/assets/fallback/left_arrow_n.png

Added
New image

File hotos/assets/fallback/left_arrow_p.png

Added
New image

File hotos/assets/fallback/player.js

+function loc(a){return a}function static_url(a){return a}var currentEventTimeline=0;var currentNavigationEvent=0;var MAX_SLIDE=0;var delegate=null;var kPropertyName_currentSlide="currentSlide";var kSlideLabel=loc("Slide","Prefix label for 'Slide I/N' display");var showUrl="..";var isEmbedded=getUrlParameter("embed")=="1";function fallbackPlayerOnload(){var a=new Date();new Ajax.Request((showUrl+"/kpf.json"),{method:"get",onSuccess:function(b){scriptDidDownload(b)},onFailure:function(b){scriptDidNotDownload(b)}})}function preloadImage(b){var a=new Image();a.src=b}function scriptDidDownload(transport){extractDelegateFromUrlParameter();this.showScript=eval("("+transport.responseText+")");MAX_SLIDE=showScript.navigatorEvents.length;document.observe("keydown",function(event){handleKeyDownEvent(event)});if(!isEmbedded){document.observe("mousedown",function(event){handleMouseDownEvent(event)})}else{$(playback).observe("click",function(event){handleMouseDownEvent(event)})}window.onresize=function(event){handleWindowResizeEvent(event,true)};this.hud=document.getElementById("hud");this.hud.onmouseover=function(event){self.handleMouseOverHUD(event)};$(this.hud).observe("mouseleave",function(event){self.handleMouseOutHUD(event)});Event.observe(document,"mousemove",function(event){self.handleMouseMove(event)});this.hudNextButton=document.getElementById("hudNextButton");this.hudPreviousButton=document.getElementById("hudPreviousButton");this.hudCloseButton=document.getElementById("hudCloseButton");$(this.hudNextButton).observe("click",function(event){handleHudNext()});$(this.hudPreviousButton).observe("click",function(event){handleHudPrevious()});$(this.hudCloseButton).observe("click",function(event){delegate.showExited()});if(isEmbedded){$(embeddedControls_Next).observe("click",function(event){handleHudNext()});$(embeddedControls_Previous).observe("click",function(event){handleHudPrevious()});$(embeddedControls_Restart).observe("click",function(event){setPlayheadByNavigationEvent(0);loadEventTimeline(currentEventTimeline,true)})}preloadImage(static_url("left_arrow_d.png"));preloadImage(static_url("left_arrow_n.png"));preloadImage(static_url("left_arrow_p.png"));preloadImage(static_url("right_arrow_d.png"));preloadImage(static_url("right_arrow_n.png"));preloadImage(static_url("right_arrow_p.png"));preloadImage(static_url("close_d.png"));preloadImage(static_url("close_n.png"));preloadImage(static_url("close_p.png"));handleWindowResizeEvent(null,false);var startingSlide=Math.max(getUrlParameter("currentSlide")-1,0);setPlayheadByNavigationEvent(startingSlide);loadEventTimeline(currentEventTimeline,true);if(delegate!=null){delegate.showDidLoad()}}function scriptDidNotDownload(a){}var kKeyCode_Space=32;var kKeyCode_Escape=27;var kKeyCode_LeftArrow=37;var kKeyCode_UpArrow=38;var kKeyCode_RightArrow=39;var kKeyCode_DownArrow=40;var kKeyCode_OpenBracket=219;var kKeyCode_CloseBracket=221;var kKeyCode_Home=36;var kKeyCode_End=35;var kKeyCode_PageUp=33;var kKeyCode_PageDown=34;var kKeyCode_Return=13;var kKeyCode_N=78;var kKeyCode_P=80;var kKeyCode_Delete=46;function handleKeyDownEvent(c){var b=c.charCode||c.keyCode;var a={altKey:!!c.altKey,ctrlKey:!!c.ctrlKey,shiftKey:!!c.shiftKey,metaKey:!!c.metaKey};if(a.metaKey){return}Event.stop(c);executeKeyDown(b,a)}function executeKeyDown(b,a){if(a.shiftKey){switch(b){case kKeyCode_DownArrow:case kKeyCode_RightArrow:b=kKeyCode_CloseBracket;break;case kKeyCode_UpArrow:case kKeyCode_LeftArrow:b=kKeyCode_OpenBracket;break}}switch(b){case kKeyCode_Space:case kKeyCode_DownArrow:case kKeyCode_RightArrow:case kKeyCode_N:setPlayheadByEventTimeline(currentEventTimeline+1,true);loadEventTimeline(currentEventTimeline,true);break;case kKeyCode_LeftArrow:case kKeyCode_UpArrow:case kKeyCode_P:goBackBySlide();break;case kKeyCode_CloseBracket:setPlayheadByNavigationEvent(currentNavigationEvent+1);loadEventTimeline(currentEventTimeline,true);break;case kKeyCode_OpenBracket:setPlayheadByEventTimeline(currentEventTimeline-1,true);loadEventTimeline(currentEventTimeline,true);break;case kKeyCode_Home:setPlayheadByNavigationEvent(0);loadEventTimeline(currentEventTimeline,true);break;case kKeyCode_End:setPlayheadByNavigationEvent(showScript.navigatorEvents.length-1);loadEventTimeline(currentEventTimeline,true);break;case kKeyCode_Escape:delegate.showExited();break}}function handleMouseDownEvent(a){if(a!=null){Event.stop(a)}if(inHyperlink){return}if(!mouseIsOverHUD){setPlayheadByEventTimeline(currentEventTimeline+1,true);loadEventTimeline(currentEventTimeline,true)}}function handleHudPrevious(a){goBackBySlide()}function handleHudNext(a){setPlayheadByEventTimeline(currentEventTimeline+1,true);loadEventTimeline(currentEventTimeline,true)}function goBackBySlide(){var a=showScript.navigatorEvents[currentNavigationEvent].eventIndex;if(a!=currentEventTimeline){setPlayheadByEventTimeline(a)}else{setPlayheadByNavigationEvent(Math.max(0,currentNavigationEvent-1))}loadEventTimeline(currentEventTimeline,true)}function handleURLClick(b,a){Event.stop(b);var c=a.substr(7);c--;setPlayheadByNavigationEvent(c);loadEventTimeline(currentEventTimeline,true);inHyperlink=false}var scaleFactor=1;var kEmbeddeControlBar_EndCapWidth=10;var kEmbeddeControlBar_GapBelowShow=1;var kEmbeddedControlBar_Height=30;var kEmbeddedControlBar_ButtonWidth=35;var kEmbeddedControlBar_iWorkLogoWidth=95;var kEmbeddedControlBar_LinkToPresentationWidth=250;var kEmbeddedControlBar_SlideCounterWidth=80;function handleWindowResizeEvent(v,B){var n=document.getElementById("playback");var m=showScript.slideWidth;var l=showScript.slideHeight;var b=window;var d=document;var o=0;var u=0;if(!window.innerWidth){if(!(document.documentElement.clientWidth==0)){o=document.documentElement.clientWidth;u=document.documentElement.clientHeight}else{o=document.body.clientWidth;u=document.body.clientHeight}}else{o=window.innerWidth;u=window.innerHeight}if(!isEmbedded){u=(u-(kHeightOfHUD+kMinGapBetweenStageAndHUD))}else{o-=2}if(!isEmbedded){scaleFactor=Math.min(o/m,u/l,1)}else{scaleFactor=o/m}if(scaleFactor<=0){scaleFactor=1}var i=(o/2)-(m*scaleFactor*0.5);n.style.top="0px";n.style.left=i+"px";n.style.width=m*scaleFactor+"px";n.style.height=l*scaleFactor+"px";n.style.position="absolute";n.style.overflow="hidden";n.style.display="block";if(isEmbedded){var j=l*scaleFactor;var z=o;var t=document.getElementById("embed_background");t.style.top="0px";t.style.left="0px";t.style.width=o+2+"px";t.style.height=u+"px";n.style.top="0px";n.style.left="0px";n.style.width=z+"px";n.style.height=j+"px";n.style.border="1px solid #000000";var y=document.getElementById("embeddedControlBar");var k=document.getElementById("embeddedControls_Previous");var f=document.getElementById("embeddedControls_Next");var c=document.getElementById("embeddedSlideCounterSection");y.style.top=j+kEmbeddeControlBar_GapBelowShow+"px";y.style.left="0px";y.style.width=z+2+"px";y.style.height=kEmbeddedControlBar_Height+"px";embeddedControlBarBezel_Filler.style.width=(z-2*kEmbeddeControlBar_EndCapWidth)+2+"px";embeddedControlBarBezel_RightEndCap.style.left=(z+2)-kEmbeddeControlBar_EndCapWidth+"px";var s=(z+2)/2;k.style.left=s-kEmbeddedControlBar_SlideCounterWidth/2-kEmbeddedControlBar_ButtonWidth+"px";f.style.left=s+kEmbeddedControlBar_SlideCounterWidth/2+"px";c.style.left=s-kEmbeddedControlBar_SlideCounterWidth/2+"px";y.style.display="block";t.style.display="block"}var r=document.getElementById("waitingIndicator");r.style.left=i+((m*scaleFactor/2)-55)+"px";r.style.top=(l*scaleFactor/2)-55+"px";if(!isEmbedded){var e=document.getElementById("hud");var h=(o-kWidthOfHUD)/2;var x=(l*scaleFactor)+kMinGapBetweenStageAndHUD;e.style.left=h+"px";e.style.top=x+"px"}if(B){var q=this.showScript.eventTimelines[currentEventTimeline].eventInitialStates;var w=q.length;for(var g=0;g<w;g++){var A=q[g];if(A.hidden==false&&A.opacity>0){var a=showUrl+"/"+this.showScript.textures[A.texture].url;var p=textureLoaderDictionary[A.texture];setTextureElementPosition(p,A)}}}}function handleLinkControl(){var a="http://public.iwork.com/document/?a="+getUrlParameter("a")+"&d="+getUrlParameter("d");window.open(a,"_top")}var gShowController={gotoSlide:function(a){setPlayheadByNavigationEvent(a-1);loadEventTimeline(currentEventTimeline,true)},getProperty:function(a){if(a=="currentSlide"){return currentNavigationEvent+1}},onKeyPress:function(b,a){executeKeyDown(b,a)},onMouseDown:function(a){handleMouseDownEvent(null)}};function setSpinnerVisibility(a){if(spinnerTimeoutID!=null){clearTimeout(spinnerTimeoutID);spinnerTimeoutID=null}if(a==false){document.getElementById("waitingIndicator").style.visibility="hidden";document.getElementById("waitingSpinner").style.visibility="hidden"}else{document.getElementById("waitingIndicator").style.visibility="visible";document.getElementById("waitingSpinner").style.visibility="visible"}}var spinnerTimeoutID=null;function showSpinnerIn(a){if(spinnerTimeoutID==null){spinnerTimeoutID=setTimeout(function(){setSpinnerVisibility(true)},a*1000)}}function hideSpinner(){setSpinnerVisibility(false)}function setPlayheadByEventTimeline(a,b){if(this.showScript.loopSlideshow==1&&a>=showScript.eventTimelines.length){a=0}if(a<0||a>=showScript.eventTimelines.length){trace("trying to access a timeline off the end [setPlayheadByEventTimeline]");return false}currentEventTimeline=a;if(b){setNavigationEventByEventTimeline(currentEventTimeline)}updateHUD();return true}function setPlayheadByNavigationEvent(b){if(this.showScript.loopSlideshow==1){if(b>=MAX_SLIDE){b=0}}if(b>=MAX_SLIDE){trace("trying to access a timeline off the end [setPlayheadByNavigationEvent]");return false}var a=showScript.navigatorEvents[b].eventIndex;if(setPlayheadByEventTimeline(a,false)){currentNavigationEvent=b;if(!isEmbedded){if(delegate!=null){delegate.propertyChanged(kPropertyName_currentSlide,currentNavigationEvent+1)}}updateHUD();return true}else{return false}}function setNavigationEventByEventTimeline(d){var c=showScript.navigatorEvents.length;var b=showScript.eventTimelines.length;var e=currentNavigationEvent;var g=1;if(d<showScript.navigatorEvents[e].eventIndex){g=-1}while(true){var a=showScript.navigatorEvents[e].eventIndex;var f=b;if((e+1)<c){f=showScript.navigatorEvents[e+1].eventIndex-1}if(a<=d&&d<=f){break}e+=g}if(currentNavigationEvent!=e){currentNavigationEvent=e;if(!isEmbedded){if(delegate!=null){delegate.propertyChanged(kPropertyName_currentSlide,currentNavigationEvent+1)}}}updateHUD()}function updateHUD_regular(){var c=document.getElementById("hudPreviousButton");var a=document.getElementById("hudNextButton");if(currentEventTimeline==0){if(c.hasClassName("hudPreviousButtonEnabled")){c.removeClassName("hudPreviousButtonEnabled")}c.addClassName("hudPreviousButtonDisabled")}else{if(c.hasClassName("hudPreviousButtonDisabled")){c.removeClassName("hudPreviousButtonDisabled")}c.addClassName("hudPreviousButtonEnabled")}if(currentEventTimeline==(showScript.eventTimelines.length-1)){if(a.hasClassName("hudNextButtonEnabled")){a.removeClassName("hudNextButtonEnabled")}a.addClassName("hudNextButtonDisabled")}else{if(a.hasClassName("hudNextButtonDisabled")){a.removeClassName("hudNextButtonDisabled")}a.addClassName("hudNextButtonEnabled")}var b=document.getElementById("hudSlideCounter");b.innerHTML="<font color='#FFFFFF'>"+kSlideLabel+" "+(currentNavigationEvent+1)+" / "+MAX_SLIDE+"</font>"}function updateHUD_embed(){var d=document.getElementById("embeddedControls_Restart");var b=document.getElementById("embeddedControls_Previous");var c=document.getElementById("embeddedControls_Next");if(currentEventTimeline==0){if(b.hasClassName("embeddedControls_Previous_Enabled")){b.removeClassName("embeddedControls_Previous_Enabled")}b.addClassName("embeddedControls_Previous_Disabled");if(d.hasClassName("embeddedControls_Restart_Enabled")){d.removeClassName("embeddedControls_Restart_Enabled")}d.addClassName("embeddedControls_Restart_Disabled")}else{if(b.hasClassName("embeddedControls_Previous_Disabled")){b.removeClassName("embeddedControls_Previous_Disabled")}b.addClassName("embeddedControls_Previous_Enabled");if(d.hasClassName("embeddedControls_Restart_Disabled")){d.removeClassName("embeddedControls_Restart_Disabled")}d.addClassName("embeddedControls_Restart_Enabled")}if(currentEventTimeline==(showScript.eventTimelines.length-1)){if(c.hasClassName("embeddedControls_Next_Enabled")){c.removeClassName("embeddedControls_Next_Enabled")}c.addClassName("embeddedControls_Next_Disabled")}else{if(c.hasClassName("embeddedControls_Next_Disabled")){c.removeClassName("embeddedControls_Next_Disabled")}c.addClassName("embeddedControls_Next_Enabled")}var a=document.getElementById("embeddedSlideCounter");a.innerHTML="<font color='#FFFFFF'>"+(currentNavigationEvent+1)+" / "+MAX_SLIDE+"</font>"}function updateHUD(){if(!isEmbedded){updateHUD_regular()}else{updateHUD_embed()}}var textureLoaderDictionary=new Array();var preloadingList=new Array();var preloadingListCount=0;var loading=false;var preloading=false;var loadingCount=0;function setLoading(a){loadingCount++;loading=a}function setPreloading(a){preloading=a}function scaledXValue(b,d,c){var a=(c[0]*b)+(c[2]*d)+c[4];a*=scaleFactor;return a}function scaledYValue(b,d,c){var a=(c[1]*b)+(c[3]*d)+c[5];a*=scaleFactor;return a}function setTextureElementPosition(j,g){if(this.showScript.textures[g.texture].movieUrl&&0==g.affineTransform[1]&&0==g.affineTransform[2]){var e=this.showScript.textures[g.texture].width;var o=this.showScript.textures[g.texture].height;var f=scaledXValue(-e/2,-o/2,g.affineTransform);var d=scaledXValue(e/2,-o/2,g.affineTransform);var b=scaledXValue(-e/2,o/2,g.affineTransform);var p=scaledXValue(e/2,o/2,g.affineTransform);var n=scaledYValue(-e/2,-o/2,g.affineTransform);var m=scaledYValue(e/2,-o/2,g.affineTransform);var l=scaledYValue(-e/2,o/2,g.affineTransform);var k=scaledYValue(e/2,o/2,g.affineTransform);var i=Math.min(f,d,b,p);var c=Math.max(f,d,b,p);var h=Math.min(n,m,l,k);var a=Math.max(n,m,l,k);j.style.left=i+(e*scaleFactor/2)+"px";j.style.top=h+(o*scaleFactor/2)+"px";j.style.width=c-i+"px";j.style.height=a-h+"px"}else{j.style.left=g.affineTransform[4]*scaleFactor+"px";j.style.top=g.affineTransform[5]*scaleFactor+"px";j.style.width=this.showScript.textures[g.texture].width*scaleFactor+"px";j.style.height=this.showScript.textures[g.texture].height*scaleFactor+"px"}}function loadEventTimeline(f,g){if(loading){return}setLoading(true);var h=this.showScript.eventTimelines[f].eventInitialStates;var c=h.length;preloadingList=new Array();preloadingListCount=0;setPreloading(true);if(g){showSpinnerIn(0.5)}for(var e=0;e<c;e++){var a=h[e];if(a.hidden==false&&a.opacity>0){var d=showUrl+"/"+this.showScript.textures[a.texture].url;if(textureLoaderDictionary[a.texture]==undefined){preloadingListCount++;preloadingList[preloadingListCount-1]=d;var b=document.createElement("img");b.onload=createOnLoadClosure(f,d,g);b.src=d+"?ts="+escape(this.showScript.timestamp);b.style.position="absolute";setTextureElementPosition(b,a);if(a.opacity<1){$(b).setOpacity(a.opacity)}textureLoaderDictionary[a.texture]=b}}}setPreloading(false);if(preloadingListCount==0){if(g){displayEventTimeline(f)}setLoading(false)}}var count=0;function textureLoaded(c,b,d){for(var a=0;a<preloadingListCount;a++){if(b==preloadingList[a]){preloadingList.splice(a,1);preloadingListCount--;break}}if(preloadingListCount==0&&preloading==false){if(d){displayEventTimeline(c)}setLoading(false)}}function displayEventTimeline(g){hideSpinner();var a=document.getElementById("playback");removeChildren(a);var d=this.showScript.eventTimelines[g].eventInitialStates;var i=d.length;for(var h=0;h<i;h++){var c=d[h];if(c.hidden==false&&c.opacity>0){var b=showUrl+"/"+this.showScript.textures[c.texture].url;var e=textureLoaderDictionary[c.texture];setTextureElementPosition(e,c);a.appendChild(e)}}if(this.showScript.eventTimelines[g].hyperlinks){var f=this.showScript.eventTimelines[g].hyperlinks;for(var h=0;h<f.length;h++){var e=document.createElement("a");e.style.position="absolute";e.style.left=f[h].targetRectangle.x*scaleFactor+"px";e.style.top=f[h].targetRectangle.y*scaleFactor+"px";e.style.width=f[h].targetRectangle.width*scaleFactor+"px";e.style.height=f[h].targetRectangle.height*scaleFactor+"px";e.href="#";a.appendChild(e);$(e).observe("mouseover",function(j){inHyperlink=true});$(e).observe("mouseout",function(j){inHyperlink=false});if(f[h].url.indexOf("http:")==0){e.href=f[h].url;e.target="_blank"}else{if(f[h].url.indexOf("mailto:")==0){e.href=f[h].url}else{createHyperlinkClosure($(e),f[h].url)}}}}}var inHyperlink=false;function getUrlParameter(b){b=b.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var a="[\\?&]"+b+"=([^&#]*)";var c=new RegExp(a);var d=c.exec(window.location.href);if(d==null){return""}else{return d[1]}}function extractDelegateFromUrlParameter(){if(isEmbedded){this.delegeate=null;return}var a="";var d=getUrlParameter("delegate");if((d=="")||(d==null)||(typeof(d)=="undefined")){delegate=null;return}var c=d.indexOf(".");delegate=window;while(c!=-1){var b=d.substring(0,c);delegate=delegate[b];d=d.substring(c+1);c=d.indexOf(".")}delegate=delegate[d]}function removeChildren(a){if(!a){return false}if(typeof(a)=="string"){a=xGetElementById(a)}while(a.hasChildNodes()){a.removeChild(a.firstChild)}return true}function createOnLoadClosure(b,a,c){return function(){textureLoaded(b,a,c)}}function createHyperlinkClosure(b,a){b.observe("click",function(c){handleURLClick(c,a)})}function trace(a){if(window.console!=undefined){window.console.log(a)}}var kWidthOfHUD=360;var kHeightOfHUD=59;var kMinGapBetweenStageAndHUD=8;var kTimeoutValueForHUD=1000;var hudIsShowing=false;var mouseIsOverHUD=false;function showHUD(){if(isEmbedded){return}var a=document.getElementById("hud");a.style.visibility="visible";hudIsShowing=true;setTimeoutForHUD()}function hideHUD(){if(isEmbedded){return}var a=document.getElementById("hud");a.style.visibility="hidden";hudIsShowing=false}function setTimeoutForHUD(){if(this.hudTimeout){clearTimeout(this.hudTimeout)}var a=this;this.hudTimeout=setTimeout(function(){a.handleTimeoutForHUD()},kTimeoutValueForHUD)}function handleTimeoutForHUD(){if(!this.mouseIsOverHUD){hideHUD()}}function handleMouseOverHUD(a){this.mouseIsOverHUD=true}function handleMouseOutHUD(a){this.mouseIsOverHUD=false}var prevEvent=null;function handleMouseMove(a){if(prevEvent!=null){var b=Math.abs(Event.pointerX(a)-Event.pointerX(prevEvent))+Math.abs(Event.pointerY(a)-Event.pointerY(prevEvent));if(b>10){showHUD()}}prevEvent=a};

File hotos/assets/fallback/right_arrow_d.png

Added
New image

File hotos/assets/fallback/right_arrow_n.png

Added
New image

File hotos/assets/fallback/right_arrow_p.png

Added
New image

File hotos/assets/fallback/spinner_dkgrey.gif

Added
New image

File hotos/assets/fallback/string.js

+var SC=SC||{},CoreDocs=CoreDocs||{},NO=false,YES=true;CoreDocs.loc=function(a,b){if(b===undefined){CoreDocs.error('"'+a+'" needs a comment to be picked up for loc.')}a=a.loc();a=a.replace(/@@/g,"%@");return a};SC.String={fmt:function(){var f=this.gsub(/%@([0-9]+)/,function(g){return(arguments[parseInt(g[1],0)-1]||"").toString()});var c=[];var a=-1;var e=0;var b=0;while((a=f.indexOf("%@",e))>=0){c.push(f.slice(e,a));e=a+2;var d=arguments[b++];if(d&&d.toString){d=d.toString()}c.push(d)}if(e<f.length){c.push(f.slice(e,f.length))}return(c.length>1)?c.join(""):c[0]},loc:function(){var a=String[String.currentLanguage()];var b=a[this];if(!b){b=String.English[this]||this}return b.fmt.apply(b,arguments)}};for(var key in SC.String){String.prototype[key]=SC.String[key]}Object.extend(String,{browserLanguage:((navigator.language||navigator.browserLanguage).split("-",1)[0]),useAutodetectedLanguage:NO,preferredLanguage:null,currentLanguage:function(){var a=(this.useAutodetectedLanguage)?(this.browserLanguage||this.preferredLanguage||"en"):(this.preferredLanguage||this.browserLanguage||"en");if(!this[a]){a=this.normalizedLanguage(a)}return a},normalizedLanguage:function(a){switch(a){case"fr":a="French";break;case"de":a="German";break;case"ja":case"jp":a="Japanese";break;case"en":a="English";break;case"es":a="Spanish";break;default:a="English";break}return a},addStringsFor:function(b,a){b=String.normalizedLanguage(b);if(!String[b]){String[b]={}}Object.extend(String[b],a||{});return this}});String.English=String.English||{};String.French=String.French||{};String.German=String.German||{};String.Japanese=String.Japanese||{};

File hotos/assets/fallback/waiting_bezel.png

Added
New image

File hotos/assets/images-1/s1.a.jpeg

Added
New image

File hotos/assets/images-1/s1.b.jpeg

Added
New image

File hotos/assets/images-1/s10.b.png

Added
New image

File hotos/assets/images-1/s2.b.jpeg

Added
New image

File hotos/assets/images-1/s3.1.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s3.1.1.1.fixed.png

Added
New image

File hotos/assets/images-1/s3.a.jpeg

Added
New image

File hotos/assets/images-1/s3.b.jpeg

Added
New image

File hotos/assets/images-1/s3.background.jpeg

Added
New image

File hotos/assets/images-1/s4.b.jpeg

Added
New image

File hotos/assets/images-1/s5.1.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s5.1.1.1.fixed.png

Added
New image

File hotos/assets/images-1/s5.1.5.1.fixed.png

Added
New image

File hotos/assets/images-1/s5.2.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s5.3.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s5.a.jpeg

Added
New image

File hotos/assets/images-1/s5.b.jpeg

Added
New image

File hotos/assets/images-1/s6.1.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s6.1.1.1.fixed.png

Added
New image

File hotos/assets/images-1/s6.2.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s6.a.jpeg

Added
New image

File hotos/assets/images-1/s6.b.jpeg

Added
New image

File hotos/assets/images-1/s7.b.jpeg

Added
New image

File hotos/assets/images-1/s8.1.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s8.1.1.1.fixed.png

Added
New image

File hotos/assets/images-1/s8.1.4.1.fixed.png

Added
New image

File hotos/assets/images-1/s8.2.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s8.a.jpeg

Added
New image

File hotos/assets/images-1/s8.b.jpeg

Added
New image

File hotos/assets/images-1/s9.1.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s9.1.1.1.fixed.png

Added
New image

File hotos/assets/images-1/s9.1.4.1.fixed.png

Added
New image

File hotos/assets/images-1/s9.2.1.1.dynamic.png

Added
New image

File hotos/assets/images-1/s9.a.jpeg

Added
New image

File hotos/assets/images-1/s9.b.jpeg

Added
New image

File hotos/assets/images-1/thumbnail.jpeg

Added
New image

File hotos/assets/kpf.json

+{"slideHeight":768,
+"filename":"hotos.key",
+"navigatorEvents":[{"eventName":"Slide 1",
+"eventIndex":0}
+,{"eventName":"Slide 2",
+"eventIndex":1}
+,{"eventName":"Slide 3",
+"eventIndex":2}
+,{"eventName":"Slide 4",
+"eventIndex":4}
+,{"eventName":"Slide 5",
+"eventIndex":5}
+,{"eventName":"Slide 6",
+"eventIndex":9}
+,{"eventName":"Slide 7",
+"eventIndex":12}
+,{"eventName":"Slide 8",
+"eventIndex":13}
+,{"eventName":"Slide 9",
+"eventIndex":16}
+,{"eventName":"Slide 10",
+"eventIndex":19}
+]
+,
+"textures":{"s6.background":{"url":"images-1/s3.background.jpeg",
+"width":1024,
+"height":768}
+,
+"thumbnail":{"url":"images-1/thumbnail.jpeg",
+"width":458,
+"height":344}
+,
+"s1.b":{"url":"images-1/s1.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.2.1.1.dynamic":{"url":"images-1/s5.2.1.1.dynamic.png",
+"width":164,
+"height":293}
+,
+"s9.2.1.1.dynamic":{"url":"images-1/s9.2.1.1.dynamic.png",
+"width":319,
+"height":324}
+,
+"s6.b":{"url":"images-1/s6.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s6.2.4.1.fixed":{"url":"images-1/s5.1.5.1.fixed.png",
+"width":727,
+"height":97}
+,
+"s9.2.3.1.fixed":{"url":"images-1/s9.1.1.1.dynamic.png",
+"width":109,
+"height":120}
+,
+"s2.a":{"url":"images-1/s1.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.3.1.1.fixed":{"url":"images-1/s5.1.1.1.fixed.png",
+"width":1040,
+"height":733}
+,
+"s7.a":{"url":"images-1/s6.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.3.4.1.fixed":{"url":"images-1/s5.1.1.1.dynamic.png",
+"width":370,
+"height":331}
+,
+"s3.1.1.1.fixed":{"url":"images-1/s3.1.1.1.fixed.png",
+"width":1040,
+"height":683}
+,
+"s6.2.1.1.fixed":{"url":"images-1/s6.1.1.1.fixed.png",
+"width":1080,
+"height":733}
+,
+"s2.b":{"url":"images-1/s2.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.1.1.1.dynamic":{"url":"images-1/s5.1.1.1.dynamic.png",
+"width":370,
+"height":331}
+,
+"s9.1.1.1.dynamic":{"url":"images-1/s9.1.1.1.dynamic.png",
+"width":109,
+"height":120}
+,
+"s5.background":{"url":"images-1/s3.background.jpeg",
+"width":1024,
+"height":768}
+,
+"s7.b":{"url":"images-1/s7.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.1.4.1.fixed":{"url":"images-1/s8.1.4.1.fixed.png",
+"width":541,
+"height":36}
+,
+"s5.1.5.1.fixed":{"url":"images-1/s5.1.5.1.fixed.png",
+"width":727,
+"height":97}
+,
+"s3.a":{"url":"images-1/s3.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.a":{"url":"images-1/s8.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.2.1.1.dynamic":{"url":"images-1/s8.2.1.1.dynamic.png",
+"width":276,
+"height":115}
+,
+"s8.1.1.1.fixed":{"url":"images-1/s8.1.1.1.fixed.png",
+"width":1040,
+"height":736}
+,
+"s8.1.1.1.dynamic":{"url":"images-1/s8.1.1.1.dynamic.png",
+"width":313,
+"height":334}
+,
+"s3.b":{"url":"images-1/s3.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.b":{"url":"images-1/s8.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.3.3.1.fixed":{"url":"images-1/s5.2.1.1.dynamic.png",
+"width":164,
+"height":293}
+,
+"s5.2.5.1.fixed":{"url":"images-1/s5.1.5.1.fixed.png",
+"width":727,
+"height":97}
+,
+"s8.2.4.1.fixed":{"url":"images-1/s8.1.4.1.fixed.png",
+"width":541,
+"height":36}
+,
+"s9.1.1.1.fixed":{"url":"images-1/s9.1.1.1.fixed.png",
+"width":1040,
+"height":579}
+,
+"s9.background":{"url":"images-1/s3.background.jpeg",
+"width":1024,
+"height":768}
+,
+"s4.a":{"url":"images-1/s3.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s9.a":{"url":"images-1/s9.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s9.1.4.1.fixed":{"url":"images-1/s9.1.4.1.fixed.png",
+"width":829,
+"height":604}
+,
+"s10.a":{"url":"images-1/s9.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.2.1.1.fixed":{"url":"images-1/s8.1.1.1.fixed.png",
+"width":1040,
+"height":736}
+,
+"s3.background":{"url":"images-1/s3.background.jpeg",
+"width":1024,
+"height":768}
+,
+"s8.background":{"url":"images-1/s3.background.jpeg",
+"width":1024,
+"height":768}
+,
+"s4.b":{"url":"images-1/s4.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s9.b":{"url":"images-1/s9.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.1.1.1.fixed":{"url":"images-1/s5.1.1.1.fixed.png",
+"width":1040,
+"height":733}
+,
+"s5.3.5.1.fixed":{"url":"images-1/s5.1.5.1.fixed.png",
+"width":727,
+"height":97}
+,
+"s5.a":{"url":"images-1/s5.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s6.2.2.1.fixed":{"url":"images-1/s6.1.1.1.dynamic.png",
+"width":389,
+"height":281}
+,
+"s9.2.1.1.fixed":{"url":"images-1/s9.1.1.1.fixed.png",
+"width":1040,
+"height":579}
+,
+"s3.1.1.1.dynamic":{"url":"images-1/s3.1.1.1.dynamic.png",
+"width":1159,
+"height":523}
+,
+"s9.2.4.1.fixed":{"url":"images-1/s9.1.4.1.fixed.png",
+"width":829,
+"height":604}
+,
+"s10.b":{"url":"images-1/s10.b.png",
+"width":1024,
+"height":768}
+,
+"s5.2.4.1.fixed":{"url":"images-1/s5.1.1.1.dynamic.png",
+"width":370,
+"height":331}
+,
+"s8.2.3.1.fixed":{"url":"images-1/s8.1.1.1.dynamic.png",
+"width":313,
+"height":334}
+,
+"s5.3.1.1.dynamic":{"url":"images-1/s5.3.1.1.dynamic.png",
+"width":315,
+"height":360}
+,
+"s6.1.1.1.fixed":{"url":"images-1/s6.1.1.1.fixed.png",
+"width":1080,
+"height":733}
+,
+"s6.2.1.1.dynamic":{"url":"images-1/s6.2.1.1.dynamic.png",
+"width":165,
+"height":106}
+,
+"s5.b":{"url":"images-1/s5.b.jpeg",
+"width":1024,
+"height":768}
+,
+"s6.1.4.1.fixed":{"url":"images-1/s5.1.5.1.fixed.png",
+"width":727,
+"height":97}
+,
+"s1.a":{"url":"images-1/s1.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s5.2.1.1.fixed":{"url":"images-1/s5.1.1.1.fixed.png",
+"width":1040,
+"height":733}
+,
+"s6.a":{"url":"images-1/s6.a.jpeg",
+"width":1024,
+"height":768}
+,
+"s6.1.1.1.dynamic":{"url":"images-1/s6.1.1.1.dynamic.png",
+"width":389,
+"height":281}
+}
+,
+"title":"hotos.key",
+"minorVersion":4,
+"timestamp":"2013-05-07 13:37:28",
+"slideWidth":1024,
+"eventTimelines":[{"automaticPlay":false,
+"hyperlinks":[]
+,
+"eventInitialStates":[{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s1.b",
+"hidden":0}
+,{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s1.a",
+"hidden":0}
+]
+,
+"eventAnimations":[{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":1}
+,
+"action":"hidden",
+"texture":"s1.a",
+"to":{"scalar":1}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s1.a"]
+}
+,{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s1.b",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s1.b"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":313,
+"width":879,
+"x":72.5,
+"height":72}
+,
+"text":"Toward Principled Browser Security"}
+,{"targetRectangle":{"y":426,
+"width":953,
+"x":38.5,
+"height":86}
+,
+"text":"Edward Z. Yang, Deian Stefan, John C. Mitchell, David Mazières, Petr Marchenko, and Brad Karp"}
+]
+}
+,{"note":"slide-2",
+"automaticPlay":false,
+"hyperlinks":[]
+,
+"eventInitialStates":[{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s2.b",
+"hidden":0}
+,{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s2.a",
+"hidden":0}
+]
+,
+"eventAnimations":[{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":1}
+,
+"action":"hidden",
+"texture":"s2.a",
+"to":{"scalar":1}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s2.a"]
+}
+,{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s2.b",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s2.b"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":311,
+"x":356.5,
+"height":106}
+,
+"text":"The Web"}
+,{"targetRectangle":{"y":222,
+"width":863,
+"x":102.5,
+"height":80}
+,
+"text":"Most popular distributed application platform"}
+,{"targetRectangle":{"y":302,
+"width":433,
+"x":137.5,
+"height":77}
+,
+"text":"Easily share information"}
+,{"targetRectangle":{"y":379,
+"width":826,
+"x":137.5,
+"height":77}
+,
+"text":"Build cross-platform complex interactive apps "}
+,{"targetRectangle":{"y":456,
+"width":237,
+"x":102.5,
+"height":80}
+,
+"text":"Wide impact"}
+,{"targetRectangle":{"y":536,
+"width":355,
+"x":137.5,
+"height":77}
+,
+"text":"Millions of websites"}
+,{"targetRectangle":{"y":613,
+"width":396,
+"x":137.5,
+"height":53}
+,
+"text":"Millions of developers"}
+,{"targetRectangle":{"y":448,
+"width":201,
+"x":705,
+"height":63}
+,
+"text":"9.1M hosts!"}
+]
+}
+,{"automaticPlay":0,
+"eventInitialStates":[{"opacity":1,
+"zIndex":-1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s3.background",
+"hidden":0}
+,{"opacity":1,
+"zIndex":0,
+"affineTransform":[1,0,0,1,-8,16]
+,
+"texture":"s3.1.1.1.fixed",
+"canvasObjectID":0,
+"hidden":0}
+,{"opacity":1,
+"zIndex":1,
+"affineTransform":[1,0,0,1,-69,214]
+,
+"texture":"s3.1.1.1.dynamic",
+"canvasObjectID":1,
+"hidden":1}
+]
+,
+"hyperlinks":[]
+,
+"eventAnimations":[{"effect":"apple:appear",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s3.1.1.1.dynamic",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.01}
+]
+,
+"duration":0.01,
+"animationType":"buildIn",
+"beginTime":0,
+"textures":["s3.1.1.1.dynamic"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":609,
+"x":207.5,
+"height":106}
+,
+"text":"Why so popular?"}
+]
+}
+,{"automaticPlay":false,
+"hyperlinks":[]
+,
+"eventInitialStates":[{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s3.b",
+"hidden":0}
+,{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s3.a",
+"hidden":0}
+]
+,
+"eventAnimations":[{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":1}
+,
+"action":"hidden",
+"texture":"s3.a",
+"to":{"scalar":1}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s3.a"]
+}
+,{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s3.b",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s3.b"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":609,
+"x":207.5,
+"height":106}
+,
+"text":"Why so popular?"}
+]
+}
+,{"automaticPlay":false,
+"hyperlinks":[]
+,
+"eventInitialStates":[{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s4.b",
+"hidden":0}
+,{"opacity":1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s4.a",
+"hidden":0}
+]
+,
+"eventAnimations":[{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":1}
+,
+"action":"hidden",
+"texture":"s4.a",
+"to":{"scalar":1}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s4.a"]
+}
+,{"effect":"none",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s4.b",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.001}
+]
+,
+"duration":0.001,
+"animationType":"transition",
+"beginTime":0,
+"textures":["s4.b"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":841,
+"x":91.5,
+"height":106}
+,
+"text":"Many apps are insecure"}
+,{"targetRectangle":{"y":226,
+"width":844,
+"x":102.5,
+"height":80}
+,
+"text":"Naive app implementations ➠ vulnerabilities"}
+,{"targetRectangle":{"y":306,
+"width":844,
+"x":137.5,
+"height":130}
+,
+"text":"Eg., cross-site scripting (XSS), cross-site request forgery (CSRF), SQL-injection, etc."}
+,{"targetRectangle":{"y":436,
+"width":765,
+"x":102.5,
+"height":136}
+,
+"text":"Browsers may inadvertently leak history information, sensor-data, etc."}
+,{"targetRectangle":{"y":572,
+"width":802,
+"x":137.5,
+"height":106}
+,
+"text":"E.g., by exposing unsafe DOM functions, not isolating (malicious) extensions, etc."}
+]
+}
+,{"automaticPlay":0,
+"eventInitialStates":[{"opacity":1,
+"zIndex":-1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s5.background",
+"hidden":0}
+,{"opacity":1,
+"zIndex":0,
+"affineTransform":[1,0,0,1,-8,16]
+,
+"texture":"s5.1.1.1.fixed",
+"canvasObjectID":0,
+"hidden":0}
+,{"opacity":1,
+"zIndex":3,
+"affineTransform":[1,0,0,1,446,250]
+,
+"texture":"s5.1.1.1.dynamic",
+"canvasObjectID":3,
+"hidden":1}
+,{"opacity":1,
+"zIndex":4,
+"affineTransform":[1,0,0,1,146,525]
+,
+"texture":"s5.1.5.1.fixed",
+"canvasObjectID":4,
+"hidden":0}
+]
+,
+"hyperlinks":[]
+,
+"eventAnimations":[{"effect":"apple:appear",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s5.1.1.1.dynamic",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.01}
+]
+,
+"duration":0.01,
+"animationType":"buildIn",
+"beginTime":0,
+"textures":["s5.1.1.1.dynamic"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":705,
+"x":159.5,
+"height":106}
+,
+"text":"Same-origin policy?"}
+,{"targetRectangle":{"y":222,
+"width":673,
+"x":199.5,
+"height":392}
+,
+"text":"Isolate web pages of distinct origins\u2028\u2028\u2028\u2028\u2028\u2028\u2028"}
+,{"targetRectangle":{"y":506,
+"width":159,
+"x":530,
+"height":179}
+,
+"text":""}
+,{"targetRectangle":{"y":506,
+"width":159,
+"x":333,
+"height":179}
+,
+"text":""}
+,{"targetRectangle":{"y":448,
+"width":198,
+"x":695,
+"height":162.4457}
+,
+"text":""}
+,{"targetRectangle":{"y":448,
+"width":-198,
+"x":327,
+"height":162.4457}
+,
+"text":""}
+,{"targetRectangle":{"y":445,
+"width":113.0098,
+"x":755.0835,
+"height":57}
+,
+"text":"b.com"}
+,{"targetRectangle":{"y":503,
+"width":113.0098,
+"x":552.9805,
+"height":57}
+,
+"text":"b.com"}
+,{"targetRectangle":{"y":503,
+"width":110.9707,
+"x":357,
+"height":57}
+,
+"text":"a.com"}
+,{"targetRectangle":{"y":445,
+"width":110.9707,
+"x":145.0195,
+"height":57}
+,
+"text":"a.com"}
+]
+}
+,{"automaticPlay":0,
+"eventInitialStates":[{"opacity":1,
+"zIndex":-1,
+"affineTransform":[1,0,0,1,0,0]
+,
+"texture":"s5.background",
+"hidden":0}
+,{"opacity":1,
+"zIndex":0,
+"affineTransform":[1,0,0,1,-8,16]
+,
+"texture":"s5.2.1.1.fixed",
+"canvasObjectID":0,
+"hidden":0}
+,{"opacity":1,
+"zIndex":2,
+"affineTransform":[1,0,0,1,431,430]
+,
+"texture":"s5.2.1.1.dynamic",
+"canvasObjectID":2,
+"hidden":1}
+,{"opacity":1,
+"zIndex":3,
+"affineTransform":[1,0,0,1,446,250]
+,
+"texture":"s5.2.4.1.fixed",
+"canvasObjectID":3,
+"hidden":0}
+,{"opacity":1,
+"zIndex":4,
+"affineTransform":[1,0,0,1,146,525]
+,
+"texture":"s5.2.5.1.fixed",
+"canvasObjectID":4,
+"hidden":0}
+]
+,
+"hyperlinks":[]
+,
+"eventAnimations":[{"effect":"apple:appear",
+"actions":[{"beginTime":0,
+"from":{"scalar":0}
+,
+"action":"hidden",
+"texture":"s5.2.1.1.dynamic",
+"to":{"scalar":0}
+,
+"timingFunction":"linear",
+"duration":0.01}
+]
+,
+"duration":0.01,
+"animationType":"buildIn",
+"beginTime":0,
+"textures":["s5.2.1.1.dynamic"]
+}
+]
+,
+"textRegions":[{"targetRectangle":{"y":63,
+"width":705,
+"x":159.5,
+"height":106}
+,
+"text":"Same-origin policy?"}
+,{"targetRectangle":{"y":222,
+"width":673,
+"x":199.5,
+"height":392}
+,
+"text":"Isolate web pages of distinct origins\u2028\u2028\u2028\u2028\u2028\u2028\u2028"}
+,{"targetRectangle":{"y":506,
+"width":159,
+"x":530,
+"height":179}
+,
+"text":""}
+,{"targetRectangle":{"y":506,
+"width":159,
+"x":333,
+"height":179}
+,
+"text":""}
+,{"targetRectangle":{"y":448,
+"width":198,
+"x":695,
+"height":162.4457}