////////////////////////////////////////////////////////////////////// // Pano2VR 7.1.4/20938 HTML5/CSS3 & WebGL Panorama Player // // Trial License: For evaluation only! // // (c) 2024, Garden Gnome Software, https://ggnome.com // ////////////////////////////////////////////////////////////////////// /* Copyright 2005-2024 Garden Gnome GmbH. All rights reserved */ var Yb="function"==typeof Object.defineProperties?Object.defineProperty:function(nb,ub,rb){if(nb==Array.prototype||nb==Object.prototype)return nb;nb[ub]=rb.value;return nb};function Zb(nb){nb=["object"==typeof globalThis&&globalThis,nb,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var ub=0;ubrb&&(rb=Math.max(rb+qb,0));rb{function nb(pb){var qb=rb[pb];if(void 0!==qb)return qb.exports;qb=rb[pb]={exports:{}};ub[pb](qb,qb.exports,nb);return qb.exports}var ub={768:pb=>{pb.exports=function(){return!1}}},rb={};(()=>{nb.n=pb=>{var qb=pb&&pb.__esModule?()=>pb["default"]:()=>pb;nb.d(qb,{a:qb});return qb}})();(()=>{nb.d=(pb,qb)=>{for(var lb in qb)nb.uq(qb,lb)&&!nb.uq(pb,lb)&&Object.defineProperty(pb,lb,{enumerable:!0,get:qb[lb]})}})();(()=>{nb.uq=(pb,qb)=>Object.prototype.hasOwnProperty.call(pb,qb)})();(()=>{function pb(){var a= "perspective",b=["Webkit","Moz","O","ms","Ms"],e;for(e=0;ea,Bw:a=>a*a,Fw:a=> a*(2-a),yw:a=>.5>a?2*a*a:-1+(4-2*a)*a,xw:a=>a*a*a,Ew:a=>--a*a*a+1,Fo:a=>.5>a?4*a*a*a:(a-1)*(2*a-2)*(2*a-2)+1,Cw:a=>a*a*a*a,Gw:a=>1- --a*a*a*a,zw:a=>.5>a?8*a*a*a*a:1-8*--a*a*a*a,Dw:a=>a*a*a*a*a,Hw:a=>1+--a*a*a*a*a,Aw:a=>.5>a?16*a*a*a*a*a:1+16*--a*a*a*a*a};class wb{am(){return""}Ss(){return this.Wc}$u(a){0f&&""!=a[f]&&(e=a[f]))}if(b&&0>4;w=(w&15)<<4|f>>2;e=(f&3)<<6|h;b+=String.fromCharCode(r);64!=f&&(b+=String.fromCharCode(w));64!=h&&(b+=String.fromCharCode(e))}while(n>3&7];if(!(n&64&&r)||h+r>e)return null; for(n&=63>>r;0>"; this.In=!1;this.lt=function(a){return a?this.Yh()&&(a.clientX||a.clientY)?{x:a.clientX,y:a.clientY}:a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:a.clientX||a.clientY?{x:a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,y:a.clientY+document.body.scrollTop+document.documentElement.scrollTop}:a.touches&&a.touches[0]?{x:a.touches[0].pageX,y:a.touches[0].pageY}:{x:0,y:0}:{x:0,y:0}};this.Af=function(a){a=this.lt(a);let b=this.Cf();return{x:a.x-b.x,y:a.y-b.y}};this.Hv=function(a,b,e){let f= this;var h="<>"+String(f.Tb);h=h.toUpperCase();"U"!=h.charAt(2)&&(f.K.Ij=!1);if(f.Cd)f.T.removeChild(f.Cd),f.Cd=null;else{f.Cd=document.createElement("div");var n=f.Cd;h="left: "+a+"px;top:\t "+(b+"px;z-index: 32000;");h+="position:relative;";h+="display: table;";h+="color: black;";h+="background-color: white;";h+="border: 1px solid lightgray;";h+="box-shadow: 1px 1px 3px #333;";h+="font-family: Verdana, Arial, Helvetica, sans-serif;";h+="font-size: 9pt;";h+="opacity : 0.95;";n.setAttribute("style", h);n.setAttribute("class","gg_contextmenu");h=document.createElement("style");a=document.createTextNode(".gg_context_row:hover { background-color: #3399FF }");h.type="text/css";h.styleSheet?h.styleSheet.cssText=a.nodeValue:h.appendChild(a);n.appendChild(h);for(a=0;aNumber(this.Ob))&&(this.ga=null);this.Mb&&!this.Lc&&12<=Number(this.Ob)&&13>Number(this.Ob)&&(this.ga=null);this.Mb&&this.Lc&&13==Number(this.Le[0])&&(1==Number(this.Le[1])||2<=Number(this.Le[1]))&&(this.ga=null)}Yb(a){let b= document.getElementById("gg_debug");b&&(b.innerHTML=a+"
");window.console&&window.console.log(a)}setCrossOrigin(a){this.crossOrigin=a}bv(a){this.Ke=a}ut(){return this.ri}av(a){this.ue=a}$o(){return this.ue}Wl(){return this.Zh}fp(){return this.jm}ev(a){this.Zh=!!a}Oh(){return this.isLoaded}ip(){return!this.isLoaded}Li(a,b){try{this.nc&&(a=window.innerWidth,b=window.innerHeight);let h=a-this.margin.left.ba-this.margin.right.ba,n=b-this.margin.top.ba-this.margin.bottom.ba;if(!(10>h||10>n)){this.ia.style.width= h+"px";this.ia.style.height=n+"px";this.ia.style.left=this.margin.left.ba+"px";this.ia.style.top=this.margin.top.ba+"px";this.xa&&(this.xa.style.width=a+"px",this.xa.style.height=b+"px",this.aa&&this.aa!=this.xa&&(this.aa.style.width=a+"px",this.aa.style.height=b+"px"));this.fe&&(this.Ka=!0);var e=this.ia.offsetWidth,f=this.ia.offsetHeight;if(this.H.width!=e||this.H.height!=f)this.H.width=e,this.H.height=f;this.aa&&this.aa.ggUpdateSize&&this.aa.ggUpdateSize(a,b);this.G("sizechanged",{w:a,h:b});this.G("playerstatechanged", {})}}catch(h){}}Qd(){this.In=!0}xd(){this.Sr();this.Li(this.container.offsetWidth,this.container.offsetHeight)}Sr(){this.margin.left.ih(this.container.offsetWidth);this.margin.top.ih(this.container.offsetHeight);this.margin.right.ih(this.container.offsetWidth);this.margin.bottom.ih(this.container.offsetHeight)}Kt(a=!1){let b={width:0,height:0};b.width=this.H.width+(a?this.margin.left.ba+this.margin.right.ba:0);b.height=this.H.height+(a?this.margin.top.ba+this.margin.bottom.ba:0);return b}Cf(){let a= {x:0,y:0},b=this.ia.getBoundingClientRect();a.x=b.left;a.y=b.top;this.Mb&&14>Number(this.Ob)&&(a.x=b.left+window.scrollX,a.y=b.top+window.scrollY);return a}qv(a){this.ka=a}fv(a,b,e,f){let h=!0;"object"===typeof a?(a.hasOwnProperty("left")&&this.margin.left.pk(a.left,a.transition,this.container.offsetWidth),a.hasOwnProperty("top")&&this.margin.top.pk(a.top,a.transition,this.container.offsetHeight),a.hasOwnProperty("right")&&this.margin.right.pk(a.right,a.transition,this.container.offsetWidth),a.hasOwnProperty("bottom")&& this.margin.bottom.pk(a.bottom,a.transition,this.container.offsetHeight),a.hasOwnProperty("transition")&&a.transition.hasOwnProperty("duration")&&0{this.Yv(this)},b))}Yv(a){a.margin.transition.starttime=(new Date).getTime();a.margin.transition.interval&&clearInterval(a.margin.transition.interval);a.margin.transition.interval=setInterval(()=>{a.Zv(a)},20)}Zv(a){var b=((new Date).getTime()-a.margin.transition.starttime)/a.margin.transition.duration;b=Math.max(b,0);b=Math.min(b,1);switch(a.margin.transition.timingfunction){case "ease-in":b= 1-Math.cos(b*Math.PI/2);break;case "ease-out":b=Math.sin(b*Math.PI/2);break;case "ease":b=-(Math.cos(Math.PI*b)-1)/2;break;case "ease-in-out":b=.5>b?4*b*b*b:1-Math.pow(-2*b+2,3)/2;break;case "step-end":b=1==b?1:0}b=Math.round(100*b)/100;a.margin.left.uj(b,a.container.offsetWidth);a.margin.top.uj(b,a.container.offsetHeight);a.margin.right.uj(b,a.container.offsetWidth);a.margin.bottom.uj(b,a.container.offsetHeight);a.Li(a.container.offsetWidth,a.container.offsetHeight);1<=b&&(clearInterval(a.margin.transition.interval), a.margin.transition.interval=0)}no(a){0==a&&(this.K.lc=!1);1==a&&(this.K.lc=!0);2==a&&(this.K.lc=!this.K.lc);this.G("viewmodechanged",{});this.G("playerstatechanged",{})}Ep(){return 1==this.K.lc?1:0}ii(){this.Ka=!0}mo(a,b){this.P.mode=1==b&&0b&&(b=0);1>16&255)+","+(a>>8&255)+","+(a&255)+","+b+")"}static Op(a,b,e){let f;var h;let n=!1;f=0;for(h=a.length-1;fe!=h.ac>e&&b<(h.zc-r.zc)*(e-r.ac)/(h.ac-r.ac)+r.zc&&(n=!n)}return n}aspect(){return this.H.width/this.H.height}Yd(){}update(a=0){this.Ka=!0;a&&(this.ze=Math.max(1*a,this.ze))}Xl(){return!1}kv(a){this.zi=a}getQueryParameter(){return this.zi}La(a){if(a){if("{"==a.charAt(0)||"/"==a.charAt(0)|| 0{a.Tg(!0)}).catch(()=>{a.Tg(!1)})}wr(){this.yg&&1!=this.Ni?this.vr():this.$d=this.Ce=!1}zt(){return this.Ni}Tg(a){if(1!=this.Ni){let b=a?1:0;this.Ni!=b&&(this.Ni=b,this.G("soundspermittedchanged",{permitted:a}))}}yr(){}yk(){}pn(){}Vm(){}Vl(){return!0}Ug(){}Di(a){let b=this.nc!==a;this.nc!==a&&(this.nc=a,this.update(100));if(this.nc){if(this.lh)try{this.T.webkitRequestFullScreen?this.T.webkitRequestFullScreen():this.T.mozRequestFullScreen? this.T.mozRequestFullScreen():this.T.msRequestFullscreen?this.T.msRequestFullscreen():this.T.requestFullScreen?this.T.requestFullScreen():this.T.requestFullscreen&&this.T.requestFullscreen()}catch(e){}this.T.style.position="absolute";a=this.Cf();this.T.style.left=window.pageXOffset-a.x+this.margin.left.ba+"px";this.T.style.top=window.pageYOffset-a.y+this.margin.top.ba+"px";this.Ug(10);document.body.style.overflow="hidden";b&&(this.aa&&this.aa.ggEnterFullscreen&&this.aa.ggEnterFullscreen(),this.G("fullscreenenter", {}),this.G("playerstatechanged",{}))}else{if(this.lh)try{document.webkitIsFullScreen?document.webkitCancelFullScreen():document.mozFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():document.fullScreen&&(document.cancelFullScreen?document.cancelFullScreen():document.exitFullscreen&&document.exitFullscreen())}catch(e){}this.T.style.position="relative";this.T.style.left="0px";this.T.style.top="0px";this.Ug(0);document.body.style.overflow="";b&&(this.aa&& this.aa.ggExitFullscreen&&this.aa.ggExitFullscreen(),this.G("fullscreenexit",{}),this.G("playerstatechanged",{}))}this.Qd()}Mk(){this.Di(!this.nc)}Ks(){this.Di(!0)}exitFullscreen(){this.Di(!1)}ct(){return this.nc}oi(){this.nc&&(this.Yh()||this.exitFullscreen(),this.Yh()&&(this.T.style.left="0px",this.T.style.top="0px"))}Me(){return!1}zg(){return!1}fr(){return!1}Fj(){return!1}zr(){}Cr(){}Hr(){}Bq(){this.ra(!1)}Oq(){}Tq(){}Vq(){}zl(){}Ap(){let a=1,b=-1!=navigator.userAgent.indexOf("Mac");window.devicePixelRatio&& b&&(a=window.devicePixelRatio);return{w:screen.width*a,h:screen.height*a}}lp(){let a=this.Ap();return a.w>a.h?a.w:a.h}Ho(a){try{let b=a.getAttributeNode("variablename"),e=b.nodeValue.toString();b=a.getAttributeNode("variabletype");let f=Number(b.nodeValue);b=a.getAttributeNode("propertytype");let h=Number(b.nodeValue);b=a.getAttributeNode("defaultvalue");let n;b&&(n=b.nodeValue.toString());this.Ga[e]={Rd:f,yi:h,Hl:n}}catch(b){console.error(b)}}Ko(a){let b={},e=a.firstChild;for(;e;){if("custompropertyvalue"== e.nodeName){a=e.getAttributeNode("value");let f=a.nodeValue.toString();a=e.getAttributeNode("variablename");b[a.nodeValue.toString()]=f}e=e.nextSibling}return b}Kl(a,b){let e,f="";(e=b.getAttributeNode("id"))&&(f=e.nodeValue.toString());if(!this.qb.hasOwnProperty(a)||!this.qb[a].hasOwnProperty(f)){var h={};for(b=b.firstChild;b;){if("custompropertyvalue"==b.nodeName){e=b.getAttributeNode("variablename");let n=e.nodeValue;e=b.getAttributeNode("value");h[n]=e.nodeValue}b=b.nextSibling}this.qb[a]||(this.qb[a]= {});this.qb[a][f]=h}}Om(a,b){a=(new DOMParser).parseFromString(a,"text/xml");this.Pm(a,b)}Gq(a,b,e){try{let f;f=new XMLHttpRequest;f.open("GET",a,!1);f.send(null);if(f.responseXML){let h=a.lastIndexOf("/");0<=h&&(this.ue=a.slice(0,h+1));2<=arguments.length&&null!=b&&(this.ue=b);this.Om(f.responseText,e)}else alert("Error loading panorama XML")}catch(f){alert("Error:"+f)}}Su(a,b,e,f){let h;h=new XMLHttpRequest;let n=this;const r=arguments;h.onload=function(){if(4<=h.readyState)if(h.responseXML){let w= a.lastIndexOf("/");0<=w&&(n.ue=a.slice(0,w+1));3<=r.length&&null!=e&&(n.ue=e);n.Om(h.responseText,f);b&&b()}else alert("Error loading panorama XML");else console.error("Wrong state loading XML:"+h.statusText)};h.onerror=function(){console.error("Error loading XML:"+h.statusText)};h.open("GET",a,!0);h.send(null)}Pm(){}ik(a,b){0 uRadius) {\n alpha = 1.0;\n } else {\n alpha = 1.0 - ((uRadius - distFromCenter) / uSoftEdge);\n };\n }\n else {\n float alphaFromLeft = 1.0 - ((gl_FragCoord.x -(uIrisCenter.x - uRectDim.x)) / uSoftEdge);\n float alphaFromRight = 1.0 - (((uIrisCenter.x + uRectDim.x) - gl_FragCoord.x) / uSoftEdge);\n float alphaFromTop = 1.0 - ((gl_FragCoord.y -(uIrisCenter.y - uRectDim.y)) / uSoftEdge);\n float alphaFromBottom = 1.0 - (((uIrisCenter.y + uRectDim.y) - gl_FragCoord.y) / uSoftEdge);\n alpha = max(max(alphaFromLeft, alphaFromRight), max(alphaFromTop, alphaFromBottom));\n }\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, alpha);\n}\n"); a.compileShader(e);a.getShaderParameter(e,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(e)),e=null);this.Ua=a.createProgram();a.attachShader(this.Ua,b);a.attachShader(this.Ua,e);a.linkProgram(this.Ua);a.getProgramParameter(this.Ua,a.LINK_STATUS)||alert("Could not initialise shaders");this.Ua.la=a.getAttribLocation(this.Ua,"aVertexPosition");a.enableVertexAttribArray(this.Ua.la);this.Ua.Ea=a.getAttribLocation(this.Ua,"aTextureCoord");a.enableVertexAttribArray(this.Ua.Ea);e=a.createShader(a.FRAGMENT_SHADER); a.shaderSource(e,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 vTextureCoord;\nuniform float uPercent;\nuniform int uDirection;\nuniform vec2 uCanvasDimensions;\nuniform float uSoftEdge;\nuniform sampler2D uSampler;\nvoid main(void) {\n vec4 textureColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n float alpha = 0.0;\n if (uDirection == 1) {\n\t if (gl_FragCoord.x > uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((uPercent - gl_FragCoord.x) / uSoftEdge);\n }\n }\n if (uDirection == 2) {\n\t if (gl_FragCoord.x < uCanvasDimensions.x - uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((gl_FragCoord.x - (uCanvasDimensions.x - uPercent)) / uSoftEdge);\n }\n }\n if (uDirection == 3) {\n\t if (gl_FragCoord.y < uCanvasDimensions.y - uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((gl_FragCoord.y - (uCanvasDimensions.y - uPercent)) / uSoftEdge);\n }\n }\n if (uDirection == 4) {\n\t if (gl_FragCoord.y > uPercent) {\n alpha = 1.0; \n } else {\n alpha = 1.0 - ((uPercent - gl_FragCoord.y) / uSoftEdge);\n }\n }\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, alpha);\n}\n"); a.compileShader(e);a.getShaderParameter(e,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(e)),e=null);this.eb=a.createProgram();a.attachShader(this.eb,b);a.attachShader(this.eb,e);a.linkProgram(this.eb);a.getProgramParameter(this.eb,a.LINK_STATUS)||alert("Could not initialise shaders");this.eb.la=a.getAttribLocation(this.eb,"aVertexPosition");a.enableVertexAttribArray(this.eb.la);this.eb.Ea=a.getAttribLocation(this.eb,"aTextureCoord");a.enableVertexAttribArray(this.eb.Ea);this.Bs()}Bs(){const a=this.o; let b=a.N;const e=b.createShader(b.VERTEX_SHADER);a.Jc(e,"precision highp float;\n#define M_PI 3.14159265358979323846\nattribute vec4 aVertexPosition;\nvarying vec2 dst;\nuniform mat4 matRotate; // = mat4( 1.0,0.0,0.0,0.0, 0.0,1.0,0.0,0.0, 0.0,0.0,1.0,0.0, 0.0,0.0,0.0,1.0 );\nuniform mat4 matProject;\nvarying vec3 srcTexDir;\nvarying vec3 dstTexDir;\nuniform float transitionBlend;\nuniform float alphaBlend;\nuniform vec2 rotOffset;\nvoid main(void) {\nfloat srcPan=(aVertexPosition.x) * 2.0 * M_PI;float srcTilt=-(aVertexPosition.y - 0.5) * M_PI; vec3 srcV = vec3(-sin(srcPan) * cos (srcTilt), sin(srcTilt),-cos(srcPan) * cos(srcTilt));float dstPan=(aVertexPosition.z) * 2.0 * M_PI;float dstTilt=-(aVertexPosition.a - 0.5) * M_PI; vec3 dstV = vec3(-sin(dstPan) * cos (dstTilt), sin(dstTilt),-cos(dstPan) * cos(dstTilt));srcTexDir=srcV;srcTexDir.z=-srcV.z;vec3 tmp=srcV;srcV.x= cos(rotOffset.x)*tmp.x - sin(rotOffset.x)*tmp.z;srcV.y= tmp.y;srcV.z= sin(rotOffset.x)*tmp.x + cos(rotOffset.x)*tmp.z;dstTexDir=dstV;dstTexDir.z=-dstV.z;tmp=dstV;dstV.x= cos(rotOffset.y)*tmp.x - sin(rotOffset.y)*tmp.z;dstV.y= tmp.y;dstV.z= sin(rotOffset.y)*tmp.x + cos(rotOffset.y)*tmp.z; gl_Position = matProject * matRotate * vec4(mix(srcV, dstV, transitionBlend), 1.0) ;\ngl_Position.y=-gl_Position.y;}\n"); const f=b.createShader(b.FRAGMENT_SHADER);a.Jc(f,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec3 srcTexDir;\nvarying vec3 dstTexDir;\nuniform float transitionBlend;\nuniform samplerCube cubeTexture;uniform samplerCube cubeTexture2;uniform float alphaBlend;\nuniform vec2 irisRamp;\nuniform vec2 uCanvasDimensions;\nvoid main()\n{\nvec4 c1 = textureCube(cubeTexture, srcTexDir);vec4 c2 = textureCube(cubeTexture2, dstTexDir);vec2 fromCenter=(2.0 * vec2(gl_FragCoord.x / uCanvasDimensions.x,gl_FragCoord.y / uCanvasDimensions.y)) - vec2(1.0,1.0);gl_FragColor=mix(c1,c2,clamp(mix((irisRamp.x + 1.0)*transitionBlend - irisRamp.x,(irisRamp.y + 1.0)*transitionBlend - irisRamp.y,length(fromCenter)),0.0, 1.0));gl_FragColor.a=alphaBlend;}\n"); this.Iq=b.createProgram();a.Nf(this.Iq,e,f)}If(){let a=this.o.N;if(!a)return!1;if(this.Pb=a.createFramebuffer()){a.bindFramebuffer(a.FRAMEBUFFER,this.Pb);this.Pb.width=1024;this.Pb.height=1024;this.Yf=a.createTexture();a.bindTexture(a.TEXTURE_2D,this.Yf);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,this.Pb.width,this.Pb.height,0,a.RGBA,a.UNSIGNED_BYTE,null);let b=a.createRenderbuffer();a.bindRenderbuffer(a.RENDERBUFFER, b);a.renderbufferStorage(a.RENDERBUFFER,a.DEPTH_COMPONENT16,this.Pb.width,this.Pb.height);a.renderbufferStorage(a.RENDERBUFFER,a.STENCIL_INDEX8,this.Pb.width,this.Pb.height);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,this.Yf,0);a.framebufferRenderbuffer(a.FRAMEBUFFER,a.STENCIL_ATTACHMENT,a.RENDERBUFFER,b);a.bindTexture(a.TEXTURE_2D,null);a.bindRenderbuffer(a.RENDERBUFFER,null);a.bindFramebuffer(a.FRAMEBUFFER,null);this.wb=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.wb); a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0]),a.STATIC_DRAW);this.wb.itemSize=3;this.wb.numberOfItems=4;this.Ng=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.Ng);a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),a.STATIC_DRAW);return!0}return!1}Dm(a){let b=this.o.N;var e=this.o.Ya;const f=this.o.D;if(this.Pd){b.useProgram(this.wa);b.bindBuffer(b.ARRAY_BUFFER,this.wb);b.vertexAttribPointer(this.wa.la,this.wb.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER, this.Ng);b.vertexAttribPointer(this.wa.Ea,2,b.FLOAT,!1,0,0);b.enableVertexAttribArray(this.wa.la);b.enableVertexAttribArray(this.wa.Ea);b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,this.Yf);e=1+(this.Lb-1)*a;b.uniform1f(b.getUniformLocation(this.wa,"uAlpha"),1);b.uniform1i(b.getUniformLocation(this.wa,"uZoomIn"),1);var h=b.getUniformLocation(this.wa,"uZoomCenter"),n=.5+(this.nh-.5)*Math.sqrt(a);a=.5+(this.oh-.5)*Math.sqrt(a);0>n-.5/e&&(n=.5/e);0>a-.5/e&&(a=.5/e);1h-.5/this.Lb&&(h=.5/this.Lb);0>n-.5/this.Lb&&(n=.5/this.Lb);1>16&255)/255,(this.fg>>8&255)/255,(this.fg&255)/255),b.uniform1i(b.getUniformLocation(this.jb,"uZoomIn"),1==this.ea||2==this.ea||6==this.ea||7==this.ea?1:0),b.uniform2f(b.getUniformLocation(this.jb,"uZoomCenter"),h,n),b.uniform1f(b.getUniformLocation(this.jb, "uZoomFactor"),this.Lb),b.uniform1i(b.getUniformLocation(this.jb,"uSampler"),0);else if("irisround"==this.type||"irisroundcenter"==this.type||"irisrectangular"==this.type||"irisrectangularcenter"==this.type){b.useProgram(this.Ua);b.bindBuffer(b.ARRAY_BUFFER,this.wb);b.vertexAttribPointer(this.Ua.la,this.wb.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.Ng);b.vertexAttribPointer(this.Ua.Ea,2,b.FLOAT,!1,0,0);b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,this.Yf);let x,y;1==this.ea|| 2==this.ea||6==this.ea||7==this.ea||"irisroundcenter"==this.type||"irisrectangularcenter"==this.type?y=x=.5:(x=this.nh,y=this.oh);var r=x*e.width,w=y*e.height;r=Math.max(r,e.width-r);w=Math.max(w,e.height-w);"irisround"==this.type||"irisroundcenter"==this.type?b.uniform1f(b.getUniformLocation(this.Ua,"uRadius"),(Math.sqrt(r*r+w*w)+this.dd)*a):(r>w?(w=e.height/e.width*r+this.dd,r+=this.dd):(r=e.width/e.height*w+this.dd,w+=this.dd),b.uniform2f(b.getUniformLocation(this.Ua,"uRectDim"),r*a,w*a));b.uniform1f(b.getUniformLocation(this.Ua, "uSoftEdge"),this.dd);b.uniform1i(b.getUniformLocation(this.Ua,"uRound"),"irisround"==this.type||"irisroundcenter"==this.type?1:0);b.uniform2f(b.getUniformLocation(this.Ua,"uIrisCenter"),x*e.width,y*e.height);b.uniform1i(b.getUniformLocation(this.Ua,"uZoomIn"),1==this.ea||2==this.ea||6==this.ea||7==this.ea?1:0);b.uniform2f(b.getUniformLocation(this.Ua,"uZoomCenter"),h,n);b.uniform1f(b.getUniformLocation(this.Ua,"uZoomFactor"),this.Lb);b.uniform1i(b.getUniformLocation(this.Ua,"uSampler"),0)}else if("wipeleftright"== this.type||"wiperightleft"==this.type||"wipetopbottom"==this.type||"wipebottomtop"==this.type||"wiperandom"==this.type)b.useProgram(this.eb),b.bindBuffer(b.ARRAY_BUFFER,this.wb),b.vertexAttribPointer(this.eb.la,this.wb.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this.Ng),b.vertexAttribPointer(this.eb.Ea,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,this.Yf),b.uniform1f(b.getUniformLocation(this.eb,"uPercent"),3>this.Dl?a*(e.width+this.dd):a*(e.height+this.dd)), b.uniform1f(b.getUniformLocation(this.eb,"uSoftEdge"),this.dd),b.uniform1i(b.getUniformLocation(this.eb,"uDirection"),this.Dl),b.uniform2f(b.getUniformLocation(this.eb,"uCanvasDimensions"),e.width,e.height),b.uniform1i(b.getUniformLocation(this.eb,"uZoomIn"),1==this.ea||2==this.ea||6==this.ea||7==this.ea?1:0),b.uniform2f(b.getUniformLocation(this.eb,"uZoomCenter"),h,n),b.uniform1f(b.getUniformLocation(this.eb,"uZoomFactor"),this.Lb),b.uniform1i(b.getUniformLocation(this.eb,"uSampler"),0);b.drawArrays(b.TRIANGLE_STRIP, 0,this.wb.numberOfItems);b.useProgram(f.Hg.R);b.disable(b.BLEND);b.enable(b.DEPTH_TEST)}}kr(){const a=this.o.N;a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MIN_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MAG_FILTER,a.LINEAR)}Hu(a){var b=this.o;const e=b.N,f=b.da[0];b.da[0].Al();b.da[1].Al();if(null!=b.da[0].hb&&null!=b.da[1].hb){var h=Sb.Fo(a); f.D.pan.m=this.Xg.pan*(1-h)+this.og.pan*h;f.D.u.m=this.Xg.u*(1-h)+this.og.u*h;f.D.fov.m=this.Xg.fov*(1-h)+this.og.fov*h;f.D.Yd();h=parseInt(b.Rh("__mesh_mb_iter",5));b=parseFloat(b.Rh("__mesh_mb_width",.05));1r&&(r=0);0<=r&&1>=r&&(f.Cn=Sb.Fo(r),e&&e.clear(e.STENCIL_BUFFER_BIT),this.Iu())}}}setup(){const a=this.o;this.vd||this.Pd||this.ed||a.wk(!0);var b;"wipeleftright"== this.type?b=1:"wiperightleft"==this.type?b=2:"wipetopbottom"==this.type?b=3:"wipebottomtop"==this.type?b=4:"wiperandom"==this.type&&(b=Math.ceil(4*Math.random()));this.Dl=b;"mesh"!=this.type&&this.Cs();b=new Date;a.O!=a.Wa&&6!=this.ea?7==this.ea?(this.nh=a.O.zc/a.H.width,this.oh=.5):(this.nh=a.O.zc/a.H.width,this.oh=1-a.O.ac/a.H.height):this.oh=this.nh=.5;if(1==this.ea||2==this.ea||6==this.ea||7==this.ea)this.gs=b.getTime()+100,this.Pd=!0,this.Lb=Math.sin(a.Fd()/2*Math.PI/180)/Math.sin(this.al/2* Math.PI/180),this.Lb=Math.max(this.Lb,1),this.fs=1/this.qh*this.Lb*.3}Qu(){const a=this.o,b=a.D;this.tf=parseFloat(a.Rh("__trans_blend_time",this.tf));a.Mr(null);if(0!=this.Vc){this.xn=b.ce();this.yn=b.Bf();this.Ti=b.Fd();this.ne=b.Z();if(1==this.Vc||3==this.Vc)b.Jb(this.$k);else if(2==this.Vc)b.Jb(this.Zk);else if(4==this.Vc){let f=0;for(var e=0;ex;x++)r.Ee(120,0),r.le(360*x/64),w.Ee(60,0),w.le(360*x/64),r.bc(a.u),w.bc(a.u),r.Sc(h),w.Sc(n),e.push(r.kf()/360),e.push((r.lf()+90)/180),e.push(w.kf()/360), e.push((w.lf()+90)/180),f.push(2+x),f.push(2+(x+1)%64),f.push(0),f.push(1),f.push(2+(x+1)%64),f.push(2+x);this.En=f.length;b.bufferData(b.ARRAY_BUFFER,new Float32Array(e),b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.Dn);a=new Uint16Array(f);b.bufferData(b.ELEMENT_ARRAY_BUFFER,a,b.STATIC_DRAW)}Iu(){const a=this.o,b=a.N;var e=a.D,f=a.da[0];let h=this.Iq;h&&(b.useProgram(h),b.disable(b.DEPTH_TEST),b.enable(b.STENCIL_TEST),b.blendFuncSeparate(b.SRC_ALPHA,b.ONE_MINUS_SRC_ALPHA,b.SRC_ALPHA,b.ONE), b.enable(b.BLEND),b.stencilOp(b.KEEP,b.KEEP,b.INVERT),b.stencilFunc(b.EQUAL,0,1),b.enable(b.CULL_FACE),b.cullFace(b.FRONT),f.hh(0,h),kb.identity(this.$a),kb.perspective(e.Eb(),a.Ya.width/a.Ya.height,.001,10,this.$a),b.uniformMatrix4fv(b.getUniformLocation(h,"matProject"),!1,this.$a),b.uniform2f(b.getUniformLocation(h,"uCanvasDimensions"),a.Ya.width,a.Ya.height),e=b.getUniformLocation(h,"alphaBlend"),b.uniform1f(e,this.el),e=b.getUniformLocation(h,"rotOffset"),b.uniform2f(e,this.offset*Math.PI/180, 0*Math.PI/180),e=b.getUniformLocation(h,"irisRamp"),b.uniform2f(e,parseFloat(a.Rh("__mesh_iris_center",0)),parseFloat(a.Rh("__mesh_iris_outer",0))),f.Qk(h),f.hh(0,h),e=b.getUniformLocation(h,"cubeTexture"),b.uniform1i(e,0),e=b.getUniformLocation(h,"cubeTexture2"),b.uniform1i(e,1),f=b.getAttribLocation(h,"aVertexPosition"),b.disableVertexAttribArray(1),b.disableVertexAttribArray(2),b.enableVertexAttribArray(f),b.bindBuffer(b.ARRAY_BUFFER,this.Ok),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.Dn),b.vertexAttribPointer(f, 4,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),a.da[1].hb&&(b.bindTexture(b.TEXTURE_CUBE_MAP,a.da[1].hb),this.kr()),b.activeTexture(b.TEXTURE1),a.da[0].hb&&(b.bindTexture(b.TEXTURE_CUBE_MAP,a.da[0].hb),this.kr()),b.drawElements(b.TRIANGLES,this.En,b.UNSIGNED_SHORT,0),b.disable(b.STENCIL_TEST))}}class Pb{constructor(a){this.Fe=this.Ma=!1;this.j=null;this.Xb=!0;this.Em=this.td=!1;this.Ta=this.Ca=this.ya=0;this.fov=70;this.Xc=0;this.ti=100;this.kk=0;this.autoplay=this.xg=this.Gf=!1;this.ad="";this.o= null;this.Hp=!1;this.id=this.Jp="";this.u=this.pan=0;this.o=a;this.$c=this.kc=100;this.Kc=1}xb(a){let b;(b=a.getAttributeNode("id"))&&b.nodeValue&&(this.id=b.nodeValue.toString());if(b=a.getAttributeNode("pan"))this.pan=Number(b.nodeValue);if(b=a.getAttributeNode("tilt"))this.u=Number(b.nodeValue)}Hn(a){var b="";let e=this.o;var f=e.D;let h=!0;if(e.Xh){var n=new lb(0,0,-100);n.ya(-this.u*Math.PI/180);n.Ca(this.pan*Math.PI/180);n.Ca(-f.pan.m*Math.PI/180);n.ya(f.u.m*Math.PI/180);n.Ta(f.Y.m*Math.PI/ 180);.01<=n.z&&(h=!1)}e.We&&(b+="perspective("+a+"px) ");b=b+("translate3d(0px,0px,"+a+"px) rotateZ(")+(f.Y.m.toFixed(10)+"deg) ");b+="rotateX("+f.u.m.toFixed(10)+"deg) ";b+="rotateY("+(-f.pan.m).toFixed(10)+"deg) ";b+="rotateY("+this.pan.toFixed(10)+"deg) ";b+="rotateX("+(-this.u).toFixed(10)+"deg) ";a=1E4;f=this.j.videoWidth;n=this.j.videoHeight;if(0==f||0==n)f=640,n=480;0h;)h+=360;for(;180n&&(n=b.fov.m);this.v||(this.v=new lb,this.v.Ee(this.pan,this.u));0!=this.mode&&1!=this.mode||!e||this.Ab&&this.Ab.gain.setValueAtTime(this.level*a.fa*this.va,e.currentTime);2==this.mode&&e&&(b=.5*Math.cos(h*Math.PI/180)+.5,this.gd=Math.sqrt(b)*this.va*this.level*a.fa,this.kd=Math.sqrt(b)*this.va*this.level*a.fa,this.hd=Math.sqrt(1-b)*this.va*this.level*a.fa,this.jd=Math.sqrt(1-b)*this.va*this.level* a.fa,this.Gi());if(3==this.mode){h=0>h?h<-this.Hb?h+this.Hb:0:h>this.Hb?h-this.Hb:0;b=this.level;f=Math.abs(f);f=fn||0>r)r=b*x*a.fa,e?(this.gd=r*this.va,this.kd=r*this.va,this.jd=this.hd=0,this.Gi()):this.j.volume=b*x*a.fa;else{var w=1-Math.abs(h/n);if(e){let y=b*(x+(1-x)*r*w)*a.fa;w=b*x*a.fa;0<=h?(this.gd=y*this.va,this.kd=w*this.va):(this.gd=w*this.va,this.kd=y*this.va);2*Math.abs(h)h?h>-this.Hb?0:h+this.Hb:h{a.ff()}).catch(()=>{a.j.pause();a.Br&&(a.j.muted=!0,a.j.play())})}vn(){1!=this.Gg||this.Sd||!this.Ad||2!=this.mode&&3!=this.mode&&5!=this.mode||(this.Ad.connect(this.Cb,0),this.Ad.connect(this.Db,0))}Gi(){const a=this.o.ga;this.Ma||this.Im||(this.mb?(this.mb.gain.setValueAtTime(this.gd,a.currentTime),this.Db.gain.setValueAtTime(this.kd,a.currentTime), this.Bb.gain.setValueAtTime(this.hd,a.currentTime),this.Cb.gain.setValueAtTime(this.jd,a.currentTime)):this.Ab&&this.Ab.gain.setValueAtTime((this.gd+this.kd)/2,a.currentTime+1))}qr(){this.ta&&this.stopped?this.stopped=!1:0==this.loop?this.ta?(this.Rb=null,this.Wd()):this.j.play():0a.loop&&(a.j.preload="none")),a.ad&&""!=a.ad&&(a.j.style.ad="url('"+b.La(a.ad)+"')",a.j.style.webkitMaskImage="url('"+b.La(a.ad)+"')",a.j.style.maskSize="100% 100%",a.j.style.webkitMaskSize="100% 100%"),a.j.volume=a.level*b.fa, 1<=a.loop&&(a.lb=a.loop-1),e&&(this.Sd=!0),(1==a.mode||2==a.mode||3==a.mode||5==a.mode)&&0<=a.loop&&(a.j.autoplay=!0,a.isRunning=!0,a.autoplay=!0,this.o.xc&&(a.j.muted=!0),a.Fn()),b.V.push(this),b.dj?b.T.appendChild(a.j):(a.j.style.position="absolute",a.kc&&(a.j.width=a.kc),a.$c&&(a.j.height=a.$c),b.ia.appendChild(a.j)),a.j.addEventListener("ended",function(){a.kw()},!1)}catch(f){}}Xd(){this.j.poster=this.o.La(this.o.Ia(this.poster));super.Xd()}registerElement(a,b){this.td=!0;this.j=b;this.id=a;this.level= 1;this.o.V.push(this)}Ve(){let a=this.o;a.dj&&(a.N.deleteTexture(this.texture),this.texture=0);this.j.parentNode&&this.j.parentNode.removeChild(this.j);this.j=null}Ie(){this.Fe=!1;this.j.style[this.o.Hc]="none"}kw(){0==this.loop?this.j.play():0parseFloat(eb.REVISION)&&(this.frustumCulled=!0);n.position.z=-.01;n.position.y=0;n.position.x=0;n=new eb.WebGLRenderer({depth:!0, logarithmicDepthBuffer:!0,alpha:!0,antialias:!0,stencil:!1});eb.ColorManagement.enabled=!0;b.Uj&&17==parseInt(b.Ob)&&this.Uq(eb.SRGBColorSpace,eb.LinearSRGBColorSpace);n.outputColorSpace=this.Pn;n.setPixelRatio(window.devicePixelRatio);this.Sa=n;n.setClearColor(new eb.Color(0),1);n.setSize(window.innerWidth,window.innerHeight);n.shadowMap.enabled=!1;e.appendChild(n.domElement);"xr"in navigator&&(n.xr.enabled=!0,n.xr.setReferenceSpaceType("local"));n=this.nj=new eb.Group;n.name="controllerGroup";n.renderOrder= 3E3;f.add(new eb.HemisphereLight(12369084,10855845,3));e=new eb.DirectionalLight(16777215,3);e.position.set(0,6,0);f.add(e);e=(new eb.BufferGeometry).setFromPoints([new eb.Vector3(0,0,0),new eb.Vector3(0,0,-1)]);var r=new eb.LineBasicMaterial({color:14737632});e=new eb.Line(e,r);e.name="line";e.scale.z=5;this.line=e;this.Tn(0);this.Tn(1);n.visible=!1;e=this.$e=new eb.Group;e.name="skinGroup";e.translateZ(this.Wg);e.visible=!1;e.renderOrder=1E3;h.add(e);e=this.Cc=new eb.Group;e.name="toggleSkinGroup"; e.translateZ(this.Wg+.1);e.position.y=0==this.Ck?3.17:-3.17;e.renderOrder=1100;e.visible=!1;h.add(e);h.add(n);h=(new eb.TextureLoader).load(b.La("webxr/vrSkinShow.svg"));e=new eb.PlaneGeometry(.3,.3);h=new eb.MeshBasicMaterial({map:h,side:eb.DoubleSide,transparent:!0});e=new eb.Mesh(e,h);e.name="showSkinButton";e.userData.onclick=function(){a.Ye()};e.userData.setOpacity=function(w){a.Vf.material.opacity=w};e.visible=!0;this.Vf=e;this.Cc.add(e);h=(new eb.TextureLoader).load(b.La("webxr/vrSkinHide.svg")); e=new eb.PlaneGeometry(.3,.3);h=new eb.MeshBasicMaterial({map:h,side:eb.DoubleSide,transparent:!0});e=new eb.Mesh(e,h);e.name="hideSkinButton";e.userData.onclick=function(){a.Ye()};e.userData.setOpacity=function(w){a.Ag.material.opacity=w};e.visible=!1;this.Ag=e;this.Cc.add(e);this.Mg=new eb.Raycaster;this.ca=new eb.Vector2;this.Se=new eb.Group;this.Se.name="panoGroup";b.Lc||(this.Se.renderOrder=1);this.Hf=new eb.Group;this.Hf.name="imageGroup";this.Hd=new eb.Group;this.Hd.name="hotspotGroup";this.ng= new eb.Group;this.ng.name="elementGroup";this.hg=new eb.Group;this.hg.name="centerGroup";b.Lc||(this.hg.renderOrder=2E3);this.Se.add(this.ng);this.Se.add(this.Hd);this.Se.add(this.Hf);f.add(this.Se);e=new eb.BufferGeometry;b=[];f=[];for(h=0;20>h;h++)r=2*h*Math.PI/20,n=Math.cos(r),r=Math.sin(r),f.push(.03*n,.03*r,0),f.push(.05*n,.05*r,0);for(h=0;20>h;h++){n=2*h+1;r=(h+1)%20*2+1;const w=(h+1)%20*2;b.push(2*h,n,w);b.push(n,r,w)}e.setIndex(b);e.setAttribute("position",new eb.Float32BufferAttribute(f, 3));b=new eb.MeshBasicMaterial({color:"black",side:eb.DoubleSide,transparent:!0,opacity:.25});b=new eb.Mesh(e,b);b.position.z=-5;this.ol=b;this.hg.add(b);window.addEventListener("resize",function(){a.Bu()},!1);document.addEventListener("mouseup",function(){a.xu()},!1);document.addEventListener("mousedown",function(w){a.vu(w)},!1);document.addEventListener("mousemove",function(w){a.wu(w)},!1)}else console.log("Three.js not available!")}Tn(a){const b=this,e=b.$m;var f=b.Sa;this.xl||(this.xl=new eb.tw, this.Kp=new eb.uw);let h=f.xr.getController(a);h.addEventListener("selectstart",function(){-1==b.Sj&&b.wq()});h.addEventListener("selectend",function(r){b.vq(r)});h.visible=!1;h.userData.oj=a;this.nj.add(h);h.add(this.line.clone());var n=f.xr.getControllerGrip(a);n.add(this.xl.vw(n));e.add(n);f=f.xr.getHand(a);n=this.Kp.ww(f);f.add(n);f.addEventListener("pinchstart",()=>{b.Sj=a;b.Fm=Date.now();b.wq();b.Ui.identity().extractRotation(h.matrixWorld);const r=b.Cq;r.origin.setFromMatrixPosition(h.matrixWorld); r.direction.set(0,0,-1).applyMatrix4(this.Ui)});f.addEventListener("pinchend",r=>{b.Sj=-1;b.vq(r)});e.add(f);this.controller[a]=h}mr(){var a=this.o;a.G("vrchanged",{});a.G("playerstatechanged",{})}Iv(){this.km=!0;let a=this.o;a.G("vrchanged",{});a.G("playerstatechanged",{})}Yt(){if(!this.cs){this.cs=!0;var a=this;this.o.Ff()&&"xr"in navigator&&navigator.xr.isSessionSupported("immersive-vr").then(function(b){b?a.Iv():a.mr()}).catch(a.mr)}}Fj(){return this.$e}Me(){return null!=this.session?this.Sa.xr.isPresenting: this.o.qe?!0:!1}zg(){return this.km}zu(a){let b=this;this.gj();a.addEventListener("end",function(){b.yu()});a.addEventListener("inputsourceschange",()=>{});console.log("XR Session started.");this.Sa.xr.setSession(a);this.Ol=!0;this.session=a;b.o.G("entervr",{session:a})}yu(){console.log("XR Session ended.");this.Ol=!1;this.session=null;this.ul()}pg(a){let b=this.o;if(this.km&&!a){if(null===this.session){let e=this;navigator.xr.requestSession("immersive-vr",{optionalFeatures:["hand-tracking"]}).then(f=> {e.zu(f)}).catch(function(f){console.log(f);console.warn("'immersive-vr' isn't supported, or an error occurred activating VR!");e.ul()})}this.Hd&&this.Hd.translateY(-this.Jj);this.Jj=0;1==this.De&&(a=navigator.userAgent,0<=a.indexOf("OculusBrowser")&&(0<=a.indexOf("Pacific")&&(this.De=1.7),0<=a.indexOf("Quest")&&(this.De=1.5),0<=a.indexOf("Quest 3")&&(this.De=1.5)));this.Sa.xr.setFramebufferScaleFactor(this.De);b.Yb("Enter VR - scaled "+this.De)}else this.gj(),this.o.G("entervr",{session:null})}Cu(){const a= this.o;a.Ff()&&this.Sa&&(a.qe=!0,a.Mb&&(Db=2E3),a.Xh&&(Db=2E3),a.T.style.display="none",a.Ja.style.display="none",this.Sa.domElement.style.display="inline",a.G("vrchanged",{}),a.G("playerstatechanged",{}))}ul(){const a=this.o;a.Ff()&&this.Sa&&(a.qe=!1,a.T.style.display="inline",a.Ja.style.display="inline",this.Sa.domElement.style.display="none",this.o.er(!1),a.Sg(0),a.xd(),a.update(),a.G("vrchanged",{}),a.G("playerstatechanged",{}),this.o.G("exitvr",{session:null}),this.ro())}qg(){null!=this.session&& this.session.end()}Ir(){this.Me()?this.qg():this.pg()}Os(){let a=0,b=this.o.D.M,e;e=1536;this.Sa&&(e*=this.De);e*=Math.pow(2,0);if(0=a+2&&!b.levels[a+1].Lg&&b.levels[a+1].width>e;)a++;return a}yp(a){let b=this.o;var e=b.D.M,f=b.df[a];a="";if(f){f=f.firstChild;for(var h;f;)"input"==f.nodeName&&(h=f)&&(h=0f;f++)e=a(e,"c","vr"),e=a(e,"s","vr"),e=a(e,"r",0),e=a(e,"l",0),e=a(e,"x",0),e=a(e,"y",0),e=a(e,"v",0),e=a(e,"h",0);return b.La(e)}ceilPowerOfTwo(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))}hq(a,b,e){let f=new eb.ImageLoader;f.setCrossOrigin(this.o.crossOrigin);let h=this;f.load(b,function(n){let r=h.ceilPowerOfTwo(n.width),w=h.ceilPowerOfTwo(n.height);a.colorSpace=h.Dc;if(r==n.width&&w==n.height||!e)a.image=n;else{var x=document.createElement("canvas");x.width=r;x.height= w;x.getContext("2d").drawImage(n,0,0,r,w);a.image=x}a.needsUpdate=!0;a.Ip=!0;a.Ge&&a.Ge.Ip&&(a.Sh.visible=!0,a.Ge.Sh.visible=!0)});this.Kj.push(a)}gj(){const a=this.o;if(a.Ff()){var b=a.D;if(!this.ml){var e=this.Hf,f=this;this.Tf();this.camera.layers.enable(1);e.setRotationFromEuler(this.tq);e.rotateX(b.rb.pitch*Math.PI/180);e.rotateZ(-b.rb.Y*Math.PI/180);var h=new eb.SphereGeometry(Db/3*1.5,16,16),n=new eb.Texture,r=new eb.ImageLoader;r.setCrossOrigin(this.o.crossOrigin);r.load(this.yp(a.pd()),function(w){n.colorSpace= f.Dc;n.image=w;n.needsUpdate=!0});r=new eb.MeshBasicMaterial({map:n,side:eb.DoubleSide});h=new eb.Mesh(h,r);h.scale.x=-1;h.rotateZ(b.rb.Y*Math.PI/180);h.rotateX(-b.rb.pitch*Math.PI/180);h.rotateY(-90*Math.PI/180);e.add(h);f.mk=h;f.ml=!0;setTimeout(function(){f.ml=!1;f.js();a.B.j?f.ms():f.ks();f.hs()});this.Vu();this.Ym=!0}}}ms(){function a(){var y=0;let z=2*Math.PI,cb=0,ab=Math.PI;if(15==f.format&&(y=Math.PI/2,z=Math.PI,0f){var x=b.levels[f];for(var y=0;6>y;y++){e[y]=new eb.Group;for(var z=0;zy?e[y].rotation.y= -y*Math.PI/2:e[y].rotation.x=(4==y?1:-1)*Math.PI/2;h.add(e[y])}}else for(b=a.dh,f=0;6>f;f++)for(e[f]=new eb.Group,x=0;xf?e[f].rotation.y=-f*Math.PI/2:e[f].rotation.x=(4==f?1:-1)*Math.PI/2,h.add(e[f])}js(){let a=this.o,b=this.Hd;new lb(0,0,-100);let e=a.P.Jk;for(let x=0;x=y.distance?5:1> y.distance?1:5>y.distance?y.distance:5;y.nd?(n=(new eb.TextureLoader).load(y.nd),n.colorSpace=this.Dc,f=new eb.MeshBasicMaterial({map:n}),y.Zf?(n=2*z*Math.tan(y.fov/2*Math.PI/180),h=new eb.PlaneGeometry(n,n*y.Bd/y.uf,1,1),f.transparent=!0,f.opacity=1):(h=new eb.PlaneGeometry(.005*y.uf,.005*y.Bd,1,1),f.transparent=!0,f.opacity=.25),n=.005*y.Bd/2,f.side=eb.DoubleSide,f=new eb.Mesh(h,f)):(f=new eb.SphereGeometry(.2*this.Gl,16,16),h=(new eb.TextureLoader).load(this.yp(h)),h.colorSpace=this.Dc,h=new eb.MeshBasicMaterial({map:h}), h.transparent=!0,h.opacity=.25,f=new eb.Mesh(f,h));var r=y.title;if(e.enabled&&""!=r){h=document.createElement("canvas");h.width=256;h.height=32;let cb=h.getContext("2d");this.Xi||(this.Xi=document.createElement("canvas"),this.Xi.width=h.width,this.Xi.height=h.height);let ab=this.Xi.getContext("2d");ab.clearRect(0,0,h.width,h.height);ab.font="16px Helvetica";ab.textAlign="center";ab.textBaseline="top";var w=ab.measureText(r);let db=w.width;0{let n=(new Date).getTime()-f,r=n/e;a.material.opacity=0==b?1-r:r;n>e&&(0==b&&(a.visible= !1,a.material.opacity=1),clearInterval(h))},20)}Fh(a){for(let b=a.children.length-1;0<=b;b--){let e=a.children[b];this.Fh(e);a.remove(e)}a.geometry&&a.geometry.dispose();a.material&&(a.material.texture&&(a.material.texture.dispose(),a.material.texture.Ge=null,a.material.texture.Sh=null),a.material.map&&(a.material.map.dispose(),a.material.map.Ge=null,a.material.map.Sh=null),a.material.dispose())}Tf(){eb&&(this.Kj=[],this.Fh(this.Hf),this.Fh(this.Hd),this.Fh(this.ng))}Bu(){if(eb){var a=this.camera; a.aspect=window.innerWidth/window.innerHeight;a.updateProjectionMatrix();this.Sa.setSize(window.innerWidth,window.innerHeight)}}wq(){if(eb){var a=this.o;if(0Math.PI/4?Math.abs(e.x)+Math.abs(e.z)>Math.abs(e.y)&&this.Fma.clientX&&50>a.clientY&&b.qg();if(0a.position.z&&(a=this.Qa[b]);b=a.userData;b.O?(a=b.O,this.o.Rc(a.url,a.target)):(this.ve(a,"onclick"),this.ve(a,"onmousedown"))}else this.bd.x=this.ca.x, this.bd.y=this.ca.y}animate(){let a=this.jq=this;this.Sa&&this.Sa.setAnimationLoop(function(){a.render();a.o.Pr()})}render(){if(eb){var a=null;try{a=this.Sa.xr.getCamera()}catch(n){}!this.Vk&&a&&(a.add(this.hg),this.$m.add(a));if(this.Vk=a)this.Hd.translateY(a.position.y-this.Jj),this.Jj=a.position.y;var b=this.jq,e=b.o;if(e.qe){b.$f=!0;b.controller.forEach(n=>{n.visible&&(b.$f=!1)});var f=this.Qt();this.Rt();this.mk&&0this.Wk?this.ck||(this.ck=!0,this.hu=new Date):(this.ck=!1,!this.sg&&!this.Cc.visible||this.xj||(this.xj=!0,this.Ll=new Date),this.sg=!1),this.ck&&!this.sg&&!this.Cc.visible&&500<(new Date).getTime()-this.hu.getTime()&&(this.sg=!0, this.Ll=new Date),this.sg?(this.Cc.visible=!0,h=((new Date).getTime()-this.Ll.getTime())/5,100<=h?(this.Ii(1),this.sg=!1):this.Ii(h/100)):this.xj&&(h=((new Date).getTime()-this.Ll.getTime())/5,100<=h?(this.Ii(0),this.xj=!1):this.Ii(1-h/100)));this.Ym&&(this.Pg(this.Nn-e.D.pan.m),this.Ym=!1);e.hn(this.Nn-this.Qf,this.Wk,180*f.z/Math.PI);e=this.hg;b.$f?a&&(e.visible=!0):e.visible=!1;e=this.Cc;a&&!this.$e.visible&&(e.translateZ(-(this.Wg+.1)),e.rotateY(-this.Bn),f=new eb.Vector3(0,0,1),f.applyEuler(a.rotation), this.Bn=Math.atan2(f.x,f.z),e.rotateY(this.Bn),e.translateZ(this.Wg+.1));b.Sa.autoClear=!0;b.Sa.render(b.$m,b.camera);b.Sa.autoClear=!1;b.Sa.clearDepth();b.Sa.render(b.Jv,b.camera);0==this.li||isNaN(this.li)||this.Pg(this.li)}}}Qt(){function a(x,y){if(b.Vb[x].buttons[y].pressed){if(!b.nl.get(x+"_"+y))return b.nl.set(x+"_"+y,!0),!0}else b.nl.set(x+"_"+y,!1);return!1}let b=this;const e=b.o;this.Vb=[];let f=!0;this.session?(this.session.inputSources.forEach(x=>{let y=x.profiles;"gaze"==x.targetRayMode? b.$f=!0:(this.Vb.push(x.gamepad),0<=y.indexOf("oculus-go")&&(f=!1),0<=y.indexOf("generic-trigger-squeeze-thumbstick")&&(f=!0),0<=y.indexOf("oculus-touch")&&(f=!0))}),this.Vb.push(...navigator.getGamepads())):this.Vb=navigator.getGamepads&&navigator.getGamepads();let h=!1;if(this.Vb)for(let x=0;xw&&(this.Pg(20),this.Ne[x]=r,this.Oe[x]=n);.3w&&(this.Ye(!0),this.Oe[x]=n,this.Ne[x]=r),.5r?(h=!0,-1!=this.Kf[x]&&(this.Kf[x]=-1,this.Xj[x]=Date.now()-1E4)):this.Kf[x]=0,0!=this.Kf[x]&&400b;b++)2>b%3&&(w[b]*=a);r.bufferData(r.ARRAY_BUFFER,new Float32Array(w),r.STATIC_DRAW);this.we=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,this.we);let x=[1,0,0,0,0,1,1,1];r.bufferData(r.ARRAY_BUFFER,new Float32Array(x),r.STATIC_DRAW);this.md=r.createBuffer();r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this.md); let y=[0,1,2,0,2,3];r.bufferData(r.ELEMENT_ARRAY_BUFFER,new Uint16Array(y),r.STATIC_DRAW);w=[];y=[];x=[];let z=new lb;for(a=0;6>a;a++){f=a%3;h=3>a?1:0;for(e=0;4>e;e++){z.x=-1;z.y=-1;z.z=1;for(b=0;bz.x?.33:0)+.33*f,(0>z.y?0:.5)+.5*h);if(4>a)for(b=0;bh;h++){var e=b.createTexture(); this.ee++;e.Sf=null;e.Of=null;e.Mp=!1;b.bindTexture(b.TEXTURE_2D,e);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,1,1,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);if(a.Bh[h]){var f=new Image;f.crossOrigin=a.crossOrigin;f.src=a.La(a.Bh[h]);e.Sf=f;f.addEventListener&&f.addEventListener("load",this.fm(e),!1);a.ld.push(f)}this.gb.push(e)}for(e= 0;6>e;e++)a.Ah[e]&&(f=new Image,f.crossOrigin=a.crossOrigin,f.src=a.La(a.Ah[e]),f.addEventListener?f.addEventListener("load",this.fm(this.gb[e]),!1):f.onload=this.fm(this.gb[e]),this.gb[e].Of=f,a.ld.push(f));for(f=0;fa;a++)this.Vg(a),b.bindBuffer(b.ARRAY_BUFFER,this.qj),b.vertexAttribPointer(this.R.la,3,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this.we),b.vertexAttribPointer(this.R.Ea,2,b.FLOAT,!1,0,0),6<=this.gb.length&&this.gb[a].loaded&&(b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,this.gb[a]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.md),b.uniform1i(this.R.Qg,0),b.uniformMatrix4fv(this.R.ni,!1,this.Aa),b.uniformMatrix4fv(this.R.Re, !1,this.$a),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0))}}Nr(){let a=this.o;var b=this.D;b.M.lk&&6>16&255)/255,(b>>8&255)/255,(b>>0&255)/255,1))}Vg(a,b=1){const e=this.D;kb.identity(this.Aa);kb.rotate(this.Aa,b*-e.Y.m*Math.PI/180,[0,0,1]);kb.rotate(this.Aa,b*-e.u.m*Math.PI/180,[1,0,0]);-1==b?kb.rotate(this.Aa,-e.pan.m*Math.PI/180,[0,1,0]):kb.rotate(this.Aa,(180-e.pan.m)*Math.PI/180,[0,1,0]);e.rb&&(kb.rotate(this.Aa,-e.rb.pitch*Math.PI/180, [1,0,0]),kb.rotate(this.Aa,e.rb.Y*Math.PI/180,[0,0,1]));4>a?kb.rotate(this.Aa,-Math.PI/2*a,[0,1,0]):kb.rotate(this.Aa,Math.PI/2*(5==a?1:-1),[1,0,0])}Qv(a){let b=this;return function(){b.Fl.push(a)}}Hs(a){function b(){a.Fb=f.createTexture();e.o.ee++;f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,1);f.bindTexture(f.TEXTURE_2D,a.Fb);try{f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,a.M)}catch(h){f.texImage2D(f.TEXTURE_2D,0,f.RGBA,1,1,0,f.RGBA,f.UNSIGNED_BYTE,new Uint8Array([128,128,128,250]))}}let e= this;e.o.Ka=!0;e.o.Eh=!0;a.loaded=!0;a.Sm=0;a.Ue=0;let f=e.o.N;this.Co();null!=a.M&&a.M.complete&&("decode"in a.M?a.M.decode().then(()=>{a.M&&(a.vb=document.createElement("canvas"),a.vb.width=a.M.width,a.vb.height=a.M.height,a.Zd=a.vb.getContext("2d"),a.Zd&&a.Zd.drawImage(a.M,0,0),b(),a.Zd&&(delete a.Zd,a.Zd=null))}):b());e.o.update(2)}Co(){this.D.Wi&&this.D.Wi--}Is(){let a=2;for(;0r;r++){let w=new Hb(r);w.vb=document.createElement("canvas");b.o.pa?(w.vb.width=h.width+2*n,w.vb.height=h.height+2*n):(w.vb.width=f.W+2*n,w.vb.height=f.W+2*n);w.Zd=w.vb.getContext("2d");w.vb.style[b.o.Ae+"Origin"]="0% 0%";w.vb.style.overflow="hidden";w.vb.style.position="absolute";w.M=a;let x=h.width+2*n,y=h.height+2*n;w.Zd&&w.Zd.drawImage(a,0,r*y,x,y,0,0,x,y); if(b.o.pa&&b.o.N){let z=b.o.N;z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,1);w.Fb=z.createTexture();b.o.ee++;z.bindTexture(z.TEXTURE_2D,w.Fb);try{z.texImage2D(z.TEXTURE_2D,0,z.RGBA,z.RGBA,z.UNSIGNED_BYTE,w.vb)}catch(cb){}z.bindTexture(z.TEXTURE_2D,null);z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,0)}b.o.jh&&(w.vb.Iw=-1,b.o.ia.insertBefore(w.vb,b.o.ia.firstChild));h.Oa[r]=w}h.loaded=!0;b.o.F.ed&&("previewtrack"==b.o.F.delay||"videopano"==b.o.F.delay&&!b.o.B.j)&&b.o.Gk(null)}}catch(h){}b.o.update(2)}}Gr(a){let b=this; return function(){b.o.Ka=!0;b.o.Eh=!0;b.Co();a.M=null}}ow(){let a=this.o,b=this.D;var e=b.M;let f=e.levels;if(a.N){var h=a.N;h.useProgram(this.R);h.enable(h.DEPTH_TEST);kb.identity(this.$a);kb.perspective(b.Eb(),a.Ya.width/a.Ya.height,.1,100,this.$a);h.uniformMatrix4fv(this.R.Re,!1,this.$a);b.cw();b.iq();var n=b.No();var r=f.length-1;for(b.pe=0;r>=n;){var w=f[r],x=1;r==f.length-1&&0==e.ib&&(x=e.W/(e.W-.5));for(var y=0;6>y;y++){var z=void 0;z=b.cube.yf[y];var cb=z.si;if(z.Xb&&0hb;hb++)ib[hb]=0==hb%3?x*gb*(-2*ib[hb]/w.width+1):1==hb%3?x*gb*(-2*ib[hb]/w.height+1):gb;h.bufferData(h.ARRAY_BUFFER,new Float32Array(ib),h.STATIC_DRAW)}}else cb=!1;fb.visible=z.Xb}ab.eq=cb}}r--}for(e=0;6>e;e++)if(w=b.cube.yf[e],w.Xb)for(x=w.si,this.Vg(e),h.uniform1i(this.R.Qg,0),h.uniformMatrix4fv(this.R.Re,!1, this.$a),h.uniformMatrix4fv(this.R.ni,!1,this.Aa),h.enableVertexAttribArray(this.R.la),h.enableVertexAttribArray(this.R.Ea),h.bindBuffer(h.ARRAY_BUFFER,this.we),h.vertexAttribPointer(this.R.Ea,2,h.FLOAT,!1,0,0),h.activeTexture(h.TEXTURE0),h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,this.md),h.useProgram(this.R),r=n;r<=f.length-1;){y=f[r];if(w.Xb&&0n?gb.Sc(-90*n):gb.bc(5==n?90:-90);x.rb&&(gb.le(x.rb.Y),gb.bc(-x.rb.pitch));gb.Sc(-x.pan.m);gb.bc(x.u.m);gb.le(x.Y.m);for(n=0;n<=h;n++)for(x=0;x<=h;x++){var bb=2*(z+x*r)-1;var fb=2*(e+n*cb)-1;db.x=1*bb;db.y=1*fb;db.z=-1;db.normalize();gb.nu(db);bb=this.zp(db,b,w.Z());0!=w.Ic()&&1>ab&&(fb=this.zp(db,f,w.Ic()),bb&&fb?(b.x=b.x*ab+f.x*(1-ab),b.y=b.y*ab+f.y*(1-ab)):!bb&&fb&&(bb=!0,b.x=f.x,b.y=f.y));bb||(b.x=NaN);a.wg[a.dm++]= y.width/2+b.x*y.width/2;a.wg[a.dm++]=y.height/2-b.y*y.width/2}this.Fv(a,h)}zp(a,b,e){let f=!0;switch(e){case 0:case 4:e=1/(a.z*this.Rm);b.x=-a.x*e;b.y=a.y*e;0n;n++)isNaN(a.wg[2*f[0]])&&(h=!1);if(h){let x=n=!1,y=!1,z=!1;for(let cb=0;4>cb;cb++){let ab=a.wg[2*f[cb]];abdb;db++)for(var gb=0;gb=r;){db={};z=f[x];gb=null;0>cb-x),mb,0!=a.Ic()),hb.visible=0b.fov.m&&xb.ji){this.Dk=!1;break}y.Fb&&(bb=gb=e.W,db==z.$-1&&(gb=z.width-e.W*db),fb==z.sa-1&&(bb=z.height-e.W*fb),gb=(gb+2*e.ib)/e.W,bb=(bb+2*e.ib)/e.W,h.bindTexture(h.TEXTURE_2D,y.Fb),h.uniform2f(h.getUniformLocation(n,"uCanvasDimensions"),a.H.width,a.H.height),mb=h.getUniformLocation(n,"srcScale"),h.uniform2f(mb,.5*z.width/e.W/gb,.5*z.height/e.W/bb),mb=h.getUniformLocation(n,"srcOffset"),h.uniform2f(mb,(.5*z.width+e.ib-e.W*db)/e.W/gb,-(.5*z.height+e.ib- e.W*fb)/e.W/bb+1),mb=h.getUniformLocation(n,"zOffset"),h.uniform1f(mb,(x+1)/(f.length+5)),fb=h.getAttribLocation(n,"aVertexPosition"),h.disableVertexAttribArray(0),h.disableVertexAttribArray(1),h.disableVertexAttribArray(2),h.enableVertexAttribArray(fb),h.activeTexture(h.TEXTURE0),this.Mi(h),h.bindBuffer(h.ARRAY_BUFFER,this.Pt),h.vertexAttribPointer(fb,2,h.FLOAT,!1,0,0),h.bufferData(h.ARRAY_BUFFER,new Float32Array(y.wg),h.DYNAMIC_DRAW),h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,this.Ot),h.bufferData(h.ELEMENT_ARRAY_BUFFER, new Uint16Array(y.ob),h.DYNAMIC_DRAW),this.Gh?0==x&&0==cb&&h.drawElements(h.LINES,y.Pa,h.UNSIGNED_SHORT,0):h.drawElements(h.TRIANGLES,y.Pa,h.UNSIGNED_SHORT,0),w++)}x++}h.disable(h.CULL_FACE);h.cullFace(h.FRONT_AND_BACK);a.Eh=!1;h.disable(h.STENCIL_TEST)}}hh(a,b){let e=this.o.N;kb.identity(this.Aa);this.Vg(a,-1);e.uniformMatrix4fv(e.getUniformLocation(b,"matRotate"),!1,this.Aa)}Gu(){let a=this.o;if(a.N){var b=a.N,e=this.Bi;b.useProgram(e);this.hh(0,e);b.uniform2f(b.getUniformLocation(e,"uCanvasDimensions"), a.H.width,a.H.height);var f=b.getUniformLocation(e,"srcOffset");b.uniform2f(f,.5,.5);1==a.B.format&&(f=b.getUniformLocation(e,"srcScale"),a.oc?(b.uniform2f(f,-.5/Math.PI,(a.B.flipY?-.5:.5)/Math.PI),f=b.getUniformLocation(e,"srcOffset"),a.Xf?b.uniform2f(f,.5,.75):b.uniform2f(f,.5,.25)):b.uniform2f(f,-.5/Math.PI,(a.B.flipY?-1:1)/Math.PI));if(15==a.B.format){f=b.getUniformLocation(e,"srcScale");let h=1;0x;x++)(null===(a=this.gb[x].Of)||void 0===a?0:a.complete)?this.pj[x]||(w=!0):n=!1,(null===(b=this.gb[x].Sf)||void 0===b?0:b.complete)||(r=!1);if(r||n)if(!r||n||!this.hb||w){r=Math.round(e.bf/e.dh);a=(e.bf-r)/2;this.lg=0;this.hb||(this.hb=f.createTexture(), e.ee++);f.bindTexture(f.TEXTURE_CUBE_MAP,this.hb);f.texParameteri(f.TEXTURE_CUBE_MAP,f.TEXTURE_MIN_FILTER,f.LINEAR);f.texParameteri(f.TEXTURE_CUBE_MAP,f.TEXTURE_MAG_FILTER,f.LINEAR);f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,1);b=document.createElement("canvas");b.width=r;b.height=r;r=b.getContext("2d");for(w=0;6>w;w++)x=h[w],this.gb[x].Of.complete?this.pj[x]||(r.drawImage(this.gb[x].Of,-a,-a),f.texImage2D(f.TEXTURE_CUBE_MAP_POSITIVE_X+w,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,b),this.pj[x]=!0):(r.drawImage(this.gb[x].Sf, -a,-a,e.bf,e.bf),f.texImage2D(f.TEXTURE_CUBE_MAP_POSITIVE_X+w,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,b));this.$h=!n}}}Fs(){var a=this.o,b=this.D.M;let e=b.levels,f=a.N;if(f){var h=e.length-1;if(!(0>h)){e[h].Lg&&h--;var n=512;a.Zh?n=2<=a.devicePixelRatio?512:256:!a.Og&&2<=a.devicePixelRatio&&(n=1024);var r=f.getParameter(f.MAX_CUBE_MAP_TEXTURE_SIZE);for(r&&r=n;w--)this.loadLevel(w)&&(h=w);if(r){this.hb||(this.hb=f.createTexture(),a.ee++);r=e[h];this.lg>h&&(this.lg=h);a=b.ib;w=0r.width?1500ab;ab++){y&&y.clearRect(0,0,z.width,z.height);for(let db=h;db>=n;db--){r=e[db];for(let gb=0;gbn;n++)for(let r=0;rb;b++)for(let e=0;ea;a++)if(!this.gb[a].Sf.complete)return!1;return!0}Wm(){let a=this.o,b=this.D;var e=b.M.levels;let f=a.N,h=Date.now();for(let r=e.length-1;0<=r;r--){let w=e[r];if(!w.cache)for(let x in w.Oa)if(w.Oa.hasOwnProperty(x)){var n=w.Oa[x];01.1*b.Fr)for(this.ye.sort(function(r,w){return w.Zj-r.Zj});this.ye.length>b.Fr;)e=this.ye.pop(),e.Fb&&(f.deleteTexture(e.Fb),a.ee--,e.Fb=0),e.M=null,e.Ef&&(f.deleteBuffer(e.Ef),e.Ef=0),delete e.level.Oa[e.id]}gw(){let a=this.o;if(a.N){var b=this.o.N,e=this.D,f;for(f=0;fb;b++)this.Vg(0),e.bindBuffer(e.ARRAY_BUFFER,a.B.Sk),e.vertexAttribPointer(this.R.la,3,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,a.B.Vi),e.vertexAttribPointer(this.R.Ea,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a.B.Mj),e.uniform1i(this.R.Qg,0),e.uniformMatrix4fv(this.R.ni, !1,this.Aa),e.uniformMatrix4fv(this.R.Re,!1,this.$a),e.drawElements(e.TRIANGLES,36,e.UNSIGNED_SHORT,0)}}ew(){let a=this.o,b=a.N,e=a.B;if(0=e.P.mode&&(r=0);3== e.P.mode&&(r=e.P.Fa);for(a=0;a>16&255)/255,(b>>8&255)/255,(b&255)/255);let y=f.getUniformLocation(this.je,"uAlpha");f.uniform1f(y,w.fc*x);f.vertexAttribPointer(this.je.la,3,f.FLOAT,!1,0,0);f.drawArrays(f.LINE_LOOP,0,n.length/3);b=w.ec;f.uniform3f(h,(b>>16&255)/255,(b>>8&255)/255,(b&255)/255);f.uniform1f(y,w.dc*x);f.enable(f.STENCIL_TEST);f.clearStencil(0);f.clear(f.STENCIL_BUFFER_BIT); f.colorMask(!1,!1,!1,!1);f.stencilFunc(f.ALWAYS,1,1);f.stencilOp(f.INCR,f.INCR,f.INCR);f.drawArrays(f.TRIANGLE_FAN,0,n.length/3);f.colorMask(!0,!0,!0,!0);f.stencilFunc(f.EQUAL,1,1);f.stencilOp(f.ZERO,f.ZERO,f.ZERO);f.drawArrays(f.TRIANGLE_FAN,0,n.length/3);f.disable(f.BLEND);f.enable(f.DEPTH_TEST);f.disable(f.STENCIL_TEST);f.useProgram(this.R)}}}}}dw(){var a=this.o,b=this.D;let e=b.M;if(a.N){var f=a.N;f.disable(f.DEPTH_TEST);f.disable(f.CULL_FACE);f.useProgram(this.ug);var h=f.getUniformLocation(this.ug, "uRect");f.uniform2f(f.getUniformLocation(this.ug,"uCanvasDimensions"),a.H.width,a.H.height);f.activeTexture(f.TEXTURE0);f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.md);var n=f.getAttribLocation(this.ug,"aVertexPosition");f.disableVertexAttribArray(0);f.disableVertexAttribArray(1);f.disableVertexAttribArray(2);f.enableVertexAttribArray(n);f.bindBuffer(f.ARRAY_BUFFER,this.we);f.vertexAttribPointer(n,2,f.FLOAT,!1,0,0);b.pe=0;var r=100/b.fov.m;var w=e.width/e.height;n=a.H.height*r*w;r*=a.H.height;w=(b.pan.m/ 100/w-.5)*n+a.H.width/2;for(var x=(b.u.m/100-.5)*r+a.H.height/2,y,z,cb,ab=0;e.levels.length>=ab+2&&e.levels[ab+1].width>n;)ab++;var db;var gb=[];for(db=e.levels.length-1;db>=ab;){var bb=e.levels[db];let fb;bb.cache?(fb={fx:0,fy:0},fb.Jd=bb.$-1,fb.Kd=bb.sa-1):(fb={},y=-x/r*(bb.height/e.W),z=(-w+a.H.width)/n*(bb.width/e.W),cb=(-x+a.H.height)/r*(bb.height/e.W),fb.fx=Math.min(Math.max(0,Math.floor(-w/n*(bb.width/e.W))),bb.$-1),fb.fy=Math.min(Math.max(0,Math.floor(y)),bb.sa-1),fb.Jd=Math.min(Math.max(0, Math.floor(z)),bb.$-1),fb.Kd=Math.min(Math.max(0,Math.floor(cb)),bb.sa-1));gb[db]=fb;let ib=!0;for(z=fb.fy;z<=fb.Kd;z++)for(y=fb.fx;y<=fb.Jd;y++){cb=y+z*bb.$;let hb=bb.Oa[cb];hb||(hb=new Hb(cb),bb.Oa[cb]=hb);this.wj()?hb.M||(this.ak(hb,bb,b.bh(0,db,y,z)),a.Ka=!0):b.pe++;hb.M&&hb.M.complete||(ib=!1);hb.visible=!0}fb.eq=ib;db--}for(db=e.levels.length-1;db>=ab;){a=e.levels[db];if(gb[db]&&0<=gb[db].fx)for(b=gb[db],z=b.fy;z<=b.Kd;z++)for(y=b.fx;y<=b.Jd;y++)cb=y+z*a.$,(bb=a.Oa[cb])&&bb.M&&bb.M.complete&& (f.uniform4f(h,w+(-e.ib+e.W*y)*n/a.width,x+(-e.ib+e.W*z)*r/a.height,bb.M.width*n/a.width,bb.M.height*r/a.height),bb&&bb.Fb&&(f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.md),f.bindTexture(f.TEXTURE_2D,bb.Fb),this.Mi(f),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0)));db--}this.Wm()}}Tf(){let a=this.o.N;if(a&&this.gb)for(;0e.va&&(e.va=a)}1==a&&clearInterval(this.Kv)}}class wd{constructor(a){this.ei=[];this.yc=[];this.ic=[];this.Ac=[];this.jn=!0;this.o=a;this.Ds()}Vh(){let a=this.o.N;var b=a.createShader(a.VERTEX_SHADER);a.shaderSource(b,"attribute vec3 aVertexPosition;\nvoid main(void) {\n gl_Position = vec4(aVertexPosition, 1.0);\n}\n");a.compileShader(b);a.getShaderParameter(b,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(b)),b=null); var e=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(e,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uCanvasDimensions;\nuniform vec2 uFlareCenterPosition;\nuniform float uBlindingValue;\nuniform float uAspectRatio;\nvoid main(void) {\n float canvasDiag = sqrt( (uCanvasDimensions.x * uCanvasDimensions.x) + (uCanvasDimensions.y * uCanvasDimensions.y) );\n vec2 diff = uFlareCenterPosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromFlarePoint = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float factor = (distFromFlarePoint / canvasDiag) / 10.0;\n gl_FragColor = vec4(1.0, 1.0, 1.0, pow(((1.0 - factor) * 0.8) * uBlindingValue, 2.0));\n}\n"); a.compileShader(e);a.getShaderParameter(e,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(e)),e=null);this.Fc=a.createProgram();a.attachShader(this.Fc,b);a.attachShader(this.Fc,e);a.linkProgram(this.Fc);a.getProgramParameter(this.Fc,a.LINK_STATUS)||alert("Could not initialise shaders");this.Fc.la=a.getAttribLocation(this.Fc,"aVertexPosition");a.enableVertexAttribArray(this.Fc.la);e=a.createShader(a.VERTEX_SHADER);b=a.createShader(a.VERTEX_SHADER);a.shaderSource(e,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nattribute vec3 aVertexPosition;\nvarying vec4 vColor;\nuniform vec2 uCirclePosition;\nuniform float uCircleRadius;\nuniform vec2 uCanvasDimensions2;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 circleOnScreen = aVertexPosition.xy * uCircleRadius + uCirclePosition;\n circleOnScreen.y = circleOnScreen.y / uAspectRatio;\n vec2 circleNorm = (circleOnScreen / uCanvasDimensions2) * 2.0 - vec2(1.0, 1.0);\n gl_Position = vec4(circleNorm.x, circleNorm.y, 0.0, 1.0);\n}\n"); a.compileShader(e);a.getShaderParameter(e,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(e)),e=null);a.shaderSource(b,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nattribute vec3 aVertexPosition;\nvarying vec4 vColor;\nuniform vec2 uCirclePosition;\nuniform float uCircleRadius;\nuniform vec2 uCanvasDimensions2;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 circleOnScreen = aVertexPosition.xy * uCircleRadius + uCirclePosition;\n circleOnScreen.y = circleOnScreen.y / uAspectRatio;\n vec2 circleNorm = (circleOnScreen / uCanvasDimensions2) * 2.0 - vec2(1.0, 1.0);\n gl_Position = vec4(circleNorm.x, circleNorm.y, 0.0, 1.0);\n}\n"); a.compileShader(b);a.getShaderParameter(b,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(b)),e=null);let f=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(f,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uCircleTexturePosition;\nuniform vec3 uCircleColor;\nuniform float uCircleRadius;\nuniform float uCircleAlpha;\nuniform float uCircleSoftness;\nuniform float uAspectRatio;\nvoid main(void) {\n vec2 diff = uCircleTexturePosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromCircleCenter = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float softnessDistance = uCircleRadius * (1.0 - uCircleSoftness);\n if (distFromCircleCenter > uCircleRadius)\n {\n\t gl_FragColor = vec4(uCircleColor, 0.0);\n }\n else if (distFromCircleCenter <= (softnessDistance))\n {\n\t float factor = distFromCircleCenter / softnessDistance;\n\t gl_FragColor = vec4(uCircleColor, pow((1.0 - (0.2 * factor)) * uCircleAlpha, 1.8));\n }\n else\n {\n\t float factor = (distFromCircleCenter - softnessDistance) / (uCircleRadius - softnessDistance);\n\t gl_FragColor = vec4(uCircleColor, pow((0.8 - (0.8 * factor)) * uCircleAlpha, 1.8));\n }\n}\n"); a.compileShader(f);a.getShaderParameter(f,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(f)),f=null);this.Ba=a.createProgram();a.attachShader(this.Ba,e);a.attachShader(this.Ba,f);a.linkProgram(this.Ba);a.getProgramParameter(this.Ba,a.LINK_STATUS)||alert("Could not initialise shaders");this.Ba.la=a.getAttribLocation(this.Ba,"aVertexPosition");a.enableVertexAttribArray(this.Ba.la);e=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(e,"#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec4 vColor;\nuniform vec2 uRingTexturePosition;\nuniform float uRingRadius;\nuniform float uRingAlpha;\nuniform float uAspectRatio;\nuniform sampler2D uSampler;\nvoid main(void) {\n vec2 diff = uRingTexturePosition - gl_FragCoord.xy;\n diff.y = diff.y * uAspectRatio;\n float distFromRingCenter = sqrt( (diff.x * diff.x) + (diff.y * diff.y) );\n float factor = distFromRingCenter / uRingRadius;\n if (distFromRingCenter > uRingRadius)\n {\n\t gl_FragColor = vec4(1.0, 1.0, 1.0, 0.0);\n }\n else\n {\n vec4 textureColor = texture2D(uSampler, vec2(factor / uAspectRatio, 0.5));\n gl_FragColor = vec4(textureColor.x, textureColor.y, textureColor.z, uRingAlpha);\n }\n}\n"); a.compileShader(e);a.getShaderParameter(e,a.COMPILE_STATUS)||(alert(a.getShaderInfoLog(e)),e=null);this.Ib=a.createProgram();a.attachShader(this.Ib,b);a.attachShader(this.Ib,e);a.linkProgram(this.Ib);a.getProgramParameter(this.Ib,a.LINK_STATUS)||alert("Could not initialise shaders");this.Ib.la=a.getAttribLocation(this.Ib,"aVertexPosition")}If(){let a=this.o.N;this.ae=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.ae);a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),a.STATIC_DRAW); this.ae.itemSize=3;this.ae.numberOfItems=4;this.tg=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.tg);var b=[0,0,0],e=2*Math.PI/6,f=Math.PI/180*35;let h=1;for(var n=f;n<=f+2*Math.PI;n+=e)b.push(Math.sin(n)),b.push(-Math.cos(n)),b.push(0),h++;a.bufferData(a.ARRAY_BUFFER,new Float32Array(b),a.STATIC_DRAW);this.tg.itemSize=3;this.tg.numberOfItems=h;this.Pq=a.createTexture();a.bindTexture(a.TEXTURE_2D,this.Pq);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D, a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);b=document.createElement("canvas");b.width=100;b.height=1;e=b.getContext("2d");e.width=100;e.height=1;f=e.createLinearGradient(0,0,100,0);f.addColorStop(0,this.o.Gb(0,0));f.addColorStop(.88,this.o.Gb(0,0));f.addColorStop(.9,this.o.Gb(16654848,1));f.addColorStop(.92,this.o.Gb(16776448,1));f.addColorStop(.94,this.o.Gb(4849466,1));f.addColorStop(.96, this.o.Gb(131071,1));f.addColorStop(.98,this.o.Gb(8190,1));f.addColorStop(1,this.o.Gb(0,0));e.fillStyle=f;e.fillRect(0,0,100,1);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b)}Tu(){for(;0e.z){n=-f/e.z;h=e.x*n;n*=e.y;var db=Math.max(x,y);Math.abs(h)db&&(db=0);this.o.pa&&(a.useProgram(this.Fc),a.bindBuffer(a.ARRAY_BUFFER,this.o.F.wb),a.vertexAttribPointer(this.Fc.la,this.o.F.wb.itemSize, a.FLOAT,!1,0,0),a.uniform2f(a.getUniformLocation(this.Fc,"uCanvasDimensions"),a.drawingBufferWidth,a.drawingBufferHeight),a.uniform2f(a.getUniformLocation(this.Fc,"uFlareCenterPosition"),a.drawingBufferWidth/x*h,y-a.drawingBufferHeight/y*n),a.uniform1f(a.getUniformLocation(this.Fc,"uBlindingValue"),db),a.uniform1f(a.getUniformLocation(this.Fc,"uAspectRatio"),this.o.F.Yi?a.drawingBufferWidth/a.drawingBufferHeight:a.drawingBufferWidth/a.drawingBufferHeight/(x/y)),a.drawArrays(a.TRIANGLE_STRIP,0,this.o.F.wb.numberOfItems)); if(0!=Number(ab.type)&&!this.o.F.Yi){db=x/2-h;gb=y/2-n;let ob=1,jb=Number(ab.type)-1;bb<.35*fb&&(ob=bb/(.35*fb),ob*=ob);bb>.7*fb&&(ob=(fb-bb)/(.3*fb));ob*=ab.alpha/100;if(0hb&&(hb=0);var mb=fb.color;if(8==jb||9==jb||10==jb)mb=ab.color;this.o.pa&&(a.useProgram(this.Ba),a.bindBuffer(a.ARRAY_BUFFER,this.tg),a.vertexAttribPointer(this.Ba.la,this.tg.itemSize,a.FLOAT,!1,0,0),a.uniform2f(a.getUniformLocation(this.Ba, "uCanvasDimensions2"),a.drawingBufferWidth,a.drawingBufferHeight),a.uniform2f(a.getUniformLocation(this.Ba,"uCirclePosition"),a.drawingBufferWidth/x*(h+db*fb.C),a.drawingBufferWidth/x*(y-(n+gb*fb.C))),a.uniform2f(a.getUniformLocation(this.Ba,"uCircleTexturePosition"),a.drawingBufferWidth/x*(h+db*fb.C),y-(n+gb*fb.C)),a.uniform1f(a.getUniformLocation(this.Ba,"uCircleRadius"),ib),a.uniform3f(a.getUniformLocation(this.Ba,"uCircleColor"),(mb>>16&255)/255,(mb>>8&255)/255,(mb&255)/255),a.uniform1f(a.getUniformLocation(this.Ba, "uCircleAlpha"),hb),a.uniform1f(a.getUniformLocation(this.Ba,"uCircleSoftness"),.1),a.uniform1f(a.getUniformLocation(this.Ba,"uAspectRatio"),a.drawingBufferWidth/a.drawingBufferHeight/(x/y)),a.drawArrays(a.TRIANGLE_FAN,0,this.tg.numberOfItems))}if(0hb&&(hb=0);mb=fb.color;if(8==jb||9==jb||10==jb)mb=ab.color;this.o.pa&&(a.useProgram(this.Ba),a.bindBuffer(a.ARRAY_BUFFER,this.ae),a.vertexAttribPointer(this.Ba.la, this.ae.itemSize,a.FLOAT,!1,0,0),a.uniform2f(a.getUniformLocation(this.Ba,"uCanvasDimensions2"),a.drawingBufferWidth,a.drawingBufferHeight),a.uniform2f(a.getUniformLocation(this.Ba,"uCirclePosition"),a.drawingBufferWidth/x*(h+db*fb.C),a.drawingBufferWidth/x*(y-(n+gb*fb.C))),a.uniform2f(a.getUniformLocation(this.Ba,"uCircleTexturePosition"),a.drawingBufferWidth/x*(h+db*fb.C),y-(n+gb*fb.C)),a.uniform1f(a.getUniformLocation(this.Ba,"uCircleRadius"),ib),a.uniform3f(a.getUniformLocation(this.Ba,"uCircleColor"), (mb>>16&255)/255,(mb>>8&255)/255,(mb&255)/255),a.uniform1f(a.getUniformLocation(this.Ba,"uCircleAlpha"),hb),a.uniform1f(a.getUniformLocation(this.Ba,"uCircleSoftness"),fb.J),a.uniform1f(a.getUniformLocation(this.Ba,"uAspectRatio"),a.drawingBufferWidth/a.drawingBufferHeight/(x/y)),a.drawArrays(a.TRIANGLE_FAN,0,this.ae.numberOfItems))}if(0ib&&(ib=0),this.o.pa&&(a.useProgram(this.Ib),a.activeTexture(a.TEXTURE0), a.bindTexture(a.TEXTURE_2D,this.Pq),a.bindBuffer(a.ARRAY_BUFFER,this.ae),a.vertexAttribPointer(this.Ib.la,this.ae.itemSize,a.FLOAT,!1,0,0),a.uniform2f(a.getUniformLocation(this.Ib,"uCanvasDimensions2"),x,y),a.uniform2f(a.getUniformLocation(this.Ib,"uCirclePosition"),h+db*ab.C,y-(n+gb*ab.C)),a.uniform2f(a.getUniformLocation(this.Ib,"uRingTexturePosition"),a.drawingBufferWidth/x*(h+db*ab.C),y-(n+gb*ab.C)),a.uniform1f(a.getUniformLocation(this.Ib,"uCircleRadius"),fb),a.uniform2f(a.getUniformLocation(this.Ib, "uRingPosition"),h+db*ab.C,y-(n+gb*ab.C)),a.uniform1f(a.getUniformLocation(this.Ib,"uRingRadius"),fb),a.uniform1f(a.getUniformLocation(this.Ib,"uRingAlpha"),ib),a.uniform1f(a.getUniformLocation(this.Ib,"uAspectRatio"),a.drawingBufferWidth/a.drawingBufferHeight/(x/y)),a.uniform1i(a.getUniformLocation(this.Ib,"uSampler"),0),a.drawArrays(a.TRIANGLE_FAN,0,this.ae.numberOfItems))}this.o.pa&&(a.useProgram(this.o.D.Hg.R),a.disable(a.BLEND),a.enable(a.DEPTH_TEST))}}}}}class xd{constructor(a,b){this.o=a;this.O= b;let e,f,h=this.__div=document.createElement("div");h.ggVisible=!0;e=document.createElement("img");let n;b.nd?(n=b.nd,e.setAttribute("style","position: absolute; width: "+b.uf+"px; height: "+b.Bd+"px; top: -"+b.Bd/2+"px; left: -"+b.uf/2+"px; cursor: pointer; "+a.Tb+"user-select: none; max-width: none;")):(n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5xJREFUeNqclmlIVFEUx997TjrplFQW2WKBBSYtRFlpWUILSSsRZRQIBdGHCFqIoKIvQRsUFRJC9LEgaSFbMMpcWi1pLzOLsjItKms0U5t5/c/wH7nc5o2jF374xrv87z33nHOPaRsRtbFgDpgJxoD+wATfwDNQDK6CyrCr5OcbhgiGIRsUAZt4QTWoIFXgp9JfAhY7rgdBl8NeBoLDYBloA+dBOagFTcDHcVEgDgwBGWA+OAcugvXgvb5wKMGJoAAMp9BpUA96EBf/Btsf8BI8AWfAErAcpHHDZeriliY2AVwDg8AucAQ0Ag+I4XhTm2Oxz8PT46KMbTx5EZjuJDgAnAVusJUm9DhYwalFcc59sIXXIaceFkowDySBPTRPL20xm+b7zYXa+N3CPrWJ6GuwGySA40HLBHc/GywFhbS5R1lEBrZy7FQwiSaX9pmnqeAYt+KUcew7BVZw/QKTq0ocpYPVvDOXItZCk2xgDIZqL8BR8Ab0VDbr4yZOgLeIwzQx6WiQxcCt1+6sld66L4yYtFSwF4yg2dU7/cEwGW9YVkAwmycp1dzdpvgm0DcCh4kHmxWzBls0uBX4qqmZJ4KzePm1IeJLgjmlC16aDKZpp5Q168B3o6wsSwTHgU+MIUs74RSj6y1d+212HKimJlUE+tFRfJpYtOKNXWmJTASqWf2Bu/R6+4TKHOrOzG4IhptjWgHbGkZvepQ6SQK7oRuCXzjX1DJavBEX1ygfT8FgBqpfm1zRDcEKbR2bsZlkJCdXieB1ZhZ5YtqVgXIPN+m9kbY6hpdb+d9fPncJRmZmqQheZkemJmgxyxykl3XWJEkcAl7N21s7PDcl5ZJ0PAa3wVwmWtVbZafPwQ7wLozYB7ATPNJO56d/LAikP9u+66KNJS1d4IOZp7wU0hfLukUyzgwm70T2N/DOxIy/eFdqawa5DL2NEGwP5k15Ja4woz9glvcomd9NzyvkFcQo5gomaLfm5c0svnKZ2k7q7+FauvR2MJKZR3+sY5WgtvkdG6JyELGhNHMTXyGfLviRJ5Tcd4Dlhle7086Sgp8CqVxDkn4OqHaqacr5ekjy3Q/W0FRNNGmoMtamdzdxsytZC0lqXKhEgWPVVgImg2NgFT1MHOoOk3yLEtgWN5TEOYvoIFI1rGM19//2wpAD7imF7lfwENwAxaASNCj90pcLLKdC2Iyw1M9gnEplMEp5kOU1f8WwKGJm8oUr9f8JMAAVMDM6HSDa9QAAAABJRU5ErkJggg%3D%3D", e.setAttribute("style","position: absolute; width: 28px; height: 28px; top: -14px; left: -14px; cursor: pointer; "+a.Tb+"user-select: none; max-width: none;"));e.setAttribute("src",n);e.ondragstart=function(){return!1};h.appendChild(e);n="position:absolute;"+(a.Tb+"user-select: none;");n+=a.Tb+"touch-callout: none;";n+=a.Tb+"tap-highlight-color: rgba(0,0,0,0);";a.Mb&&!a.pa&&(n+=a.Tb+"transform: translateZ(9999999px);");h.setAttribute("style",n);h.onclick=function(){a.Xe(b);a.ik(a.Ia(b.url),b.target); a.ka&&a.ka.hotspotProxyClick&&a.ka.hotspotProxyClick(b.id,b.url);a.G("hsproxyclick",{id:b.id,url:b.url})};h.ondblclick=function(){a.ka&&a.ka.hotspotProxyDoubleClick&&a.ka.hotspotProxyDoubleClick(b.id,b.url);a.G("hsproxydblclick",{id:b.id,url:b.url})};let r=a.P.Jk;r.enabled&&""!=b.title&&(f=document.createElement("div"),n="position:absolute;",n=b.nd?a.Wl()?n+("top: -"+(b.Bd/2+20)+"px;"):n+("top: "+b.Bd/2+"px;"):a.Wl()?n+"top:\t -50px;":n+"top:\t 20px;",n=r.fj?n+"white-space: pre-wrap;":n+"white-space: nowrap;", n+=a.Tb+"transform-origin: 50% 50%;",f.setAttribute("style",n+"visibility: hidden;overflow: hidden;padding: 0px 1px 0px 1px;"),f.style.color=this.o.Gb(r.Kk,r.Ik),f.style.backgroundColor=r.background?this.o.Gb(r.ec,r.dc):"transparent",f.style.border="solid "+this.o.Gb(r.hc,r.fc)+" "+r.kj+"px",f.style.borderRadius=r.kl+"px",f.style.textAlign="center",0a;a++)this.yf[a]=new yd}checkVisibility(a,b,e,f){for(let n=0;6>n;n++){let r;if(r=this.yf[n]){let w;w=[];w.push(new lb(-1,-1,-1,0,0));w.push(new lb(1,-1,-1,1,0));w.push(new lb(1,1,-1,1,1));w.push(new lb(-1,1,-1,0,1));for(var h=0;h n?w[h].Ca(-Math.PI/2*n):w[h].ya(Math.PI/2*(4===n?-1:1)),f&&(w[h].Ta(f.Y*Math.PI/180),w[h].ya(-f.pitch*Math.PI/180)),w[h].Ca(-a*Math.PI/180),w[h].ya(b*Math.PI/180),w[h].Ta(e*Math.PI/180);r.Xb=0a;)a+=360;for(;180a;)a+=360;for(;180a&&(this.fov.mode=Number(a),this.Yd(),this.update())}Na(){return 2==this.cd}bu(){return 0a&&-1E7b&&-1E7e&&-1E7a;)a+=360;b=f.lf()}e={};e.pan=a;e.tilt=b;return e}Cj(a,b){var e=this.o;a||(a=e.ca.x,b=e.ca.y);var f=e.H;e=f.height/(2*Math.tan(this.Eb()*Math.PI/360));a-=f.width/2;b-=f.height/2;f={};f.pan=180*Math.atan(a/e)/Math.PI;f.tilt=180*Math.atan(-b/Math.sqrt(a*a+e*e))/Math.PI;return f}ab(a,b,e){let f=b?Number(b):0;if(0!=a&&4!=a&&12!=a&&9!=a)this.o.Yb("Unsupported projection type: "+ a);else if(b&&0!==f&&4!==f&&12!==f&&9!==f)this.o.Yb("Unsupported projection2 type: "+f);else if(a==f&&(f=0),this.xq=e?Number(e):1,this.jk!=a||this.Cm!=f)this.jk=a,this.Cm=f,this.Hg.Nj()}Z(){return 0==this.jk?4:this.jk}Ic(){return this.Cm}Qh(){return this.yq}Dj(){return this.xq}aspect(){return this.o.H.width/this.o.H.height}Yp(){return 4==this.Z()&&0==this.Ic()}Eb(a,b){a||(a=this.fov.m);b||(b=this.Z());return this.kg(b,1/this.Po(this.o.H),a)}kg(a,b,e){return this.Na()?b*e:4==a?360*Math.atan(b*Math.tan(e/ 2*Math.PI/180))/Math.PI:9==a?720*Math.atan(b*Math.tan(e/4*Math.PI/180))/Math.PI:b*e}Ul(a,b){a||(a=this.Eb());b||(b=this.Z());return this.kg(b,this.aspect(),a)}Tl(a,b){a||(a=this.Eb());b||(b=this.Z());let e=this.aspect();e=Math.sqrt(1+e*e);return this.kg(b,e,a)}jo(a){var b;b||(b=this.Z());return this.kg(b,this.Po(this.o.H),a)}Po(a){let b=1;switch(this.fov.mode){case 0:b=1;break;case 1:b=a.width/a.height;break;case 2:b=Math.sqrt(a.width*a.width+a.height*a.height)/a.height;break;case 3:b=4*a.height/ 3>a.width?1:3*a.width/(4*a.height)}return b}Ji(a){this.Jb(this.jo(a))}dn(a){let b=this.Z(),e=1/this.aspect();this.Ji(this.kg(b,e,a))}bn(a){let b=this.Z(),e=this.aspect();e=1/Math.sqrt(1+e*e);this.Ji(this.kg(b,e,a))}Yd(){if(!this.o.qe){var a=this.Jm;a.pan=this.pan.m;a.u=this.u.m;a.fov=this.fov.m;this.jg(a);this.jg(a);this.jg(a);this.pan.m=a.pan;this.u.m=a.u;this.fov.m!=a.fov&&(this.fov.m=a.fov);this.o.G("checklimits",{pan:a.pan,tilt:a.u,fov:a.fov})}}jg(a){var b=this.aspect();var e=this.o.H;var f=this.o; let h=f.A;if(this.Na()){if(0b&&(a.fov=b);50a.u-n&&(a.u=-50+n));e>r?a.pan=0:(a.pan+e>r&&(a.pan=r-e,f.A.active&&(f.A.speed=-f.A.speed,this.pan.d=0)),a.pan-e<-r&&(a.pan=-r+e,h.active&& (h.speed=-h.speed,this.pan.d=0)))}else{0r&&(a.fov=r);12==this.Z()&&(2*e>w&&(a.fov=w/b), n=this.Eb()/2,2*n>w&&(a.fov=w),n=this.Eb()/2,e=b*n);2*n>this.u.max-this.u.min&&180>this.u.max-this.u.min&&(n=(this.u.max-this.u.min)/2,a.fov=this.jo(2*n));90>this.u.max?a.u+n>this.u.max&&(a.u=this.u.max-n):a.u>this.u.max&&(a.u=this.u.max);-90f&&(a.panthis.pan.max&&a.pan-360>this.pan.min&&(a.pan-=360),b=90,r=Math.tan(n*Math.PI/ 180),w=Math.tan((Math.abs(a.u)+n)*Math.PI/180),w=Math.sqrt(w*w+1)/Math.sqrt(r*r+1),n=180*Math.atan(w*Math.tan(e*Math.PI/180))/Math.PI,2*n>f&&(w=Math.tan(f*Math.PI/360)/Math.tan(e*Math.PI/180),f=w*Math.sqrt(r*r+1),w=Math.sqrt(f*f-1),b=180/Math.PI*Math.atan(w)),a.pan+n>this.pan.max&&(a.pan=this.pan.max-n,h.active&&(h.speed=-h.speed,this.pan.d=0)),a.pan-nb&&(a.u=b-e),a.u-e<-b&&(a.u=-b+e))}}bh(a,b,e,f,h){let n=this.M.um- 1-b,r=this.M.vm,w="x";switch(a){case 0:w="f";break;case 1:w="r";break;case 2:w="b";break;case 3:w="l";break;case 4:w="u";break;case 5:w="d";break;case "vr":w="vr"}h&&(a+="l",w+="l");h=this.o.Lq;for(let x=0;3>x;x++)r=h(r,"c",a),r=h(r,"s",w),r=h(r,"r",b),r=h(r,"l",n),r=h(r,"x",e),r=h(r,"y",f),r=h(r,"v",f),r=h(r,"h",e);return this.o.La(r)}Bt(a,b,e){e.fx=a.width/this.M.W*b.Lh;e.fy=a.height/this.M.W*b.Mh;e.Jd=a.width/this.M.W*b.gi;e.Kd=a.height/this.M.W*b.hi;e.fx=Math.min(Math.max(0,Math.floor(e.fx)), a.$-1);e.fy=Math.min(Math.max(0,Math.floor(e.fy)),a.sa-1);e.Jd=Math.min(Math.max(0,Math.floor(e.Jd)),a.$-1);e.Kd=Math.min(Math.max(0,Math.floor(e.Kd)),a.sa-1)}cw(){if(!(6>this.cube.yf.length))for(let e=0;6>e;e++){var a=void 0;a=this.cube.yf[e];let f;f=[];f.push(new lb(-1,-1,-1,0,0));f.push(new lb(1,-1,-1,1,0));f.push(new lb(1,1,-1,1,1));f.push(new lb(-1,1,-1,0,1));for(var b=0;4>b;b++)4>e?f[b].Ca(-Math.PI/2*e):f[b].ya(Math.PI/2*(4==e?-1:1)),this.rb&&(f[b].Ta(this.rb.Y*Math.PI/180),f[b].ya(-this.rb.pitch* Math.PI/180)),f[b].Sc(-this.pan.m),f[b].bc(this.u.m),f[b].le(this.Y.m);f=this.o.tl(f);a.Xb=0=a+2&&!this.M.levels[a+1].Lg&&this.M.levels[a+1].width>f;)a++;return a}Ku(){if(this.o.K.Rq&&this.o.K.lc){var a=this.Jm;a.pan=this.pan.m;a.u=this.u.m;a.fov=this.fov.m;this.jg(a);this.jg(a);this.jg(a);let b=a.pan-this.pan.m,e=a.u-this.u.m;a=a.fov-this.fov.m;if(0!=b||0!=e||0!=a){let f;f=.2+.9*Math.min((Math.abs(b)+ Math.abs(e)+Math.abs(a))/Math.abs(Math.min(this.fov.m,90))*.3,1);this.pan.m+=b*f;this.u.m+=e*f;this.fov.m+=a*f;this.o.qa.Zm=.3;this.update()}else this.o.qa.Zm=0}else this.Yd();if(isNaN(this.pan.m)||1E7this.pan.m)this.pan.m=0;if(isNaN(this.u.m)||1E7this.u.m)this.u.m=0;if(isNaN(this.Y.m)||1E7this.Y.m)this.Y.m=0;if(!this.Na()){for(;360this.pan.m;)this.pan.m+=360}}}class Eb extends wb{Lt(){return this.N}constructor(a, b){super(a,b);this.D=new Xb(this);this.cd=0;this.H={width:10,height:10};this.Cl=new lb;this.crossOrigin="anonymous";this.ee=this.dg=0;this.ds={};this.Xf=this.oc=!1;this.oa={start:{x:0,y:0},na:{x:0,y:0},ie:{x:0,y:0},m:{x:0,y:0},ma:{x:0,y:0}};this.U={bd:!1,od:!1,Qj:function(){return this.od||this.bd},Oo:0,startTime:0,start:{x:0,y:0},na:{x:0,y:0},ie:{x:0,y:0},m:{x:0,y:0},ma:{x:0,y:0},ui:!1,Zg:null};this.Ce=this.$d=!0;this.qa={enabled:!0,na:{x:0,y:0},ma:{x:0,y:0},Zm:0,fov:{active:!1,jc:0,center:{enabled:!1, x:0,y:0}}};this.pb={alpha:0,beta:0,gamma:0,orientation:0,Qf:0,Ci:!0,fadeIn:0};this.Uh={alpha:0,beta:0,gamma:0,orientation:0};this.B={src:[],rf:4,width:640,height:480,Mc:!1,Cg:!1,Fk:!0,Ek:!1,level:1,Be:"loop",Hk:"",j:null,zn:!1,texture:null,Sk:null,Vi:null,Mj:null,format:1,Th:0,flipY:1,lb:function(){return 0},an:function(){},loop:function(){return!1}};this.control=this.T=this.Gc=this.Ja=this.ia=null;this.ld=[];this.Ka=!1;this.ze=1;this.aa=null;this.se=this.hf=this.fe=!1;this.th=0;this.Td=.02;this.hl= 0;this.il=!1;this.fl=this.ij=this.uh=this.gf=this.bo=0;this.$n=-1;this.vc="";this.Xm=this.We=!1;this.Ah=[];this.Bl="";this.Bh=[];this.dh=this.bf=1;this.Og=!1;this.A={enabled:!1,timeout:5,active:!1,Yg:!1,speed:.4,Lk:0,Pp:!1,gk:0,sq:!0,Fg:"",rq:!1,ag:!1,fd:!1,jj:"",so:!1,Ud:"Animation01",eg:!1,ek:!1,wn:!1,startTime:0,rd:0,Jh:!1,rj:!1,$j:0,Id:0,ci:0,di:0,bi:0,bq:0};this.I={active:!1,aborted:!1,speed:.1,pan:0,u:0,Y:0,fov:70,Ti:70,ci:0,di:0,cq:0,bi:0,sb:0,xi:0,lastTime:0,Jn:!1,Eg:!1,Zn:0,Yn:0,Lj:!1};this.Tk= null;this.tm=0;this.xe=[];this.ao={};this.qc={};this.Oc={};this.Dg={};this.L=[];this.nr=!1;this.X=[];this.V=[];this.Za=[];this.Qb=[];this.df=[];this.cb=[];this.za=[];this.Wf=[];this.Te=this.Sb=null;this.da=[];this.Du={target:0,current:0,zd:.01,delay:2,Il:0,sj:!1,ps:!1};this.K={fi:!1,gu:!1,pc:!1,Pe:!1,lc:!0,Up:!1,nn:1,Rq:!1,re:!0,El:!0,vl:!0,wl:!0,to:!1,Ij:!1,Sq:!0,sensitivity:8};this.Eh=!0;this.dj=this.kh=this.jh=this.qe=this.Kn=this.pa=!1;this.iw=!0;this.hm=this.jw=!1;this.Pl=!0;this.mh=this.em= this.gm=!1;this.Xr=!0;this.Tb="";this.Hc="transition";this.Ae="transform";this.vj="perspective";this.Ya={width:0,height:0};this.So=new lb;this.Ro=new lb;this.To=new lb;this.Uo=new lb;this.Qo=new lb;this.qd=!1;this.Uc=this.aq=this.ua="";this.Uk=[];this.zm=[];this.cm=!1;this.cj=!0;this.ha=this.F=null;this.yh=!1;this.bb=null;this.Da={enabled:!1,speed:1,running:!1,finished:!0,Dd:{pan:0,u:0,fov:0,sb:0,Wr:!1}};this.Nc=null;this.zh=function(f,h){if(0==f.length)return f;let n,r,w,x,y,z,cb,ab;ab=[];n=h.nk(f[0])- 0;for(x=0;xw&&(w=0),1n||ab.push(f[z]),ab.push(y);n=r}return ab};this.Jm=new Gb;this.Nk=1;this.Yj=-1;this.fk=1;this.Ql=this.Jl=this.Qm=this.qk=0;this.$p=!1;this.Ed=!0;this.Cv();this.Qn="aHR0cHM6Ly9wYW5vMnZyLmNvbQ==";this.Rn="Q3JlYXRlZCB3aXRoIFBhbm8yVlI=";this.hm=pb();this.pa=qb();this.jh=this.hm;this.pa&&(this.jh=!1);this.We=!0;this.Xm=!1; if(this.Lc||this.Wh)this.ar(80),this.D.An=2;var e="Pano2VR player "+this.am();this.Ff()&&(e+=", THREEjs "+eb.REVISION);this.Lp()&&(e+=", HSL.js");e+=", "+(this.hm?"CSS 3D available":"CSS 3D not available");e+=", "+(this.pa?(this.Kn?"WebGL2":"WebGL")+" available":"WebGL not available");this.Yb(e);this.addListener("languagechanged",()=>{this.us();this.vs()});document.addEventListener("visibilitychange",()=>{});this.Wa=new Rb(this);this.Wa.Je=!1;7=b&&(this.ha.blendtime=b));a.hasOwnProperty("waitfortransition")&&(this.ha.zoomoutpause=1==a.waitfortransition);a.hasOwnProperty("zoomedfov")&&(b=Number(a.zoomedfov),.01<=b&&50>=b&&(this.ha.zoomfov=b));a.hasOwnProperty("zoomafterinfov")&&(b=Number(a.zoomafterinfov),70<=b&&120>=b&&(this.ha.zoomafterinfov= b));a.hasOwnProperty("zoomafteroutoutfov")&&(b=Number(a.zoomafteroutfov),.01<=b&&70>=b&&(this.ha.zoomafteroutfov=b));a.hasOwnProperty("zoomspeed")&&(b=Number(a.zoomspeed),.01<=b&&99>=b&&(this.ha.zoomspeed=b));a.hasOwnProperty("dipcolor")&&(this.ha.blendcolor=a.dipcolor);a.hasOwnProperty("softedge")&&(a=Number(a.softedge),0<=a&&1E3>=a&&(this.ha.softedge=a));this.yh||this.yl()}ab(a,b,e){this.D.ab(a,b,e)}Z(){return this.D.Z()}Qh(){return this.D.Qh()}Ic(){return this.D.Ic()}Dj(){return this.D.Dj()}ql(a, b){if(0!=a&&4!=a&&12!=a&&9!=a)this.Yb("Unsupported projection type: "+a);else if(this.pa||0==a||4==a||this.Yb("Projection changes require WebGL!"),this.Z()!=a){let e={};const f=this.D;e.pan=f.pan.m;e.tilt=f.u.m;e.fov=f.fov.m;e.projection=a;e.timingFunction=3;e.speed=b;a=this.Nh(a);e.fov=Math.min(a,e.fov);this.mi(e)}}As(){if(!this.ga){try{window.AudioContext=window.AudioContext||window.webkitAudioContext,this.ga=new AudioContext}catch(a){this.ga=null}this.Mb&&(!this.sk||9>Number(this.Ob))&&(this.ga= null);this.Mb&&!this.Lc&&12<=Number(this.Ob)&&13>Number(this.Ob)&&(this.ga=null);this.Mb&&this.Lc&&13==Number(this.Le[0])&&(1==Number(this.Le[1])||2<=Number(this.Le[1]))&&(this.ga=null)}}ar(a){this.D.ji=a}dt(){return this.qd}st(){return this.qd?this.qp().length:1}bt(){return this.A.active}Oh(){return this.isLoaded}ip(){return!this.isLoaded}be(){return this.D.be()}Li(a,b){try{this.nc&&(a=window.innerWidth,b=window.innerHeight);let n=a-this.margin.left.ba-this.margin.right.ba,r=b-this.margin.top.ba- this.margin.bottom.ba;if(!(10>n||10>r)){var e=window.devicePixelRatio||1;this.Og&&(e=1);this.ia.style.width=n+"px";this.ia.style.height=r+"px";this.ia.style.left=this.margin.left.ba+"px";this.ia.style.top=this.margin.top.ba+"px";if(this.pa)try{this.Ja&&(this.Ja.style.position="absolute",this.Ja.style.display="inline",this.Ja.style.width=n+"px",this.Ja.style.height=r+"px",this.Ja.width=n*e,this.Ja.height=r*e),this.N&&(this.Ya.width=n*e,this.Ya.height=r*e,this.N.viewport(0,0,this.N.drawingBufferWidth, this.N.drawingBufferHeight))}catch(w){alert(w)}this.Gc&&(this.Gc.style.width=a+"px",this.Gc.style.height=b+"px",this.Gc.width=a,this.Gc.height=b);this.xa&&(this.xa.style.width=a+"px",this.xa.style.height=b+"px",this.aa&&this.aa!=this.xa&&(this.aa.style.width=a+"px",this.aa.style.height=b+"px"));this.fe&&(this.Ka=!0);var f=this.ia.offsetWidth,h=this.ia.offsetHeight;if(this.H.width!=f||this.H.height!=h)this.H.width=f,this.H.height=h;this.hw();this.aa&&this.aa.ggUpdateSize&&this.aa.ggUpdateSize(a,b); this.G("sizechanged",{w:a,h:b});this.G("playerstatechanged",{})}}catch(n){}}xd(){this.Sr();this.Li(this.container.offsetWidth,this.container.offsetHeight)}no(a){0==a&&(this.K.lc=!1);1==a&&(this.K.lc=!0);2==a&&(this.K.lc=!this.K.lc);this.G("viewmodechanged",{});this.G("playerstatechanged",{})}Ep(){return 1==this.K.lc?1:0}ws(a){this.Nc&&(this.Nc.jn=0==a?!0:1==a?!1:!this.Nc.jn,this.update())}vp(){return this.P.mode}oo(){this.G("viewstatechanged",{})}Fp(){return 0}kt(a){return"_firstmap"==a?"web":"_firstfloorplan"== a?"file":(a=this.qc[a])?a.type:"web"}jt(a){"_firstmap"==a?a=this.ep():"_firstfloorplan"==a&&(a=this.zj());return(a=this.qc[a])?a:{}}ep(){let a="";for(let b in this.qc){let e=this.qc[b];"web"==e.type&&1E4>e.index&&(a=b)}return a}zj(){let a="";for(var b in this.qc){let e=this.qc[b];"file"==e.type&&1E4>e.index&&(a=b)}return a}nt(a,b){"_firstfloorplan"==b&&(b=this.zj());let e=[];a||(a=this.ua);let f=this.xe[a];f&&(a=f);""===a&&0b.z?(x=-e/b.z,w=b.x*x,x*=b.y,Math.abs(w)z&&(n=z,r=cb)}ab.px=ab.zc;ab.py=ab.ac;ab.pxp=ab.Lm;ab.pyp=ab.Mm;ab.visible=ab.visible;if(ab.j&&ab.j.onUpdatePosition)ab.j.onUpdatePosition(this,ab);else ab.j&&ab.j.__div&&("none"!=ab.j.__div.style[this.Hc]&&(ab.j.__div.style[this.Hc]="none"),y&&h?(ab.j.ggUse3d?(this.We||this.Rr(e),this.Na()?(ab.j.__div.style[this.Ae]= "scale("+(100/a.fov.m*this.H.height/ab.j.gg3dDistance).toFixed(10)+")",ab.j.__div.style.left=this.margin.left.ba+w+this.H.width/2+"px",ab.j.__div.style.top=this.margin.top.ba+x+this.H.height/2+"px"):(ab.j.__div.style.width="1px",ab.j.__div.style.height="1px",y="",this.We&&(y+="perspective("+e+"px) "),y+="translate3d(0px,0px,"+e+"px) ",y+="rotateZ("+a.Y.m.toFixed(10)+"deg) ",y+="rotateX("+a.u.m.toFixed(10)+"deg) ",y+="rotateY("+(-a.pan.m).toFixed(10)+"deg) ",y+="rotateY("+ab.pan.toFixed(10)+"deg) ", y+="rotateX("+(-ab.u).toFixed(10)+"deg) ",y+="translate3d(0px,0px,"+(-1*ab.j.gg3dDistance).toFixed(10)+"px) ",ab.j.__div.style[this.Ae+"Origin"]="0% 0%",ab.j.__div.style[this.Ae]=y,ab.j.__div.style.left=this.margin.left.ba+this.H.width/2+"px",ab.j.__div.style.top=this.margin.top.ba+this.H.height/2+"px")):this.nr?(ab.j.__div.style.left=this.margin.left.ba+this.H.width/2+"px",ab.j.__div.style.top=this.margin.top.ba+this.H.height/2+"px",ab.j.__div.style[this.Ae]="translate3d(0px,0px,-1000px) rotateY(0.1deg) translate3d("+ w+"px,"+x+"px, 0.5px)",ab.j.__div.style["transform-style"]="preserve-3d"):(ab.j.__div.style.left=this.margin.left.ba+w+this.H.width/2+"px",ab.j.__div.style.top=this.margin.top.ba+x+this.H.height/2+"px"),ab.j.__div.ggVisible&&(ab.j.__div.style.visibility="visible")):(ab.j.ggUse3d&&(ab.j.__div.style[this.Ae]=""),ab.j.__div.style.left="-1000px",ab.j.__div.style.top="-1000px",ab.j.__div.style.visibility="hidden"))}if("poly"==ab.type)if(w=[],this.Na())for(ab.Kg=[],y=0;yb.z?(z=-e/b.z,x=this.H.width/2+b.x*z,z=this.H.height/2+b.y*z):z=x=0,b.zc=x,b.ac=z;ab.Kg= w}}-1!=r&&(this.L[r].closestToCenter=!0);this.G("hotspotsupdated",{})}bp(){let a=[];for(let b=0;b{b.N=null;e.preventDefault();b.Yb("Pano2VR: Context lost")});b.Ja.addEventListener("webglcontextrestored",e=>{e.preventDefault();b.Sp();b.Yb("Pano2VR: Context restored")});return b.Sp()}Sp(){const a=this;try{let b=a.container.offsetWidth-a.margin.left.ba-a.margin.right.ba,e=a.container.offsetHeight-a.margin.top.ba-a.margin.bottom.ba;if(100>b||100>e)e=b=100;let f= window.devicePixelRatio||1;a.Og&&(f=1);a.ia.style.width=b+"px";a.ia.style.height=e+"px";a.Ja.style.width=b+"px";a.Ja.style.height=e+"px";a.Ja.width=b*f;a.Ja.height=e*f;a.Ja.style.display="none";a.Ja.style.touchAction="none";a.ia.insertBefore(a.Ja,a.ia.firstChild);let h=a.ds;h.stencil=!0;h.depth=!0;h.powerPreference="high-performance";a.Lc&&10<=a.Le[0]&&(h.antialias=!1,h.alpha=!1);let n={};n.flags=h;n.canvas=a.Ja;a.G("beforewebglcontext",n);a.N=a.Ja.getContext("webgl2",h);a.N?a.Kn=!0:(a.Kn=!1,a.N= a.Ja.getContext("webgl",h));a.N||(a.N=a.Ja.getContext("experimental-webgl",h));if(a.N){let r=a.N;a.Ya.width=b*f;a.Ya.height=e*f;r.clearColor(0,0,0,0);r.enable(a.N.DEPTH_TEST);r.viewport(0,0,500,500);r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT);4096<=r.getParameter(r.MAX_TEXTURE_SIZE)&&!a.Zh&&(a.D.ji=1{w.Vh();w.Nj();w.Rp(a.dh);w.Tp()});a.F&&(a.F.Vh(),a.F.If());a.Nc&&(a.Nc.Vh(),a.Nc.If())}}catch(b){}a.N?(a.pa=!0,a.G("webglready",{gl:this.N})):alert("Could not initialise WebGL!")}Jc(a, b){const e=this.N;e.shaderSource(a,b);e.compileShader(a);e.getShaderParameter(a,e.COMPILE_STATUS)||(console&&console.log(e.getShaderInfoLog(a)),alert(e.getShaderInfoLog(a)))}Nf(a,b,e){const f=this.N;f.attachShader(a,b);f.attachShader(a,e);f.linkProgram(a);f.getProgramParameter(a,f.LINK_STATUS)||(alert("Could not initialise shader program"),console&&console.log(f.getError()));f.useProgram(a)}ce(){return this.D.ce()}sp(){return this.I.pan}Bj(){return this.D.Bj()}de(){return this.D.de()}Na(){return this.D.Na()}Md(a){this.D.Md(a)}Fi(a){this.D.Fi(a)}wh(a, b){this.D.wh(a,b)}pl(a,b){this.D.pl(a,b)}Bf(){return this.D.Bf()}Dp(){return this.I.u}Nd(a){this.D.Nd(a)}xh(a,b){this.D.xh(a,b)}rl(a,b){this.D.rl(a,b)}Sg(a){this.D.Sg(a)}Ej(){return this.D.Ej()}Fd(){return this.D.Fd()}Eb(){return this.D.Eb()}Ul(a,b){return this.D.Ul(a,b)}Tl(a,b){return this.D.Tl(a,b)}Xs(){return this.I.Ti}Jb(a){return this.D.Jb(a)}cn(a){this.D.cn(a)}Ji(a){this.D.Ji(a)}dn(a){this.D.dn(a)}bn(a){this.D.bn(a)}vk(a,b){const e=this.D;if(120{"granted"===b&&(a.pb.Ci=!0,a.mh=!0,a.G("gyrochanged",{}),a.G("playerstatechanged",{}))}).catch(console.error)}catch(b){console.log(b)}}Ct(){return this.mh}moveTo(a,b,e,f,h,n){this.ra(!1);if("_blank"!==a&&""!==a){this.I.active=!0;this.I.aborted=!1;this.I.Jn=!1;var r=this.D,w=a.toString().split("/"); 1e?Number(e):r.fov.m;this.I.speed=!isNaN(f)&&0=r)this.Rg(b,e,f),this.ab(h);else{let w=new Ub;w.fb="__AutoMove";w.af=this.Bj();w.Qi=a.u.m;w.me=a.fov.m;w.Pi=this.Z();w.Od=b;w.oe=e;w.ah=f;w.ne=h;w.mg=!1;w.vf=!1;w.wf=!1;0==n&&(w.vf=!0);1==n&&(w.mg=!0,w.vf=!0);2==n&&(w.wf=!0);w.speed=r;this.I.Yn=this.S; this.S=this.Vo(w);this.I.Zn=(new Date).getTime();this.I.Jn=!0;this.I.active=!0;this.I.aborted=!1;this.I.pan=b;this.I.u=e;this.I.fov=f;this.se=!1}}lq(a){const b=this.D;this.moveTo(b.pan.Va,b.u.Va,b.fov.Va,a)}mq(a,b){let e={};const f=this.D;e.pan=f.pan.Va;e.tilt=f.u.Va;e.fov=f.fov.Va;e.projection=this.Qh();e.timingFunction=b;e.speed=a;this.mi(e)}Un(a,b,e,f){let h=new Rb(this);h.type="point";h.pan=b;h.u=e;h.id=a;h.j={};h.j.player=this;h.xf();h.j.hotspot=h;h.j.__div=document.createElement("div");h.j.__div.appendChild(f); this.L.push(h);h.j.__div.style.position="absolute";h.j.__div.style.left="-1000px";h.j.__div.style.top="-1000px";h.j.__div.ggVisible=!0;this.xa.insertBefore(h.j.__div,this.xa.firstChild);this.Ka=!0}Qr(a,b,e){for(let f=0;fz;z++){switch(z){case 0:y.init(-cb,-ab,0);break;case 1:y.init(cb,-ab,0);break;case 2:y.init(cb,ab,0);break;case 3:y.init(-cb,ab,0)}y.ya(w.ya*Math.PI/180);y.Ca(-w.Ca*Math.PI/180);y.Ta(w.Ta*Math.PI/180);--y.z;y.ya(-w.u*Math.PI/180);y.Ca(w.pan*Math.PI/180);y.Ca(-e.pan.m*Math.PI/ 180);y.ya(e.u.m*Math.PI/180);y.Ta(e.Y.m*Math.PI/180);x.push(y.clone())}x=this.tl(x);if(0y.z){var r=-f/y.z;n=this.H.width/2+y.x*r;r=this.H.height/2+y.y*r}else r=n=0;y.zc=n;y.ac=r}if(Eb.Op(x,a,b))return w}}return null}Hj(){return this.V.length+this.Za.length+this.Qb.length}bm(a){return athis.Wc&&this.vg();if(0==a.button&&(this.Sb=null,!this.K.pc&&!this.wc)){a=a?a:window.event;if(a.which||0==a.which||1==a.which){let b=(new Date).getTime();if(this.Te){this.Sb=this.Te;this.U.bd=!0;this.U.startTime=b;a.stopPropagation();return}if(this.mc(a.target)){let e;if((e=this.sl(this.ca.x,this.ca.y))&&e.He&&(this.Sb=e,void 0!==e.code&&""!==e.code&&e.Xb))return;this.$r(a.pageX,a.pageY);this.U.bd=!0;this.U.startTime=b;a.preventDefault();this.ra(!0);a=this.Gd(this.ca.x, this.ca.y,!0);this.G("playerdown",{pan:-Math.round(100*a.pan)/100,tilt:Math.round(100*a.tilt)/100})}}this.oa.ma.x=0;this.oa.ma.y=0}}Xe(a){if("string"==typeof a)for(let b=0;ba-this.U.startTime&&0<=e&&20>e){let f=this.mj(this.ca.x,this.ca.y);f&&this.Kr(f);e=Math.abs(this.oa.ie.x-this.oa.na.x)+Math.abs(this.oa.ie.y- this.oa.na.y);700>a-this.ai&&0<=e&&20>e?(f?this.Lr(f):this.K.El&&this.Mk(),this.G("playerdblclick",{pan:-Math.round(100*b.pan)/100,tilt:Math.round(100*b.tilt)/100}),this.ai=0):(this.G("playerclick",{pan:-Math.round(100*b.pan)/100,tilt:Math.round(100*b.tilt)/100}),this.ai=a);this.oa.ie.x=this.oa.na.x;this.oa.ie.y=this.oa.na.y}this.G("playerup",{pan:-Math.round(100*b.pan)/100,tilt:Math.round(100*b.tilt)/100})}}}kq(a){if(!this.K.Pe&&!this.wc&&(a=a?a:window.event,this.mc(a.target))){var b=a.detail?-1* a.detail:a.wheelDelta/40;this.K.Up&&(b=-b);a.axis&&(-1==this.Yj?this.Yj=a.axis:this.Yj!=a.axis&&(b=0));let e=0Math.abs(a.wheelDeltaY)&&(b=0);0!=b&&(this.K.re?(b=this.Cf(),this.lo(e*this.K.nn,{x:a.clientX-b.x,y:a.clientY-b.y},!0)):this.lj(e*this.K.nn,!0),this.update());a.preventDefault();this.ra(!0)}}Xv(a){const b=this.D;var e=a.touches;this.Ur(a);this.cf=this.Sb=null;window.focus();this.jm||(this.jm=!0,this.G("hastouch",{}),this.G("playerstatechanged", {}));!this.om&&(this.$d||this.Ce&&this.Bg)&&7>this.Wc&&this.vg();if(!this.K.pc&&!this.wc){var f=(new Date).getTime();if(this.Te)this.Sb=this.Te,this.U.od=!0,this.U.startTime=f,a.preventDefault(),this.U.ui=!0,e[0]&&(this.zb=e[0].target);else{if(!this.U.od&&e[0]){this.U.startTime=f;this.U.start.x=e[0].pageX;this.U.start.y=e[0].pageY;this.U.na.x=e[0].pageX;this.U.na.y=e[0].pageY;f=this.zb=e[0].target;if(this.mc(f)){var h;(h=this.sl(this.ca.x,this.ca.y))&&h.He&&(this.Sb=h);if(h=this.mj(this.ca.x,this.ca.y))this.cf= h,this.tk(h),this.Af(a),this.gh(this.ca.x,this.ca.y,!0);this.$r(e[0].pageX,e[0].pageY);this.U.Oo=e[0].identifier;this.U.od=!0;a.preventDefault();this.U.ui=!0;this.ra(!0);h=this.Gd(this.ca.x,this.ca.y,!0);this.G("playerdown",{pan:-Math.round(100*h.pan)/100,tilt:Math.round(100*h.tilt)/100})}if(f){h=!1;if(null!=this.U.Zg)for(var n=this.U.Zg;n&&n!=this.control;){if(n.onmouseout)n.onmouseout(a);if(n.onmouseleave)n.onmouseleave(a);n=n.parentNode}n=f;let r=!0;for(;n&&n!=this.control;)f!=this.U.Zg&&(n.onmouseover&& (n.onmouseover(a),7<=this.Wc&&this.mc(a)&&(h=!0)),n.onmouseenter&&(n.onmouseenter(a),7<=this.Wc&&this.mc(a)&&(h=!0))),n.onmousedown&&(n.onmousedown(a),r=!1,h=!0),n.onclick&&(r=!1),n=n.parentNode;this.U.Zg=r&&7<=this.Wc&&f!=this.U.Zg?f:null;h&&(a.preventDefault(),this.U.ui=!0)}}1b.fov.max&&(this.qa.fov.jc=b.fov.max),this.qa.fov.jcf){e=!0;if(b.zb)for(f=b.zb;f&&f!=b.control;){if(f.onclick){let w=f,x=b.hotspot;setTimeout(()=>{let y=b.hotspot;b.hotspot=x;w.onclick(a);b.hotspot=y},0);"hotspot"!=f.Jw&&(r=!0);e=!1}f=f.parentNode}f= Math.abs(b.U.ie.x-b.U.na.x)+Math.abs(b.U.ie.y-b.U.na.y);if(700>n-b.ai&&0<=f&&20>f){if(b.mc(b.zb)){a.preventDefault();if(b.cf)b.Lr(b.cf);else if(b.K.El){let w=this;setTimeout(function(){w.Mk()},1)}this.G("playerdblclick",{pan:-Math.round(100*h.pan)/100,tilt:Math.round(100*h.tilt)/100})}if(b.zb)for(f=b.zb;f&&f!=b.control;)f.ondblclick&&(f.ondblclick(),r=!0,e=!1),f=f.parentNode;b.ai=0}else b.ai=n;b.U.ie.x=b.U.na.x;b.U.ie.y=b.U.na.y}if(b.zb)for(f=b.zb;f&&f!=b.control;)b.U.Zg!=b.zb&&(f.onmouseout&&(f.onmouseout(a), 7<=b.Wc&&(r=!0)),f.onmouseleave&&(f.onmouseleave(a),r=!0)),f.onmouseup&&(f.onmouseup(a),7<=b.Wc&&(r=!0)),f=f.parentNode;r&&a.preventDefault();b.Af(a);b.cf&&(b.gh(-1,-1,!0),e&&b.Kr(b.cf));b.zb=null;b.U.od=!1;b.tk(b.Wa);b.cf=null}}Uv(a){this.K.pc||this.wc||(this.U.od=!1);this.cf=null;this.tk(this.Wa);this.Af(a);this.gh(-1,-1,!0)}pm(){return null!=this.zb||this.U.od||this.U.bd}nq(a){!this.Pf&&window.MSGesture&&(this.Pf=new window.MSGesture,this.Pf.target=this.control);this.Pf&&this.Pf.addPointer(a.pointerId)}Xo(a){const b= this.D;this.gm=!0;this.fk=1;this.K.pc||this.K.Pe||this.wc||(a.touches?(this.zb=a.touches.target,this.mc(a.target)&&(a.preventDefault(),b.fov.prev=b.fov.m,this.ra(!0))):(a.preventDefault(),b.fov.prev=b.fov.m,this.ra(!0)))}Qs(a){const b=this.D;if(!this.K.pc&&!this.K.Pe&&!this.wc&&this.mc(a.target)){a.preventDefault();this.qa.fov.active=!0;this.qa.fov.center.enabled=!0;let e=this.Af(a);this.qa.fov.center.x=e.x;this.qa.fov.center.y=e.y;this.qa.fov.jc=b.fov.prev/Math.sqrt(a.scale);4==this.Z()&&2!=this.cd&& this.qa.fov.jc>b.fov.max&&(this.qa.fov.jc=b.fov.max);this.update();this.ra(!0)}}mu(a){const b=this.D;this.K.pc||this.K.Pe||this.wc||(a.preventDefault(),1!=a.scale&&(this.qa.fov.active=!0,this.fk*=a.scale,this.qa.fov.center.enabled=!0,a=this.Af(a),this.qa.fov.center.x=a.x,this.qa.fov.center.y=a.y,this.qa.fov.jc=b.fov.prev/Math.sqrt(this.fk),4==this.Z()&&2!=this.cd&&this.qa.fov.jc>b.fov.max&&(this.qa.fov.jc=b.fov.max),this.update(),this.ra(!0)))}Wo(a){this.K.pc||this.K.Pe||this.wc||(this.qa.fov.active= !1,a.preventDefault(),this.ra(!0),this.Pf&&this.Pf.reset&&this.Pf.reset())}cu(a){this.K.fi||this.wc||(this.nc&&a.preventDefault(),this.Wj=a.keyCode,this.ra(!0))}du(a){this.Wj&&(this.Wj=0,a.preventDefault())}uu(){this.Wj=0}Au(a,b,e,f){f?(this.Uh.alpha=a,this.Uh.beta=b,this.Uh.gamma=e,this.Uh.gamma+=90):(this.pb.alpha=a,this.pb.beta=b,this.pb.gamma=e,this.pb.gamma+=90);this.pb.orientation=window.orientation?1*parseInt(""+window.orientation,10):0;e=new Cb;a=this.pb;e.Sc(-a.alpha);e.le(-a.beta);e.bc(-a.gamma); e.le(90-a.orientation);1>e.Nb?-1this.pb.fadeIn&&(this.pb.fadeIn+=1,h=.1*this.pb.fadeIn);e=-e+this.pb.Qf;this.Md(h*e+(1-h)*this.ce());this.Nd(h*a+(1-h)*this.Bf()); this.Xr?this.Sg(h*b+(1-h)*this.Ej()):this.Sg(0);this.Yd();this.I.active=f}}Kh(){return Math.min(1,2*Math.tan(Math.PI*Math.min(this.D.fov.m,90)/360))}Aq(){let a=this;setTimeout(function(){a.Aq()},100);9!=a.qk||a.Oj||window.requestAnimationFrame(function(){a.pi()});10x;)x+=360}f=x-w;this.Na()||(180f&&(f+=360));b.pan.m+=f*this.Td}else b.pan.m=x;this.A.ci=b.pan.m;break;case 1:w=b.u.m;this.se&&3!=y.type?(h=x-w,b.u.m+=h*this.Td):b.u.m=x;this.A.di=b.u.m;break;case 2:w=b.fov.m,this.se&&3!=y.type?(n=x-w,b.fov.m+=n* this.Td):b.fov.m=x,this.A.bi=b.fov.m}}e=this.Z();for(r=Math.floor(a);!this.Wb(r,3)&&0a?(e=this.Nh(this.uh),b.fov.m>e?this.ij=a:(b=(a-this.ij)/this.fl,b=Math.min(1,b),this.ab(this.Z(),this.uh,1-b))):(0==r.Kb||y>r.Kb-.3?this.ab(r.value):this.ab(e,r.value,1-y/r.Kb),this.A.bq=r.value);this.se&&(f=Math.sqrt(f*f+h*h+n*n),.3>f&&(this.se=!1,this.Td=.02,this.th=0),0this.th&&(this.Td+=.01,this.Td=Math.min(this.Td,1)),this.th= f)}f=Math.floor(a);h=this.Rs(f);for(n=0;ne.Xn)f!=this.$n&&(b=e.yd,this.yb.hasOwnProperty(b)&&(r=this.yb[b].type,0==r?this.Ze(b,e.Ln):1==r?this.Ze(b,e.value):2==r&&this.Ze(b,"true"==e.Ln)));else if(b=this.Wb(this.wp(a,e.ub,e.yd),e.ub,e.yd),b=(r=this.op(b))?this.Yo(b,r,a):b.value,r=e.yd.split("|"),2==r.length)for(e=r[0],r=r[1],y=0;y=this.cb.length&&(a=0),a=this.cb[a];while(""!=this.A.Fg&&!this.Ph(a).tags.includes(this.A.Fg)&&a!=this.ua);return a}Ju(a){var b=this.D;var e=this.I.speed;this.I.lastTime&&(e=e*(a.getTime()-this.I.lastTime)/60);this.I.lastTime=a.getTime();var f=!0;0=this.S.length){if(this.Ki(this.S.length),this.za.splice(this.za.indexOf(this.S),1),this.I.active=!1,this.S=this.I.Yn,this.I.sb=0,this.Rg(this.I.pan,this.I.u,this.I.fov),b.pan.Ub=this.I.pan,b.u.Ub=this.I.u,this.I.Eg&&(this.I.Eg=!1,this.A.ek=!0,this.A.fd=!0,this.A.active=!0,this.G("autorotatechanged", {})),this.onMoveComplete)this.onMoveComplete()}else this.Ki(e);else{b.pan.d=this.I.pan-b.pan.m;if(360==b.pan.max-b.pan.min){for(;-180>b.pan.d;)b.pan.d+=360;for(;1805*f?f/h:.2,b.pan.d*=h,b.u.d*=h,b.fov.d*=h;b.pan.m+=b.pan.d;b.u.m+=b.u.d;b.Y.m+=b.Y.d;this.K.re&&b.fov.Yc.enabled?this.vk(b.fov.m+b.fov.d,b.fov.Yc):b.fov.m+=b.fov.d;0!=this.I.sb&&(this.I.sb!=this.Z()?(e=this.Nh(this.I.sb), this.Fd()>e?(b.fov.m+=-Math.max((2.5-1.7*Math.min(Math.sqrt(b.pan.d*b.pan.d+b.u.d*b.u.d+b.Y.d*b.Y.d)/f,1))*f,b.fov.d)-b.fov.d,this.I.fov=b.fov.m):(this.ab(this.I.sb,this.Z(),0),this.I.xi=0,this.da.forEach(y=>{y.Nj()}))):1>this.I.xi?(this.I.xi=Math.min(1,this.I.xi+.05*e),this.ab(this.Z(),this.Ic(),this.I.xi)):(this.ab(this.Z(),0,0),this.I.sb=0,this.da.forEach(y=>{y.Nj()})))}this.Jf=a.getTime();this.update()}else if(this.A.active&&!this.F.vd){e=a.getTime()-this.A.startTime;this.A.$jthis.B.j.duration-this.B.j.currentTime&&(this.il=!0);for(;h>=10*this.gf;)h-=10*this.gf}if(!f&&e>=this.S.length||f&&!b&&e>=this.S.length||f&&b&&(this.S.fb!=this.S.pq||this.S.oq!=this.ua)&&e>=this.S.length){this.Ki(this.S.length);this.A.Id=0;this.hf=!1; if(this.Da.running){this.Wq();return}f="";if(this.A.so){b=0;do e=this.ao[this.S.jf],f=Math.floor(Math.random()*Object.keys(e).length),f=e[f],this.vc=f.cliptitle,e=f.nodeid,f=f.startview,b++;while(e==this.ua&&10>b)}else this.vc=this.S.pq,e=this.S.oq,f=this.S.qu;this.vc==this.S.fb&&this.ua==e?1b.pan;)b.pan+=360}b.tilt=f.value;b.fov=h.value;b.projection=n?n.value:4}b.timingFunction=3;b.speed=1;this.I.Eg=!0;this.mi(b);this.A.active=!0}}else 0=1E3*this.A.gk?11E3*this.A.timeout&&!this.A.Jh&&(this.A.Yg&&this.Oh()||!this.A.Yg)&&(this.A.active=!0,this.A.startTime=a.getTime(),this.A.rd=0,this.G("autorotatechanged",{}),b.pan.d=0,b.u.d=0,b.fov.d=0,b.fov.Yc.enabled=!1),!this.qa.enabled||this.U.Qj()||0==b.pan.d&&0==b.u.d&&0==b.fov.d||(this.I.Lj=!0,b.pan.d*=.9,b.u.d*=.9,b.fov.d*=.9,b.pan.m+=b.pan.d,b.u.m+=b.u.d,this.K.re&&b.fov.Yc.enabled?this.lo(b.fov.d, b.fov.Yc):this.lj(b.fov.d),1E-4>b.pan.d*b.pan.d+b.u.d*b.u.d+b.fov.d*b.fov.d&&(b.pan.d=0,b.u.d=0,b.fov.d=0,b.fov.Yc.enabled=!1),this.update())}Mr(a){let b=this.F;b.ed=!1;if("previewtrack"==b.delay&&!this.Na()||"videopano"==b.delay&&!this.B.j)if(0{f.Eq()||(e=!1)});e||(b.ed=!0)}else"videopano"==b.delay&&this.B.j&&!this.B.Cg&&(b.ed=!0);b.ed||this.Gk(a)}Gk(a){a||(a=new Date);let b=this.F; b.ed=!1;b.vd=!0;b.Vd=this.A.fd;b.rn=a.getTime()+100;0==b.Vc||b.ph||this.qn()}qn(){let a=this.F;4==a.Vc?(this.S=this.Rl(!0,a.xn,a.yn,a.Ti),this.vc=this.S.fb,this.A.active=!0,this.Da.running=!0):this.moveTo(a.xn,a.yn,a.Ti,a.qh,0,a.ne)}Lu(a){var b=this.F;if(!b.jr){if(b.Pd){var e=(a.getTime()-b.gs)/(1E3*b.fs);1<=e?(b.Dm(1),b.Pd=!1,this.Mo(),this.pn(),this.Mr(a)):0<=e&&b.Dm(e)}else b.vd&&(e=(a.getTime()-b.rn)/(1E3*b.tf),1<=e?(b.vd=!1,this.Jf=a.getTime(),this.update(),0!=b.Vc&&b.ph&&this.qn(),4!=b.Vc&& (this.wk(!1),this.A.active=b.te,this.A.fd=b.Vd,this.G("autorotatechanged",{}),b.te=!1,b.Vd=!1),this.A.rd=0,this.ha&&this.yl(),this.yh=!1):0<=e&&("mesh"==b.type?this.da[0].D.Na()||this.da[1].D.Na()?b.rn=1:b.Hu(e):b.Dm(e)));b=this.Du;b.ps&&(b.sj?a.getTime()-b.Il>=1E3*b.delay&&(b.sj=!1):(b.current+=b.zd,0>b.current&&(b.current=0,b.zd=-b.zd,b.sj=!0,b.Il=a.getTime()),1b.Tc[a]?(b.Tc[a]+=.05,b.ud[a]b.Tc[a]&&(b.Tc[a]=b.ud[a],-1!=b.Bk.indexOf(b.Bc[a])&&(b.Bk.splice(b.Bk.indexOf(b.Bc[a]),1),b.Bc.splice(a,1),b.ud.splice(a,1),b.Tc.splice(a,1)))));this.update()}if(2==b.mode)for(a=0;ae.Fa?(e.Fa+=b.zd,e.kbe.Fa&&(e.Fa=e.kb)),this.update())}3==b.mode&&b.kb!=b.Fa&&(b.kb>b.Fa?(b.Fa+=b.zd,b.kbb.Fa&&(b.Fa=b.kb)),this.update())}Nu(){var a=this.D;let b=this.qa;this.U.Qj()&&(this.K.lc?(b.ma.x=.4*(this.oa.na.x-b.na.x),b.ma.y=.4*(this.oa.na.y-b.na.y),b.na.x+=b.ma.x,b.na.y+=b.ma.y):(b.ma.x=.1*-this.oa.ma.x*this.K.sensitivity/8,b.ma.y=.1*-this.oa.ma.y*this.K.sensitivity/8),this.Yr(b.ma.x,b.ma.y),this.update());b.fov.active&&(this.K.re&&b.fov.center.enabled?this.ko(.4*(b.fov.jc-a.fov.m),b.fov.center):this.vh(.4*(b.fov.jc-a.fov.m)),.001>Math.abs(b.fov.jc-a.fov.m)/a.fov.m&& (b.fov.active=!1),this.update());!b.enabled||0==b.ma.x&&0==b.ma.y||this.U.Qj()||(a=.9*(1-b.Zm),b.ma.x*=a,b.ma.y*=a,this.I.Lj=!0,.01>b.ma.x*b.ma.x+b.ma.y*b.ma.y?(b.ma.x=0,b.ma.y=0):(this.Yr(b.ma.x,b.ma.y),this.update()))}Mu(){if(!this.Oh()&&this.fe&&5{e.Is()});this.In&&(this.xd(),this.In=!1);this.Nu();this.Mu();this.B.j&&this.B.Mc&&!this.hf&&!this.I.Eg&&this.Tk&&(this.S=this.Tk,this.Ki(10*this.B.j.currentTime));this.Ju(b);this.D.Ku();this.Lu(b);this.da.forEach(e=>{e.ew()});(0<=this.P.mode||0=n.lb&&(n.lb=1E7),this.isPlaying(a)&&this.Si(a),n.ta?n.Wd():(e=n.j.play(),void 0!==e&&e.then(()=>{this.Tg(!0)}).catch(()=>{this.Tg(!1)}),n.Sd&&n.ff()),this.Hi(n.id, !1))}}catch(h){}return e}Gm(a,b){a=this.Xa(a);for(var e=0;eb&&(b=0),b>f.audioBuffer.duration&&(b=f.audioBuffer.duration-.1), f.ss(b)):f.j&&(0>b&&(b=0),b>f.j.duration&&(b=f.j.duration-.1),f.j.currentTime=b))}}sr(a,b){a=this.Xa(a);0f&&(f=0);"_videopanorama"===a&&this.B.j&&(this.B.j.volume=f,this.B.level=f);if("_main"===a){this.fa=f;for(e=0;ee&&(e=0);this.fa=e;for(f=0;fe&&(e=0),n.level=e,n.j&&null!=n.j.volume&&(n.j.volume=e*this.fa))}}}catch(e){}this.G("elementvolume",{id:a,type:"change",volume:b})}zk(a,b){if("_main"===a||"_all"===a||"_videopanorama"===a)"_all"===a&&(b=(this.xc=1==b||-1==b&&!this.xc?!0:!1)?1:0),this.B.j&&(this.B.j.muted=-1==b?!this.B.j.muted:1==b);let e=this.Xa("_main"===a||"_all"===a?".*":a);for(let f=0;f{this.vg()},500)}xk(a,b,e){a.j.style.opacity=0==b?1:0;a.j.style[this.Hc]="opacity "+e+"ms";a.j.style.opacity=0==b?0:1}yk(a,b,e){let f=this.Xa(a);for(var h=0;h{this.Tg(!0)}).catch(()=>{this.Tg(!1)})}b&&setTimeout(function(){a.bb.Nv()},1E3*this.bb.Kb);e&&(this.bb.Lv=this.ga.currentTime,this.bb.Kv=setInterval(function(){a.bb.Ns()},10))}catch(a){}}Mo(){for(let a=0;a{f.Tf()});let b=[];for(a= 0;athis.Wc&&0==e.mode||this.Wf.push(e);this.V=b;this.Za=[];this.Qb=[];this.B.j&&(this.T.removeChild(this.B.j),this.B.j=null,a=this.Xa("_videopanorama"),0=this.cb.length&&(a=0),this.cb[a]):""}xp(a){return 0a&&(a=this.cb.length-1),this.cb[a]):""}gt(){return this.aq}At(){return this.Uc}ru(a){return-1!=this.Uk.indexOf(a)}zs(){this.Uk=[];this.G("changevisitednodes",{})}Pm(a,b){a=a.firstChild;this.df=[];this.cb=[];this.xe=[];this.yg=!1;var e;(e=a.getAttributeNode("appversion"))&&e.nodeValue.toString().match(/(\d+)\.(\d+)\.?(\d+)?/);for(var f=a.firstChild;f;){if("map"==f.nodeName){var h={};(e=f.getAttributeNode("index"))&&(h.index=Number(e.nodeValue));(e=f.getAttributeNode("title"))&& (h.title=e.nodeValue.toString());e=f.getAttributeNode("type");h.type=e.nodeValue.toString();"web"==h.type?(e=f.getAttributeNode("mapprovider"),h.mapprovider=e.nodeValue.toString(),(e=f.getAttributeNode("mapstyle"))&&(h.mapstyle=e.nodeValue.toString()),(e=f.getAttributeNode("googlecustomstylecode"))&&(h.googlecustomstylecode=e.nodeValue.toString()),(e=f.getAttributeNode("mapurltemplate"))&&(h.mapurltemplate=e.nodeValue.toString()),(e=f.getAttributeNode("mapmaxzoom"))&&(h.mapmaxzoom=Number(e.nodeValue)), (e=f.getAttributeNode("customlayernames"))&&(h.customlayernames=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("customlayerurltemplates"))&&(h.customlayerurltemplates=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("customlayermaxzooms"))&&(h.customlayermaxzooms=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("mapkey"))&&(h.mapkey=e.nodeValue.toString()),(e=f.getAttributeNode("styleurl"))&&(h.styleurl=e.nodeValue.toString()),(e=f.getAttributeNode("mapboxlayernames"))&& (h.mapboxlayernames=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("mapboxlayerstyleurls"))&&(h.mapboxlayerstyleurls=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("googlelayernames"))&&(h.googlelayernames=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("googlelayerstyles"))&&(h.googlelayerstyles=e.nodeValue.toString().split("|")),(e=f.getAttributeNode("maplimits"))&&(h.maplimits=e.nodeValue.toString().split("|"))):(e=f.getAttributeNode("width"),h.width=Number(e.nodeValue), e=f.getAttributeNode("height"),h.height=Number(e.nodeValue),e=f.getAttributeNode("zoomlevels"),h.zoomlevels=Number(e.nodeValue),e=f.getAttributeNode("tileformat"),h.tileformat=e.nodeValue.toString(),e=f.getAttributeNode("bgcolor"),h.bgcolor=e.nodeValue.toString(),e=f.getAttributeNode("crispedges"),h.crispedges=1==e.nodeValue,e=f.getAttributeNode("transparent"),h.transparent=1==e.nodeValue,e=f.getAttributeNode("floorplannorth"),h.floorplannorth=Number(e.nodeValue));e=f.getAttributeNode("id");this.qc[e.nodeValue.toString()]= h}f=f.nextSibling}if("tour"==a.nodeName){this.qd=!0;if(e=a.getAttributeNode("start"))this.Uc=e.nodeValue.toString();if(e=a.getAttributeNode("hassounds"))this.yg=1==e.nodeValue;this.hasOwnProperty("startNode")&&this.startNode&&(this.Uc=String(this.startNode),this.startNode="");this.hasOwnProperty("startView")&&this.startView&&("object"===typeof this.startView&&null!==this.startView?b=this.startView:""!=this.startView&&(b=String(this.startView)),this.startView="");f=a.firstChild;for(a=h="";f;){if("panorama"== f.nodeName){if(e=f.getAttributeNode("id"))h=e.nodeValue.toString(),""==this.Uc&&(this.Uc=h),""==a&&(a=h),this.df[h]=f,this.cb.push(h);for(e=f.firstChild;e;){if("userdata"==e.nodeName){var n=this.rg(e);this.ef[h]=n;h==this.Uc&&(this.ef._first=n);n.customnodeid&&(this.xe[n.customnodeid]=h);this.Oc[h]=this.Io(e);this.Dg[h]=this.Jo(e);this.cg[h]=this.Ko(e)}if("hotspots"==e.nodeName)for(n=e.firstChild;n;)"hotspot"!=n.nodeName&&"polyhotspot"!=n.nodeName||this.Kl(h,e),n=n.nextSibling;e=e.nextSibling}}if("masternode"== f.nodeName)for(e=f.firstChild;e;){"userdata"==e.nodeName&&(n=this.rg(e),this.ef._master=n);"animationsequences"==e.nodeName&&this.Ls(e);if("translations"==e.nodeName){(n=e.getAttributeNode("json"))&&this.rh(n.nodeValue.toString());let r=e.firstChild;for(;r;){"json"==r.nodeName&&this.rh(r.textContent);if("projecttranslation"==r.nodeName){let w={};if(n=r.getAttributeNode("langcode"))w.langCode=n.nodeValue;if(n=r.getAttributeNode("langname"))w.langName=n.nodeValue;this.Km.push(w)}r=r.nextSibling}this.rm|| this.en(window.navigator.language)}e=e.nextSibling}"customproperty"==f.nodeName&&this.Ho(f);f=f.nextSibling}!this.df.hasOwnProperty(this.Uc)&&(f=this.xe[this.Uc])&&(this.Uc=f);this.df.hasOwnProperty(this.Uc)||(this.Yb("Start node "+this.Uc+" not found!"),this.Uc=a);this.Nm(this.df[this.Uc],b,this.da[0].D)}else{this.qd=!1;this.Nm(a,b);if(e=a.getAttributeNode("hassounds"))this.yg=1==e.nodeValue;this.cb.push("")}this.qe&&this.ja.gj();this.yg&&(this.Wt(),this.vr());this.G("configloaded",{});this.G("changenode", {});this.G("playerstatechanged",{})}Nm(a,b,e){e||(e=this.D);this.Xe(this.Wa);this.Vm();this.Nc&&this.Nc.Tu();this.Tf();this.Tk=0;var f;let h="";(f=a.getAttributeNode("id"))&&(h=f.nodeValue.toString());let n={oldNodeId:this.ua,nodeId:h};var r,w=0,x=e.M;let y=a.firstChild;for(;y;){if("view"==y.nodeName){if(f=y.getAttributeNode("fovmode"))e.fov.mode=Number(f.nodeValue);f=y.getAttributeNode("pannorth");e.pan.Am=1*(f?f.nodeValue:0);for(var z=y.firstChild;z;){"start"==z.nodeName&&(f=z.getAttributeNode("pan"), e.pan.m=Number(f?f.nodeValue:0),e.pan.Va=e.pan.m,f=z.getAttributeNode("tilt"),e.u.m=Number(f?f.nodeValue:0),e.u.Va=e.u.m,f=z.getAttributeNode("roll"),e.Y.m=Number(f?f.nodeValue:0),e.Y.Va=e.Y.m,f=z.getAttributeNode("fov"),e.fov.m=Number(f?f.nodeValue:70),e.fov.Va=e.fov.m,f=z.getAttributeNode("projection"),e.yq=Number(f?f.nodeValue:4),this.ab(this.Qh()));"min"==z.nodeName&&(f=z.getAttributeNode("pan"),e.pan.min=1*(f?f.nodeValue:0),f=z.getAttributeNode("tilt"),e.u.min=1*(f?f.nodeValue:-90),f=z.getAttributeNode("fov"), e.fov.min=1*(f?f.nodeValue:5),1E-20>e.fov.min&&(e.fov.min=1E-20),f=z.getAttributeNode("fovpixel"),e.fov.ki=1*(f?f.nodeValue:0));if("max"==z.nodeName){f=z.getAttributeNode("pan");e.pan.max=1*(f?f.nodeValue:0);f=z.getAttributeNode("tilt");e.u.max=1*(f?f.nodeValue:90);f=z.getAttributeNode("fov");e.fov.max=1*(f?f.nodeValue:120);180<=e.fov.max&&(e.fov.max=179.9);if(f=z.getAttributeNode("fovstereographic"))e.fov.xm=1*f.nodeValue;if(f=z.getAttributeNode("fovfisheye"))e.fov.wm=1*f.nodeValue;if(f=z.getAttributeNode("scaletofit"))this.K.Sq= 1==f.nodeValue}if("flyin"==z.nodeName){if(f=z.getAttributeNode("projection"))e.Zc.sb=Number(f.nodeValue);if(f=z.getAttributeNode("pan"))e.Zc.pan=parseFloat(f.nodeValue);if(f=z.getAttributeNode("tilt"))e.Zc.u=parseFloat(f.nodeValue);if(f=z.getAttributeNode("fov"))e.Zc.fov=parseFloat(f.nodeValue)}z=z.nextSibling}}if("autorotate"==y.nodeName){if(f=y.getAttributeNode("speed"))this.A.speed=1*f.nodeValue;if(f=y.getAttributeNode("delay"))this.A.timeout=1*f.nodeValue;if(f=y.getAttributeNode("returntohorizon"))this.A.Lk= 1*f.nodeValue;if(f=y.getAttributeNode("horizonfromdefview"))this.A.Pp=1==f.nodeValue;if(f=y.getAttributeNode("nodedelay"))this.A.gk=1*f.nodeValue;if(f=y.getAttributeNode("noderandom"))this.A.sq=1==f.nodeValue;(f=y.getAttributeNode("nodefilter"))&&!this.A.rq&&(this.A.Fg=f.nodeValue);this.Ed&&(this.A.enabled=!0,this.A.eg=!0,this.A.active=!1);(f=y.getAttributeNode("startloaded"))&&this.Ed&&(this.A.Yg=1==f.nodeValue,this.A.Yg&&(this.A.active=!1));if(f=y.getAttributeNode("useanimation"))this.A.ag=1==f.nodeValue, this.A.fd=this.A.ag;if(f=y.getAttributeNode("syncanimationwithvideo"))this.A.wn=1==f.nodeValue}if("animation"==y.nodeName){if(f=y.getAttributeNode("syncanimationwithvideo"))this.A.wn=1==f.nodeValue;if(f=y.getAttributeNode("useinautorotation"))this.A.ag=1==f.nodeValue;if(f=y.getAttributeNode("animsequence"))this.A.jj=f.nodeValue,this.Ed&&(this.A.Ud=this.A.jj);if(f=y.getAttributeNode("clipsrandom"))this.A.so=1==f.nodeValue;this.za=[];for(z=y.firstChild;z;){if("clip"==z.nodeName){this.S=new Tb;if(f= z.getAttributeNode("animtitle"))this.S.jf=f.nodeValue.toString();if(f=z.getAttributeNode("cliptitle"))this.S.fb=f.nodeValue.toString();if(f=z.getAttributeNode("nodeid"))this.S.Mw=f.nodeValue.toString();if(f=z.getAttributeNode("length"))this.S.length=Number(f.nodeValue);if(f=z.getAttributeNode("animtype"))this.S.ns=Number(f.nodeValue);if(f=z.getAttributeNode("nextcliptitle"))this.S.pq=f.nodeValue.toString();if(f=z.getAttributeNode("nextclipnodeid"))this.S.oq=f.nodeValue.toString();if(f=z.getAttributeNode("nextclipstartview"))this.S.qu= f.nodeValue.toString();if(f=z.getAttributeNode("transitiontype"))this.S.$v=Number(f.nodeValue);var cb=z.firstChild;for(this.S.Ha=[];cb;){if("keyframe"==cb.nodeName){let db=new Ab;if(f=cb.getAttributeNode("time"))db.time=Number(f.nodeValue);if(f=cb.getAttributeNode("value"))db.value=Number(f.nodeValue);if(f=cb.getAttributeNode("valuestring"))db.Ln=f.nodeValue.toString();if(f=cb.getAttributeNode("transitiontime"))db.Kb=Number(f.nodeValue);f=cb.getAttributeNode("type");let gb=0;f&&(db.type=Number(f.nodeValue), gb=Number(f.nodeValue));if(f=cb.getAttributeNode("property"))db.ub=Number(f.nodeValue);if(f=cb.getAttributeNode("additionaltrackid"))db.yd=f.nodeValue.toString();if(f=cb.getAttributeNode("additionaltracktype"))db.Xn=Number(f.nodeValue);if(1==gb||2==gb){if(f=cb.getAttributeNode("bezierintime"))db.mf=Number(f.nodeValue);if(f=cb.getAttributeNode("bezierinvalue"))db.nf=Number(f.nodeValue);if(f=cb.getAttributeNode("bezierouttime"))db.pf=Number(f.nodeValue);if(f=cb.getAttributeNode("bezieroutvalue"))db.qf= Number(f.nodeValue)}this.S.Ha.push(db)}cb=cb.nextSibling}this.za.push(this.S);"__VideoPano"==this.S.fb&&(this.Tk=this.S)}z=z.nextSibling}}"input"==y.nodeName&&(r||(r=y));if(r)for(z=0;6>z;z++)f=r.getAttributeNode("prev"+z+"url"),this.Bh[z]=f?String(f.nodeValue):"";"altinput"==y.nodeName&&(z=0,(f=y.getAttributeNode("screensize"))&&(z=1*f.nodeValue),0w&&(w=z,r=y));if("control"==y.nodeName&&this.Ed){if(f=y.getAttributeNode("simulatemass"))this.qa.enabled=1==f.nodeValue;if(f=y.getAttributeNode("rubberband"))this.K.Rq= 1==f.nodeValue;if(f=y.getAttributeNode("zoomcentercursor"))this.K.re=1==f.nodeValue;if(f=y.getAttributeNode("locked"))this.K.pc=1==f.nodeValue;f&&(this.K.fi=1==f.nodeValue);if(f=y.getAttributeNode("lockedmouse"))this.K.pc=1==f.nodeValue;if(f=y.getAttributeNode("lockedkeyboard"))this.K.fi=1==f.nodeValue;if(f=y.getAttributeNode("lockedkeyboardzoom"))this.K.gu=1==f.nodeValue;if(f=y.getAttributeNode("lockedwheel"))this.K.Pe=1==f.nodeValue;if(f=y.getAttributeNode("invertwheel"))this.K.Up=1==f.nodeValue; if(f=y.getAttributeNode("speedwheel"))this.K.nn=1*f.nodeValue;if(f=y.getAttributeNode("invertcontrol"))this.K.lc=1==f.nodeValue;if(f=y.getAttributeNode("sensitivity"))this.K.sensitivity=1*f.nodeValue,1>this.K.sensitivity&&(this.K.sensitivity=1);if(f=y.getAttributeNode("dblclickfullscreen"))this.K.El=1==f.nodeValue;if(f=y.getAttributeNode("contextfullscreen"))this.K.vl=1==f.nodeValue;if(f=y.getAttributeNode("contextvr"))this.K.wl=1==f.nodeValue;if(f=y.getAttributeNode("contextprojections"))this.K.to= 1==f.nodeValue;if(f=y.getAttributeNode("hideabout"))this.K.Ij=1==f.nodeValue;for(z=y.firstChild;z;)"menulink"==z.nodeName&&(cb={text:"",url:""},f=z.getAttributeNode("text"),cb.text=f.nodeValue,f=z.getAttributeNode("url"),cb.url=f.nodeValue,this.dk.push(cb)),z=z.nextSibling}if("vr"==y.nodeName&&this.Ed){if(f=y.getAttributeNode("toggleskinbutton"))this.ja.Go=1==f.nodeValue;if(f=y.getAttributeNode("skinbuttonposition"))this.ja.Ck=f.nodeValue;if(f=y.getAttributeNode("defaulthsscale"))this.ja.Gl=1*f.nodeValue/ 100}if("transition"==y.nodeName&&this.Ed){if(f=y.getAttributeNode("enabled"))this.F.enabled=1==f.nodeValue;if(f=y.getAttributeNode("blendtime"))this.F.tf=1*f.nodeValue;if(f=y.getAttributeNode("blendcolor"))this.F.fg=f.nodeValue.toString();if(f=y.getAttributeNode("type"))this.F.type=f.nodeValue.toString();if(f=y.getAttributeNode("delay"))this.F.delay=f.nodeValue.toString();if(f=y.getAttributeNode("softedge"))this.F.dd=1*f.nodeValue;if(f=y.getAttributeNode("zoomin"))this.F.ea=1*f.nodeValue;if(f=y.getAttributeNode("zoomout"))this.F.Vc= 1*f.nodeValue;if(f=y.getAttributeNode("zoomfov"))this.F.al=1*f.nodeValue;if(f=y.getAttributeNode("zoomafterinfov"))this.F.Zk=1*f.nodeValue;if(f=y.getAttributeNode("zoomafteroutfov"))this.F.$k=1*f.nodeValue;if(f=y.getAttributeNode("zoomspeed"))this.F.qh=1*f.nodeValue;if(f=y.getAttributeNode("zoomoutpause"))this.F.ph=1==f.nodeValue;"cut"==this.F.type&&(this.F.tf=0);"mesh"==this.F.type&&(this.F.Vc=0)}if("soundstransition"==y.nodeName){if(f=y.getAttributeNode("enabled"))this.bb.enabled=1==f.nodeValue; if(f=y.getAttributeNode("transitiontime"))this.bb.Kb=1*f.nodeValue;if(f=y.getAttributeNode("crossfade"))this.bb.zo=1==f.nodeValue}if("flyintransition"==y.nodeName){if(f=y.getAttributeNode("enabled"))this.Da.enabled=1==f.nodeValue&&this.pa;if(f=y.getAttributeNode("speed"))this.Da.speed=1*f.nodeValue}"userdata"==y.nodeName&&(this.userdata=this.bg=this.rg(y),this.ef.hasOwnProperty(h)||(this.ef[h]=this.bg),this.Oc[a.id]||(this.Oc[a.id]=this.Io(y),this.Dg[a.id]=this.Jo(y),this.cg[a.id]=this.Ko(y)));"projectuserdata"== y.nodeName&&(this.ef._master=this.rg(y));"customproperty"==y.nodeName&&this.Ho(y);if("translations"==y.nodeName)for((f=y.getAttributeNode("json"))&&this.rh(f.nodeValue.toString()),this.rm||this.en(window.navigator.language),z=y.firstChild;z;){"json"==z.nodeName&&this.rh(z.textContent);if("projecttranslation"==z.nodeName){cb={};if(f=z.getAttributeNode("langcode"))cb.langCode=f.nodeValue;if(f=z.getAttributeNode("langname"))cb.langName=f.nodeValue;this.Km.push(cb)}z=z.nextSibling}if("hotspots"==y.nodeName){if(f= y.getAttributeNode("smoothmovement"))this.nr=1==f.nodeValue;z=y.firstChild;for(this.P.count=0;z;){if("label"==z.nodeName&&this.Ed){cb=this.P.Jk;if(f=z.getAttributeNode("enabled"))cb.enabled=1==f.nodeValue;if(f=z.getAttributeNode("width"))cb.width=1*f.nodeValue;if(f=z.getAttributeNode("height"))cb.height=1*f.nodeValue;if(f=z.getAttributeNode("textcolor"))cb.Kk=1*f.nodeValue;if(f=z.getAttributeNode("textalpha"))cb.Ik=1*f.nodeValue;if(f=z.getAttributeNode("background"))cb.background=1==f.nodeValue;if(f= z.getAttributeNode("backgroundalpha"))cb.dc=1*f.nodeValue;if(f=z.getAttributeNode("backgroundcolor"))cb.ec=1*f.nodeValue;if(f=z.getAttributeNode("border"))cb.kj=1*f.nodeValue;if(f=z.getAttributeNode("bordercolor"))cb.hc=1*f.nodeValue;if(f=z.getAttributeNode("borderalpha"))cb.fc=1*f.nodeValue;if(f=z.getAttributeNode("borderradius"))cb.kl=1*f.nodeValue;if(f=z.getAttributeNode("wordwrap"))cb.fj=1==f.nodeValue}if("polystyle"==z.nodeName&&this.Ed){if(f=z.getAttributeNode("mode"))this.P.mode=1*f.nodeValue; if(f=z.getAttributeNode("bordercolor"))this.P.hc=1*f.nodeValue;if(f=z.getAttributeNode("backgroundcolor"))this.P.ec=1*f.nodeValue;if(f=z.getAttributeNode("borderalpha"))this.P.fc=1*f.nodeValue;if(f=z.getAttributeNode("backgroundalpha"))this.P.dc=1*f.nodeValue;if(f=z.getAttributeNode("handcursor"))this.P.Je=1==f.nodeValue}"hotspot"==z.nodeName&&(f=new Rb(this),f.type="point",f.xb(z),this.L.push(f),this.Kl(a.id,z));"polyhotspot"==z.nodeName&&(f=new Rb(this),f.type="poly",f.xb(z),this.L.push(f),this.P.count++, this.Kl(a.id,z));z=z.nextSibling}}if("sounds"==y.nodeName||"media"==y.nodeName)for(f=y.firstChild;f;){if("sound"==f.nodeName&&!this.ym)for(z=new Bb(this),z.xb(f),z.addElement(),cb=0;cbb;b++)(f=r.getAttributeNode("prev"+b+"url"))&&(this.Bh[b]=String(f.nodeValue));if(f=r.getAttributeNode("tilevrurl"))this.Bl=String(f.nodeValue);if(f=r.getAttributeNode("tilesize"))this.bf=1*f.nodeValue;f=r.getAttributeNode("canvassize"); if(f=r.getAttributeNode("tilescale"))this.dh=1*f.nodeValue;if(f=r.getAttributeNode("leveltileurl"))x.vm=f.nodeValue;if(f=r.getAttributeNode("leveltilesize"))x.W=Number(f.nodeValue);if(f=r.getAttributeNode("levelbias"))x.fq=Number(f.nodeValue);if(f=r.getAttributeNode("levelbiashidpi"))x.gq=Number(f.nodeValue);f=r.getAttributeNode("overlap");e.rb.Y=0;e.rb.pitch=0;f&&(x.ib=Number(f.nodeValue));if(f=r.getAttributeNode("levelingroll"))e.rb.Y=Number(f.nodeValue);if(f=r.getAttributeNode("levelingpitch"))e.rb.pitch= Number(f.nodeValue);this.cd=0;(f=r.getAttributeNode("flat"))&&1==f.nodeValue&&(this.cd=2);e.cd=this.cd;f=r.getAttributeNode("width");x.width=1*(f?f.nodeValue:1);f=r.getAttributeNode("height");x.height=1*(f?f.nodeValue:x.width);this.B.src=[];x.levels=[];for(r=r.firstChild;r;){if("preview"==r.nodeName){if(f=r.getAttributeNode("color"))x.lk=f.nodeValue;if(f=r.getAttributeNode("strip"))x.Fq=1==f.nodeValue}if("video"==r.nodeName){this.B.format=1;this.oc=!1;if(f=r.getAttributeNode("format"))"3x2"==f.nodeValue&& (this.B.format=14),"video3x2"==f.nodeValue&&(this.B.format=14),"equirectangular"==f.nodeValue&&(this.B.format=1),"vr180"==f.nodeValue&&(this.B.format=15),"vr180stereo"==f.nodeValue&&(this.B.format=15,this.oc=!0);if(f=r.getAttributeNode("flipy"))this.B.flipY=Number(f.nodeValue);if(f=r.getAttributeNode("startonload"))this.B.Fk=1==f.nodeValue;if(f=r.getAttributeNode("startmutedmobile"))this.B.Ek=1==f.nodeValue;if(f=r.getAttributeNode("level"))this.B.level=Number(f.nodeValue);if(f=r.getAttributeNode("bleed"))this.B.rf= Number(f.nodeValue);if(f=r.getAttributeNode("endaction"))this.B.Be=String(f.nodeValue);if(f=r.getAttributeNode("targetview"))this.B.Hk=String(f.nodeValue);if(f=r.getAttributeNode("width"))this.B.width=Number(f.nodeValue);if(f=r.getAttributeNode("height"))this.B.height=Number(f.nodeValue);for(b=r.firstChild;b;)"source"==b.nodeName&&(f=b.getAttributeNode("url"))&&this.B.src.push(f.nodeValue.toString()),b=b.nextSibling}if("level"==r.nodeName){b=new Vb;f=r.getAttributeNode("width");b.width=1*(f?f.nodeValue: 1);f=r.getAttributeNode("height");b.height=1*(f?f.nodeValue:b.width);if(f=r.getAttributeNode("preload"))b.cache=1==f.nodeValue;if(f=r.getAttributeNode("preview"))b.Lg=1==f.nodeValue;b.$=Math.floor((b.width+x.W-1)/x.W);b.sa=Math.floor((b.height+x.W-1)/x.W);x.levels.push(b)}r=r.nextSibling}x.um=x.levels.length}this.fe=!0;this.kh&&(this.pa=this.jh=!1,this.Gc||(this.Gc=document.createElement("canvas"),this.Gc.width=100,this.Gc.height=100,this.Gc.id="dummycanvas",this.ia.appendChild(this.Gc)),this.xd()); this.pa&&this.N&&this.da.forEach(db=>{db.Rp(this.dh);db.Tp()});let ab=this;0db;db++)for(bb=db%3*sb+ab.B.rf,ib=bb+sb-2*ab.B.rf,hb=4,3>db&&(hb+=sb),fb=hb+sb-2*ab.B.rf,gb=0;4>gb;gb++){ob.x=-1;ob.y=-1;ob.z=1;for(let vb=0;vb{}).catch(()=>{this.B.Ek&&(this.B.j.muted=!0,this.B.j.play())})))):"{"==this.B.Be.charAt(0)&&ab.Rc(ab.B.Be, ab.B.Hk));this.ts(h);this.Vn();this.F.Pd||this.pn();this.update();this.Ed&&(this.Ed=!1,this.G("viewerinit",{}),this.aa&&this.aa.ggViewerInit&&this.aa.ggViewerInit(),this.Da.enabled&&0==this.cd&&this.pa&&(this.ab(9),e.pan.m=e.Zc.pan,e.u.m=e.Zc.u,e.fov.m=e.Zc.fov,this.ab(e.Zc.sb),this.S=this.Rl(!1),this.F.Vd=this.A.ag,e.pan.m=this.Wb(0,0).value,e.u.m=this.Wb(0,1).value,e.fov.m=this.Wb(0,2).value,e=this.Wb(0,3).value,3==e&&this.ab(e),this.vc=this.S.fb,this.wk(!0),this.A.active=!1,this.A.Jh=!0));this.xd(); this.G("changenodeid",n)}Lp(){return Nb()&&Nb().hasOwnProperty("isSupported")}Wn(a,b,e){if(1<=b.length){var f=this.La(this.Ia(b[0]));if(this.Lp()&&0a.time&&n.timea.Od;)a.Od+=360;for(;180h;)h+=360;for(;180gb)for(;cb<=r&&db>gb;)db=new tb,db.jl(bb,fb,hb,ib,cb),db= db.y,cb++;else cb=1;cb>=.8*r&&(z=cb=Math.round(.8*r));0==cb&&(cb=1);gb=4==a.Pi?120:this.Nh(a.Pi);db=a.ah;if(db>gb)for(;ab>cb&&db>gb;)db=new tb,db.jl(bb,fb,hb,ib,ab),db=db.y,ab--}bb=new Ab;bb.time=0;bb.ub=0;bb.value=a.af;bb.type=1;bb.pf=r/3;bb.qf=a.mg?a.af:a.af+h/3;e.Ha.push(bb);bb=new Ab;bb.time=0;bb.ub=1;bb.value=a.Qi;bb.type=1;bb.pf=r/3;bb.qf=a.mg?a.Qi:a.Qi+b/3;e.Ha.push(bb);bb=new Ab;bb.time=0;bb.ub=2;bb.value=a.me;bb.type=1;bb.pf=r/3;bb.qf=a.mg?a.me:a.me+n/3;e.Ha.push(bb);bb=new Ab;bb.time=0; bb.ub=3;bb.value=a.Pi;bb.type=0;bb.Kb=0;e.Ha.push(bb);f&&(bb=new Ab,bb.time=cb,bb.ub=3,bb.value=a.ne,bb.type=0,bb.Kb=ab-cb,e.Ha.push(bb));bb=new Ab;bb.time=r;bb.ub=0;bb.value=a.af+h;bb.type=1;bb.mf=2*r/3;bb.nf=a.vf&&!a.wf?bb.value:bb.value-h/3;a.wf&&(bb.pf=r+x,bb.qf=bb.value+x/r*h);e.Ha.push(bb);bb=new Ab;bb.time=r;bb.ub=1;bb.value=a.oe;bb.type=1;bb.mf=2*r/3;bb.nf=a.vf&&!a.wf?a.oe:a.oe-b/3;a.wf&&(bb.pf=r+x,bb.qf=bb.value+x/r*b);e.Ha.push(bb);bb=new Ab;bb.time=z;bb.ub=2;bb.value=y;bb.type=1;bb.mf= 2*z/3;bb.nf=a.vf?y:y-n/3;e.Ha.push(bb);a.wf&&(bb=new Ab,bb.time=r+w,bb.ub=0,bb.value=a.af+h,bb.type=1,bb.mf=r+w-x,bb.nf=a.af+h,e.Ha.push(bb),bb=new Ab,bb.time=r+w,bb.ub=1,bb.value=a.oe,bb.type=1,bb.mf=r+w-x,bb.nf=a.oe,e.Ha.push(bb));this.za.push(e);return e}mw(){this.B.j&&this.B.j.play()}nw(){this.B.j&&(this.B.j.pause(),this.B.j.currentTime=0)}lw(){this.B.j&&this.B.j.pause()}Av(a){this.B.j&&(0>a&&(a=0),a>this.B.j.duration&&(a=this.B.j.duration-.1),this.B.j.currentTime=a,this.update())}It(){return this.B.j? this.B.j.currentTime:0}Ht(){if(this.B.j)return this.B.j}zv(a){const b=this.B.j;if(b){let e=!this.B.j.paused&&!this.B.j.ended,f=this.B.j.currentTime;b.pause();b.src=isNaN(parseInt(a,10))?String(a):this.B.src[parseInt(a,10)];e&&(this.B.j.onloadedmetadata=function(){b.currentTime=f;b.play();b.onloadedmetadata=null});this.B.j.currentTime=f}}Eo(){this.ym=!0}zf(a,b,e){""!==a||this.qd||(a="node1");a||(a=this.ua);return super.zf(a,b,e)}Ei(a,b,e,f){""!==a||this.qd||(a="node1");a||(a=this.ua);return super.Ei(a, b,e,f)}tp(){let a={};var b=this.D;a.currentNode=this.pd();a.position={pan:b.pan.m,tilt:b.u.m,fov:b.fov.m,projection:this.Z()};b=a.variables={};for(var e of Object.keys(this.yb))this.yb[e].Qp||"undefined"!==this.$l(e)&&((b[e]={}).value=this.$l(e));e=a.hsprops={};for(var f of Object.keys(this.qb)){b=e[f]={};for(var h of Object.keys(this.qb[f])){let r=b[h]={};for(var n of Object.keys(this.qb[f][h]))r[n]=this.zf(f,h,n)}}f=a.polyhotspots=[];for(h=0;h