////////////////////////////////////////////////////////////////////// // Pano2VR 7.1.6/20966 HTML5/CSS3 & WebGL Panorama Player // // License: Kirill Khachaturyan // // (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.vq(qb,lb)&&!nb.vq(pb,lb)&&Object.defineProperty(pb,lb,{enumerable:!0,get:qb[lb]})}})();(()=>{nb.vq=(pb,qb)=>Object.prototype.hasOwnProperty.call(pb,qb)})();(()=>{function pb(){var a= "perspective",b=["Webkit","Moz","O","ms","Ms"],e;for(e=0;ea,Aw:a=>a*a,Ew:a=> a*(2-a),xw:a=>.5>a?2*a*a:-1+(4-2*a)*a,ww:a=>a*a*a,Dw:a=>--a*a*a+1,Go:a=>.5>a?4*a*a*a:(a-1)*(2*a-2)*(2*a-2)+1,Bw:a=>a*a*a*a,Fw:a=>1- --a*a*a*a,yw:a=>.5>a?8*a*a*a*a:1-8*--a*a*a*a,Cw:a=>a*a*a*a*a,Gw:a=>1+--a*a*a*a*a,zw:a=>.5>a?16*a*a*a*a*a:1+16*--a*a*a*a*a};class wb{bm(){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.Jn=!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.Kj=!1);if(f.Dd)f.T.removeChild(f.Dd),f.Dd=null;else{f.Dd=document.createElement("div");var n=f.Dd;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}ap(){return this.ue}Xl(){return this.Zh}gp(){return this.km}ev(a){this.Zh=!!a}Oh(){return this.isLoaded}jp(){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.ee&&(this.La=!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){}}pe(){this.Jn=!0}fd(){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);b.margins={left:this.margin.left, top:this.margin.top,right:this.margin.right,bottom:this.margin.bottom};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.rk(a.left,a.transition,this.container.offsetWidth),a.hasOwnProperty("top")&&this.margin.top.rk(a.top,a.transition,this.container.offsetHeight),a.hasOwnProperty("right")&& this.margin.right.rk(a.right,a.transition,this.container.offsetWidth),a.hasOwnProperty("bottom")&&this.margin.bottom.rk(a.bottom,a.transition,this.container.offsetHeight),a.hasOwnProperty("transition")&&a.transition.hasOwnProperty("duration")&&0{this.Xv(this)},b))}Xv(a){a.margin.transition.starttime=(new Date).getTime();a.margin.transition.interval&&clearInterval(a.margin.transition.interval);a.margin.transition.interval=setInterval(()=>{a.Yv(a)},20)}Yv(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.vj(b,a.container.offsetWidth);a.margin.top.vj(b,a.container.offsetHeight);a.margin.right.vj(b,a.container.offsetWidth);a.margin.bottom.vj(b,a.container.offsetHeight);a.Li(a.container.offsetWidth, a.container.offsetHeight);1<=b&&(clearInterval(a.margin.transition.interval),a.margin.transition.interval=0)}oo(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",{})}Fp(){return 1==this.K.lc?1:0}ii(){this.La=!0}no(a,b){this.P.mode=1==b&&0b&&(b=0);1>16&255)+","+(a>>8&255)+","+(a&255)+","+b+")"}static Pp(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}Xd(){}update(a=0){this.La=!0;a&&(this.ze=Math.max(1*a,this.ze))}Yl(){return!1}kv(a){this.zi= a}getQueryParameter(){return this.zi}Ha(a){if(a){if("{"==a.charAt(0)||"/"==a.charAt(0)||0{a.Ug(!0)}).catch(()=>{a.Ug(!1)})}wr(){this.Ag&&1!=this.Oi?this.vr():this.Zd=this.Ce=!1}zt(){return this.Oi}Ug(a){if(1!=this.Oi){let b=a?1:0;this.Oi!=b&&(this.Oi=b,this.G("soundspermittedchanged",{permitted:a}))}}yr(){}Ak(){}qn(){}Wm(){}Wl(){return!0}Vg(){}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.Vg(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.Vg(0); document.body.style.overflow="";b&&(this.aa&&this.aa.ggExitFullscreen&&this.aa.ggExitFullscreen(),this.G("fullscreenexit",{}),this.G("playerstatechanged",{}))}this.pe()}Ok(){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}Bg(){return!1}gr(){return!1}Hj(){return!1}zr(){}Cr(){}Hr(){}Cq(){this.ra(!1)}Pq(){}Uq(){}Wq(){}Bl(){}Bp(){let a=1,b=-1!= navigator.userAgent.indexOf("Mac");window.devicePixelRatio&&b&&(a=window.devicePixelRatio);return{w:screen.width*a,h:screen.height*a}}mp(){let a=this.Bp();return a.w>a.h?a.w:a.h}Io(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,Jl:n}}catch(b){console.error(b)}}Lo(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}Ml(a,b){let e,f="";(e=b.getAttributeNode("id"))&&(f=e.nodeValue.toString());if(!this.pb.hasOwnProperty(a)||!this.pb[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.pb[a]||(this.pb[a]={});this.pb[a][f]=h}}Pm(a,b){a=(new DOMParser).parseFromString(a,"text/xml");this.Qm(a,b)}Hq(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.Pm(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.Pm(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)}Qm(){}kk(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.Ta=a.createProgram();a.attachShader(this.Ta,b);a.attachShader(this.Ta,e);a.linkProgram(this.Ta);a.getProgramParameter(this.Ta,a.LINK_STATUS)||alert("Could not initialise shaders");this.Ta.la=a.getAttribLocation(this.Ta,"aVertexPosition");a.enableVertexAttribArray(this.Ta.la);this.Ta.Ea=a.getAttribLocation(this.Ta,"aTextureCoord");a.enableVertexAttribArray(this.Ta.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.cb=a.createProgram();a.attachShader(this.cb,b);a.attachShader(this.cb,e);a.linkProgram(this.cb);a.getProgramParameter(this.cb,a.LINK_STATUS)||alert("Could not initialise shaders");this.cb.la=a.getAttribLocation(this.cb,"aVertexPosition");a.enableVertexAttribArray(this.cb.la);this.cb.Ea=a.getAttribLocation(this.cb,"aTextureCoord");a.enableVertexAttribArray(this.cb.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.Jq=b.createProgram();a.Nf(this.Jq,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.$f=a.createTexture();a.bindTexture(a.TEXTURE_2D,this.$f);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.$f,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.vb=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.vb); a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0]),a.STATIC_DRAW);this.vb.itemSize=3;this.vb.numberOfItems=4;this.Og=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.Og);a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),a.STATIC_DRAW);return!0}return!1}Em(a){let b=this.o.N;var e=this.o.Xa;const f=this.o.D;if(this.Qd){b.useProgram(this.wa);b.bindBuffer(b.ARRAY_BUFFER,this.vb);b.vertexAttribPointer(this.wa.la,this.vb.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER, this.Og);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.$f);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.hg>>8&255)/255,(this.hg&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.Ta);b.bindBuffer(b.ARRAY_BUFFER,this.vb);b.vertexAttribPointer(this.Ta.la,this.vb.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.Og);b.vertexAttribPointer(this.Ta.Ea,2,b.FLOAT,!1,0,0);b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,this.$f);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.Ta,"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.Ta,"uRectDim"),r*a,w*a));b.uniform1f(b.getUniformLocation(this.Ta, "uSoftEdge"),this.dd);b.uniform1i(b.getUniformLocation(this.Ta,"uRound"),"irisround"==this.type||"irisroundcenter"==this.type?1:0);b.uniform2f(b.getUniformLocation(this.Ta,"uIrisCenter"),x*e.width,y*e.height);b.uniform1i(b.getUniformLocation(this.Ta,"uZoomIn"),1==this.ea||2==this.ea||6==this.ea||7==this.ea?1:0);b.uniform2f(b.getUniformLocation(this.Ta,"uZoomCenter"),h,n);b.uniform1f(b.getUniformLocation(this.Ta,"uZoomFactor"),this.Lb);b.uniform1i(b.getUniformLocation(this.Ta,"uSampler"),0)}else if("wipeleftright"== this.type||"wiperightleft"==this.type||"wipetopbottom"==this.type||"wipebottomtop"==this.type||"wiperandom"==this.type)b.useProgram(this.cb),b.bindBuffer(b.ARRAY_BUFFER,this.vb),b.vertexAttribPointer(this.cb.la,this.vb.itemSize,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,this.Og),b.vertexAttribPointer(this.cb.Ea,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,this.$f),b.uniform1f(b.getUniformLocation(this.cb,"uPercent"),3>this.Fl?a*(e.width+this.dd):a*(e.height+this.dd)), b.uniform1f(b.getUniformLocation(this.cb,"uSoftEdge"),this.dd),b.uniform1i(b.getUniformLocation(this.cb,"uDirection"),this.Fl),b.uniform2f(b.getUniformLocation(this.cb,"uCanvasDimensions"),e.width,e.height),b.uniform1i(b.getUniformLocation(this.cb,"uZoomIn"),1==this.ea||2==this.ea||6==this.ea||7==this.ea?1:0),b.uniform2f(b.getUniformLocation(this.cb,"uZoomCenter"),h,n),b.uniform1f(b.getUniformLocation(this.cb,"uZoomFactor"),this.Lb),b.uniform1i(b.getUniformLocation(this.cb,"uSampler"),0);b.drawArrays(b.TRIANGLE_STRIP, 0,this.vb.numberOfItems);b.useProgram(f.Ig.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].Cl();b.da[1].Cl();if(null!=b.da[0].hb&&null!=b.da[1].hb){var h=Sb.Go(a); f.D.pan.m=this.Xg.pan*(1-h)+this.qg.pan*h;f.D.u.m=this.Xg.u*(1-h)+this.qg.u*h;f.D.fov.m=this.Xg.fov*(1-h)+this.qg.fov*h;f.D.Xd();h=parseInt(b.Rh("__mesh_mb_iter",5));b=parseFloat(b.Rh("__mesh_mb_width",.05));1r&&(r=0);0<=r&&1>=r&&(f.Dn=Sb.Go(r),e&&e.clear(e.STENCIL_BUFFER_BIT),this.Iu())}}}setup(){const a=this.o;this.wd||this.Qd||this.ed||a.yk(!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.Fl=b;"mesh"!=this.type&&this.Cs();b=new Date;a.O!=a.Va&&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.Qd=!0,this.Lb=Math.sin(a.Gd()/2*Math.PI/180)/Math.sin(this.el/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.yn=b.be();this.zn=b.Bf();this.Ui=b.Gd();this.me=b.Z();if(1==this.Vc||3==this.Vc)b.Jb(this.cl);else if(2==this.Vc)b.Jb(this.al);else if(4==this.Vc){let f=0;for(var e=0;ex;x++)r.Ee(120,0),r.ke(360*x/64),w.Ee(60,0),w.ke(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.Fn=f.length;b.bufferData(b.ARRAY_BUFFER,new Float32Array(e),b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.En);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.Jq;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.Za),kb.perspective(e.Eb(),a.Xa.width/a.Xa.height,.001,10,this.Za),b.uniformMatrix4fv(b.getUniformLocation(h,"matProject"),!1,this.Za),b.uniform2f(b.getUniformLocation(h,"uCanvasDimensions"),a.Xa.width,a.Xa.height),e=b.getUniformLocation(h,"alphaBlend"),b.uniform1f(e,this.hl),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.Sk(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.Qk),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.En),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.Fn,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.Fm=this.ud=!1;this.Sa=this.Ca=this.ya=0;this.fov=70;this.Xc=0;this.ti=100;this.mk=0;this.autoplay=this.zg=this.Gf=!1;this.ad="";this.o= null;this.Ip=!1;this.id=this.Kp="";this.u=this.pan=0;this.o=a;this.$c=this.kc=100;this.Kc=1}wb(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)}In(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.Sa(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.hd=Math.sqrt(b)*this.va*this.level*a.fa,this.ld=Math.sqrt(b)*this.va*this.level*a.fa,this.jd=Math.sqrt(1-b)*this.va*this.level*a.fa,this.kd= 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.hd=r*this.va,this.ld=r*this.va,this.kd=this.jd=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.hd=y*this.va,this.ld=w*this.va):(this.hd=w*this.va,this.ld=y*this.va);2*Math.abs(h)h?h>-this.Hb?0:h+this.Hb:h{a.re()}).catch(()=>{a.j.pause();a.Br&&(a.j.muted=!0,a.j.play())})}wn(){1!=this.Qf||this.yd||!this.Bd||2!=this.mode&&3!=this.mode&&5!=this.mode||(this.Bd.connect(this.Cb,0),this.Bd.connect(this.Db,0))}Gi(){const a=this.o.ga;this.Ma|| this.Jm||(this.lb?(this.lb.gain.setValueAtTime(this.hd,a.currentTime),this.Db.gain.setValueAtTime(this.ld,a.currentTime),this.Bb.gain.setValueAtTime(this.jd,a.currentTime),this.Cb.gain.setValueAtTime(this.kd,a.currentTime)):this.Ab&&this.Ab.gain.setValueAtTime((this.hd+this.ld)/2,a.currentTime+1))}qr(){this.ta&&this.stopped?this.stopped=!1:0==this.loop?this.ta?(this.Rb=null,this.Vd()):this.j.play():0a.loop&&(a.j.preload="none")),a.ad&&""!=a.ad&&(a.j.style.ad="url('"+b.Ha(a.ad)+"')", a.j.style.webkitMaskImage="url('"+b.Ha(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.gb=a.loop-1),e&&(this.yd=!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.Gn()),b.V.push(this),b.ej?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.jw()}, !1)}catch(f){}}Wd(){this.j.poster=this.o.Ha(this.o.Ja(this.poster));super.Wd()}registerElement(a,b){this.ud=!0;this.j=b;this.id=a;this.level=1;this.o.V.push(this)}Ve(){let a=this.o;a.ej&&(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"}jw(){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.Wj&&17==parseInt(b.Ob)&&this.Vq(eb.SRGBColorSpace,eb.LinearSRGBColorSpace);n.outputColorSpace=this.Qn;n.setPixelRatio(window.devicePixelRatio);this.xb=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.oj=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.Un(0);this.Un(1); n.visible=!1;e=this.$e=new eb.Group;e.name="skinGroup";e.translateZ(this.Xf);e.visible=!1;e.renderOrder=1E3;h.add(e);e=this.Cc=new eb.Group;e.name="toggleSkinGroup";e.translateZ(this.Xf+.1);e.position.y=0==this.Ek?3.17:-3.17;e.renderOrder=1100;e.visible=!1;h.add(e);h.add(n);h=(new eb.TextureLoader).load(b.Ha("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.Wf.material.opacity=w};e.visible=!0;this.Wf=e;this.Cc.add(e);h=(new eb.TextureLoader).load(b.Ha("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.Cg.material.opacity=w};e.visible=!1;this.Cg=e;this.Cc.add(e);this.Ng=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.Id=new eb.Group;this.Id.name="hotspotGroup";this.pg=new eb.Group;this.pg.name="elementGroup";this.jg=new eb.Group;this.jg.name="centerGroup";b.Lc||(this.jg.renderOrder=2E3);this.Se.add(this.pg);this.Se.add(this.Id);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.ql=b;this.jg.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!")}Un(a){const b=this,e=b.an;var f=b.xb;this.zl||(this.zl=new eb.sw,this.Lp=new eb.tw);let h=f.xr.getController(a);h.addEventListener("selectstart",function(){-1==b.Uj&&b.xq()});h.addEventListener("selectend",function(r){b.wq(r)});h.visible=!1;h.userData.pj=a;this.oj.add(h);h.add(this.line.clone());var n=f.xr.getControllerGrip(a);n.add(this.zl.uw(n));e.add(n);f=f.xr.getHand(a);n=this.Lp.vw(f);f.add(n);f.addEventListener("pinchstart", ()=>{b.Uj=a;b.Gm=Date.now();b.xq();b.Vi.identity().extractRotation(h.matrixWorld);const r=b.Dq;r.origin.setFromMatrixPosition(h.matrixWorld);r.direction.set(0,0,-1).applyMatrix4(this.Vi)});f.addEventListener("pinchend",r=>{b.Uj=-1;b.wq(r)});e.add(f);this.controller[a]=h}mr(){var a=this.o;a.G("vrchanged",{});a.G("playerstatechanged",{})}Iv(){this.lm=!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)}}Hj(){return this.$e}Me(){return this.Aj}Bg(){return this.lm}zu(a){let b=this;this.hj();a.addEventListener("end",function(){b.yu()});a.addEventListener("inputsourceschange",()=>{});console.log("XR Session started.");this.xb.xr.setSession(a);this.Aj=!0;this.session=a;b.o.G("entervr",{session:a})}yu(){console.log("XR Session ended.");this.Aj=!1;this.session=null;this.wl()}rg(a){let b=this.o;if(this.lm&&!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.wl()})}this.Id&&this.Id.translateY(-this.Lj);this.Lj=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.xb.xr.setFramebufferScaleFactor(this.De);b.Yb("Enter VR - scaled "+this.De)}else this.hj(), this.o.G("entervr",{session:null})}Cu(){const a=this.o;a.Ff()&&this.xb&&(a.ef=!0,a.Mb&&(Db=2E3),a.Xh&&(Db=2E3),a.T.style.display="none",a.Ka.style.display="none",this.xb.domElement.style.display="inline",a.G("vrchanged",{}),a.G("playerstatechanged",{}))}wl(){const a=this.o;a.Ff()&&this.xb&&(a.ef=!1,a.T.style.display="inline",a.Ka.style.display="inline",this.xb.domElement.style.display="none",this.o.fr(!1),a.Tg(0),a.fd(),a.update(),a.G("vrchanged",{}),a.G("playerstatechanged",{}),this.o.G("exitvr", {session:null}),this.so())}sg(){null!=this.session&&this.session.end()}Ir(){this.Me()?this.sg():this.rg()}Os(){let a=0,b=this.o.D.M,e;e=1536;this.xb&&(e*=this.De);e*=Math.pow(2,0);if(0=a+2&&!b.levels[a+1].Mg&&b.levels[a+1].width>e;)a++;return a}zp(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.Ha(e)}ceilPowerOfTwo(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))}iq(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.Jp=!0;a.Ge&&a.Ge.Jp&&(a.Sh.visible=!0,a.Ge.Sh.visible=!0)});this.Mj.push(a)}hj(){const a=this.o;if(a.Ff()){var b=a.D;if(!this.ol){var e=this.Hf,f=this;this.Uf();this.camera.layers.enable(1);e.setRotationFromEuler(this.uq);e.rotateX(b.qb.pitch*Math.PI/180);e.rotateZ(-b.qb.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.zp(a.qd()), 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.qb.Y*Math.PI/180);h.rotateX(-b.qb.pitch*Math.PI/180);h.rotateY(-90*Math.PI/180);e.add(h);f.pk=h;f.ol=!0;setTimeout(function(){f.ol=!1;f.js();a.B.j?f.ms():f.ks();f.hs();f.Mi&&(f.Mi=!1,a.G("vrconfigloaded",{}))});this.Vu();this.Zm=!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.Id;new lb(0,0,-100);let e=a.P.Lk;for(let x=0;x=y.distance?5:1>y.distance?1:5>y.distance?y.distance:5;y.od?(n=(new eb.TextureLoader).load(y.od),n.colorSpace=this.Dc,f=new eb.MeshBasicMaterial({map:n}),y.ag?(n=2*z*Math.tan(y.fov/2*Math.PI/180),h=new eb.PlaneGeometry(n,n*y.Cd/y.uf,1,1),f.transparent=!0,f.opacity=1):(h=new eb.PlaneGeometry(.005*y.uf,.005*y.Cd,1,1),f.transparent=!0,f.opacity=.25),n=.005*y.Cd/2,f.side=eb.DoubleSide,f=new eb.Mesh(h,f)):(f=new eb.SphereGeometry(.2*this.Il,16,16),h=(new eb.TextureLoader).load(this.zp(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.Yi||(this.Yi=document.createElement("canvas"),this.Yi.width=h.width,this.Yi.height=h.height);let ab=this.Yi.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())}Uf(){eb&&(this.Mj=[], this.Fh(this.Hf),this.Fh(this.Id),this.Fh(this.pg))}Bu(){if(eb){var a=this.camera;a.aspect=window.innerWidth/window.innerHeight;a.updateProjectionMatrix();this.xb.setSize(window.innerWidth,window.innerHeight)}}xq(){if(eb){var a=this.o;if(0Math.PI/4?Math.abs(e.x)+Math.abs(e.z)> Math.abs(e.y)&&this.Gma.clientX&&50>a.clientY&&b.sg();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.kq=this;this.xb&&this.xb.setAnimationLoop(function(){a.render();a.o.Pr()})}render(){if(eb){var a=null;try{a=this.xb.xr.getCamera()}catch(n){}!this.Xk&&a&&(a.add(this.jg),this.an.add(a));if(this.Xk=a)this.Id.translateY(a.position.y-this.Lj),this.Lj=a.position.y;var b=this.kq,e=b.o;if(e.ef){b.bg=!0;b.controller.forEach(n=>{n.visible&& (b.bg=!1)});var f=this.Qt();this.Rt();this.pk&&0this.Yk?this.ek||(this.ek=!0,this.hu=new Date):(this.ek=!1,!this.ug&&!this.Cc.visible|| this.yj||(this.yj=!0,this.Nl=new Date),this.ug=!1),this.ek&&!this.ug&&!this.Cc.visible&&500<(new Date).getTime()-this.hu.getTime()&&(this.ug=!0,this.Nl=new Date),this.ug?(this.Cc.visible=!0,h=((new Date).getTime()-this.Nl.getTime())/5,100<=h?(this.Ii(1),this.ug=!1):this.Ii(h/100)):this.yj&&(h=((new Date).getTime()-this.Nl.getTime())/5,100<=h?(this.Ii(0),this.yj=!1):this.Ii(1-h/100)));this.Zm&&(this.Qg(this.On-e.D.pan.m),this.Zm=!1);e.jn(this.On-this.Rf,this.Yk,180*f.z/Math.PI);e=this.jg;b.bg?a&&(e.visible= !0):e.visible=!1;e=this.Cc;a&&!this.$e.visible&&(e.translateZ(-(this.Xf+.1)),e.rotateY(-this.Cn),f=new eb.Vector3(0,0,1),f.applyEuler(a.rotation),this.Cn=Math.atan2(f.x,f.z),e.rotateY(this.Cn),e.translateZ(this.Xf+.1));b.xb.autoClear=!0;b.xb.render(b.an,b.camera);0==this.li||isNaN(this.li)||this.Qg(this.li)}}}Qt(){function a(x,y){if(b.Vb[x].buttons[y].pressed){if(!b.pl.get(x+"_"+y))return b.pl.set(x+"_"+y,!0),!0}else b.pl.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.bg=!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.Qg(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.Zj[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.nd=r.createBuffer();r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this.nd); 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.de++;e.Tf=null;e.Of=null;e.Np=!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.Ha(a.Bh[h]);e.Tf=f;f.addEventListener&&f.addEventListener("load",this.gm(e),!1);a.md.push(f)}this.fb.push(e)}for(e= 0;6>e;e++)a.Ah[e]&&(f=new Image,f.crossOrigin=a.crossOrigin,f.src=a.Ha(a.Ah[e]),f.addEventListener?f.addEventListener("load",this.gm(this.fb[e]),!1):f.onload=this.gm(this.fb[e]),this.fb[e].Of=f,a.md.push(f));for(f=0;fa;a++)this.Wg(a),b.bindBuffer(b.ARRAY_BUFFER,this.rj),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.fb.length&&this.fb[a].loaded&&(b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,this.fb[a]),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.nd),b.uniform1i(this.R.Rg,0),b.uniformMatrix4fv(this.R.ni,!1,this.Aa),b.uniformMatrix4fv(this.R.Re, !1,this.Za),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0))}}Nr(){let a=this.o;var b=this.D;b.M.nk&&6>16&255)/255,(b>>8&255)/255,(b>>0&255)/255,1))}Wg(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.qb&&(kb.rotate(this.Aa,-e.qb.pitch*Math.PI/180, [1,0,0]),kb.rotate(this.Aa,e.qb.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])}Pv(a){let b=this;return function(){b.Hl.push(a)}}Hs(a){function b(){a.Fb=f.createTexture();e.o.de++;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.La=!0;e.o.Eh=!0;a.loaded=!0;a.Tm=0;a.Ue=0;let f=e.o.N;this.Do();null!=a.M&&a.M.complete&&("decode"in a.M?a.M.decode().then(()=>{a.M&&(a.ub=document.createElement("canvas"),a.ub.width=a.M.width,a.ub.height=a.M.height,a.Yd=a.ub.getContext("2d"),a.Yd&&a.Yd.drawImage(a.M,0,0),b(),a.Yd&&(delete a.Yd,a.Yd=null))}):b());e.o.update(2)}Do(){this.D.Xi&&this.D.Xi--}Is(){let a=2;for(;0r;r++){let w=new Hb(r);w.ub=document.createElement("canvas");b.o.pa?(w.ub.width=h.width+2*n,w.ub.height=h.height+2*n):(w.ub.width=f.W+2*n,w.ub.height=f.W+2*n);w.Yd=w.ub.getContext("2d");w.ub.style[b.o.Ae+"Origin"]="0% 0%";w.ub.style.overflow="hidden";w.ub.style.position="absolute";w.M=a;let x=h.width+2*n,y=h.height+2*n;w.Yd&&w.Yd.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.de++;z.bindTexture(z.TEXTURE_2D,w.Fb);try{z.texImage2D(z.TEXTURE_2D,0,z.RGBA,z.RGBA,z.UNSIGNED_BYTE,w.ub)}catch(cb){}z.bindTexture(z.TEXTURE_2D,null);z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,0)}b.o.jh&&(w.ub.Hw=-1,b.o.ia.insertBefore(w.ub,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.Ik(null)}}catch(h){}b.o.update(2)}}Gr(a){let b=this; return function(){b.o.La=!0;b.o.Eh=!0;b.Do();a.M=null}}nw(){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.Za);kb.perspective(b.Eb(),a.Xa.width/a.Xa.height,.1,100,this.Za);h.uniformMatrix4fv(this.R.Re,!1,this.Za);b.bw();b.jq();var n=b.Oo();var r=f.length-1;for(b.oe=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.fq=cb}}r--}for(e=0;6>e;e++)if(w=b.cube.yf[e],w.Xb)for(x=w.si,this.Wg(e),h.uniform1i(this.R.Rg,0),h.uniformMatrix4fv(this.R.Re,!1, this.Za),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.nd),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.qb&&(gb.ke(x.qb.Y),gb.bc(-x.qb.pitch));gb.Sc(-x.pan.m);gb.bc(x.u.m);gb.ke(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.Ap(db,b,w.Z());0!=w.Ic()&&1>ab&&(fb=this.Ap(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.yg[a.em++]= y.width/2+b.x*y.width/2;a.yg[a.em++]=y.height/2-b.y*y.width/2}this.Fv(a,h)}Ap(a,b,e){let f=!0;switch(e){case 0:case 4:e=1/(a.z*this.Sm);b.x=-a.x*e;b.y=a.y*e;0n;n++)isNaN(a.yg[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.yg[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.Fk=!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.Ni(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.yg),h.DYNAMIC_DRAW),h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,this.Ot),h.bufferData(h.ELEMENT_ARRAY_BUFFER, new Uint16Array(y.mb),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.Wg(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.Zf?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.fb[x].Of)||void 0===a?0:a.complete)?this.qj[x]||(w=!0):n=!1,(null===(b=this.fb[x].Tf)||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.ng=0;this.hb||(this.hb=f.createTexture(), e.de++);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.fb[x].Of.complete?this.qj[x]||(r.drawImage(this.fb[x].Of,-a,-a),f.texImage2D(f.TEXTURE_CUBE_MAP_POSITIVE_X+w,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,b),this.qj[x]=!0):(r.drawImage(this.fb[x].Tf, -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].Mg&&h--;var n=512;a.Zh?n=2<=a.devicePixelRatio?512:256:!a.Pg&&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.de++);r=e[h];this.ng>h&&(this.ng=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.fb[a].Tf.complete)return!1;return!0}Xm(){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.ak-r.ak});this.ye.length>b.Fr;)e=this.ye.pop(),e.Fb&&(f.deleteTexture(e.Fb),a.de--,e.Fb=0),e.M=null,e.Ef&&(f.deleteBuffer(e.Ef),e.Ef=0),delete e.level.Oa[e.id]}fw(){let a=this.o;if(a.N){var b=this.o.N,e=this.D,f;for(f=0;fb;b++)this.Wg(0),e.bindBuffer(e.ARRAY_BUFFER,a.B.Uk),e.vertexAttribPointer(this.R.la,3,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,a.B.Wi),e.vertexAttribPointer(this.R.Ea,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a.B.Oj),e.uniform1i(this.R.Rg,0),e.uniformMatrix4fv(this.R.ni, !1,this.Aa),e.uniformMatrix4fv(this.R.Re,!1,this.Za),e.drawElements(e.TRIANGLES,36,e.UNSIGNED_SHORT,0)}}dw(){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.ie,"uAlpha");f.uniform1f(y,w.fc*x);f.vertexAttribPointer(this.ie.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)}}}}}cw(){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.wg);var h=f.getUniformLocation(this.wg, "uRect");f.uniform2f(f.getUniformLocation(this.wg,"uCanvasDimensions"),a.H.width,a.H.height);f.activeTexture(f.TEXTURE0);f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.nd);var n=f.getAttribLocation(this.wg,"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.oe=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.Kd=bb.$-1,fb.Ld=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.Kd=Math.min(Math.max(0, Math.floor(z)),bb.$-1),fb.Ld=Math.min(Math.max(0,Math.floor(cb)),bb.sa-1));gb[db]=fb;let ib=!0;for(z=fb.fy;z<=fb.Ld;z++)for(y=fb.fx;y<=fb.Kd;y++){cb=y+z*bb.$;let hb=bb.Oa[cb];hb||(hb=new Hb(cb),bb.Oa[cb]=hb);this.xj()?hb.M||(this.ck(hb,bb,b.bh(0,db,y,z)),a.La=!0):b.oe++;hb.M&&hb.M.complete||(ib=!1);hb.visible=!0}fb.fq=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.Ld;z++)for(y=b.fx;y<=b.Kd;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.nd),f.bindTexture(f.TEXTURE_2D,bb.Fb),this.Ni(f),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0)));db--}this.Xm()}}Uf(){let a=this.o.N;if(a&&this.fb)for(;0e.va&&(e.va=a)}1==a&&clearInterval(this.Jv)}}class wd{constructor(a){this.ei=[];this.yc=[];this.ic=[];this.Ac=[];this.kn=!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.$d=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.$d);a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),a.STATIC_DRAW); this.$d.itemSize=3;this.$d.numberOfItems=4;this.vg=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,this.vg);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.vg.itemSize=3;this.vg.numberOfItems=h;this.Qq=a.createTexture();a.bindTexture(a.TEXTURE_2D,this.Qq);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.vb),a.vertexAttribPointer(this.Fc.la,this.o.F.vb.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.Zi?a.drawingBufferWidth/a.drawingBufferHeight:a.drawingBufferWidth/a.drawingBufferHeight/(x/y)),a.drawArrays(a.TRIANGLE_STRIP,0,this.o.F.vb.numberOfItems)); if(0!=Number(ab.type)&&!this.o.F.Zi){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.vg),a.vertexAttribPointer(this.Ba.la,this.vg.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.vg.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.$d),a.vertexAttribPointer(this.Ba.la, this.$d.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.$d.numberOfItems))}if(0ib&&(ib=0),this.o.pa&&(a.useProgram(this.Ib),a.activeTexture(a.TEXTURE0), a.bindTexture(a.TEXTURE_2D,this.Qq),a.bindBuffer(a.ARRAY_BUFFER,this.$d),a.vertexAttribPointer(this.Ib.la,this.$d.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.$d.numberOfItems))}this.o.pa&&(a.useProgram(this.o.D.Ig.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.od?(n=b.od,e.setAttribute("style","position: absolute; width: "+b.uf+"px; height: "+b.Cd+"px; top: -"+b.Cd/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.kk(a.Ja(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.Lk;r.enabled&&""!=b.title&&(f=document.createElement("div"),n="position:absolute;",n=b.od?a.Xl()?n+("top: -"+(b.Cd/2+20)+"px;"):n+("top: "+b.Cd/2+"px;"):a.Xl()?n+"top:\t -50px;":n+"top:\t 20px;",n=r.gj?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.Mk,r.Kk),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.lj+"px",f.style.borderRadius=r.ml+"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].Sa(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].Sa(e*Math.PI/180);r.Xb=0a;)a+=360;for(;180a;)a+=360;for(;180a&&(this.fov.mode=Number(a),this.Xd(),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}Ej(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}$a(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.yq=e?Number(e):1,this.lk!=a||this.Dm!=f)this.lk=a,this.Dm=f,this.Ig.Pj()}Z(){return 0==this.lk?4:this.lk}Ic(){return this.Dm}Qh(){return this.zq}Fj(){return this.yq}aspect(){return this.o.H.width/this.o.H.height}Zp(){return 4==this.Z()&&0==this.Ic()}Eb(a,b){a||(a=this.fov.m);b||(b=this.Z());return this.mg(b, 1/this.Qo(this.o.H),a)}mg(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}Vl(a,b){a||(a=this.Eb());b||(b=this.Z());return this.mg(b,this.aspect(),a)}Ul(a,b){a||(a=this.Eb());b||(b=this.Z());let e=this.aspect();e=Math.sqrt(1+e*e);return this.mg(b,e,a)}ko(a){var b;b||(b=this.Z());return this.mg(b,this.Qo(this.o.H),a)}Qo(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.ko(a))}en(a){let b=this.Z(),e=1/this.aspect();this.Ji(this.mg(b,e,a))}cn(a){let b=this.Z(),e=this.aspect();e=1/Math.sqrt(1+e*e);this.Ji(this.mg(b,e,a))}Xd(){if(!this.o.ef){var a=this.Km;a.pan=this.pan.m;a.u=this.u.m;a.fov=this.fov.m;this.lg(a);this.lg(a);this.lg(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})}}lg(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.ko(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.pan this.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.vm-1-b,r=this.M.wm,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.Mq;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.Ha(r)}Bt(a,b,e){e.fx=a.width/this.M.W*b.Lh;e.fy=a.height/this.M.W*b.Mh;e.Kd=a.width/this.M.W* b.gi;e.Ld=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.Kd=Math.min(Math.max(0,Math.floor(e.Kd)),a.$-1);e.Ld=Math.min(Math.max(0,Math.floor(e.Ld)),a.sa-1)}bw(){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.qb&&(f[b].Sa(this.qb.Y*Math.PI/180),f[b].ya(-this.qb.pitch*Math.PI/180)),f[b].Sc(-this.pan.m),f[b].bc(this.u.m),f[b].ke(this.Y.m);f=this.o.vl(f);a.Xb=0=a+2&&!this.M.levels[a+1].Mg&&this.M.levels[a+1].width>f;)a++;return a}Ku(){if(this.o.K.Sq&&this.o.K.lc){var a=this.Km;a.pan=this.pan.m;a.u=this.u.m;a.fov=this.fov.m;this.lg(a);this.lg(a);this.lg(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.$m=.3;this.update()}else this.o.qa.$m=0}else this.Xd();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.El=new lb;this.crossOrigin="anonymous";this.de=this.fg=0;this.ds={};this.Zf=this.oc=!1;this.oa={start:{x:0,y:0},na:{x:0,y:0},he:{x:0,y:0},m:{x:0,y:0},ma:{x:0,y:0}};this.U={bd:!1,pd:!1,Sj:function(){return this.pd||this.bd},Po:0,startTime:0,start:{x:0,y:0},na:{x:0,y:0},he:{x:0,y:0},m:{x:0,y:0},ma:{x:0,y:0},ui:!1,Zg:null};this.Ce=this.Zd= !0;this.qa={enabled:!0,na:{x:0,y:0},ma:{x:0,y:0},$m:0,fov:{active:!1,jc:0,center:{enabled:!1,x:0,y:0}}};this.ob={alpha:0,beta:0,gamma:0,orientation:0,Rf: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,Eg:!1,Hk:!0,Gk:!1,level:1,Be:"loop",Jk:"",j:null,An:!1,texture:null,Uk:null,Wi:null,Oj:null,format:1,Th:0,flipY:1,gb:function(){return 0},bn:function(){},loop:function(){return!1}};this.control=this.T=this.Gc=this.Ka=this.ia=null;this.md= [];this.La=!1;this.ze=1;this.aa=null;this.se=this.hf=this.ee=!1;this.th=0;this.Sd=.02;this.jl=0;this.kl=!1;this.il=this.jj=this.uh=this.gf=this.co=0;this.ao=-1;this.vc="";this.Ym=this.We=!1;this.Ah=[];this.Dl="";this.Bh=[];this.dh=this.bf=1;this.Pg=!1;this.A={enabled:!1,timeout:5,active:!1,Yg:!1,speed:.4,Nk:0,Qp:!1,ik:0,tq:!0,Hg:"",sq:!1,cg:!1,gd:!1,kj:"",to:!1,Td:"Animation01",gg:!1,gk:!1,xn:!1,startTime:0,sd:0,Jh:!1,sj:!1,bk:0,Jd:0,ci:0,di:0,bi:0,cq:0};this.I={active:!1,aborted:!1,speed:.1,pan:0, u:0,Y:0,fov:70,Ui:70,ci:0,di:0,eq:0,bi:0,rb:0,xi:0,lastTime:0,Kn:!1,Gg:!1,$n:0,Zn:0,Nj:!1};this.Vk=null;this.um=0;this.xe=[];this.bo={};this.qc={};this.Oc={};this.Fg={};this.L=[];this.nr=!1;this.X=[];this.V=[];this.Ya=[];this.Qb=[];this.df=[];this.bb=[];this.za=[];this.Yf=[];this.Te=this.Sb=null;this.da=[];this.Du={target:0,current:0,Ad:.01,delay:2,Kl:0,tj:!1,ps:!1};this.K={fi:!1,gu:!1,pc:!1,Pe:!1,lc:!0,Vp:!1,pn:1,Sq:!1,qe:!0,Gl:!0,xl:!0,yl:!0,uo:!1,Kj:!1,Tq:!0,sensitivity:8};this.Eh=!0;this.ej=this.kh= this.jh=this.ef=this.Ln=this.pa=!1;this.hw=!0;this.im=this.iw=!1;this.Ql=!0;this.mh=this.fm=this.hm=!1;this.Xr=!0;this.Tb="";this.Hc="transition";this.Ae="transform";this.wj="perspective";this.Xa={width:0,height:0};this.To=new lb;this.So=new lb;this.Uo=new lb;this.Vo=new lb;this.Ro=new lb;this.rd=!1;this.Uc=this.bq=this.ua="";this.Wk=[];this.Am=[];this.dm=!1;this.dj=!0;this.ha=this.F=null;this.yh=!1;this.ab=null;this.Da={enabled:!1,speed:1,running:!1,finished:!0,Ed:{pan:0,u:0,fov:0,rb: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.qk(f[0])-0;for(x=0;xw&&(w=0),1n||ab.push(f[z]),ab.push(y);n=r}return ab};this.Km=new Gb;this.Pk=1;this.$j=-1;this.hk=1;this.Rl=this.Ll=this.Rm=this.sk=0;this.aq=!1;this.Fd=!0;this.Cv();this.Rn="aHR0cHM6Ly9wYW5vMnZyLmNvbQ==";this.Sn="Q3JlYXRlZCB3aXRoIFBhbm8yVlI="; this.im=pb();this.pa=qb();this.jh=this.im;this.pa&&(this.jh=!1);this.We=!0;this.Ym=!1;if(this.Lc||this.Wh)this.cr(80),this.D.Bn=2;var e="Pano2VR player "+this.bm();this.Ff()&&(e+=", THREEjs "+eb.REVISION);this.Mp()&&(e+=", HSL.js");e+=", "+(this.im?"CSS 3D available":"CSS 3D not available");e+=", "+(this.pa?(this.Ln?"WebGL2":"WebGL")+" available":"WebGL not available");this.Yb(e);this.addListener("languagechanged",()=>{this.us();this.vs()});document.addEventListener("visibilitychange",()=>{});this.Va= new Rb(this);this.Va.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.Al()}$a(a,b,e){this.D.$a(a,b,e)}Z(){return this.D.Z()}Qh(){return this.D.Qh()}Ic(){return this.D.Ic()}Fj(){return this.D.Fj()}sl(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.uk||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)}}cr(a){this.D.ji=a}dt(){return this.rd}st(){return this.rd?this.rp().length:1}bt(){return this.A.active}Oh(){return this.isLoaded}jp(){return!this.isLoaded}ae(){return this.D.ae()}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.Pg&&(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.Ka&&(this.Ka.style.position="absolute",this.Ka.style.display="inline",this.Ka.style.width=n+"px",this.Ka.style.height=r+"px", this.Ka.width=n*e,this.Ka.height=r*e),this.N&&(this.Xa.width=n*e,this.Xa.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.ee&&(this.La=!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.gw();this.aa&&this.aa.ggUpdateSize&&this.aa.ggUpdateSize(a,b);this.G("sizechanged",{w:a,h:b});this.G("playerstatechanged",{})}}catch(n){}}fd(){this.Sr();this.Li(this.container.offsetWidth,this.container.offsetHeight)}oo(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",{})}Fp(){return 1==this.K.lc?1:0}ws(a){this.Nc&&(this.Nc.kn=0==a?!0:1==a?!1:!this.Nc.kn,this.update())}wp(){return this.P.mode}po(){this.G("viewstatechanged", {})}Gp(){return 0}kt(a){return"_firstmap"==a?"web":"_firstfloorplan"==a?"file":(a=this.qc[a])?a.type:"web"}jt(a){"_firstmap"==a?a=this.fp():"_firstfloorplan"==a&&(a=this.Bj());return(a=this.qc[a])?a:{}}fp(){let a="";for(let b in this.qc){let e=this.qc[b];"web"==e.type&&1E4>e.index&&(a=b)}return a}Bj(){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.Bj());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.Mm;ab.pyp=ab.Nm;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.Lg=[],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.Lg=w}}-1!=r&&(this.L[r].closestToCenter=!0);this.G("hotspotsupdated",{})}cp(){let a=[];for(let b=0;b{b.N=null;e.preventDefault();b.Yb("Pano2VR: Context lost")});b.Ka.addEventListener("webglcontextrestored",e=>{e.preventDefault();b.Tp();b.Yb("Pano2VR: Context restored")});return b.Tp()}Tp(){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.Pg&&(f=1);a.ia.style.width=b+"px";a.ia.style.height=e+"px";a.Ka.style.width=b+"px";a.Ka.style.height=e+"px";a.Ka.width=b*f;a.Ka.height=e*f;a.Ka.style.display="none";a.Ka.style.touchAction="none";a.ia.insertBefore(a.Ka,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.Ka;a.G("beforewebglcontext",n);a.N=a.Ka.getContext("webgl2",h);a.N?a.Ln=!0:(a.Ln=!1,a.N=a.Ka.getContext("webgl",h));a.N||(a.N=a.Ka.getContext("experimental-webgl",h));if(a.N){let r=a.N;a.Xa.width=b*f;a.Xa.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.Pj();w.Sp(a.dh);w.Up()});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)}be(){return this.D.be()}tp(){return this.I.pan}Dj(){return this.D.Dj()}ce(){return this.D.ce()}Na(){return this.D.Na()}Nd(a){this.D.Nd(a)}Fi(a){this.D.Fi(a)}wh(a, b){this.D.wh(a,b)}rl(a,b){this.D.rl(a,b)}Bf(){return this.D.Bf()}Ep(){return this.I.u}Od(a){this.D.Od(a)}xh(a,b){this.D.xh(a,b)}tl(a,b){this.D.tl(a,b)}Tg(a){this.D.Tg(a)}Gj(){return this.D.Gj()}Gd(){return this.D.Gd()}Eb(){return this.D.Eb()}Vl(a,b){return this.D.Vl(a,b)}Ul(a,b){return this.D.Ul(a,b)}Xs(){return this.I.Ui}Jb(a){return this.D.Jb(a)}dn(a){this.D.dn(a)}Ji(a){this.D.Ji(a)}en(a){this.D.en(a)}cn(a){this.D.cn(a)}xk(a,b){const e=this.D;if(120{"granted"===b&&(a.ob.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.Kn=!1;var r=this.D,w=a.toString().split("/"); 1e?Number(e):r.fov.m;this.I.speed=!isNaN(f)&&0=r)this.Sg(b,e,f),this.$a(h);else{let w=new Ub;w.eb="__AutoMove";w.af=this.Dj();w.Ri=a.u.m;w.le=a.fov.m;w.Qi=this.Z();w.Pd=b;w.ne=e;w.ah=f;w.me=h;w.og=!1;w.vf=!1;w.wf=!1;0==n&&(w.vf=!0);1==n&&(w.og=!0,w.vf=!0);2==n&&(w.wf=!0);w.speed=r;this.I.Zn=this.S; this.S=this.Wo(w);this.I.$n=(new Date).getTime();this.I.Kn=!0;this.I.active=!0;this.I.aborted=!1;this.I.pan=b;this.I.u=e;this.I.fov=f;this.se=!1}}mq(a){const b=this.D;this.moveTo(b.pan.Ua,b.u.Ua,b.fov.Ua,a)}nq(a,b){let e={};const f=this.D;e.pan=f.pan.Ua;e.tilt=f.u.Ua;e.fov=f.fov.Ua;e.projection=this.Qh();e.timingFunction=b;e.speed=a;this.mi(e)}Vn(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.La=!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.Sa(w.Sa*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.Sa(e.Y.m*Math.PI/180);x.push(y.clone())}x=this.vl(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.Pp(x,a,b))return w}}return null}Jj(){return this.V.length+this.Ya.length+this.Qb.length}cm(a){return athis.Wc&&this.xg();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.ul(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.Hd(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.nj(this.ca.x,this.ca.y);f&&this.Kr(f);e=Math.abs(this.oa.he.x-this.oa.na.x)+Math.abs(this.oa.he.y- this.oa.na.y);700>a-this.ai&&0<=e&&20>e?(f?this.Lr(f):this.K.Gl&&this.Ok(),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.he.x=this.oa.na.x;this.oa.he.y=this.oa.na.y}this.G("playerup",{pan:-Math.round(100*b.pan)/100,tilt:Math.round(100*b.tilt)/100})}}}lq(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.Vp&&(b=-b);a.axis&&(-1==this.$j?this.$j=a.axis:this.$j!=a.axis&&(b=0));let e=0Math.abs(a.wheelDeltaY)&&(b=0);0!=b&&(this.K.qe?(b=this.Cf(),this.mo(e*this.K.pn,{x:a.clientX-b.x,y:a.clientY-b.y},!0)):this.mj(e*this.K.pn,!0),this.update());a.preventDefault();this.ra(!0)}}Wv(a){const b=this.D;var e=a.touches;this.Ur(a);this.cf=this.Sb=null;window.focus();this.km||(this.km=!0,this.G("hastouch",{}),this.G("playerstatechanged", {}));!this.pm&&(this.Zd||this.Ce&&this.Dg)&&7>this.Wc&&this.xg();if(!this.K.pc&&!this.wc){var f=(new Date).getTime();if(this.Te)this.Sb=this.Te,this.U.pd=!0,this.U.startTime=f,a.preventDefault(),this.U.ui=!0,e[0]&&(this.zb=e[0].target);else{if(!this.U.pd&&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.ul(this.ca.x,this.ca.y))&&h.He&&(this.Sb=h);if(h=this.nj(this.ca.x,this.ca.y))this.cf= h,this.vk(h),this.Af(a),this.gh(this.ca.x,this.ca.y,!0);this.$r(e[0].pageX,e[0].pageY);this.U.Po=e[0].identifier;this.U.pd=!0;a.preventDefault();this.U.ui=!0;this.ra(!0);h=this.Hd(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.Iw&&(r=!0);e=!1}f=f.parentNode}f= Math.abs(b.U.he.x-b.U.na.x)+Math.abs(b.U.he.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.Gl){let w=this;setTimeout(function(){w.Ok()},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.he.x=b.U.na.x;b.U.he.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.pd=!1;b.vk(b.Va);b.cf=null}}Tv(a){this.K.pc||this.wc||(this.U.pd=!1);this.cf=null;this.vk(this.Va);this.Af(a);this.gh(-1,-1,!0)}qm(){return null!=this.zb||this.U.pd||this.U.bd}oq(a){!this.Pf&&window.MSGesture&&(this.Pf=new window.MSGesture,this.Pf.target=this.control);this.Pf&&this.Pf.addPointer(a.pointerId)}Yo(a){const b= this.D;this.hm=!0;this.hk=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.hk*=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.hk),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)))}Xo(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.Yj=a.keyCode,this.ra(!0))}du(a){this.Yj&&(this.Yj=0,a.preventDefault())}uu(){this.Yj=0}Au(a,b,e,f){f?(this.Uh.alpha=a,this.Uh.beta=b,this.Uh.gamma=e,this.Uh.gamma+=90):(this.ob.alpha=a,this.ob.beta=b,this.ob.gamma=e,this.ob.gamma+=90);this.ob.orientation=window.orientation?1*parseInt(""+window.orientation,10):0;e=new Cb;a=this.ob;e.Sc(-a.alpha);e.ke(-a.beta);e.bc(-a.gamma); e.ke(90-a.orientation);1>e.Nb?-1this.ob.fadeIn&&(this.ob.fadeIn+=1,h=.1*this.ob.fadeIn);e=-e+this.ob.Rf;this.Nd(h*e+(1-h)*this.be());this.Od(h*a+(1-h)*this.Bf()); this.Xr?this.Tg(h*b+(1-h)*this.Gj()):this.Tg(0);this.Xd();this.I.active=f}}Kh(){return Math.min(1,2*Math.tan(Math.PI*Math.min(this.D.fov.m,90)/360))}Bq(){let a=this;setTimeout(function(){a.Bq()},100);9!=a.sk||a.Qj||window.requestAnimationFrame(function(){a.pi()});10x;)x+=360}f=x-w;this.Na()||(180f&&(f+=360));b.pan.m+=f*this.Sd}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.Sd):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.Sd):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.jj=a:(b=(a-this.jj)/this.il,b=Math.min(1,b),this.$a(this.Z(),this.uh,1-b))):(0==r.Kb||y>r.Kb-.3?this.$a(r.value):this.$a(e,r.value,1-y/r.Kb),this.A.cq=r.value);this.se&&(f=Math.sqrt(f*f+h*h+n*n),.3>f&&(this.se=!1,this.Sd=.02,this.th=0),0this.th&&(this.Sd+=.01,this.Sd=Math.min(this.Sd,1)),this.th= f)}f=Math.floor(a);h=this.Rs(f);for(n=0;ne.Yn)f!=this.ao&&(b=e.zd,this.yb.hasOwnProperty(b)&&(r=this.yb[b].type,0==r?this.Ze(b,e.Mn):1==r?this.Ze(b,e.value):2==r&&this.Ze(b,"true"==e.Mn)));else if(b=this.Wb(this.xp(a,e.sb,e.zd),e.sb,e.zd),b=(r=this.pp(b))?this.Zo(b,r,a):b.value,r=e.zd.split("|"),2==r.length)for(e=r[0],r=r[1],y=0;y=this.bb.length&&(a=0),a=this.bb[a];while(""!=this.A.Hg&&!this.Ph(a).tags.includes(this.A.Hg)&&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.Zn,this.I.rb=0,this.Sg(this.I.pan,this.I.u,this.I.fov),b.pan.Ub=this.I.pan,b.u.Ub=this.I.u,this.I.Gg&&(this.I.Gg=!1,this.A.gk=!0,this.A.gd=!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.qe&&b.fov.Yc.enabled?this.xk(b.fov.m+b.fov.d,b.fov.Yc):b.fov.m+=b.fov.d;0!=this.I.rb&&(this.I.rb!=this.Z()?(e=this.Nh(this.I.rb), this.Gd()>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.$a(this.I.rb,this.Z(),0),this.I.xi=0,this.da.forEach(y=>{y.Pj()}))):1>this.I.xi?(this.I.xi=Math.min(1,this.I.xi+.05*e),this.$a(this.Z(),this.Ic(),this.I.xi)):(this.$a(this.Z(),0,0),this.I.rb=0,this.da.forEach(y=>{y.Pj()})))}this.Jf=a.getTime();this.update()}else if(this.A.active&&!this.F.wd){e=a.getTime()-this.A.startTime;this.A.bkthis.B.j.duration-this.B.j.currentTime&&(this.kl=!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.eb!=this.S.qq||this.S.pq!=this.ua)&&e>=this.S.length){this.Ki(this.S.length);this.A.Jd=0;this.hf=!1; if(this.Da.running){this.Xq();return}f="";if(this.A.to){b=0;do e=this.bo[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.qq,e=this.S.pq,f=this.S.qu;this.vc==this.S.eb&&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.Gg=!0;this.mi(b);this.A.active=!0}}else 0=1E3*this.A.ik?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.sd=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.Sj()||0==b.pan.d&&0==b.u.d&&0==b.fov.d||(this.I.Nj=!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.qe&&b.fov.Yc.enabled?this.mo(b.fov.d, b.fov.Yc):this.mj(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.Fq()||(e=!1)});e||(b.ed=!0)}else"videopano"==b.delay&&this.B.j&&!this.B.Eg&&(b.ed=!0);b.ed||this.Ik(a)}Ik(a){a||(a=new Date);let b=this.F; b.ed=!1;b.wd=!0;b.Ud=this.A.gd;b.tn=a.getTime()+100;0==b.Vc||b.ph||this.rn();this.G("transitionstarted",{})}rn(){let a=this.F;4==a.Vc?(this.S=this.Sl(!0,a.yn,a.zn,a.Ui),this.vc=this.S.eb,this.A.active=!0,this.Da.running=!0):this.moveTo(a.yn,a.zn,a.Ui,a.qh,0,a.me)}Lu(a){var b=this.F;if(!b.Mi){if(b.Qd){var e=(a.getTime()-b.gs)/(1E3*b.fs);1<=e?(b.Em(1),b.Qd=!1,this.No(),this.qn(),this.Mr(a)):0<=e&&b.Em(e)}else b.wd&&(e=(a.getTime()-b.tn)/(1E3*b.tf),1<=e?(b.wd=!1,this.G("transitionended",{}),this.Jf= a.getTime(),this.update(),0!=b.Vc&&b.ph&&this.rn(),4!=b.Vc&&(this.yk(!1),this.A.active=b.te,this.A.gd=b.Ud,this.G("autorotatechanged",{}),b.te=!1,b.Ud=!1),this.A.sd=0,this.ha&&this.Al(),this.yh=!1):0<=e&&("mesh"==b.type?this.da[0].D.Na()||this.da[1].D.Na()?b.tn=1:b.Hu(e):b.Em(e)));b=this.Du;b.ps&&(b.tj?a.getTime()-b.Kl>=1E3*b.delay&&(b.tj=!1):(b.current+=b.Ad,0>b.current&&(b.current=0,b.Ad=-b.Ad,b.tj=!0,b.Kl=a.getTime()),1b.Tc[a]?(b.Tc[a]+=.05,b.vd[a]b.Tc[a]&&(b.Tc[a]=b.vd[a],-1!=b.Dk.indexOf(b.Bc[a])&&(b.Dk.splice(b.Dk.indexOf(b.Bc[a]),1),b.Bc.splice(a,1),b.vd.splice(a,1),b.Tc.splice(a,1)))));this.update()}if(2==b.mode)for(a=0;ae.Fa?(e.Fa+=b.Ad,e.kbe.Fa&&(e.Fa=e.kb)),this.update())}3== b.mode&&b.kb!=b.Fa&&(b.kb>b.Fa?(b.Fa+=b.Ad,b.kbb.Fa&&(b.Fa=b.kb)),this.update())}Nu(){var a=this.D;let b=this.qa;this.U.Sj()&&(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.qe&&b.fov.center.enabled?this.lo(.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.Sj()||(a=.9*(1-b.$m),b.ma.x*=a,b.ma.y*=a,this.I.Nj=!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.ee&&5{e.Is()});this.Jn&&(this.fd(),this.Jn=!1);this.Nu();this.Mu();this.B.j&&this.B.Mc&&!this.hf&&!this.I.Gg&&this.Vk&&(this.S=this.Vk,this.Ki(10*this.B.j.currentTime));this.Ju(b);this.D.Ku();this.Lu(b);this.da.forEach(e=>{e.dw()});(0<=this.P.mode||0=n.gb&&(n.gb=1E7),this.isPlaying(a)&&this.Ti(a),n.ta?n.Vd():(e=n.j.play(),void 0!== e&&e.then(()=>{this.Ug(!0)}).catch(()=>{this.Ug(!1)}),n.yd&&n.re()),this.Hi(n.id,!1))}}catch(h){}return e}Hm(a,b){a=this.Wa(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.Wa(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})}Bk(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.Wa("_main"===a||"_all"===a?".*":a);for(let f= 0;f{this.xg()},500)}zk(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}Ak(a,b,e){let f=this.Wa(a);for(var h=0;h{this.Ug(!0)}).catch(()=>{this.Ug(!1)})}b&&setTimeout(function(){a.ab.Mv()},1E3*this.ab.Kb);e&&(this.ab.Kv=this.ga.currentTime,this.ab.Jv=setInterval(function(){a.ab.Ns()},10))}catch(a){}}No(){for(let a=0;a{f.Uf()});let b=[];for(a= 0;athis.Wc&&0==e.mode||this.Yf.push(e);this.V=b;this.Ya=[];this.Qb=[];this.B.j&&(this.T.removeChild(this.B.j),this.B.j=null,a=this.Wa("_videopanorama"),0=this.bb.length&&(a=0),this.bb[a]):""}yp(a){return 0a&&(a=this.bb.length-1),this.bb[a]):""}gt(){return this.bq}At(){return this.Uc}ru(a){return-1!=this.Wk.indexOf(a)}zs(){this.Wk=[];this.G("changevisitednodes",{})}Qm(a,b){a=a.firstChild;this.df=[];this.bb=[];this.xe=[];this.Ag=!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.rd=!0;if(e=a.getAttributeNode("start"))this.Uc=e.nodeValue.toString();if(e=a.getAttributeNode("hassounds"))this.Ag=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.bb.push(h);for(e=f.firstChild;e;){if("userdata"==e.nodeName){var n=this.tg(e);this.ff[h]=n;h==this.Uc&&(this.ff._first=n);n.customnodeid&&(this.xe[n.customnodeid]=h);this.Oc[h]=this.Jo(e);this.Fg[h]=this.Ko(e);this.eg[h]=this.Lo(e)}if("hotspots"==e.nodeName)for(n=e.firstChild;n;)"hotspot"!=n.nodeName&&"polyhotspot"!=n.nodeName||this.Ml(h,e),n=n.nextSibling;e=e.nextSibling}}if("masternode"== f.nodeName)for(e=f.firstChild;e;){"userdata"==e.nodeName&&(n=this.tg(e),this.ff._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.Lm.push(w)}r=r.nextSibling}this.sm|| this.gn(window.navigator.language)}e=e.nextSibling}"customproperty"==f.nodeName&&this.Io(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.Om(this.df[this.Uc],b,this.da[0].D)}else{this.rd=!1;this.Om(a,b);if(e=a.getAttributeNode("hassounds"))this.Ag=1==e.nodeValue;this.bb.push("")}this.ef&&this.ja.hj();this.Ag&&(this.Wt(),this.vr());this.G("configloaded",{});this.G("changenode", {});this.G("playerstatechanged",{})}Om(a,b,e){e||(e=this.D);this.Xe(this.Va);this.Wm();this.Nc&&this.Nc.Tu();this.Uf();this.Vk=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.Bm=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.Ua=e.pan.m,f=z.getAttributeNode("tilt"),e.u.m=Number(f?f.nodeValue:0),e.u.Ua=e.u.m,f=z.getAttributeNode("roll"),e.Y.m=Number(f?f.nodeValue:0),e.Y.Ua=e.Y.m,f=z.getAttributeNode("fov"),e.fov.m=Number(f?f.nodeValue:70),e.fov.Ua=e.fov.m,f=z.getAttributeNode("projection"),e.zq=Number(f?f.nodeValue:4),this.$a(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.ym=1*f.nodeValue;if(f=z.getAttributeNode("fovfisheye"))e.fov.xm=1*f.nodeValue;if(f=z.getAttributeNode("scaletofit"))this.K.Tq= 1==f.nodeValue}if("flyin"==z.nodeName){if(f=z.getAttributeNode("projection"))e.Zc.rb=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.Nk= 1*f.nodeValue;if(f=y.getAttributeNode("horizonfromdefview"))this.A.Qp=1==f.nodeValue;if(f=y.getAttributeNode("nodedelay"))this.A.ik=1*f.nodeValue;if(f=y.getAttributeNode("noderandom"))this.A.tq=1==f.nodeValue;(f=y.getAttributeNode("nodefilter"))&&!this.A.sq&&(this.A.Hg=f.nodeValue);this.Fd&&(this.A.enabled=!0,this.A.gg=!0,this.A.active=!1);(f=y.getAttributeNode("startloaded"))&&this.Fd&&(this.A.Yg=1==f.nodeValue,this.A.Yg&&(this.A.active=!1));if(f=y.getAttributeNode("useanimation"))this.A.cg=1==f.nodeValue, this.A.gd=this.A.cg;if(f=y.getAttributeNode("syncanimationwithvideo"))this.A.xn=1==f.nodeValue}if("animation"==y.nodeName){if(f=y.getAttributeNode("syncanimationwithvideo"))this.A.xn=1==f.nodeValue;if(f=y.getAttributeNode("useinautorotation"))this.A.cg=1==f.nodeValue;if(f=y.getAttributeNode("animsequence"))this.A.kj=f.nodeValue,this.Fd&&(this.A.Td=this.A.kj);if(f=y.getAttributeNode("clipsrandom"))this.A.to=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.eb=f.nodeValue.toString();if(f=z.getAttributeNode("nodeid"))this.S.Lw=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.qq=f.nodeValue.toString();if(f=z.getAttributeNode("nextclipnodeid"))this.S.pq=f.nodeValue.toString();if(f=z.getAttributeNode("nextclipstartview"))this.S.qu= f.nodeValue.toString();if(f=z.getAttributeNode("transitiontype"))this.S.Zv=Number(f.nodeValue);var cb=z.firstChild;for(this.S.Ia=[];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.Mn=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.sb=Number(f.nodeValue);if(f=cb.getAttributeNode("additionaltrackid"))db.zd=f.nodeValue.toString();if(f=cb.getAttributeNode("additionaltracktype"))db.Yn=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.Ia.push(db)}cb=cb.nextSibling}this.za.push(this.S);"__VideoPano"==this.S.eb&&(this.Vk=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.Fd){if(f=y.getAttributeNode("simulatemass"))this.qa.enabled=1==f.nodeValue;if(f=y.getAttributeNode("rubberband"))this.K.Sq= 1==f.nodeValue;if(f=y.getAttributeNode("zoomcentercursor"))this.K.qe=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.Vp=1==f.nodeValue; if(f=y.getAttributeNode("speedwheel"))this.K.pn=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.Gl=1==f.nodeValue;if(f=y.getAttributeNode("contextfullscreen"))this.K.xl=1==f.nodeValue;if(f=y.getAttributeNode("contextvr"))this.K.yl=1==f.nodeValue;if(f=y.getAttributeNode("contextprojections"))this.K.uo= 1==f.nodeValue;if(f=y.getAttributeNode("hideabout"))this.K.Kj=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.fk.push(cb)),z=z.nextSibling}if("vr"==y.nodeName&&this.Fd){if(f=y.getAttributeNode("toggleskinbutton"))this.ja.Ho=1==f.nodeValue;if(f=y.getAttributeNode("skinbuttonposition"))this.ja.Ek=f.nodeValue;if(f=y.getAttributeNode("defaulthsscale"))this.ja.Il=1*f.nodeValue/ 100}if("transition"==y.nodeName&&this.Fd){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.hg=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.el=1*f.nodeValue;if(f=y.getAttributeNode("zoomafterinfov"))this.F.al=1*f.nodeValue;if(f=y.getAttributeNode("zoomafteroutfov"))this.F.cl=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.ab.enabled=1==f.nodeValue; if(f=y.getAttributeNode("transitiontime"))this.ab.Kb=1*f.nodeValue;if(f=y.getAttributeNode("crossfade"))this.ab.Ao=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.dg=this.tg(y),this.ff.hasOwnProperty(h)||(this.ff[h]=this.dg),this.Oc[a.id]||(this.Oc[a.id]=this.Jo(y),this.Fg[a.id]=this.Ko(y),this.eg[a.id]=this.Lo(y)));"projectuserdata"== y.nodeName&&(this.ff._master=this.tg(y));"customproperty"==y.nodeName&&this.Io(y);if("translations"==y.nodeName)for((f=y.getAttributeNode("json"))&&this.rh(f.nodeValue.toString()),this.sm||this.gn(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.Lm.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.Fd){cb=this.P.Lk;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.Mk=1*f.nodeValue;if(f=z.getAttributeNode("textalpha"))cb.Kk=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.lj=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.ml=1*f.nodeValue;if(f=z.getAttributeNode("wordwrap"))cb.gj=1==f.nodeValue}if("polystyle"==z.nodeName&&this.Fd){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.wb(z),this.L.push(f),this.Ml(a.id,z));"polyhotspot"==z.nodeName&&(f=new Rb(this),f.type="poly",f.wb(z),this.L.push(f),this.P.count++, this.Ml(a.id,z));z=z.nextSibling}}if("sounds"==y.nodeName||"media"==y.nodeName)for(f=y.firstChild;f;){if("sound"==f.nodeName&&!this.zm)for(z=new Bb(this),z.wb(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.Dl=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.wm=f.nodeValue;if(f=r.getAttributeNode("leveltilesize"))x.W=Number(f.nodeValue);if(f=r.getAttributeNode("levelbias"))x.gq=Number(f.nodeValue);if(f=r.getAttributeNode("levelbiashidpi"))x.hq=Number(f.nodeValue);f=r.getAttributeNode("overlap");e.qb.Y=0;e.qb.pitch=0;f&&(x.ib=Number(f.nodeValue));if(f=r.getAttributeNode("levelingroll"))e.qb.Y=Number(f.nodeValue);if(f=r.getAttributeNode("levelingpitch"))e.qb.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.nk=f.nodeValue;if(f=r.getAttributeNode("strip"))x.Gq=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.Hk=1==f.nodeValue;if(f=r.getAttributeNode("startmutedmobile"))this.B.Gk=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.Jk=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.Mg=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.vm=x.levels.length}this.ee=!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.fd()); this.pa&&this.N&&this.da.forEach(db=>{db.Sp(this.dh);db.Up()});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.Gk&&(this.B.j.muted=!0,this.B.j.play())})))):"{"==this.B.Be.charAt(0)&&ab.Rc(ab.B.Be, ab.B.Jk));this.ts(h);this.Wn();this.F.Qd||this.qn();this.update();this.Fd&&(this.Fd=!1,this.G("viewerinit",{}),this.aa&&this.aa.ggViewerInit&&this.aa.ggViewerInit(),this.Da.enabled&&0==this.cd&&this.pa&&(this.$a(9),e.pan.m=e.Zc.pan,e.u.m=e.Zc.u,e.fov.m=e.Zc.fov,this.$a(e.Zc.rb),this.S=this.Sl(!1),this.F.Ud=this.A.cg,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.$a(e),this.vc=this.S.eb,this.yk(!0),this.A.active=!1,this.A.Jh=!0));this.fd(); this.G("changenodeid",n)}Mp(){return Nb()&&Nb().hasOwnProperty("isSupported")}Xn(a,b,e){if(1<=b.length){var f=this.Ha(this.Ja(b[0]));if(this.Mp()&&0a.time&&n.timea.Pd;)a.Pd+=360;for(;180h;)h+=360;for(;180gb)for(;cb<=r&&db>gb;)db=new tb,db.ll(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.Qi?120:this.Nh(a.Qi);db=a.ah;if(db>gb)for(;ab>cb&&db>gb;)db=new tb,db.ll(bb,fb,hb,ib,ab),db=db.y,ab--}bb=new Ab;bb.time=0;bb.sb=0;bb.value=a.af;bb.type=1;bb.pf=r/3;bb.qf=a.og?a.af:a.af+h/3;e.Ia.push(bb);bb=new Ab;bb.time=0;bb.sb=1;bb.value=a.Ri;bb.type=1;bb.pf=r/3;bb.qf=a.og?a.Ri:a.Ri+b/3;e.Ia.push(bb);bb=new Ab;bb.time=0;bb.sb=2;bb.value=a.le;bb.type=1;bb.pf=r/3;bb.qf=a.og?a.le:a.le+n/3;e.Ia.push(bb);bb=new Ab;bb.time=0; bb.sb=3;bb.value=a.Qi;bb.type=0;bb.Kb=0;e.Ia.push(bb);f&&(bb=new Ab,bb.time=cb,bb.sb=3,bb.value=a.me,bb.type=0,bb.Kb=ab-cb,e.Ia.push(bb));bb=new Ab;bb.time=r;bb.sb=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.Ia.push(bb);bb=new Ab;bb.time=r;bb.sb=1;bb.value=a.ne;bb.type=1;bb.mf=2*r/3;bb.nf=a.vf&&!a.wf?a.ne:a.ne-b/3;a.wf&&(bb.pf=r+x,bb.qf=bb.value+x/r*b);e.Ia.push(bb);bb=new Ab;bb.time=z;bb.sb=2;bb.value=y;bb.type=1;bb.mf= 2*z/3;bb.nf=a.vf?y:y-n/3;e.Ia.push(bb);a.wf&&(bb=new Ab,bb.time=r+w,bb.sb=0,bb.value=a.af+h,bb.type=1,bb.mf=r+w-x,bb.nf=a.af+h,e.Ia.push(bb),bb=new Ab,bb.time=r+w,bb.sb=1,bb.value=a.ne,bb.type=1,bb.mf=r+w-x,bb.nf=a.ne,e.Ia.push(bb));this.za.push(e);return e}lw(){this.B.j&&this.B.j.play()}mw(){this.B.j&&(this.B.j.pause(),this.B.j.currentTime=0)}kw(){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}}Fo(){this.zm=!0}zf(a,b,e){""!==a||this.rd||(a="node1");a||(a=this.ua);return super.zf(a,b,e)}Ei(a,b,e,f){""!==a||this.rd||(a="node1");a||(a=this.ua);return super.Ei(a, b,e,f)}vp(){let a={};var b=this.D;a.currentNode=this.qd();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].Rp||"undefined"!==this.am(e)&&((b[e]={}).value=this.am(e));e=a.hsprops={};for(var f of Object.keys(this.pb)){b=e[f]={};for(var h of Object.keys(this.pb[f])){let r=b[h]={};for(var n of Object.keys(this.pb[f][h]))r[n]=this.zf(f,h,n)}}f=a.polyhotspots=[];for(h=0;h