@realsee/five 5.0.0-alpha.210 → 5.0.0-alpha.212
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/assets/search.js +1 -1
- package/docs/classes/five.AnimationFrameLoop.html +1 -1
- package/docs/classes/five.BVH.html +1 -1
- package/docs/classes/five.BVHIntersect.html +1 -1
- package/docs/classes/five.BVHNode.html +1 -1
- package/docs/classes/five.BVHVector3.html +1 -1
- package/docs/classes/five.Camera.html +1 -1
- package/docs/classes/five.Clipper.html +1 -1
- package/docs/classes/five.Five.html +38 -38
- package/docs/classes/five.InternalWebGLRenderer.html +1 -1
- package/docs/classes/five.IntersectMesh.html +1 -1
- package/docs/classes/five.Model.html +28 -28
- package/docs/classes/five.NetworkSubscribe.html +1 -1
- package/docs/classes/five.PBMContainer.html +1 -1
- package/docs/classes/five.PBMGroup.html +1 -1
- package/docs/classes/five.PBMMaterial.html +1 -1
- package/docs/classes/five.PBMMesh.html +1 -1
- package/docs/classes/five.PanoCircleMesh.html +1 -1
- package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
- package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
- package/docs/classes/five.Scene.html +1 -1
- package/docs/classes/five.Subscribe.html +1 -1
- package/docs/classes/five.TextureLoader.html +1 -1
- package/docs/classes/five.Tile3D.html +1 -1
- package/docs/classes/five.Tile3DModel.html +1 -1
- package/docs/classes/five.TileBoundingSphere.html +1 -1
- package/docs/classes/five.TileCacheNode.html +1 -1
- package/docs/classes/five.TileCubeTextureTarget.html +1 -1
- package/docs/classes/five.TileCullingVolume.html +1 -1
- package/docs/classes/five.TileOrientedBoundingBox.html +1 -1
- package/docs/classes/five.TileRequestScheduler.html +1 -1
- package/docs/classes/five.Tileset3D.html +1 -1
- package/docs/classes/five.Tileset3DTraverser.html +1 -1
- package/docs/classes/five.TilesetCache.html +1 -1
- package/docs/classes/five.Work.html +1 -1
- package/docs/classes/five.XRButton.html +1 -1
- package/docs/classes/gltf_loader.DDSLoader.html +1 -1
- package/docs/classes/gltf_loader.DRACOLoader.html +1 -1
- package/docs/classes/gltf_loader.GLTFLoader.html +1 -1
- package/docs/classes/gltf_loader.GLTFObject.html +1 -1
- package/docs/classes/gltf_loader.GLTFParser.html +1 -1
- package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -1
- package/docs/classes/line.Line.html +1 -1
- package/docs/classes/line.LineGeometry.html +1 -1
- package/docs/classes/line.LineMaterial.html +1 -1
- package/docs/classes/line.LineSegmentsGeometry.html +1 -1
- package/docs/classes/line.THREE_Line2.html +1 -1
- package/docs/classes/line.THREE_LineSegments2.html +1 -1
- package/docs/classes/react.Store.html +1 -1
- package/docs/classes/server.BVH.html +1 -1
- package/docs/classes/server.BVHIntersect.html +1 -1
- package/docs/classes/server.BVHNode.html +1 -1
- package/docs/classes/server.BVHVector3.html +1 -1
- package/docs/classes/server.Model.html +1 -1
- package/docs/classes/server.PBMContainer.html +1 -1
- package/docs/classes/server.PBMGroup.html +1 -1
- package/docs/classes/server.PBMMesh.html +1 -1
- package/docs/classes/sticker.Sticker.html +1 -1
- package/docs/classes/vfx.Airflow.html +1 -1
- package/docs/classes/vfx.Flame.html +1 -1
- package/docs/classes/vfx.Particle.html +1 -1
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/index.html +1 -1
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.AnimationFrame.html +1 -1
- package/docs/interfaces/five.CameraPose.html +1 -1
- package/docs/interfaces/five.ClipperParameter.html +1 -1
- package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.EventCallback.html +1 -1
- package/docs/interfaces/five.FiveInitArgs.html +1 -1
- package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ImageOptions.html +1 -1
- package/docs/interfaces/five.ImageURLMappings.html +1 -1
- package/docs/interfaces/five.ImageURLOptions.html +1 -1
- package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/five.Intersection.html +3 -3
- package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelEventCallback.html +7 -7
- package/docs/interfaces/five.ModelLodOptions.html +1 -1
- package/docs/interfaces/five.MotionKeyframe.html +1 -1
- package/docs/interfaces/five.MovePanoOptions.html +1 -1
- package/docs/interfaces/five.NetworkOptions.html +1 -1
- package/docs/interfaces/five.PBMPanoPicture.html +1 -1
- package/docs/interfaces/five.PBMParameters.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -1
- package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -1
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.Scissor.html +1 -1
- package/docs/interfaces/five.State.html +1 -1
- package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
- package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
- package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
- package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
- package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
- package/docs/interfaces/five.TextureOptions.html +1 -1
- package/docs/interfaces/five.Tile3DModelLoaderOptions.html +1 -1
- package/docs/interfaces/five.TileBoundingVolume.html +1 -1
- package/docs/interfaces/five.TileContent.html +1 -1
- package/docs/interfaces/five.TileCubeNode.html +1 -1
- package/docs/interfaces/five.TileCubeTree.html +1 -1
- package/docs/interfaces/five.Tileset3dOptions.html +1 -1
- package/docs/interfaces/five.TilesetJSON.html +1 -1
- package/docs/interfaces/five.TilesetJSONNode.html +1 -1
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.WebXRAxesParams.html +1 -1
- package/docs/interfaces/five.WebXRControllerParams.html +1 -1
- package/docs/interfaces/five.WorkCubeImage.html +1 -1
- package/docs/interfaces/five.WorkImage.html +1 -1
- package/docs/interfaces/five.WorkInitial.html +1 -1
- package/docs/interfaces/five.WorkModel.html +1 -1
- package/docs/interfaces/five.WorkModelTiles.html +1 -1
- package/docs/interfaces/five.WorkObserver.html +1 -1
- package/docs/interfaces/five.WorkTile.html +1 -1
- package/docs/interfaces/five.WorkVideo.html +1 -1
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +3 -3
- package/docs/interfaces/gltf_loader.DDS.html +1 -1
- package/docs/interfaces/gltf_loader.GLTF.html +1 -1
- package/docs/interfaces/gltf_loader.GLTFReference.html +1 -1
- package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -1
- package/docs/interfaces/react.FiveActionReactCallbacks.html +1 -1
- package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
- package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -1
- package/docs/interfaces/server.Intersection.html +1 -1
- package/docs/interfaces/server.ModelEventCallback.html +1 -1
- package/docs/interfaces/sticker.IntersectionLike.html +1 -1
- package/docs/interfaces/vfx.ParticleArgs.html +1 -1
- package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -1
- package/docs/interfaces/vue.FiveActionVueCallbacks.html +1 -1
- package/docs/modules/five.SubscribeMixinType.html +1 -1
- package/docs/modules/five.html +2 -2
- package/docs/modules/gltf_loader.html +1 -1
- package/docs/modules/line.html +1 -1
- package/docs/modules/react.html +1 -1
- package/docs/modules/server.html +1 -1
- package/docs/modules/sticker.html +1 -1
- package/docs/modules/vfx.html +1 -1
- package/docs/modules/vue.html +1 -1
- package/docs/modules.html +1 -1
- package/five/index.d.ts +1 -0
- package/five/index.js +4 -4
- package/gltf-loader/index.js +3 -3
- package/line/index.js +3 -3
- package/package.json +1 -1
- package/react/index.js +2 -2
- package/server/index.js +2 -2
- package/sticker/index.js +3 -3
- package/umd/five-gltf-loader.js +1 -1
- package/umd/five-line.js +1 -1
- package/umd/five-sticker.js +1 -1
- package/umd/five.js +1 -1
- package/vfx/index.js +2 -2
- package/vue/index.js +2 -2
package/umd/five.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see five.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FiveSDK=t():e.FiveSDK=t()}(self,(()=>(()=>{var __webpack_modules__={438:e=>{if(!("THREE"in window))throw new Error('"THREE" is not available. Please include "three.js" in your HTML.');const t=Number(THREE.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');e.exports=window.THREE},383:e=>{"use strict";e.exports=function(e,t){for(var n=new Array(arguments.length-1),i=0,r=2,o=!0;r<arguments.length;)n[i++]=arguments[r++];return new Promise((function(r,a){n[i]=function(e){if(o)if(o=!1,e)a(e);else{for(var t=new Array(arguments.length-1),n=0;n<t.length;)t[n++]=arguments[n];r.apply(null,t)}};try{e.apply(t||null,n)}catch(e){o&&(o=!1,a(e))}}))}},417:(e,t)=>{"use strict";var n=t;n.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var i=new Array(64),r=new Array(123),o=0;o<64;)r[i[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;n.encode=function(e,t,n){for(var r,o=null,a=[],s=0,l=0;t<n;){var u=e[t++];switch(l){case 0:a[s++]=i[u>>2],r=(3&u)<<4,l=1;break;case 1:a[s++]=i[r|u>>4],r=(15&u)<<2,l=2;break;case 2:a[s++]=i[r|u>>6],a[s++]=i[63&u],l=0}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,a)),s=0)}return l&&(a[s++]=i[r],a[s++]=61,1===l&&(a[s++]=61)),o?(s&&o.push(String.fromCharCode.apply(String,a.slice(0,s))),o.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";n.decode=function(e,t,n){for(var i,o=n,s=0,l=0;l<e.length;){var u=e.charCodeAt(l++);if(61===u&&s>1)break;if(void 0===(u=r[u]))throw Error(a);switch(s){case 0:i=u,s=1;break;case 1:t[n++]=i<<2|(48&u)>>4,i=u,s=2;break;case 2:t[n++]=(15&i)<<4|(60&u)>>2,i=u,s=3;break;case 3:t[n++]=(3&i)<<6|u,s=0}}if(1===s)throw Error(a);return n-o},n.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},516:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i<n.length;)n[i].fn===t?n.splice(i,1):++i;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,n)}return this}},787:e=>{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),n=new Uint8Array(t.buffer),i=128===n[3];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3]}function o(e,i,r){t[0]=e,i[r]=n[3],i[r+1]=n[2],i[r+2]=n[1],i[r+3]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],t[0]}function s(e,i){return n[3]=e[i],n[2]=e[i+1],n[1]=e[i+2],n[0]=e[i+3],t[0]}e.writeFloatLE=i?r:o,e.writeFloatBE=i?o:r,e.readFloatLE=i?a:s,e.readFloatBE=i?s:a}():function(){function t(e,t,n,i){var r=t<0?1:0;if(r&&(t=-t),0===t)e(1/t>0?0:2147483648,n,i);else if(isNaN(t))e(2143289344,n,i);else if(t>34028234663852886e22)e((r<<31|2139095040)>>>0,n,i);else if(t<11754943508222875e-54)e((r<<31|Math.round(t/1401298464324817e-60))>>>0,n,i);else{var o=Math.floor(Math.log(t)/Math.LN2);e((r<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,n,i)}}function a(e,t,n){var i=e(t,n),r=2*(i>>31)+1,o=i>>>23&255,a=8388607&i;return 255===o?a?NaN:r*(1/0):0===o?1401298464324817e-60*r*a:r*Math.pow(2,o-150)*(a+8388608)}e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,i),e.readFloatLE=a.bind(null,r),e.readFloatBE=a.bind(null,o)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),i=128===n[7];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3],i[r+4]=n[4],i[r+5]=n[5],i[r+6]=n[6],i[r+7]=n[7]}function o(e,i,r){t[0]=e,i[r]=n[7],i[r+1]=n[6],i[r+2]=n[5],i[r+3]=n[4],i[r+4]=n[3],i[r+5]=n[2],i[r+6]=n[1],i[r+7]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],n[4]=e[i+4],n[5]=e[i+5],n[6]=e[i+6],n[7]=e[i+7],t[0]}function s(e,i){return n[7]=e[i],n[6]=e[i+1],n[5]=e[i+2],n[4]=e[i+3],n[3]=e[i+4],n[2]=e[i+5],n[1]=e[i+6],n[0]=e[i+7],t[0]}e.writeDoubleLE=i?r:o,e.writeDoubleBE=i?o:r,e.readDoubleLE=i?a:s,e.readDoubleBE=i?s:a}():function(){function t(e,t,n,i,r,o){var a=i<0?1:0;if(a&&(i=-i),0===i)e(0,r,o+t),e(1/i>0?0:2147483648,r,o+n);else if(isNaN(i))e(0,r,o+t),e(2146959360,r,o+n);else if(i>17976931348623157e292)e(0,r,o+t),e((a<<31|2146435072)>>>0,r,o+n);else{var s;if(i<22250738585072014e-324)e((s=i/5e-324)>>>0,r,o+t),e((a<<31|s/4294967296)>>>0,r,o+n);else{var l=Math.floor(Math.log(i)/Math.LN2);1024===l&&(l=1023),e(4503599627370496*(s=i*Math.pow(2,-l))>>>0,r,o+t),e((a<<31|l+1023<<20|1048576*s&1048575)>>>0,r,o+n)}}}function a(e,t,n,i,r){var o=e(i,r+t),a=e(i,r+n),s=2*(a>>31)+1,l=a>>>20&2047,u=4294967296*(1048575&a)+o;return 2047===l?u?NaN:s*(1/0):0===l?5e-324*s*u:s*Math.pow(2,l-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,n,0,4),e.writeDoubleBE=t.bind(null,i,4,0),e.readDoubleLE=a.bind(null,r,0,4),e.readDoubleBE=a.bind(null,o,4,0)}(),e}function n(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function i(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function r(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function o(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},795:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},476:e=>{"use strict";e.exports=function(e,t,n){var i=n||8192,r=i>>>1,o=null,a=i;return function(n){if(n<1||n>r)return e(n);a+n>i&&(o=e(i),a=0);var s=t.call(o,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},893:(e,t)=>{"use strict";var n=t;n.length=function(e){for(var t=0,n=0,i=0;i<e.length;++i)(n=e.charCodeAt(i))<128?t+=1:n<2048?t+=2:55296==(64512&n)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},n.read=function(e,t,n){if(n-t<1)return"";for(var i,r=null,o=[],a=0;t<n;)(i=e[t++])<128?o[a++]=i:i>191&&i<224?o[a++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[a++]=55296+(i>>10),o[a++]=56320+(1023&i)):o[a++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((r||(r=[])).push(String.fromCharCode.apply(String,o)),a=0);return r?(a&&r.push(String.fromCharCode.apply(String,o.slice(0,a))),r.join("")):String.fromCharCode.apply(String,o.slice(0,a))},n.write=function(e,t,n){for(var i,r,o=n,a=0;a<e.length;++a)(i=e.charCodeAt(a))<128?t[n++]=i:i<2048?(t[n++]=i>>6|192,t[n++]=63&i|128):55296==(64512&i)&&56320==(64512&(r=e.charCodeAt(a+1)))?(i=65536+((1023&i)<<10)+(1023&r),++a,t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128);return n-o}},967:(e,t,n)=>{"use strict";e.exports=n(365)},365:(e,t,n)=>{"use strict";var i=t;function r(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}i.build="minimal",i.Writer=n(147),i.BufferWriter=n(55),i.Reader=n(74),i.BufferReader=n(69),i.util=n(835),i.rpc=n(876),i.roots=n(7),i.configure=r,r()},74:(e,t,n)=>{"use strict";e.exports=l;var i,r=n(835),o=r.LongBits,a=r.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function l(e){this.buf=e,this.pos=0,this.len=e.length}var u,c="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new l(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new l(e);throw Error("illegal buffer")},h=function(){return r.Buffer?function(e){return(l.create=function(e){return r.Buffer.isBuffer(e)?new i(e):c(e)})(e)}:c};function d(){var e=new o(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function p(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw s(this,8);return new o(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}l.create=h(),l.prototype._slice=r.Array.prototype.subarray||r.Array.prototype.slice,l.prototype.uint32=(u=4294967295,function(){if(u=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return u;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return u}),l.prototype.int32=function(){return 0|this.uint32()},l.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},l.prototype.bool=function(){return 0!==this.uint32()},l.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return p(this.buf,this.pos+=4)},l.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|p(this.buf,this.pos+=4)},l.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=r.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},l.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=r.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},l.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},l.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},l.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},l.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},l._configure=function(e){i=e,l.create=h(),i._configure();var t=r.Long?"toLong":"toNumber";r.merge(l.prototype,{int64:function(){return d.call(this)[t](!1)},uint64:function(){return d.call(this)[t](!0)},sint64:function(){return d.call(this).zzDecode()[t](!1)},fixed64:function(){return f.call(this)[t](!0)},sfixed64:function(){return f.call(this)[t](!1)}})}},69:(e,t,n)=>{"use strict";e.exports=o;var i=n(74);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(835);function o(e){i.call(this,e)}o._configure=function(){r.Buffer&&(o.prototype._slice=r.Buffer.prototype.slice)},o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},o._configure()},7:e=>{"use strict";e.exports={}},876:(e,t,n)=>{"use strict";t.Service=n(380)},380:(e,t,n)=>{"use strict";e.exports=r;var i=n(835);function r(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(r.prototype=Object.create(i.EventEmitter.prototype)).constructor=r,r.prototype.rpcCall=function e(t,n,r,o,a){if(!o)throw TypeError("request must be specified");var s=this;if(!a)return i.asPromise(e,s,t,n,r,o);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof r))try{n=r[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},r.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},600:(e,t,n)=>{"use strict";e.exports=r;var i=n(835);function r(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if(i.isString(e)){if(!i.Long)return r.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):o},r.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;r.fromHash=function(e){return e===a?o:new r((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},r.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},r.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},835:function(e,t,n){"use strict";var i=t;function r(e,t,n){for(var i=Object.keys(t),r=0;r<i.length;++r)void 0!==e[i[r]]&&n||(e[i[r]]=t[i[r]]);return e}function o(e){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),n&&r(this,n)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=n(383),i.base64=n(417),i.EventEmitter=n(516),i.float=n(787),i.inquire=n(795),i.utf8=n(893),i.pool=n(476),i.LongBits=n(600),i.isNode=Boolean(void 0!==n.g&&n.g&&n.g.process&&n.g.process.versions&&n.g.process.versions.node),i.global=i.isNode&&n.g||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var n=e[t];return!(null==n||!e.hasOwnProperty(t))&&("object"!=typeof n||(Array.isArray(n)?n.length:Object.keys(n).length)>0)},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var n=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},i.merge=r,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(e){for(var t={},n=0;n<e.length;++n)t[e[n]]=1;return function(){for(var e=Object.keys(this),n=e.length-1;n>-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},i.oneOfSetter=function(e){return function(t){for(var n=0;n<e.length;++n)e[n]!==t&&delete this[e[n]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,n){return new e(t,n)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},147:(e,t,n)=>{"use strict";e.exports=h;var i,r=n(835),o=r.LongBits,a=r.base64,s=r.utf8;function l(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function u(){}function c(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new l(u,0,0),this.tail=this.head,this.states=null}var d=function(){return r.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}};function p(e,t,n){t[n]=255&e}function f(e,t){this.len=e,this.next=void 0,this.val=t}function A(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function v(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}h.create=d(),h.alloc=function(e){return new r.Array(e)},r.Array!==Array&&(h.alloc=r.pool(h.alloc,r.Array.prototype.subarray)),h.prototype._push=function(e,t,n){return this.tail=this.tail.next=new l(e,t,n),this.len+=t,this},f.prototype=Object.create(l.prototype),f.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(A,10,o.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.uint64=function(e){var t=o.from(e);return this._push(A,t.length(),t)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(e){var t=o.from(e).zzEncode();return this._push(A,t.length(),t)},h.prototype.bool=function(e){return this._push(p,1,e?1:0)},h.prototype.fixed32=function(e){return this._push(v,4,e>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(e){var t=o.from(e);return this._push(v,4,t.lo)._push(v,4,t.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(e){return this._push(r.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(r.float.writeDoubleLE,8,e)};var m=r.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var i=0;i<e.length;++i)t[n+i]=e[i]};h.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(p,1,0);if(r.isString(e)){var n=h.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},h.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(p,1,0)},h.prototype.fork=function(){return this.states=new c(this),this.head=this.tail=new l(u,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new l(u,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=d(),i._configure()}},55:(e,t,n)=>{"use strict";e.exports=o;var i=n(147);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(835);function o(){i.call(this)}function a(e,t,n){e.length<40?r.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}o._configure=function(){o.alloc=r._Buffer_allocUnsafe,o.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&"set"===r.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var i=0;i<e.length;)t[n++]=e[i++]}},o.prototype.bytes=function(e){r.isString(e)&&(e=r._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(o.writeBytesBuffer,t,e),this},o.prototype.string=function(e){var t=r.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},o._configure()}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AnimationFrameLoop:()=>ke,BVH:()=>Xt,BVHIntersect:()=>zt,BVHNode:()=>_t,BVHVector3:()=>Ut,Camera:()=>Vt,Clipper:()=>Ke,Five:()=>Is,InternalWebGLRenderer:()=>Tt,IntersectMesh:()=>br,Model:()=>_i,NetworkSubscribe:()=>Ie,PBMContainer:()=>We,PBMGroup:()=>Xe,PBMMaterial:()=>Bt,PBMMesh:()=>Ge,PROXY_CONTROLLER_EVENT_NAMES:()=>is,PanoCircleMesh:()=>hr,PanoCircleMeshCustom:()=>mr,PanoCircleMeshSolid:()=>fr,Scene:()=>Pt,Subscribe:()=>se,TILE_EVENT:()=>Oi,TextureLoader:()=>Mt,Tile3D:()=>bi,Tile3DModel:()=>Di,TileBoundingSphere:()=>ri,TileCacheNode:()=>Gn,TileCubeTextureTarget:()=>wt,TileCullingVolume:()=>ei,TileOrientedBoundingBox:()=>fi,TileRequestScheduler:()=>Kn,Tileset3D:()=>Ei,Tileset3DTraverser:()=>wi,TilesetCache:()=>Xn,Work:()=>er,XRButton:()=>Bs,defaultImageURLTransform:()=>Ve,getViewportScale:()=>os,imageSupport:()=>je,parseWork:()=>rr});var e=__webpack_require__(438),t=Number(e.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var n,i,r,o,a,s,l,u,c,h,d,p,f={},A=A||(n=Math,r=(i={}).lib={},o=r.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),a=r.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,r=e.sigBytes;if(this.clamp(),i%4)for(var o=0;o<r;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[i+o>>>2]|=a<<24-(i+o)%4*8}else for(o=0;o<r;o+=4)t[i+o>>>2]=n[o>>>2];return this.sigBytes+=r,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=n.ceil(t/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i<e;i+=4)t.push(4294967296*n.random()|0);return new a.init(t,e)}}),s=i.enc={},l=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new a.init(n,t/2)}},u=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new a.init(n,t)}},c=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},h=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,i=t.words,r=t.sigBytes,o=this.blockSize,s=r/(4*o),l=(s=e?n.ceil(s):n.max((0|s)-this._minBufferSize,0))*o,u=n.min(4*l,r);if(l){for(var c=0;c<l;c+=o)this._doProcessBlock(i,c);var h=i.splice(0,l);t.sigBytes-=u}return new a.init(h,u)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),r.Hasher=h.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}}),d=i.algo={},i);function v(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function m(){return new v(null)}!function(e){for(var t=A,n=(r=t.lib).WordArray,i=r.Hasher,r=t.algo,o=[],a=[],s=function(e){return 4294967296*(e-(0|e))|0},l=2,u=0;64>u;){var c;e:{c=l;for(var h=e.sqrt(c),d=2;d<=h;d++)if(!(c%d)){c=!1;break e}c=!0}c&&(8>u&&(o[u]=s(e.pow(l,.5))),a[u]=s(e.pow(l,1/3)),u++),l++}var p=[];r=r.SHA256=i.extend({_doReset:function(){this._hash=new n.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],r=n[1],o=n[2],s=n[3],l=n[4],u=n[5],c=n[6],h=n[7],d=0;64>d;d++){if(16>d)p[d]=0|e[t+d];else{var f=p[d-15],A=p[d-2];p[d]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+p[d-7]+((A<<15|A>>>17)^(A<<13|A>>>19)^A>>>10)+p[d-16]}f=h+((l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25))+(l&u^~l&c)+a[d]+p[d],A=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&r^i&o^r&o),h=c,c=u,u=l,l=s+f|0,s=o,o=r,r=i,i=f+A|0}n[0]=n[0]+i|0,n[1]=n[1]+r|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+l|0,n[5]=n[5]+u|0,n[6]=n[6]+c|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=e.floor(i/4294967296),n[15+(r+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}}),t.SHA256=i._createHelper(r),t.HmacSHA256=i._createHmacHelper(r)}(Math),A.lib.Cipher||function(e){var t=(p=A).lib,n=t.Base,i=t.WordArray,r=t.BufferedBlockAlgorithm,o=p.enc.Base64,a=p.algo.EvpKDF,s=t.Cipher=r.extend({cfg:n.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,n,i){return("string"==typeof n?f:d).encrypt(e,t,n,i)},decrypt:function(t,n,i){return("string"==typeof n?f:d).decrypt(e,t,n,i)}}}});t.StreamCipher=s.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=p.mode={},u=function(e,t,n){var i=this._iv;i?this._iv=void 0:i=this._prevBlock;for(var r=0;r<n;r++)e[t+r]^=i[r]},c=(t.BlockCipherMode=n.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();c.Encryptor=c.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize;u.call(this,e,t,i),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),c.Decryptor=c.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,r=e.slice(t,t+i);n.decryptBlock(e,t),u.call(this,e,t,i),this._prevBlock=r}}),l=l.CBC=c,c=(p.pad={}).Pkcs7={pad:function(e,t){for(var n,r=(n=(n=4*t)-e.sigBytes%n)<<24|n<<16|n<<8|n,o=[],a=0;a<n;a+=4)o.push(r);n=i.create(o,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},t.BlockCipher=s.extend({cfg:s.cfg.extend({mode:l,padding:c}),reset:function(){s.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var h=t.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),d=(l=(p.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return h.create({ciphertext:e,salt:n})}},t.SerializableCipher=n.extend({cfg:n.extend({format:l}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var r=e.createEncryptor(n,i);return t=r.finalize(t),r=r.cfg,h.create({ciphertext:t,key:n,iv:r.iv,algorithm:e,mode:r.mode,padding:r.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(n,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),p=(p.kdf={}).OpenSSL={execute:function(e,t,n,r){return r||(r=i.random(8)),e=a.create({keySize:t+n}).compute(e,r),n=i.create(e.words.slice(t),4*n),e.sigBytes=4*t,h.create({key:e,iv:n,salt:r})}},f=t.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:p}),encrypt:function(e,t,n,i){return n=(i=this.cfg.extend(i)).kdf.execute(n,e.keySize,e.ivSize),i.iv=n.iv,(e=d.encrypt.call(this,e,t,n.key,i)).mixIn(n),e},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),n=i.kdf.execute(n,e.keySize,e.ivSize,t.salt),i.iv=n.iv,d.decrypt.call(this,e,t,n.key,i)}})}(),function(){for(var e=A,t=e.lib.BlockCipher,n=e.algo,i=[],r=[],o=[],a=[],s=[],l=[],u=[],c=[],h=[],d=[],p=[],f=0;256>f;f++)p[f]=128>f?f<<1:f<<1^283;var v=0,m=0;for(f=0;256>f;f++){var g=(g=m^m<<1^m<<2^m<<3^m<<4)>>>8^255&g^99;i[v]=g,r[g]=v;var y=p[v],b=p[y],x=p[b],w=257*p[g]^16843008*g;o[v]=w<<24|w>>>8,a[v]=w<<16|w>>>16,s[v]=w<<8|w>>>24,l[v]=w,w=16843009*x^65537*b^257*y^16843008*v,u[g]=w<<24|w>>>8,c[g]=w<<16|w>>>16,h[g]=w<<8|w>>>24,d[g]=w,v?(v=y^p[p[p[x^y]]],m^=p[p[m]]):v=m=1}var M=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],o=0;o<n;o++)if(o<t)r[o]=e[o];else{var a=r[o-1];o%t?6<t&&4==o%t&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a]):(a=i[(a=a<<8|a>>>24)>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a],a^=M[o/t|0]<<24),r[o]=r[o-t]^a}for(e=this._invKeySchedule=[],t=0;t<n;t++)o=n-t,a=t%4?r[o]:r[o-4],e[t]=4>t||4>=o?a:u[i[a>>>24]]^c[i[a>>>16&255]]^h[i[a>>>8&255]]^d[i[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,l,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,c,h,d,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,r,o,a,s){for(var l=this._nRounds,u=e[t]^n[0],c=e[t+1]^n[1],h=e[t+2]^n[2],d=e[t+3]^n[3],p=4,f=1;f<l;f++){var A=i[u>>>24]^r[c>>>16&255]^o[h>>>8&255]^a[255&d]^n[p++],v=i[c>>>24]^r[h>>>16&255]^o[d>>>8&255]^a[255&u]^n[p++],m=i[h>>>24]^r[d>>>16&255]^o[u>>>8&255]^a[255&c]^n[p++];d=i[d>>>24]^r[u>>>16&255]^o[c>>>8&255]^a[255&h]^n[p++],u=A,c=v,h=m}A=(s[u>>>24]<<24|s[c>>>16&255]<<16|s[h>>>8&255]<<8|s[255&d])^n[p++],v=(s[c>>>24]<<24|s[h>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^n[p++],m=(s[h>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&c])^n[p++],d=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[c>>>8&255]<<8|s[255&h])^n[p++],e[t]=A,e[t+1]=v,e[t+2]=m,e[t+3]=d},keySize:8}),e.AES=t._createHelper(n)}(),"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(v.prototype.am=function(e,t,n,i,r,o){for(var a=32767&t,s=t>>15;--o>=0;){var l=32767&this[e],u=this[e++]>>15,c=s*l+u*a;r=((l=a*l+((32767&c)<<15)+n[i]+(1073741823&r))>>>30)+(c>>>15)+s*u+(r>>>30),n[i++]=1073741823&l}return r},p=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(v.prototype.am=function(e,t,n,i,r,o){for(;--o>=0;){var a=t*this[e++]+n[i]+r;r=Math.floor(a/67108864),n[i++]=67108863&a}return r},p=26):(v.prototype.am=function(e,t,n,i,r,o){for(var a=16383&t,s=t>>14;--o>=0;){var l=16383&this[e],u=this[e++]>>14,c=s*l+u*a;r=((l=a*l+((16383&c)<<14)+n[i]+r)>>28)+(c>>14)+s*u,n[i++]=268435455&l}return r},p=28),v.prototype.DB=p,v.prototype.DM=(1<<p)-1,v.prototype.DV=1<<p,v.prototype.FV=Math.pow(2,52),v.prototype.F1=52-p,v.prototype.F2=2*p-52;var g,y,b="0123456789abcdefghijklmnopqrstuvwxyz",x=new Array;for(g="0".charCodeAt(0),y=0;y<=9;++y)x[g++]=y;for(g="a".charCodeAt(0),y=10;y<36;++y)x[g++]=y;for(g="A".charCodeAt(0),y=10;y<36;++y)x[g++]=y;function w(e){return b.charAt(e)}function M(e,t){var n=x[e.charCodeAt(t)];return null==n?-1:n}function E(e){var t=m();return t.fromInt(e),t}function C(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function I(e){this.m=e}function S(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}I.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},I.prototype.revert=function(e){return e},I.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},I.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},I.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},S.prototype.convert=function(e){var t=m();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(v.ZERO)>0&&this.m.subTo(t,t),t},S.prototype.revert=function(e){var t=m();return e.copyTo(t),this.reduce(t),t},S.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[n=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},S.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},S.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},v.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},v.prototype.fromString=function(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(256==t)n=8;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)return void this.fromRadix(e,t);n=2}this.t=0,this.s=0;for(var i=e.length,r=!1,o=0;--i>=0;){var a=8==n?255&e[i]:M(e,i);a<0?"-"==e.charAt(i)&&(r=!0):(r=!1,0==o?this[this.t++]=a:o+n>this.DB?(this[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this[this.t++]=a>>this.DB-o):this[this.t-1]|=a<<o,(o+=n)>=this.DB&&(o-=this.DB))}8==n&&0!=(128&e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),r&&v.ZERO.subTo(this,this)},v.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},v.prototype.dlShiftTo=function(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s},v.prototype.drShiftTo=function(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s},v.prototype.lShiftTo=function(e,t){var n,i=e%this.DB,r=this.DB-i,o=(1<<r)-1,a=Math.floor(e/this.DB),s=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+a+1]=this[n]>>r|s,s=(this[n]&o)<<i;for(n=a-1;n>=0;--n)t[n]=0;t[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()},v.prototype.rShiftTo=function(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var i=e%this.DB,r=this.DB-i,o=(1<<i)-1;t[0]=this[n]>>i;for(var a=n+1;a<this.t;++a)t[a-n-1]|=(this[a]&o)<<r,t[a-n]=this[a]>>i;i>0&&(t[this.t-n-1]|=(this.s&o)<<r),t.t=this.t-n,t.clamp()}},v.prototype.subTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()},v.prototype.multiplyTo=function(e,t){var n=this.abs(),i=e.abs(),r=n.t;for(t.t=r+i.t;--r>=0;)t[r]=0;for(r=0;r<i.t;++r)t[r+n.t]=n.am(0,i[r],t,r,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&v.ZERO.subTo(t,t)},v.prototype.squareTo=function(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()},v.prototype.divRemTo=function(e,t,n){var i=e.abs();if(!(i.t<=0)){var r=this.abs();if(r.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=m());var o=m(),a=this.s,s=e.s,l=this.DB-C(i[i.t-1]);l>0?(i.lShiftTo(l,o),r.lShiftTo(l,n)):(i.copyTo(o),r.copyTo(n));var u=o.t,c=o[u-1];if(0!=c){var h=c*(1<<this.F1)+(u>1?o[u-2]>>this.F2:0),d=this.FV/h,p=(1<<this.F1)/h,f=1<<this.F2,A=n.t,g=A-u,y=null==t?m():t;for(o.dlShiftTo(g,y),n.compareTo(y)>=0&&(n[n.t++]=1,n.subTo(y,n)),v.ONE.dlShiftTo(u,y),y.subTo(o,o);o.t<u;)o[o.t++]=0;for(;--g>=0;){var b=n[--A]==c?this.DM:Math.floor(n[A]*d+(n[A-1]+f)*p);if((n[A]+=o.am(0,b,n,g,0,u))<b)for(o.dlShiftTo(g,y),n.subTo(y,n);n[A]<--b;)n.subTo(y,n)}null!=t&&(n.drShiftTo(u,t),a!=s&&v.ZERO.subTo(t,t)),n.t=u,n.clamp(),l>0&&n.rShiftTo(l,n),a<0&&v.ZERO.subTo(n,n)}}},v.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},v.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},v.prototype.exp=function(e,t){if(e>4294967295||e<1)return v.ONE;var n=m(),i=m(),r=t.convert(this),o=C(e)-1;for(r.copyTo(n);--o>=0;)if(t.sqrTo(n,i),(e&1<<o)>0)t.mulTo(i,r,n);else{var a=n;n=i,i=a}return t.revert(n)},v.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,i=(1<<t)-1,r=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(n=this[a]>>s)>0&&(r=!0,o=w(n));a>=0;)s<t?(n=(this[a]&(1<<s)-1)<<t-s,n|=this[--a]>>(s+=this.DB-t)):(n=this[a]>>(s-=t)&i,s<=0&&(s+=this.DB,--a)),n>0&&(r=!0),r&&(o+=w(n));return r?o:"0"},v.prototype.negate=function(){var e=m();return v.ZERO.subTo(this,e),e},v.prototype.abs=function(){return this.s<0?this.negate():this},v.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(0!=(t=n-e.t))return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0},v.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+C(this[this.t-1]^this.s&this.DM)},v.prototype.mod=function(e){var t=m();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(v.ZERO)>0&&e.subTo(t,t),t},v.prototype.modPowInt=function(e,t){var n;return n=e<256||t.isEven()?new I(t):new S(t),this.exp(e,n)},v.ZERO=E(0),v.ONE=E(1),v.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},v.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),i=E(n),r=m(),o=m(),a="";for(this.divRemTo(i,r,o);r.signum()>0;)a=(n+o.intValue()).toString(e).substr(1)+a,r.divRemTo(i,r,o);return o.intValue().toString(e)+a},v.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},v.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1};var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",T="=";function P(e){var t,n,i,r="",o=0;for(t=0;t<e.length&&e.charAt(t)!=T;++t)(i=B.indexOf(e.charAt(t)))<0||(0==o?(r+=w(i>>2),n=3&i,o=1):1==o?(r+=w(n<<2|i>>4),n=15&i,o=2):2==o?(r+=w(n),r+=w(i>>2),n=3&i,o=3):(r+=w(n<<2|i>>4),r+=w(15&i),o=0));return 1==o&&(r+=w(n<<2)),r}function R(e,t){return new v(e,t)}function L(e,t,n){for(var i="",r=0;i.length<t;)i+=n(String.fromCharCode.apply(String,e.concat([(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r]))),r+=1;return i}function k(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function O(e,t,n){for(var i="",r=0;i.length<t;)i+=n(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])),r+=1;return i}function F(e){return P(function(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),(e=e.replace(/-/g,"+")).replace(/_/g,"/")}(e))}function D(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function Q(e){for(var t="",n=0;n<e.length-1;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return t}function N(e){for(var t="",n=0;n<e.length;n++)t+=("0"+e.charCodeAt(n).toString(16)).slice(-2);return t}function V(e,t){var n=function(e){var t=function(e){return function(e){var t,n,i="";for(t=0;t+3<=e.length;t+=3)n=parseInt(e.substring(t,t+3),16),i+=B.charAt(n>>6)+B.charAt(63&n);if(t+1==e.length?(n=parseInt(e.substring(t,t+1),16),i+=B.charAt(n<<2)):t+2==e.length&&(n=parseInt(e.substring(t,t+2),16),i+=B.charAt(n>>2)+B.charAt((3&n)<<4)),T)for(;(3&i.length)>0;)i+=T;return i}(e)}(e).replace(/(.{64})/g,"$1\r\n");return t.replace(/\r\n$/,"")}(e);return"-----BEGIN "+t+"-----\r\n"+n+"\r\n-----END "+t+"-----\r\n"}function U(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return P(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function _(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),n=0;n<8;n++)t[n]=t[n].replace(/^0+/,""),""==t[n]&&(t[n]="0");var i=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===i)return e.slice(1,-1);var r="";for(n=0;n<i.length;n++)i[n].length>r.length&&(r=i[n]);return(e=e.replace(r,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function z(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function q(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}k.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},k.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=R(e,16),this.e=parseInt(t,16)}},k.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var n=new Array,i=e.length-1;i>=0&&t>0;){var r=e.charCodeAt(i--);r<128?n[--t]=r:r>127&&r<2048?(n[--t]=63&r|128,n[--t]=r>>6|192):(n[--t]=63&r|128,n[--t]=r>>6&63|128,n[--t]=r>>12|224)}n[--t]=0;for(var o=new SecureRandom,a=new Array;t>2;){for(a[0]=0;0==a[0];)o.nextBytes(a);n[--t]=a[0]}return n[--t]=2,n[--t]=0,new v(n)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var n=this.doPublic(t);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:"0"+i},k.prototype.encryptOAEP=function(e,t,n){var i=function(e,t,n,i){var r=f.crypto.MessageDigest,o=f.crypto.Util,a=null;if(n||(n="sha1"),"string"==typeof n&&(a=r.getCanonicalAlgName(n),i=r.getHashLength(a),n=function(e){return Q(o.hashHex(N(e),a))}),e.length+2*i+2>t)throw"Message too long for RSA";var s,l="";for(s=0;s<t-e.length-2*i-2;s+=1)l+="\0";var u=n("")+l+""+e,c=new Array(i);(new SecureRandom).nextBytes(c);var h=L(c,u.length,n),d=[];for(s=0;s<u.length;s+=1)d[s]=u.charCodeAt(s)^h.charCodeAt(s);var p=L(d,c.length,n),A=[0];for(s=0;s<c.length;s+=1)A[s+1]=c[s]^p.charCodeAt(s);return new v(A.concat(d))}(e,this.n.bitLength()+7>>3,t,n);if(null==i)return null;var r=this.doPublic(i);if(null==r)return null;var o=r.toString(16);return 0==(1&o.length)?o:"0"+o},k.prototype.type="RSA",k.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),n=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(n)<0;)t=t.add(this.p);return t.subtract(n).multiply(this.coeff).mod(this.p).multiply(this.q).add(n)},k.prototype.setPrivate=function(e,t,n){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=n;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=R(e,16),this.e=parseInt(t,16),this.d=R(n,16)}},k.prototype.setPrivateEx=function(e,t,n,i,r,o,a,s){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=R(e,16),this.e=parseInt(t,16),this.d=R(n,16),this.p=R(i,16),this.q=R(r,16),this.dmp1=R(o,16),this.dmq1=R(a,16),this.coeff=R(s,16)},k.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=R(e,16),n=this.doPrivate(t);return null==n?null:function(e,t){for(var n=e.toByteArray(),i=0;i<n.length&&0==n[i];)++i;if(n.length-i!=t-1||2!=n[i])return null;for(++i;0!=n[i];)if(++i>=n.length)return null;for(var r="";++i<n.length;){var o=255&n[i];o<128?r+=String.fromCharCode(o):o>191&&o<224?(r+=String.fromCharCode((31&o)<<6|63&n[i+1]),++i):(r+=String.fromCharCode((15&o)<<12|(63&n[i+1])<<6|63&n[i+2]),i+=2)}return r}(n,this.n.bitLength()+7>>3)},k.prototype.decryptOAEP=function(e,t,n){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var i=R(e,16),r=this.doPrivate(i);return null==r?null:function(e,t,n,i){var r=f.crypto.MessageDigest,o=f.crypto.Util,a=null;for(n||(n="sha1"),"string"==typeof n&&(a=r.getCanonicalAlgName(n),i=r.getHashLength(a),n=function(e){return Q(o.hashHex(N(e),a))}),e=e.toByteArray(),s=0;s<e.length;s+=1)e[s]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*i+2)throw"Cipher too short";var s,l=e.substr(1,i),u=e.substr(i+1),c=O(u,i,n),h=[];for(s=0;s<l.length;s+=1)h[s]=l.charCodeAt(s)^c.charCodeAt(s);var d=O(String.fromCharCode.apply(String,h),e.length-i,n),p=[];for(s=0;s<u.length;s+=1)p[s]=u.charCodeAt(s)^d.charCodeAt(s);if((p=String.fromCharCode.apply(String,p)).substr(0,i)!==n(""))throw"Hash mismatch";var A=(p=p.substr(i)).indexOf("");if((-1!=A?p.substr(0,A).lastIndexOf("\0"):-1)+1!=A)throw"Malformed data";return p.substr(A+1)}(r,this.n.bitLength()+7>>3,t,n)},void 0!==f.lang&&f.lang||(f.lang={}),f.lang.String=function(){},f.lang.String.isHex=function(e){return z(e)},f.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var H=function(e,t,n){return null==n&&(n="0"),e.length>=t?e:new Array(t-e.length+1).join(n)+e};void 0!==f.crypto&&f.crypto||(f.crypto={}),f.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:A.algo.MD5,sha1:A.algo.SHA1,sha224:A.algo.SHA224,sha256:A.algo.SHA256,sha384:A.algo.SHA384,sha512:A.algo.SHA512,ripemd160:A.algo.RIPEMD160},this.hashString=function(e,t){return new f.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new f.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")}},f.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=f.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=f.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=f.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=A.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(A.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},f.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},f.crypto.MessageDigest.getHashLength=function(e){var t=f.crypto.MessageDigest,n=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[n])throw"not supported algorithm: "+e;return t.HASHLENGTH[n]},f.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},f.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var n="",i=t/4-e.length,r=0;r<i;r++)n+="0";return n+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new f.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var n=null;try{n=void 0===t?j.getKey(e):j.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===n.isPrivate)this.prvKey=n,this.state="SIGN";else{if(!0!==n.isPublic)throw"init failed.:"+n;this.pubKey=n,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.verify=function(e){if(this.sHashHex=this.md.digest(),this.pubKey instanceof k&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof k&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=j.getKey(e.prvkeypem),this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},f.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var j=function(){var e=function(e,n,i){return t(A.AES,e,n,i)},t=function(e,t,n,i){var r=A.enc.Hex.parse(t),o=A.enc.Hex.parse(n),a=A.enc.Hex.parse(i),s={};s.key=o,s.iv=a,s.ciphertext=r;var l=e.decrypt(s,o,{iv:a});return A.enc.Hex.stringify(l)},n=function(e,t,n){return i(A.AES,e,t,n)},i=function(e,t,n,i){var r=A.enc.Hex.parse(t),o=A.enc.Hex.parse(n),a=A.enc.Hex.parse(i),s=e.encrypt(r,o,{iv:a}),l=A.enc.Hex.parse(s.toString());return A.enc.Base64.stringify(l)},r={"AES-256-CBC":{proc:e,eproc:n,keylen:32,ivlen:16},"AES-192-CBC":{proc:e,eproc:n,keylen:24,ivlen:16},"AES-128-CBC":{proc:e,eproc:n,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,n,i){return t(A.TripleDES,e,n,i)},eproc:function(e,t,n){return i(A.TripleDES,e,t,n)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,n,i){return t(A.DES,e,n,i)},eproc:function(e,t,n){return i(A.DES,e,t,n)},keylen:8,ivlen:8}},o=function(e){var t={},n=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));n&&(t.cipher=n[1],t.ivsalt=n[2]);var i=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));i&&(t.type=i[1]);var r=-1,o=0;-1!=e.indexOf("\r\n\r\n")&&(r=e.indexOf("\r\n\r\n"),o=2),-1!=e.indexOf("\n\n")&&(r=e.indexOf("\n\n"),o=1);var a=e.indexOf("-----END");if(-1!=r&&-1!=a){var s=e.substring(r+2*o,a-o);s=s.replace(/\s+/g,""),t.data=s}return t},a=function(e,t,n){for(var i=n.substring(0,16),o=A.enc.Hex.parse(i),a=A.enc.Utf8.parse(t),s=r[e].keylen+r[e].ivlen,l="",u=null;;){var c=A.algo.MD5.create();if(null!=u&&c.update(u),c.update(a),c.update(o),u=c.finalize(),(l+=A.enc.Hex.stringify(u)).length>=2*s)break}var h={};return h.keyhex=l.substr(0,2*r[e].keylen),h.ivhex=l.substr(2*r[e].keylen,2*r[e].ivlen),h},s=function(e,t,n,i){var o=A.enc.Base64.parse(e),a=A.enc.Hex.stringify(o);return(0,r[t].proc)(a,n,i)};return{version:"1.0.0",parsePKCS5PEM:function(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,n){return a(e,t,n)},decryptKeyB64:function(e,t,n,i){return s(e,t,n,i)},getDecryptedKeyHex:function(e,t){var n=o(e),i=(n.type,n.cipher),r=n.ivsalt,l=n.data,u=a(i,t,r).keyhex;return s(l,i,u,r)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,n,i,o){var s="";if(void 0!==i&&null!=i||(i="AES-256-CBC"),void 0===r[i])throw"KEYUTIL unsupported algorithm: "+i;if(void 0===o||null==o){var l=function(e){var t=A.lib.WordArray.random(e);return A.enc.Hex.stringify(t)}(r[i].ivlen);o=l.toUpperCase()}var u=function(e,t,n,i){return(0,r[t].eproc)(e,n,i)}(t,i,a(i,n,o).keyhex,o);return s="-----BEGIN "+e+" PRIVATE KEY-----\r\n",s+="Proc-Type: 4,ENCRYPTED\r\n",s+="DEK-Info: "+i+","+o+"\r\n",s+="\r\n",(s+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={},o=n(e,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;r.ciphertext=i(e,o[1]);var a=n(e,o[0]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+a.length;if("2a864886f70d01050d"!=i(e,a[0]))throw"this only supports pkcs5PBES2";var s=n(e,a[1]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+s.length;var l=n(e,s[1]);if(2!=l.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+l.length;if("2a864886f70d0307"!=i(e,l[0]))throw"this only supports TripleDES";r.encryptionSchemeAlg="TripleDES",r.encryptionSchemeIV=i(e,l[1]);var u=n(e,s[0]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+u.length;if("2a864886f70d01050c"!=i(e,u[0]))throw"this only supports pkcs5PBKDF2";var c=n(e,u[1]);if(c.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+c.length;r.pbkdf2Salt=i(e,c[0]);var h=i(e,c[1]);try{r.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return r},getPBKDF2KeyHexFromParam:function(e,t){var n=A.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,r=A.PBKDF2(t,n,{keySize:6,iterations:i});return A.enc.Hex.stringify(r)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var n=U(e,"ENCRYPTED PRIVATE KEY"),i=this.parseHexOfEncryptedPKCS8(n),r=j.getPBKDF2KeyHexFromParam(i,t),o={};o.ciphertext=A.enc.Hex.parse(i.ciphertext);var a=A.enc.Hex.parse(r),s=A.enc.Hex.parse(i.encryptionSchemeIV),l=A.TripleDES.decrypt(o,a,{iv:s});return A.enc.Hex.stringify(l)},getKeyFromEncryptedPKCS8PEM:function(e,t){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=n(e,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var a=n(e,o[1]);if(2!=a.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(a[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(r.algoid=i(e,a[0]),"06"==e.substr(a[1],2)&&(r.algparam=i(e,a[1])),"04"!=e.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return r.keyidx=t.getVidx(e,o[2]),r},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=U(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,n=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==n.algoid)t=new k;else if(f.crypto.DSA&&"2a8648ce380401"==n.algoid)t=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!=n.algoid)throw"unsupported private key algorithm";t=new f.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,n=K.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===n)t=new k;else if(f.crypto.DSA&&"2a8648ce380401"===n)t=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!==n)throw"unsupported PKCS#8 public key hex";t=new f.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var o=n(e,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(o[0],2))throw"malformed RSA key(code:003)";if(r.n=i(e,o[0]),"02"!=e.substr(o[1],2))throw"malformed RSA key(code:004)";return r.e=i(e,o[1]),r},parsePublicPKCS8Hex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={algparam:null},o=n(e,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var a=o[0];if("30"!=e.substr(a,2))throw"malformed PKCS8 public key(code:001)";var s=n(e,a);if(2!=s.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(s[0],2))throw"malformed PKCS8 public key(code:003)";if(r.algoid=i(e,s[0]),"06"==e.substr(s[1],2)?r.algparam=i(e,s[1]):"30"==e.substr(s[1],2)&&(r.algparam={},r.algparam.p=t.getVbyList(e,s[1],[0],"02"),r.algparam.q=t.getVbyList(e,s[1],[1],"02"),r.algparam.g=t.getVbyList(e,s[1],[2],"02")),"03"!=e.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return r.key=i(e,o[1]).substr(2),r}}}();j.getKey=function(e,t,n){var i,r=(y=K).getChildIdx,o=(y.getV,y.getVbyList),a=f.crypto,s=a.ECDSA,l=a.DSA,u=k,c=U,h=j;if(void 0!==u&&e instanceof u)return e;if(void 0!==s&&e instanceof s)return e;if(void 0!==l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new s({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new s({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(P=new u).setPublic(e.n,e.e),P;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(P=new u).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),P;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(P=new u).setPrivate(e.n,e.e,e.d),P;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(P=new l).setPublic(e.p,e.q,e.g,e.y),P;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(P=new l).setPrivate(e.p,e.q,e.g,e.y,e.x),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(P=new u).setPublic(F(e.n),F(e.e)),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(P=new u).setPrivateEx(F(e.n),F(e.e),F(e.d),F(e.p),F(e.q),F(e.dp),F(e.dq),F(e.qi)),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(P=new u).setPrivate(F(e.n),F(e.e),F(e.d)),P;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var d=(T=new s({curve:e.crv})).ecparams.keylen/4,p="04"+("0000000000"+F(e.x)).slice(-d)+("0000000000"+F(e.y)).slice(-d);return T.setPublicKeyHex(p),T}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){d=(T=new s({curve:e.crv})).ecparams.keylen/4,p="04"+("0000000000"+F(e.x)).slice(-d)+("0000000000"+F(e.y)).slice(-d);var A=("0000000000"+F(e.d)).slice(-d);return T.setPublicKeyHex(p),T.setPrivateKeyHex(A),T}if("pkcs5prv"===n){var m,g=e,y=K;if(9===(m=r(g,0)).length)(P=new u).readPKCS5PrvKeyHex(g);else if(6===m.length)(P=new l).readPKCS5PrvKeyHex(g);else{if(!(m.length>2&&"04"===g.substr(m[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(P=new s).readPKCS5PrvKeyHex(g)}return P}if("pkcs8prv"===n)return h.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===n)return h._getKeyFromPublicPKCS8Hex(e);if("x509pub"===n)return W.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return W.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var b=U(e,"PUBLIC KEY");return h._getKeyFromPublicPKCS8Hex(b)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var x=c(e,"RSA PRIVATE KEY");return h.getKey(x,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var w=o(i=c(e,"DSA PRIVATE KEY"),0,[1],"02"),M=o(i,0,[2],"02"),E=o(i,0,[3],"02"),C=o(i,0,[4],"02"),I=o(i,0,[5],"02");return(P=new l).setPrivate(new v(w,16),new v(M,16),new v(E,16),new v(C,16),new v(I,16)),P}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED"))return x=c(e,"EC PRIVATE KEY"),h.getKey(x,null,"pkcs5prv");if(-1!=e.indexOf("-END PRIVATE KEY-"))return h.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var S=h.getDecryptedKeyHex(e,t),B=new k;return B.readPKCS5PrvKeyHex(S),B}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var T,P=o(i=h.getDecryptedKeyHex(e,t),0,[1],"04"),R=o(i,0,[2,0],"06"),L=o(i,0,[3,0],"03").substr(2);if(void 0===f.crypto.OID.oidhex2name[R])throw"undefined OID(hex) in KJUR.crypto.OID: "+R;return(T=new s({curve:f.crypto.OID.oidhex2name[R]})).setPublicKeyHex(L),T.setPrivateKeyHex(P),T.isPublic=!1,T}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED"))return w=o(i=h.getDecryptedKeyHex(e,t),0,[1],"02"),M=o(i,0,[2],"02"),E=o(i,0,[3],"02"),C=o(i,0,[4],"02"),I=o(i,0,[5],"02"),(P=new l).setPrivate(new v(w,16),new v(M,16),new v(E,16),new v(C,16),new v(I,16)),P;if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return h.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},void 0!==f.asn1&&f.asn1||(f.asn1={}),f.asn1.ASN1Util={},f.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",n=parseInt(e.substr(0,2),16),i=(t=Math.floor(n/40)+"."+n%40,""),r=2;r<e.length;r+=2){var o=("00000000"+parseInt(e.substr(r,2),16).toString(2)).slice(-8);i+=o.substr(1,7),"0"==o.substr(0,1)&&(t=t+"."+new v(i,2).toString(10),i="")}return t};var K=new function(){};function G(e){for(var t in f.crypto.Util.DIGESTINFOHEAD){var n=f.crypto.Util.DIGESTINFOHEAD[t],i=n.length;if(e.substring(0,i)==n)return[t,e.substring(i)]}return[]}function W(e){var t,n=K,i=n.getChildIdx,r=n.getV,o=n.getTLV,a=n.getVbyList,s=n.getVbyListEx,l=n.getTLVbyList,u=n.getTLVbyListEx,c=n.getIdxbyList,h=n.getIdxbyListEx,d=n.getVidx,p=n.getInt,A=n.oidname,v=n.hextooidstr,m=U;try{t=f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=l(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=l(e,0,[0]),n=p(t,0);if(n<0||2<n)throw new Error("malformed version field");return this.version=n+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return s(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=u(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var n in t)if(e===t[n])return n;return A(s(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return l(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return l(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=a(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getNotAfter=function(){var e=a(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getPublicKeyHex=function(){return n.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return c(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return c(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return j.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=l(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return a(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),n=this.getSignatureValueHex(),i=l(this.hex,0,[0],"30"),r=new f.crypto.Signature({alg:t});return r.init(e),r.updateHex(i),r.verify(n)},this.parseExt=function(e){var t,o,s;if(void 0===e){if(s=this.hex,3!==this.version)return-1;t=c(s,0,[0,7,0],"30"),o=i(s,t)}else{s=U(e);var l=c(s,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=r(s,l))return void(this.aExtInfo=new Array);t=c(s,0,[0,3,0,1,0],"30"),o=i(s,t),this.hex=s}this.aExtInfo=new Array;for(var u=0;u<o.length;u++){var h={critical:!1},p=0;3===i(s,o[u]).length&&(h.critical=!0,p=1),h.oid=n.hextooidstr(a(s,o[u],[0],"06"));var f=c(s,o[u],[1+p]);h.vidx=d(s,f),this.aExtInfo.push(h)}},this.getExtInfo=function(e){var t=this.aExtInfo,n=e;if(e.match(/^[0-9.]+$/)||(n=f.asn1.x509.OID.name2oid(e)),""!==n)for(var i=0;i<t.length;i++)if(t[i].oid===n)return t[i]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("basicConstraints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"basicConstraints"};if(t&&(i.critical=!0),"3000"===e)return i;if("30030101ff"===e)return i.cA=!0,i;if("30060101ff02"===e.substr(0,12)){var a=r(e,10),s=parseInt(a,16);return i.cA=!0,i.pathLen=s,i}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("keyUsage");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"keyUsage"};return t&&(i.critical=!0),i.names=this.getExtKeyUsageString(e).split(","),i},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var n="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(n=n.slice(-8)),10==e.length&&(n=n.slice(-16)),""==(n=n.replace(/0+$/,""))&&(n="0"),n},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),n=new Array,i=0;i<t.length;i++)"1"==t.substr(i,1)&&n.push(W.KEYUSAGE_NAME[i]);return n.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"subjectKeyIdentifier"};t&&(i.critical=!0);var a=r(e,0);return i.kid={hex:a},i},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"authorityKeyIdentifier"};t&&(a.critical=!0);for(var s=i(e,0),l=0;l<s.length;l++){var u=e.substr(s[l],2);if("80"===u&&(a.kid={hex:r(e,s[l])}),"a1"===u){var c=o(e,s[l]),h=this.getGeneralNames(c);a.issuer=h[0].dn}"82"===u&&(a.sn={hex:r(e,s[l])})}return a},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("extKeyUsage");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"extKeyUsage",array:[]};t&&(a.critical=!0);for(var s=i(e,0),l=0;l<s.length;l++)a.array.push(A(r(e,s[l])));return a},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,n=o(this.hex,e.vidx);if(""===n)return t;for(var a=i(n,0),s=0;s<a.length;s++)t.push(A(r(n,a[s])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"subjectAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("issuerAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"issuerAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getGeneralNames=function(e){for(var t=i(e,0),n=[],r=0;r<t.length;r++){var a=this.getGeneralName(o(e,t[r]));void 0!==a&&n.push(a)}return n},this.getGeneralName=function(e){var t=e.substr(0,2),n=r(e,0),i=Q(n);return"81"==t?{rfc822:i}:"82"==t?{dns:i}:"86"==t?{uri:i}:"87"==t?{ip:_(n)}:"a4"==t?{dn:this.getX500Name(n)}:void 0},this.getExtSubjectAltName2=function(){var e,t,n,a=this.getExtInfo("subjectAltName");if(void 0===a)return a;for(var s=new Array,l=o(this.hex,a.vidx),u=i(l,0),c=0;c<u.length;c++)n=l.substr(u[c],2),e=r(l,u[c]),"81"===n&&(t=D(e),s.push(["MAIL",t])),"82"===n&&(t=D(e),s.push(["DNS",t])),"84"===n&&(t=W.hex2dn(e,0),s.push(["DN",t])),"86"===n&&(t=D(e),s.push(["URI",t])),"87"===n&&(t=_(e),s.push(["IP",t]));return s},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("cRLDistributionPoints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"cRLDistributionPoints",array:[]};t&&(r.critical=!0);for(var a=i(e,0),s=0;s<a.length;s++){var l=o(e,a[s]);r.array.push(this.getDistributionPoint(l))}return r},this.getDistributionPoint=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=e.substr(n[r],2),s=o(e,n[r]);"a0"==a&&(t.dpname=this.getDistributionPointName(s))}return t},this.getDistributionPointName=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=e.substr(n[r],2),s=o(e,n[r]);"a0"==a&&(t.full=this.getGeneralNames(s))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,n=i(this.hex,e.vidx),r=0;r<n.length;r++)try{var o=D(a(this.hex,n[r],[0,0,0],"86"));t.push(o)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},n=i(this.hex,e.vidx),r=0;r<n.length;r++){var o=a(this.hex,n[r],[0],"06"),s=a(this.hex,n[r],[1],"86");"2b06010505073001"===o&&t.ocsp.push(D(s)),"2b06010505073002"===o&&t.caissuer.push(D(s))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityInfoAccess");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"authorityInfoAccess",array:[]};t&&(r.critical=!0);for(var l=i(e,0),u=0;u<l.length;u++){var c=s(e,l[u],[0],"06"),h=D(a(e,l[u],[1],"86"));if("2b06010505073001"==c)r.array.push({ocsp:h});else{if("2b06010505073002"!=c)throw new Error("unknown method: "+c);r.array.push({caissuer:h})}}return r},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("certificatePolicies");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"certificatePolicies",array:[]};t&&(r.critical=!0);for(var a=i(e,0),s=0;s<a.length;s++){var l=o(e,a[s]),u=this.getPolicyInformation(l);r.array.push(u)}return r},this.getPolicyInformation=function(e){var t={},n=a(e,0,[0],"06");t.policyoid=A(n);var r=h(e,0,[1],"30");if(-1!=r){t.array=[];for(var s=i(e,r),l=0;l<s.length;l++){var u=o(e,s[l]),c=this.getPolicyQualifierInfo(u);t.array.push(c)}}return t},this.getPolicyQualifierInfo=function(e){var t={},n=a(e,0,[0],"06");if("2b06010505070201"===n){var i=s(e,0,[1],"16");t.cps=Q(i)}else if("2b06010505070202"===n){var r=l(e,0,[1],"30");t.unotice=this.getUserNotice(r)}return t},this.getUserNotice=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=o(e,n[r]);"30"!=a.substr(0,2)&&(t.exptext=this.getDisplayText(a))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=Q(r(e,0)),t},this.getExtCRLNumber=function(e,t){var n={extname:"cRLNumber"};if(t&&(n.critical=!0),"02"==e.substr(0,2))return n.num={hex:r(e,0)},n;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var n={extname:"cRLReason"};if(t&&(n.critical=!0),"0a"==e.substr(0,2))return n.code=parseInt(r(e,0),16),n;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var n={extname:"ocspNonce"};t&&(n.critical=!0);var i=r(e,0);return n.hex=i,n},this.getExtOcspNoCheck=function(e,t){var n={extname:"ocspNoCheck"};return t&&(n.critical=!0),n},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("adobeTimeStamp");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"adobeTimeStamp"};t&&(r.critical=!0);var a=i(e,0);if(a.length>1){var s=o(e,a[1]),l=this.getGeneralName(s);null!=l.uri&&(r.uri=l.uri)}if(a.length>2){var u=o(e,a[2]);"0101ff"==u&&(r.reqauth=!0),"010100"==u&&(r.reqauth=!1)}return r},this.getX500NameRule=function(e){for(var t=null,n=[],i=0;i<e.length;i++)for(var r=e[i],o=0;o<r.length;o++)n.push(r[o]);for(i=0;i<n.length;i++){var a=n[i],s=a.ds,l=a.value,u=a.type;if("prn"!=s&&"utf8"!=s&&"ia5"!=s)return"mixed";if("ia5"==s){if("CN"!=u)return"mixed";if(f.lang.String.isMail(l))continue;return"mixed"}if("C"==u){if("prn"==s)continue;return"mixed"}if(null==t)t=s;else if(t!==s)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],n=i(e,0),r=0;r<n.length;r++)t.push(this.getRDN(o(e,n[r])));return t},this.getRDN=function(e){for(var t=[],n=i(e,0),r=0;r<n.length;r++)t.push(this.getAttrTypeAndValue(o(e,n[r])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},n=i(e,0),r=a(e,n[0],[],"06"),o=a(e,n[1],[]),s=f.asn1.ASN1Util.oidHexToInt(r);return t.type=f.asn1.x509.OID.oid2atype(s),t.ds=this.HEX2STAG[e.substr(n[1],2)],"bmp"!=t.ds?t.value=D(o):t.value=function(e){var t=e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),n=parseInt(e.substr(2),16);if(0==t&n<128)return String.fromCharCode(n);if(t<8){var i=128|63&n;return D((192|(7&t)<<3|(192&n)>>6).toString(16)+i.toString(16))}i=128|(15&t)<<2|(192&n)>>6;var r=128|63&n;return D((224|(240&t)>>4).toString(16)+i.toString(16)+r.toString(16))}));return t.join("")}(o),t},this.readCertPEM=function(e){this.readCertHex(m(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{c(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=V(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&-1!=h(this.hex,0,[0,"[3]"])&&(e=u(this.hex,0,[0,"[3]",0],"30"));for(var t=[],n=i(e,0),r=0;r<n.length;r++){var a=o(e,n[r]),s=this.getExtParam(a);null!=s&&t.push(s)}return t},this.getExtParam=function(e){var t=i(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var n=v(a(e,0,[0],"06")),r=!1;3==t&&"0101ff"==l(e,0,[1])&&(r=!0);var o=l(e,0,[t-1,0]),s=void 0;if("2.5.29.14"==n?s=this.getExtSubjectKeyIdentifier(o,r):"2.5.29.15"==n?s=this.getExtKeyUsage(o,r):"2.5.29.17"==n?s=this.getExtSubjectAltName(o,r):"2.5.29.18"==n?s=this.getExtIssuerAltName(o,r):"2.5.29.19"==n?s=this.getExtBasicConstraints(o,r):"2.5.29.31"==n?s=this.getExtCRLDistributionPoints(o,r):"2.5.29.32"==n?s=this.getExtCertificatePolicies(o,r):"2.5.29.35"==n?s=this.getExtAuthorityKeyIdentifier(o,r):"2.5.29.37"==n?s=this.getExtExtKeyUsage(o,r):"1.3.6.1.5.5.7.1.1"==n?s=this.getExtAuthorityInfoAccess(o,r):"2.5.29.20"==n?s=this.getExtCRLNumber(o,r):"2.5.29.21"==n?s=this.getExtCRLReason(o,r):"1.3.6.1.5.5.7.48.1.2"==n?s=this.getExtOcspNonce(o,r):"1.3.6.1.5.5.7.48.1.5"==n?s=this.getExtOcspNoCheck(o,r):"1.2.840.113583.1.1.9.1"==n&&(s=this.getExtAdobeTimeStamp(o,r)),null!=s)return s;var u={extname:n,extn:o};return r&&(u.critical=!0),u},this.findExt=function(e,t){for(var n=0;n<e.length;n++)if(e[n].extname==t)return e[n];return null},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,n,i,r=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];if(t+=" policy oid: "+r.policyoid+"\n",void 0!==r.array)for(var o=0;o<r.array.length;o++){var a=r.array[o];void 0!==a.cps&&(t+=" cps: "+a.cps+"\n")}}return t},o=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];try{void 0!==r.dpname.full[0].uri&&(t+=" "+r.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==r.dname.full[0].dn.hex&&(t+=" "+W.hex2dn(r.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},a=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];void 0!==r.caissuer&&(t+=" caissuer: "+r.caissuer+"\n"),void 0!==r.ocsp&&(t+=" ocsp: "+r.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+q(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+q(t.e.toString(16))+"\n"),null!=(n=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var s=0;s<n.length;s++){var l=n[s],u=f.asn1.x509.OID.oid2name(l.oid);""===u&&(u=l.oid);var c="";if(!0===l.critical&&(c="CRITICAL"),e+=" "+u+" "+c+":\n","basicConstraints"===u){var h=this.getExtBasicConstraints();void 0===h.cA?e+=" {}\n":(e+=" cA=true",void 0!==h.pathLen&&(e+=", pathLen="+h.pathLen),e+="\n")}else if("keyUsage"===u)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===u)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===u){var d=this.getExtAuthorityKeyIdentifier();void 0!==d.kid&&(e+=" kid="+d.kid.hex+"\n")}else"extKeyUsage"===u?e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n":"subjectAltName"===u?e+=" "+(i=this.getExtSubjectAltName(),JSON.stringify(i.array).replace(/[\[\]\{\}\"]/g,"")+"\n"):"cRLDistributionPoints"===u?e+=o(this.getExtCRLDistributionPoints()):"authorityInfoAccess"===u?e+=a(this.getExtAuthorityInfoAccess()):"certificatePolicies"===u&&(e+=r(this.getExtCertificatePolicies()))}}return(e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n")+"signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):f.lang.String.isHex(e)&&this.readCertHex(e))}function X(e){return A.SHA256(e).toString()}K.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var n=parseInt(e.substr(t+3,1));return 0==n?-1:0<n&&n<10?n+1:-2},K.getL=function(e,t){var n=K.getLblen(e,t);return n<1?"":e.substr(t+2,2*n)},K.getVblen=function(e,t){var n;return""==(n=K.getL(e,t))?-1:("8"===n.substr(0,1)?new v(n.substr(2),16):new v(n,16)).intValue()},K.getVidx=function(e,t){var n=K.getLblen(e,t);return n<0?n:t+2*(n+1)},K.getV=function(e,t){var n=K.getVidx(e,t),i=K.getVblen(e,t);return e.substr(n,2*i)},K.getTLV=function(e,t){return e.substr(t,2)+K.getL(e,t)+K.getV(e,t)},K.getTLVblen=function(e,t){return 2+2*K.getLblen(e,t)+2*K.getVblen(e,t)},K.getNextSiblingIdx=function(e,t){return K.getVidx(e,t)+2*K.getVblen(e,t)},K.getChildIdx=function(e,t){var n,i,r,o=K,a=[];n=o.getVidx(e,t),i=2*o.getVblen(e,t),"03"==e.substr(t,2)&&(n+=2,i-=2),r=0;for(var s=n;r<=i;){var l=o.getTLVblen(e,s);if((r+=l)<=i&&a.push(s),s+=l,r>=i)break}return a},K.getNthChildIdx=function(e,t,n){return K.getChildIdx(e,t)[n]},K.getIdxbyList=function(e,t,n,i){var r,o,a=K;return 0==n.length?void 0!==i&&e.substr(t,2)!==i?-1:t:(r=n.shift())>=(o=a.getChildIdx(e,t)).length?-1:a.getIdxbyList(e,o[r],n,i)},K.getIdxbyListEx=function(e,t,n,i){var r,o,a=K;if(0==n.length)return void 0!==i&&e.substr(t,2)!==i?-1:t;r=n.shift(),o=a.getChildIdx(e,t);for(var s=0,l=0;l<o.length;l++){var u=e.substr(o[l],2);if("number"==typeof r&&!a.isContextTag(u)&&s==r||"string"==typeof r&&a.isContextTag(u,r))return a.getIdxbyListEx(e,o[l],n,i);a.isContextTag(u)||s++}return-1},K.getTLVbyList=function(e,t,n,i){var r=K,o=r.getIdxbyList(e,t,n,i);return-1==o||o>=e.length?null:r.getTLV(e,o)},K.getTLVbyListEx=function(e,t,n,i){var r=K,o=r.getIdxbyListEx(e,t,n,i);return-1==o?null:r.getTLV(e,o)},K.getVbyList=function(e,t,n,i,r){var o,a,s=K;return-1==(o=s.getIdxbyList(e,t,n,i))||o>=e.length?null:(a=s.getV(e,o),!0===r&&(a=a.substr(2)),a)},K.getVbyListEx=function(e,t,n,i,r){var o,a,s=K;return-1==(o=s.getIdxbyListEx(e,t,n,i))?null:(a=s.getV(e,o),"03"==e.substr(o,2)&&!1!==r&&(a=a.substr(2)),a)},K.getInt=function(e,t,n){null==n&&(n=-1);try{var i=e.substr(t,2);if("02"!=i&&"03"!=i)return n;var r=K.getV(e,t);return"02"==i?parseInt(r,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var n=parseInt(t,16),i=e.substr(2),r=parseInt(i,16).toString(2);return"0"==r&&(r="00000000"),r=r.slice(0,0-n),parseInt(r,2)}catch(e){return-1}}(r)}catch(e){return n}},K.getOID=function(e,t,n){null==n&&(n=null);try{return"06"!=e.substr(t,2)?n:function(e){if(!z(e))return null;try{var t=[],n=e.substr(0,2),i=parseInt(n,16);t[0]=new String(Math.floor(i/40)),t[1]=new String(i%40);for(var r=e.substr(2),o=[],a=0;a<r.length/2;a++)o.push(parseInt(r.substr(2*a,2),16));var s=[],l="";for(a=0;a<o.length;a++)128&o[a]?l+=H((127&o[a]).toString(2),7):(l+=H((127&o[a]).toString(2),7),s.push(new String(parseInt(l,2))),l="");var u=t.join(".");return s.length>0&&(u=u+"."+s.join(".")),u}catch(e){return null}}(K.getV(e,t))}catch(e){return n}},K.getOIDName=function(e,t,n){null==n&&(n=null);try{var i=K.getOID(e,t,n);if(i==n)return n;var r=f.asn1.x509.OID.oid2name(i);return""==r?i:r}catch(e){return n}},K.getString=function(e,t,n){null==n&&(n=null);try{return Q(K.getV(e,t))}catch(e){return n}},K.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},n=[],i=e.substr(0,2),r=parseInt(i,16);n[0]=new String(Math.floor(r/40)),n[1]=new String(r%40);for(var o=e.substr(2),a=[],s=0;s<o.length/2;s++)a.push(parseInt(o.substr(2*s,2),16));var l=[],u="";for(s=0;s<a.length;s++)128&a[s]?u+=t((127&a[s]).toString(2),7):(u+=t((127&a[s]).toString(2),7),l.push(new String(parseInt(u,2))),u="");var c=n.join(".");return l.length>0&&(c=c+"."+l.join(".")),c},K.isContextTag=function(e,t){var n,i;e=e.toLowerCase();try{n=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&n);try{return null!=t.match(/^\[[0-9]+\]$/)&&!((i=parseInt(t.substr(1,t.length-1),10))>31)&&128==(192&n)&&(31&n)==i}catch(e){return!1}},K.isASN1HEX=function(e){var t=K;if(e.length%2==1)return!1;var n=t.getVblen(e,0),i=e.substr(0,2),r=t.getL(e,0);return e.length-i.length-r.length==2*n},K.checkStrictDER=function(e,t,n,i,r){var o=K;if(void 0===n){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!f.lang.String.isHex(e))throw new Error("not hex string");n=e.length,r=(i=e.length/2)<128?1:Math.ceil(i.toString(16))+1}if(o.getL(e,t).length>2*r)throw new Error("L of TLV too long: idx="+t);var a=o.getVblen(e,t);if(a>i)throw new Error("value of L too long than hex: idx="+t);var s=o.getTLV(e,t),l=s.length-2-o.getL(e,t).length;if(l!==2*a)throw new Error("V string length and L's value not the same:"+l+"/"+2*a);if(0===t&&e.length!=s.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+s.length);var u=e.substr(t,2);if("02"===u){var c=o.getVidx(e,t);if("00"==e.substr(c,2)&&e.charCodeAt(c+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(u,16)){for(var h=o.getVblen(e,t),d=0,p=o.getChildIdx(e,t),A=0;A<p.length;A++)d+=o.getTLV(e,p[A]).length,o.checkStrictDER(e,p[A],n,i,r);if(2*h!=d)throw new Error("sum of children's TLV length and L unmatch: "+2*h+"!="+d)}},K.oidname=function(e){var t=f.asn1;f.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var n=t.x509.OID.oid2name(e);return""===n&&(n=e),n},void 0!==f.asn1&&f.asn1||(f.asn1={}),void 0!==f.asn1.x509&&f.asn1.x509||(f.asn1.x509={}),f.asn1.x509.AlgorithmIdentifier={},f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},f.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],n=new f.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=n,n},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var n=new f.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=n,n}},f.asn1.x509.OID.oid2name=function(e){var t=f.asn1.x509.OID.name2oidList;for(var n in t)if(t[n]==e)return n;return""},f.asn1.x509.OID.oid2atype=function(e){var t=f.asn1.x509.OID.atype2oidList;for(var n in t)if(t[n]==e)return n;return e},f.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=f.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},k.getPosArrayOfChildrenFromHex=function(e){return K.getChildIdx(e,0)},k.getHexValueArrayOfChildrenFromHex=function(e){var t,n=K.getV,i=n(e,(t=k.getPosArrayOfChildrenFromHex(e))[0]),r=n(e,t[1]),o=n(e,t[2]),a=n(e,t[3]),s=n(e,t[4]),l=n(e,t[5]),u=n(e,t[6]),c=n(e,t[7]),h=n(e,t[8]);return(t=new Array).push(i,r,o,a,s,l,u,c,h),t},k.prototype.readPrivateKeyFromPEMString=function(e){var t=U(e),n=k.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])},k.prototype.readPKCS5PrvKeyHex=function(e){var t=k.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},k.prototype.readPKCS8PrvKeyHex=function(e){var t,n,i,r,o,a,s,l,u=K,c=u.getVbyListEx;if(!1===u.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=c(e,0,[2,0,1],"02"),n=c(e,0,[2,0,2],"02"),i=c(e,0,[2,0,3],"02"),r=c(e,0,[2,0,4],"02"),o=c(e,0,[2,0,5],"02"),a=c(e,0,[2,0,6],"02"),s=c(e,0,[2,0,7],"02"),l=c(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,n,i,r,o,a,s,l)},k.prototype.readPKCS5PubKeyHex=function(e){var t=K,n=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var i=t.getChildIdx(e,0);if(2!==i.length||"02"!==e.substr(i[0],2)||"02"!==e.substr(i[1],2))throw new Error("wrong hex for PKCS#5 public key");var r=n(e,i[0]),o=n(e,i[1]);this.setPublic(r,o)},k.prototype.readPKCS8PubKeyHex=function(e){var t=K;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var n=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(n)},k.prototype.readCertPubKeyHex=function(e,t){var n,i;(n=new W).readCertHex(e),i=n.getPublicKeyHex(),this.readPKCS8PubKeyHex(i)},k.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var n=R(t,16),i=this.n.bitLength();if(n.bitLength()>i)return!1;var r=this.doPublic(n).toString(16);if(r.length+3!=i/4)return!1;var o=G(r.replace(/^1f+00/,""));if(0==o.length)return!1;var a=o[0],s=o[1],l=function(e){return f.crypto.Util.hashString(e,a)}(e);return s==l},k.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var n=R(t,16);if(n.bitLength()>this.n.bitLength())return 0;var i=G(this.doPublic(n).toString(16).replace(/^1f+00/,""));return 0!=i.length&&(i[0],i[1]==e)},k.prototype.verifyPSS=function(e,t,n,i){var r,o=(r=N(e),f.crypto.Util.hashHex(r,n));return void 0===i&&(i=-1),this.verifyWithMessageHashPSS(o,t,n,i)},k.prototype.verifyWithMessageHashPSS=function(e,t,n,i){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r,o=new v(t,16),a=function(e){return f.crypto.Util.hashHex(e,n)},s=Q(e),l=s.length,u=this.n.bitLength()-1,c=Math.ceil(u/8);if(-1===i||void 0===i)i=l;else if(-2===i)i=c-l-2;else if(i<-2)throw new Error("invalid salt length");if(c<l+i+2)throw new Error("data too long");var h=this.doPublic(o).toByteArray();for(r=0;r<h.length;r+=1)h[r]&=255;for(;h.length<c;)h.unshift(0);if(188!==h[c-1])throw new Error("encoded message does not end in 0xbc");var d=(h=String.fromCharCode.apply(String,h)).substr(0,c-l-1),p=h.substr(d.length,l),A=65280>>8*c-u&255;if(0!=(d.charCodeAt(0)&A))throw new Error("bits beyond keysize not zero");var m=pss_mgf1_str(p,d.length,a),g=[];for(r=0;r<d.length;r+=1)g[r]=d.charCodeAt(r)^m.charCodeAt(r);g[0]&=~A;var y=c-l-i-2;for(r=0;r<y;r+=1)if(0!==g[r])throw new Error("leftmost octets not zero");if(1!==g[y])throw new Error("0x01 marker not found");return p===Q(a(N("\0\0\0\0\0\0\0\0"+s+String.fromCharCode.apply(String,g.slice(-i)))))},k.SALT_LEN_HLEN=-1,k.SALT_LEN_MAX=-2,k.SALT_LEN_RECOVER=-2,W.hex2dn=function(e,t){void 0===t&&(t=0);var n=new W;return K.getTLV(e,t),n.getX500Name(e).str},W.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var n=new Array,i=K.getChildIdx(e,t),r=0;r<i.length;r++)n.push(W.hex2attrTypeValue(e,i[r]));return n=n.map((function(e){return e.replace("+","\\+")})),n.join("+")},W.hex2attrTypeValue=function(e,t){var n=K,i=n.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var r=n.getChildIdx(e,t);2!==r.length||e.substr(r[0],2);var o=i(e,r[0]),a=f.asn1.ASN1Util.oidHexToInt(o);return f.asn1.x509.OID.oid2atype(a)+"="+Q(i(e,r[1]))},W.getPublicKeyFromCertHex=function(e){var t=new W;return t.readCertHex(e),t.getPublicKey()},W.getPublicKeyFromCertPEM=function(e){var t=new W;return t.readCertPEM(e),t.getPublicKey()},W.getPublicKeyInfoPropOfCertPEM=function(e){var t,n,i=K.getVbyList,r={algparam:null};return(t=new W).readCertPEM(e),n=t.getPublicKeyHex(),r.keyhex=i(n,0,[1],"03").substr(2),r.algoid=i(n,0,[0,0],"06"),"2a8648ce3d0201"===r.algoid&&(r.algparam=i(n,0,[0,1],"06")),r},W.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var Y,Z=[(Y=new W,Y.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),Y)];function J(e,t){var n=e.getIssuerHex();if(n===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var i=function(e,t){for(var n=0,i=t;n<i.length;n++){var r=i[n];if(r.getSubjectHex()===e)return r}}(n,t);return!!i&&!1!==e.verifySignature(i.getPublicKey())&&J(i,t)}function $(e){return e.getIssuerHex()!==e.getSubjectHex()&&J(e,Z)}!function(e){var t=new W;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);$(t);Z.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var ee=function(e,t){return ee=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ee(e,t)};function te(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ee(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var ne=function(){return ne=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},ne.apply(this,arguments)};function ie(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}Object.create,Object.create;var re,oe=(re="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<".concat(re,">$"):Symbol(re));function ae(e){return e[oe]||(e[oe]={}),e[oe]}var se=function(){function e(){}return e.prototype.hasListener=function(e){var t=ae(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,n){var i=this,r=ae(this);return r[e]||(r[e]=[]),r[e].push([t,n||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var n=ae(this);if(n[e]||(n[e]=[]),void 0!==t){for(var i=0;i<n[e].length&&n[e][i][0]!==t;i++);i<n[e].length&&n[e].splice(i,1)}else n[e].length=0}else this[oe]||delete this[oe]},e.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=!1,r=0,o=(ae(this)[e]||[]).slice();r<o.length;r++){var a=o[r],s=a[0],l=a[1],u=void 0!==l&&l,c=s.apply(void 0,t);u&&this.off(e,s),!1===c&&(i=!0)}return i},e}();function le(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}var ue="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),ce="undefined"!=typeof performance?function(){return ue+performance.now()}:function(){return Date.now()};function he(e){Object.freeze(e);var t="function"==typeof e,n=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(i){!n.call(e,i)||t&&("caller"===i||"callee"===i||"arguments"===i)||null===e[i]||"object"!=typeof e[i]&&"function"!=typeof e[i]||Object.isFrozen(e[i])||he(e[i])})),e}var de=/^([^.]+)(\.([^.]+))*$/;function pe(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function fe(e,t){return de.test(e)&&de.test(t)&&function(e,t){if("*"===e)return!0;var n=e.split(".").reverse(),i=t.split(".").reverse();if(n.length<=1)return e===t;for(var r=0;r<n.length;r++)if(n[r]!==i[r])return!1;return!0}(e,t)}var Ae,ve=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i],me=he(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("h/y|pnyu|/9/xr;p|z/9/yvn{wvn;p|z/9/rnyrr;p|z/9/rnyrr;p{/9/rnyrr;w}/9/uv;p|z/9/uv;p{/9/ywpq{;p|z/9/rnyrr:pq{;p|z/9/rnyrr:pq{;p{/9/rnyrr;nv/9/;p{/9/pq{;p{/9/pnyp{|qr;vr/j"))),ge=function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request proxy error(type: ".concat(n,", reason: ").concat(i,"): ").concat(t))||this}return te(t,e),t}(Error),ye=function(e){function t(t,n,i){var r=e.call(this,"[NETWORK]: response error(type: ".concat(n,", status: ").concat(i,"): ").concat(t))||this;return r.httpStatus=i,r}return te(t,e),t}(Error),be=(te((function(e,t){return Ae.call(this,"[NETWORK]: request abort(type: ".concat(t,"): ").concat(e))||this}),Ae=Error),function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request timeout(type: ".concat(n,", timeout: ").concat(i,"ms): ").concat(t))||this}return te(t,e),t}(Error)),xe=function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request forbidden(type: ".concat(n,", reason: ").concat(i,"): ").concat(t))||this}return te(t,e),t}(Error);function we(e){for(var t=0,n=ve;t<n.length;t++){var i=n[t],r=e.match(i);if(r)return"jsonp_"+r[1]}return null}function Me(e){return null!==we(e)}function Ee(e){var t=e.match(/^([0-9a-z]+\:)\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[1]:location.protocol}function Ce(e){if(/^blob\:/i.test(e))return"blob:";if(/^data\:/i.test(e))return"data:";var t=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/i);return t?t[2]:location.hostname}var Ie=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t}(se);function Se(e,t,n,i,r){void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var o=ce(),a=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var i,r=we(e)?"Script":"XMLHttpRequest",o=new ge(a,r,n&&n.message?String(n.message):String(n));return null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,r,"proxy-error",o.message),Promise.reject(o)})).then((function(e){return new Promise((function(s,l){var u,c=t.allowHosts?me.concat(t.allowHosts):me.slice(),h=Ce(e),d=we(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(h)&&0===c.filter((function(e){return fe(e,h)})).length){var p=d?"Script":"XMLHttpRequest",f=new xe(e,p,"request host(".concat(h,") is not allowed"));return i(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,p,"forbidden",f.message))}if(d){var A=window,v=null,m=!1,g=document.createElement("script");A[d]=function(r){var u,c,h=ce(),p=h-o;if(delete A[d],g.parentNode&&g.parentNode.removeChild(g),null!==v&&(window.clearTimeout(v),v=null),!0!==m){if(0!==r.indexOf("data:")){var f=new ye(e,"Script",500);return i(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Script","error",f.message))}var y=r.split(","),b=(y[0].match(/:(.*?);/)||[])[1],x=y[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var w=atob(y[1]),M=w.length,E=new Uint8Array(M),C=0;C<M;C++)E[C]=w.charCodeAt(C);x="arraybuffer"===t.responseType?E.buffer:new Blob([E],{type:b})}var I={body:x,meta:{origin:a,source:e,requestTime:o,responseTime:h,costs:p,headers:{}}};n(I),s(I),null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Script","ok",JSON.stringify(I.meta)),m=!0}},g.src=e,document.body.appendChild(g),"number"==typeof t.timeout&&(v=window.setTimeout((function(){var n;if(v=null,!0!==m){m=!0;var r=new be(e,"Script",t.timeout||NaN);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Script","timeout",r.message)}}),t.timeout))}else{var y=!1,b=new XMLHttpRequest,x=function(){b&&(b.removeEventListener("timeout",w,!1),b.removeEventListener("progress",M,!1),b.removeEventListener("load",E,!1),b.removeEventListener("error",C,!1)),b=null,x=le},w=function(){var n;if(!0!==y){y=!0,x();var r=new be(e,"XMLHttpRequest",t.timeout||NaN);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"XMLHttpRequest","timeout",r.message)}},M=function(e){!0!==y&&e.lengthComputable&&(e.total<=0||r(e.loaded/e.total))},E=function(i){var r;if(!0!==y){var l=this.status;if(0===l||l>=200&&l<400){y=!0,x();var u=ce(),c=u-o,h=function(e){if(!e)return{};for(var t={},n=e.trim().split("\n"),i=0;i<n.length;i++){var r=n[i],o=r.indexOf(":"),a=r.slice(0,o).trim().toLowerCase(),s=r.slice(o+1).trim();s&&(t[a]?t[a]+=", "+s:t[a]=s)}return t}(this.getAllResponseHeaders()),d=i.total,p={body:this.response,meta:{origin:a,source:e,requestTime:o,responseTime:u,costs:c,headers:h,size:d}};n(p),s(p),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"XMLHttpRequest","ok",JSON.stringify(p.meta))}else C.call(this)}},C=function(){var n;if(!0!==y){y=!0,x();var r=new ye(e,"XMLHttpRequest",this.status);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"XMLHttpRequest","error",r.message)}};b.addEventListener("timeout",w,!1),b.addEventListener("progress",M,!1),b.addEventListener("load",E,!1),b.addEventListener("error",C,!1),t.responseType&&(b.responseType=t.responseType),"number"==typeof t.timeout&&(b.timeout=t.timeout),b.open("GET",e,!0),b.send(null)}}))}))}var Be={};function Te(e,t){void 0===t&&(t={});var n=ce(),i=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var r,o=new ge(i,"Link",n&&n.message?String(n.message):String(n));return null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Link","proxy-error",o.message),Promise.reject(o)})).then((function(e){return e in Be?Be[e]:Be[e]=new Promise((function(r,o){var a,s=t.allowHosts?me.concat(t.allowHosts):me.slice(),l=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(l)&&0===s.filter((function(e){return fe(e,l)})).length){var u=new xe(e,"Link","request host(".concat(l,") is not allowed"));return o(u),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,"Link","forbidden",u.message))}var c=document.createElement("link");c.href=e,c.rel=c.relList&&c.relList.supports("prefetch")?"prefetch":"preload",c.as="fetch",c.crossOrigin="";var h=document.head||document.getElementsByTagName("head")[0];h&&h.appendChild(c);var d=!1;c.onload=function(){var o;if(!0!==d){d=!0,r();var a=ce(),s={origin:i,source:e,requestTime:n,responseTime:a,costs:a-n,headers:{}};null===(o=t.networkSubscribe)||void 0===o||o.emit("network",e,"Link","preload",JSON.stringify(s))}},c.onerror=function(n){var i;if(!0!==d){d=!0;var r=new ye(e,"Link",0);o(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Link","error",r.message)}}}))}))}function Pe(e,t,n,i,r,o){void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var a=ce(),s=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var i,r=new ge(s,"Image",n&&n.message?String(n.message):String(n));return null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","proxy-error",r.message),Promise.reject(r)})).then((function(e){return new Promise((function(l,u){var c,h=t.allowHosts?me.concat(t.allowHosts):me.slice(),d=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(d)&&0===h.filter((function(e){return fe(e,d)})).length){var p=new xe(e,"Image","request host(".concat(d,") is not allowed"));return i(p),u(p),void(null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Image","forbidden",p.message))}var f=null!=o?o:new Image,A=!1,v=null;"number"==typeof t.timeout&&(v=window.setTimeout((function(){var n;if(f.onload=le,f.onerror=le,v=null,!0!==A){A=!0;var r=new be(e,"Image",t.timeout);i(r),u(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","timeout",r.message)}}),t.timeout)),f.onload=function(){var i;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){var o=ce();A=!0;var u={body:f,meta:{headers:{},origin:s,source:e,requestTime:a,responseTime:o,costs:o-a}};r(1),n(u),l(u),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","ok",JSON.stringify(u.meta))}},f.onerror=function(){var n;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){A=!0;var r=new ye(e,"Image",0);i(r),u(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","ok",r.message)}},r(0),f.src=e}))}))}var Re=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}(),Le=16,ke=function(){function e(){this.frames=[],this.stoped=!1,this.time=ce(),this.context=null,this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.getFrameTime=function(){return Le},e.prototype.loop=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!this.stoped){var n=ce(),i=n-this.time;this.time=n;var r=[];Le=i;for(var o=0,a=this.frames;o<a.length;o++){var s=a[o];if(s.delay>0)s.delay=s.delay-1;else{try{s.callback.apply(s,ie([n,i],e,!1))}catch(e){console.error(e)}s.once&&r.push(s)}}r.length>0&&(this.frames=this.frames.filter((function(e){return-1===r.indexOf(e)}))),this.requestAnimationFrame(this.loop)}},e.prototype.setContext=function(e){this.cancelAnimationFrame(this.requestId),this.context=e,this.requestId=this.requestAnimationFrame(this.loop)},e.prototype.getContext=function(){return this.context},e.prototype.requestAnimationFrame=function(e){return this.context?this.context.requestAnimationFrame(e):Re(e)},e.prototype.cancelAnimationFrame=function(e){this.context?this.context.cancelAnimationFrame(e):function(e){var t;if("undefined"!=typeof window){var n=window;t=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame||n.msCancelAnimationFrame||function(e){return window.clearTimeout(e)}}else t=function(e){return window.clearTimeout(e)};t(e)}(this.loop),this.requestId=null},e.prototype.remove=function(e){var t=this.frames.indexOf(e);t>=0&&this.frames.splice(t,1)},e.prototype.add=function(e,t,n,i){var r=this;void 0===t&&(t=!1),void 0===n&&(n=0),void 0===i&&(i=5);var o={callback:e,once:t,delay:n,order:i};return this.frames.push(o),this.frames.sort((function(e,t){return e.order-t.order})),function(){return r.remove(o)}},e.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},e}(),Oe={"vrlab-public.ljcdn.com":{type:"tencentCloud",pano:["vrlab-image1.ljcdn.com","vrlab-image2.ljcdn.com"],texture:["vrlab-image3.ljcdn.com"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-2.realsee-cdn.cn"],model:["vr-model-1.realsee-cdn.cn","vr-model-2.realsee-cdn.cn"],default:["vrlab-image4.ljcdn.com"]},"vr-public.realsee-cdn.cn":{type:"tencentCloud",pano:["vr-image-1.realsee-cdn.cn","vr-image-2.realsee-cdn.cn"],texture:["vr-image-3.realsee-cdn.cn"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-2.realsee-cdn.cn"],model:["vr-model-1.realsee-cdn.cn","vr-model-2.realsee-cdn.cn"],default:["vr-image-4.realsee-cdn.cn"]},"vr-public.rscdn.cn":{type:"tencentCloud",pano:["vr-image-1.rscdn.cn","vr-image-2.rscdn.cn"],texture:["vr-image-3.rscdn.cn"],tile:["vr-tile-1.rscdn.cn","vr-tile-2.rscdn.cn"],model:["vr-model-1.rscdn.cn","vr-model-2.rscdn.cn"],default:["vr-image-4.rscdn.cn"]},"mars-public.realsee-cdn.cn":{type:"aliyun",pano:["mars-image-1.realsee-cdn.cn","mars-image-2.realsee-cdn.cn"],texture:["mars-image-3.realsee-cdn.cn"],tile:["mars-tile-1.realsee-cdn.cn","mars-tile-2.realsee-cdn.cn"],model:["mars-model-1.realsee-cdn.cn","mars-model-2.realsee-cdn.cn"],default:["mars-image-4.realsee-cdn.cn"]},"global-public.realsee-cdn.com":{type:"tencentCloud",pano:["global-image-1.realsee-cdn.com","global-image-2.realsee-cdn.com"],texture:["global-image-3.realsee-cdn.com"],tile:["global-tile-1.realsee-cdn.com","global-tile-2.realsee-cdn.com"],model:["global-model-1.realsee-cdn.com","global-model-2.realsee-cdn.com"],default:["global-image-4.realsee-cdn.com"]},"earth-ga-public.realsee-cdn.cn":{type:"tencentCloud",pano:["earth-ga-image-1.realsee-cdn.cn","earth-ga-image-2.realsee-cdn.cn"],texture:["earth-ga-image-3.realsee-cdn.cn"],tile:["earth-ga-tile-1.realsee-cdn.cn","earth-ga-tile-2.realsee-cdn.cn"],model:["earth-ga-model-1.realsee-cdn.cn","earth-ga-model-2.realsee-cdn.cn"],default:["earth-ga-image-4.realsee-cdn.cn"]},"test-vr-public.realsee-cdn.com":{type:"tencentCloud",pano:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],texture:["test-vr-image.realsee-cdn.com"],tile:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],model:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],default:["test-vr-image.realsee-cdn.com"]},"test-vr-public.realsee-cdn.cn":{type:"tencentCloud",pano:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],texture:["test-vr-image.realsee-cdn.cn"],tile:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],model:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],default:["test-vr-image.realsee-cdn.cn"]}},Fe=/^https?\:\/\/?([^\/]+)/;function De(e,t){return e.replace(Fe,(function(e,n){return e.slice(0,e.length-n.length)+t}))}var Qe=function(e,t){var n,i=e.split("?")[0],r=i.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="";if(void 0!==t.format&&t.format!==r&&(o+="/format/".concat(t.format)),void 0!==t.cut&&(o+="/cut/".concat(t.cut[2],"x").concat(t.cut[3],"x").concat(t.cut[0],"x").concat(t.cut[1])),void 0!==t.quality){var a=null!==(n=t.format)&&void 0!==n?n:r;a&&["jpg","webp","tpg","heif","avif"].indexOf(a)>=0&&(o+="/quality/".concat(t.quality))}if(void 0!==t.size){var s=e.match(/\/cube_(\d+)\//);(s?Number(s[1]):NaN)!==Number(t.size)&&(o+="/thumbnail/".concat(t.size,"x"))}return void 0!==t.sharpen&&(o+="/sharpen/".concat(t.sharpen)),o.length&&(o="?imageMogr2"+o),i+o},Ne=function(e,t){var n,i=e.split("?")[0],r=i.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="",a=[],s=t.format,l=t.quality,u=t.size;if(void 0!==s&&s!==r&&a.push("format,".concat("heif"===s?"heic":s)),void 0!==t.cut){var c=t.cut,h=c[0],d=c[1],p=c[2],f=c[3];a.push("crop,x_".concat(h,",y_").concat(d,",w_").concat(p,",h_").concat(f,",g_nw"))}if(void 0!==l&&100!==l){var A=null!==(n=t.format)&&void 0!==n?n:r;A&&["jpg","webp"].indexOf(A)>=0&&a.push("quality,Q_".concat(l))}return u&&2048!==u&&a.push("resize,w_".concat(u)),void 0!==t.sharpen&&a.push("sharpen,".concat(t.sharpen)),a.length&&(o="?x-oss-process=image/"+a.join("/")),i+o};function Ve(e,t){var n=ne(ne({},Oe),t.mappings),i=function(e){var t=e.match(Fe);return null===t?null:t[1]}(e);if(null===i)return e;var r=n[i];return r?(e=function(e,t,n){var i=t.split("."),r=i[0],o=i.slice(1);if("texture"===r)return De(e,n.texture[0]);if("pano"===r||"pano_luminance"===r)switch(o[0],o[1]){case"front":case"left":case"up":return De(e,n.pano[0]);case"down":case"right":case"back":return De(e,n.pano[1])}else if("pano_tile"===r||"pano_tile_luminance"===r){o[0],o[1];var a=o[2],s=o[3],l=o[4],u=Math.pow(2,Number(a))*Number(s)+Number(l);if(!isNaN(u))return De(e,n.tile[u%2])}else if("model"===r){var c=o[0];if(u=Number(c),!isNaN(u))return De(e,n.model[u%2])}return De(e,n.default[0])}(e,t.key,r),/\.basis(\?|$)/.test(e)&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),"tencentCloud"===r.type?Qe(e,t):"aliyun"===r.type?Ne(e,t):e):e}function Ue(e,t,n){void 0===t&&(t=Ve);var i=t(e,n);if(i===e&&n.cut)throw new Error("ImageURL: cut option not applied.");return i}const _e="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",ze="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";function qe(e){return new Promise((function(t){var n=new Image,i=setTimeout((function(){n.onload=n.onerror=function(){},clearTimeout(i),t(!1)}));n.onload=n.onerror=function(){n.onload=n.onerror=function(){},clearTimeout(i),t(2===n.height)},n.src=e}))}var He=null;function je(){return He||(He=Promise.all([qe(_e),qe(ze)]).then((function(e){var t=e[0];return{webp:e[1],avif:t}})).catch((function(){return{webp:!1,avif:!1}})))}var Ke=function(){function t(){this.numPlanes=0,this.clipperPlanes=null,this.clipperFloors=null}return Object.defineProperty(t,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new t),this.sharedInstance},enumerable:!1,configurable:!0}),t.prototype.update=function(t,n){if(this.clipperFloors=[],t instanceof Array){this.clipperPlanes=new Float32Array(24*t.length);for(var i=function(i){var o=[new e.Plane(new e.Vector3(.5,0,0),-1),new e.Plane(new e.Vector3(-.5,0,0),-1),new e.Plane(new e.Vector3(0,.5,0),-1),new e.Plane(new e.Vector3(0,-.5,0),-1),new e.Plane(new e.Vector3(0,0,.5),-1),new e.Plane(new e.Vector3(0,0,-.5),-1)];o.forEach((function(e){e.applyMatrix4(t[i].clippingBoxMatrix)}));for(var a=r.projectPlanes(o,n),s=0;s<24;s++)r.clipperPlanes[24*i+s]=a[s];var l=t[i].hasOwnProperty("floorIndex")?t[i].floorIndex:-1;r.clipperFloors[i]=l},r=this,o=0;o<t.length;o++)i(o)}else{var a=[new e.Plane(new e.Vector3(.5,0,0),-1),new e.Plane(new e.Vector3(-.5,0,0),-1),new e.Plane(new e.Vector3(0,.5,0),-1),new e.Plane(new e.Vector3(0,-.5,0),-1),new e.Plane(new e.Vector3(0,0,.5),-1),new e.Plane(new e.Vector3(0,0,-.5),-1)];a.forEach((function(e){e.applyMatrix4(t.clippingBoxMatrix)})),this.clipperPlanes=this.projectPlanes(a,n),this.clipperFloors[0]=t.hasOwnProperty("floorIndex")?t.floorIndex:-1}},t.prototype.projectPlanes=function(t,n){var i=null!==t?t.length:0,r=4*i,o=n.matrixWorldInverse,a=new e.Matrix3;a.getNormalMatrix(o);for(var s=new Float32Array(r),l=new e.Plane,u=0,c=0;u!==i;++u,c+=4)l.copy(t[u]).applyMatrix4(o,a),l.normal.toArray(s,c),s[c+3]=l.constant;return s},t}(),Ge=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return te(t,e),t}(e.Mesh),We=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t.enableTransparent=!1,t}return te(t,e),t.prototype.getTransparent=function(){return this.enableTransparent},t.prototype.setTransparent=function(e){this.enableTransparent!==e&&(this.enableTransparent=e,this.traverse((function(t){t instanceof Ge&&t.material.forEach((function(t){t.transparent=e}))})))},t.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof Ge){var n=t.material[0];e={pano0:n.pano0,pano1:n.pano1,modelAlpha:n.modelAlpha,progress:n.progress,useBlackTransition:n.useBlackTransition,modelColorInfo:n.modelColorInfo,opacity:n.opacity,floorIndex:n.floorIndex,floorInfo:n.floorInfo,clippers:n.clippers,clipperPlanesArray:n.clipperPlanesArray,clipperFloors:n.clipperFloors,globalFloorInfo:n.globalFloorInfo}}})),e},t.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof Ge&&t.material.forEach((function(t){void 0!==e.pano0&&(t.pano0=e.pano0),void 0!==e.pano1&&(t.pano1=e.pano1),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.modelColorInfo&&(t.modelColorInfo=e.modelColorInfo),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.floorIndex&&(t.floorIndex=e.floorIndex),void 0!==e.floorInfo&&(t.floorInfo=e.floorInfo),void 0!==e.clippers&&(t.clippers=e.clippers),void 0!==e.clipperPlanesArray&&(t.clipperPlanesArray=e.clipperPlanesArray),void 0!==e.clipperFloors&&(t.clipperFloors=e.clipperFloors),void 0!==e.globalFloorInfo&&(t.globalFloorInfo=e.globalFloorInfo)}))}))},t.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof Ge){var t=[];e.material.forEach((function(e){var n=e.uniforms;Object.keys(n).map((function(e){if(/^pano\d\_/.test(e))n[e].value=null;else{var i=n[e].value;i&&"function"==typeof i.dispose&&-1===t.indexOf(i)&&(n[e].value=null,t.push(i))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},t.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof Ge&&e.geometry.dispose()}))},t}(e.Group),Xe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return te(t,e),t}(We),Ye=["right","left","up","down","front","back"];function Ze(t,n,i,r){var o=new e.Box3;switch(t){case"up":o.min.y=.5,o.max.y=.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.z=.5-i-r,o.max.z=.5-i;break;case"down":o.min.y=-.5,o.max.y=-.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.z=+i-.5,o.max.z=+i-.5+r;break;case"left":o.min.x=-.5,o.max.x=-.5,o.min.z=.5-n-r,o.max.z=.5-n,o.min.y=.5-i-r,o.max.y=.5-i;break;case"right":o.min.x=.5,o.max.x=.5,o.min.z=+n-.5,o.max.z=+n-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"front":o.min.z=-.5,o.max.z=-.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"back":o.min.z=.5,o.max.z=.5,o.min.x=.5-n-r,o.max.x=.5-n,o.min.y=.5-i-r,o.max.y=.5-i}return o.applyMatrix4((new e.Matrix4).makeRotationY(Math.PI))}var Je=function(t,n){if(!(t.level>=n))for(var i=t.level+1,r=t.size/2,o=0,a=[new e.Vector2(t.position.x,t.position.y),new e.Vector2(t.position.x+r,t.position.y),new e.Vector2(t.position.x,t.position.y+r),new e.Vector2(t.position.x+r,t.position.y+r)];o<a.length;o++){var s=a[o],l={face:t.face,level:i,size:r,position:s,box:Ze(t.face,s.x,s.y,r),children:[]};t.children.push(l),Je(l,n)}};function $e(t){var n=Ye.map((function(n){return function(t,n){var i={level:0,face:t,position:new e.Vector2(0,0),size:1,box:Ze(t,0,0,1),children:[]};return Je(i,n),i}(n,t)}));return{children:n}}function et(e,t){for(var n=0,i=e.children;n<i.length;n++){var r=i[n];!1!==t(r)&&et(r,t)}}var tt=new e.BoxBufferGeometry(1,1,1,1,1);tt.deleteAttribute("uv"),tt.deleteAttribute("normal"),tt.groups=[],tt.scale(-1,1,1);var nt=new e.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec3 worldPosition;\nvoid main() {\n vec4 transform = vec4(position, 1.0);\n worldPosition = (modelMatrix * transform).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * transform;\n}\n",fragmentShader:"\nuniform samplerCube map;\nvarying vec3 worldPosition;\nvoid main() {\n gl_FragColor = textureCube(map, worldPosition);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1,fog:!1}),it=new e.Scene;it.matrixAutoUpdate=!1;var rt,ot=new e.Mesh(tt,nt);function at(t,n,i){nt.uniforms.map.value=t;var r=i.autoClear;i.autoClear=!1;var o=new e.CubeCamera(.1,2,n);o.matrixAutoUpdate=!1,o.update(i,it),i.autoClear=r,nt.uniforms.map.value=null}ot.matrixAutoUpdate=!1,it.add(ot);var st=null!==(rt=Math.SQRT1_2)&&void 0!==rt?rt:Math.sqrt(2),lt={up:new e.Quaternion(st,0,0,st),down:new e.Quaternion(-st,0,0,st),left:new e.Quaternion(0,st,0,st),right:new e.Quaternion(0,-st,0,st),front:new e.Quaternion(0,0,0,1),back:new e.Quaternion(0,1,0,0)},ut=function(){var t=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),n=new Float32Array([0,0,1,0,0,1,1,1]),i=new Uint8Array([0,1,2,1,3,2]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),ct=[];function ht(e){e.uniforms.map.value=null,ct.push(e)}var dt=[];function pt(){var e=this.src;this.onerror=this.onload=le,this.removeAttribute("src"),/^blob\:/.test(e)&&URL.revokeObjectURL(e),this.close=le}var ft=[],At=0;function vt(){var e=document.createElementNS("http://www.w3.org/1999/xhtml","img");return Object.assign(e,{crossOrigin:"",close:pt})}function mt(){return new Promise((function(e){At>0?(At--,e(vt())):ft.push((function(){e(vt())}))}))}function gt(){dt.push(this)}function yt(e){return new Promise((function(t,n){var i=vt();i.onload=function(){i.onload=i.onerror=le,setTimeout((function(){t(i)}),0)},i.onerror=function(){var e=i.src;i.onload=i.onerror=le,i.close(),n(new Error("image load error: ".concat(e)))},i.src=URL.createObjectURL(e)}))}function bt(t,n){if(n&&(t.width>n.width||t.height>n.height)){var i=function(e,t){var n=dt.shift();if(n)return n.width=e,n.height=t,n;var i=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return Object.assign(i,{close:gt})}(Math.min(t.width,n.width),Math.min(t.height,n.height)),r=i.getContext("2d");r.clearRect(0,0,i.width,i.height),r.drawImage(t,0,0,i.width,i.height),t.close();var o=new e.Texture(i);o.needsUpdate=!0,o.flipY=!0;var a=o.dispose;return o.dispose=function(){i.close(),a.call(o),o.dispose=a},o}var s=new e.Texture(t);s.needsUpdate=!0,s.flipY=!0;var l=s.dispose;return s.dispose=function(){t.close(),l.call(s),s.dispose=l},s}ke.shared.add((function(){if(At=10,ft.length)for(var e=0,t=ft.splice(0,At);e<t.length;e++){var n=t[e];At--,n()}}));var xt=["right","left","up","down","front","back"],wt=function(){function t(e,t,n,i,r){this.tileTree=t,this.tileSources=n,this.options=i,this.renderer=r,this.name="",this.needsRender=!1,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.textures=[],this.baseCubeTexture=e}return Object.defineProperty(t.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(t){var n,i,r,o,a;if(null===t)throw new Error("cannot set cubeRenderTarget to null.");t.width!==this.options.textureSize&&t.setSize(this.options.textureSize,this.options.textureSize),t.texture.format=null!==(n=this.options.format)&&void 0!==n?n:e.RGBAFormat,t.texture.minFilter=null!==(i=this.options.minFilter)&&void 0!==i?i:e.LinearFilter,t.texture.magFilter=null!==(r=this.options.magFilter)&&void 0!==r?r:e.LinearFilter,t.texture.wrapS=null!==(o=this.options.wrapS)&&void 0!==o?o:e.ClampToEdgeWrapping,t.texture.wrapT=null!==(a=this.options.wrapT)&&void 0!==a?a:e.ClampToEdgeWrapping,this.baseCubeTexture&&(at(this.baseCubeTexture,t,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&at(this._cubeRenderTarget.texture,t,this.renderer),this._cubeRenderTarget=t},enumerable:!1,configurable:!0}),t.prototype.requestTile=function(t){var n,i,r,o,a,s,l=this,u=this.tileSources.filter((function(e){return e.level===t.level}))[0];if(u){var c=u.size,h=Math.pow(2,t.level)*t.position.y,d=Math.pow(2,t.level)*t.position.x,p="".concat((null!==(r=null===(i=null===(n=this.options.imageURL)||void 0===n?void 0:n.options)||void 0===i?void 0:i.key)&&void 0!==r?r:"pano.0").replace(/^pano/,"pano_tile"),".").concat(t.face,".").concat(t.level,".").concat(h,".").concat(d),f=ne(ne({},null!==(a=null===(o=this.options.imageURL)||void 0===o?void 0:o.options)&&void 0!==a?a:{key:"unknown"}),{key:p,size:c*t.size===this.options.tileImageSize?void 0:this.options.tileImageSize,quality:void 0,cut:[c*t.position.x,c*t.position.y,c*t.size,c*t.size]});this.loadingCubeNodes.add(t),this.options.textureLoader.loadTexture(u[t.face],{imageURL:{transform:null===(s=this.options.imageURL)||void 0===s?void 0:s.transform,options:ne({},f)},format:e.RGBAFormat,viaAjax:!1}).then((function(n){l.disposed?n.body.dispose():(l.textures.push({face:t.face,level:t.level,position:t.position,size:new e.Vector2(t.size,t.size),texture:n.body}),l.loadedCubeNodes.add(t))})).catch(le).then((function(){l.disposed||l.loadingCubeNodes.delete(t)}))}else this.loadedCubeNodes.add(t)},t.prototype.update=function(t,n){var i=this;if(!this.disposed){var r=[];et(this.tileTree,(function(e){return!i.loadingCubeNodes.has(e)&&!(e.level>n)&&!!t.intersectsBox(e.box)&&(i.loadedCubeNodes.has(e)?void 0:(r.push(e),!1))}));for(var o=0,a=r;o<a.length;o++){var s=a[o];this.requestTile(s)}if(this.cubeRenderTarget&&this.textures.length){var l=this.textures.splice(0,4);!function(t,n,i){var r=new e.Scene,o=new e.Group;o.scale.set(1,1,-1),r.add(o);for(var a=[],s=0,l=t;s<l.length;s++){var u=l[s],c=ct.pop()||new e.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1,fog:!1});a.push(c),c.uniforms.map.value=u.texture;var h=new e.Group,d=new e.Mesh(ut,c);d.position.set(u.position.x+u.size.x/2-.5,1-(u.position.y+u.size.y/2)-.5,-.5),d.scale.set(u.size.x,u.size.y,1),h.quaternion.copy(lt[u.face]),h.add(d),o.add(h)}var p=i.autoClear;i.autoClear=!1;var f=new e.CubeCamera(.1,2,n);f.matrixAutoUpdate=!1,f.update(i,r),i.autoClear=p;for(var A=0,v=a;A<v.length;A++)ht(c=v[A])}(l,this.cubeRenderTarget,this.renderer),this.needsRender=!0;for(var u=0,c=l;u<c.length;u++)c[u].texture.dispose()}}},Object.defineProperty(t.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var e=0,t=this.textures;e<t.length;e++)t[e].texture.dispose();this.textures.length=0}},t}(),Mt=function(){function t(e){this.timeout=e.timeout,this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return t.prototype.setAllowHosts=function(e){this.allowHosts=e},t.prototype.setRequestProxy=function(e){this.requestProxy=e},t.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e},t.prototype.loadTexture=function(e,t,n,i,r,o){var a,s,l,u;void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var c={};void 0!==t.flipY&&(c.flipY=t.flipY),void 0!==t.format&&(c.format=t.format),void 0!==t.minFilter&&(c.minFilter=t.minFilter),void 0!==t.magFilter&&(c.magFilter=t.magFilter);var h=null!==(s=null===(a=t.imageURL)||void 0===a?void 0:a.options)&&void 0!==s?s:{key:"unknown"},d=Ee(e=Ue(e,null===(l=t.imageURL)||void 0===l?void 0:l.transform,h)),p={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},f=null!==(u=t.viaAjax)&&void 0!==u&&u,A=Me(e),v=/^https?:/.test(d);if(A?f=!0:v||(f=!1),f)return Se(e,ne(ne({},p),{responseType:"blob"}),void 0,void 0,r).then((function(e){return yt(e.body)})).then((function(e){return bt(e,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){var t={meta:null,body:e};return n(t),t})).catch((function(e){return i(e),Promise.reject(e)}));var m,g=null;return Promise.resolve().then((function(){return mt()})).then((function(t){return m=t,Pe(e,p,void 0,void 0,r,t)})).then((function(e){return g=e.meta,bt(e.body,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){var t={meta:g,body:e};return n(t),t})).catch((function(e){return m&&m.close(),i(e),Promise.reject(e)}))},t.prototype.loadCubeTexture=function(t,n,i,r,o,a){var s,l,u,c;void 0===n&&(n={}),void 0===i&&(i=le),void 0===r&&(r=le),void 0===o&&(o=le);var h={};void 0!==n.format&&(h.format=n.format),void 0!==n.minFilter&&(h.minFilter=n.minFilter),void 0!==n.magFilter&&(h.magFilter=n.magFilter);for(var d=[t[xt[0]],t[xt[1]],t[xt[2]],t[xt[3]],t[xt[4]],t[xt[5]]],p={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},f=[],A=[0,0,0,0,0,0],v=[],m=function(e){var t=null!==(l=null===(s=n.imageURL)||void 0===s?void 0:s.options)&&void 0!==l?l:{key:"unknown"},i=Ue(d[e],null===(u=n.imageURL)||void 0===u?void 0:u.transform,ne(ne({},t),{key:t.key+"."+xt[e]})),r=Ee(i),a=function(t){A[e]=t,o(A.reduce((function(e,t){return e+t}),0)/6)},h=null!==(c=n.viaAjax)&&void 0!==c&&c,m=/^https?:$/.test(r);if(Me(i)?h=!0:m||(h=!1),h){var g=Se(i,ne(ne({},p),{responseType:"blob"}),void 0,void 0,a).then((function(t){return v[e]=t.meta,yt(t.body)}));f.push(g)}else{var y;g=Promise.resolve().then((function(){return mt()})).then((function(e){return y=e,Pe(i,p,void 0,void 0,a,e)})).then((function(t){return v[e]=t.meta,t.body})).catch((function(e){return y&&y.close(),Promise.reject(e)})),f.push(g)}},g=0;g<6;g++)m(g);return Promise.all(f).then((function(t){return function(t){var n=new e.CubeTexture(t);n.needsUpdate=!0,n.flipY=!1;var i=n.dispose;return n.dispose=function(){for(var e=0,r=t;e<r.length;e++)r[e].close();i.call(n),n.dispose=i},n}(t)})).then((function(t){return Object.assign(t,ne({encoding:e.sRGBEncoding},n)),t})).then((function(e){var t={body:e,meta:v};return i(t),t})).catch((function(e){for(var t=0,n=f;t<n.length;t++)n[t].then((function(e){return e.close()})).catch(le);return r(e),Promise.reject(e)}))},t.prototype.loadTiledCubeTexture=function(t,n,i,r,o,a,s){var l=this;return void 0===i&&(i={}),void 0===r&&(r=le),void 0===o&&(o=le),void 0===a&&(a=le),new Promise((function(u,c){var h,d;l.loadCubeTexture(t,{imageURL:{transform:null===(h=i.imageURL)||void 0===h?void 0:h.transform,options:null===(d=i.imageURL)||void 0===d?void 0:d.options},format:e.RGBAFormat,viaAjax:i.viaAjax},(function(e){var t,o,a=e.meta,c=e.body,h=null!==(t=i.tileImageSize)&&void 0!==t?t:512,d=null!==(o=i.tileMaxLevel)&&void 0!==o?o:2,p=Math.max(1024*d,512),f=$e(d),A={meta:a,body:new wt(c,f,n,{textureSize:p,tileImageSize:h,textureLoader:l,imageURL:i.imageURL},s)};r(A),u(A)}),(function(e){o(e),c(e)}),a,s).catch(le)}))},t}();const Et=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rpA-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK0v{pyqr-Iunq|zn}l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-z|qryZnv-7-n{s|zrqH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--0v{pyqr-Iunq|zn}lrrK\f"),Ct=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-sy|n-sy||V{qrH0vs-qrsv{rq5b`RlNYYlP\\Y\\_6{vs|z-rp@-z|qryP|y|V{s|H0r{qvs0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6--{vs|z-rp?-}n{|cvqr|lv\trH--{vs|z-znA-}n{|cvqr|lznvH--{vs|z-sy|n-}n{|cvqr|lny}unH--{vs|z-nz}yr?Q-}n{|cvqr|lzn}H0r{qvs0vs-qrsv{rq5b`RlPYV]SY\\\\_6--{vs|z-rp@-sy||V{s|H0r{qvsn\bv{t-rpA-|yq]|vv|{H0vs-qrsv{rq5b`RlPbaR_6--0vs-[bZlPYV]]V[TlN__NflYR[TaU-K-=----{vs|z-sy|n-pyv}}rSy||h[bZlPYV]]V[TlO\\ejH----{vs|z-nz}yr?Q-pyv}}r]yn{rarrH--0r{qvs0r{qvs0vs-[bZlSY\\\\_lP\\b[a-K-=--{vs|z-nz}yr?Q-ty|onySy||V{s|arrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--0vs-qrsv{rq5b`RlNYYlP\\Y\\_6----tylSntP|y|-J-rpA5z|qryP|y|V{s|;9z|qryP|y|V{s|;t9z|qryP|y|V{s|;o9>;=6H----r{H--0r{qvsvs-5q|5cvr]|vv|{9-[|zny6-I-=;=6-\n----qvpnqH--\f--<<前置裁切计算------0vs-qrsv{rq5b`RlPbaR_6----rpA-}yn{rH-------s|5-v{-v-J-=H-v-I-[bZlPYV]]V[TlO\\eH-v886\n------o||y-pyv}}rq-J-rH------v{-pr{Sy||V{qr-J-v{5pyv}}rSy||hvj6H------<<内部展开s|循环,让v{q|能用------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8->6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-?6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-@6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-A6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-B6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------rp?-sy||bH------sy||b;-J-sy|n5pr{Sy||V{qr6-<-sy|n5[bZlSY\\\\_lP\\b[a6H------sy||b;\b-J-=;BH------rpA-lsy||V{s|H------lsy||V{s|-J-rr?Q5ty|onySy||V{s|arr9-sy||b6H------------o||y-v{antrSy||-J-|yq]|vv|{;\b-I-lsy||V{s|;-33-|yq]|vv|{;\b-K-lsy||V{s|;tH------pyv}}rq-J-5pr{Sy||V{qr-JJ-:>-\v\v-v{antrSy||6-33-pyv}}rqH------vs5pyv}}rq6-\n--------qvpnqH------\f----\f--0r{qvs--<<楼层切割计算--0vs-qrsv{rq5b`RlPYV]SY\\\\_6----vs-5|yq]|vv|{;\b-I-sy||V{s|;-\v\v-|yq]|vv|{;\b-K-sy||V{s|;t6-\n------qvpnqH----\f--0r{qvs--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{;\b\t-:-}n{|=lznvh@j;\b\t6-7-zn@5}n{|=lznv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{;\b\t-:-}n{|>lznvh@j;\b\t6-7-zn@5}n{|>lznv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=lzn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>lzn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{;\b\t-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|lznvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|lzn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|lny}un6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\l\\]NPVaf6----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H----tylSntP|y|;n-J-|}npv\bH--0ryr----tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--0r{qvs\f");var It=new e.WebGLCubeRenderTarget(1).texture;It.name="EMPTY_TEXTURE";var St=Object.assign({modelAlpha:new e.Uniform(0),progress:new e.Uniform(0),pano0_map:new e.Uniform(It),pano0_luminanceMap:new e.Uniform(null),pano0_matrix:new e.Uniform(new e.Matrix4),pano1_map:new e.Uniform(It),pano1_luminanceMap:new e.Uniform(null),pano1_matrix:new e.Uniform(new e.Matrix4),floorIndex:new e.Uniform(-1),floorInfo:new e.Uniform(null),clipperPlanesArray:new e.Uniform(new Float32Array),clipperPlanesTexture:new e.Uniform(null),clipperFloors:new e.Uniform([]),modelColorInfo:new e.Uniform(null),globalFloorInfo:new e.Uniform([]),globalFloorInfoTexture:new e.Uniform(null)},{exposure:new e.Uniform(1),emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsUtils.clone(e.UniformsLib.common),e.UniformsUtils.clone(e.UniformsLib.lights)),Bt=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c,h,d=this;d=t.call(this,{vertexShader:Et,fragmentShader:Ct,uniforms:e.UniformsUtils.clone(St),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_PANO_OPACITY:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1,USE_ALL_COLOR:!1,USE_CLIPFLOOR:!1,USE_CUTER:!1,NUM_FLOOR_COUNT:0,NUM_CLIPPING_ARRAY_LENGTH:0,NUM_CLIPPING_BOX:0},blending:e.NoBlending,lights:!0})||this;var p=null,f=null;return Object.defineProperties(d,{pano0:{get:function(){return p},set:function(e){p=e,null===e?(this.uniforms.pano0_map.value=It,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity()):(this.uniforms.pano0_map.value=e.map instanceof wt?e.map.texture:e.map,this.uniforms.pano0_luminanceMap.value=e.luminanceMap instanceof wt?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano0_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},pano1:{get:function(){return f},set:function(e){f=e,null===e?(this.uniforms.pano1_map.value=It,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity()):(this.uniforms.pano1_map.value=e.map instanceof wt?e.map.texture:e.map,this.uniforms.pano1_luminanceMap.value=e.luminanceMap instanceof wt?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano1_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},modelColorInfo:{get:function(){return this.uniforms.modelColorInfo.value},set:function(e){this.uniforms.modelColorInfo.value=e;var t=null!==e;this.defines.USE_ALL_COLOR!==t&&(this.defines.USE_ALL_COLOR=t,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t;var n=t<1?e.NormalBlending:e.NoBlending;n!==this.blending&&(this.blending=n,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(e){this.uniforms.floorIndex.value=e}},floorInfo:{get:function(){return this.uniforms.floorInfo.value},set:function(t){var n,i=this.defines.USE_CLIPFLOOR;t&&!t.equals(new e.Vector3(0,0,0))?(n=!0,this.uniforms.floorInfo.value=t):(n=!1,this.uniforms.floorInfo.value=null),i!==n&&(this.defines.USE_CLIPFLOOR=n,this.needsUpdate=!0)}},clippers:{get:function(){return this._clippers},set:function(e){this._clippers=e}},clipperPlanesArray:{get:function(){return this.uniforms.clipperPlanesArray.value},set:function(t){var n=!1;if(t instanceof Float32Array&&t.length>0&&t.length%6==0){var i=t.length/4;!0!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!0,n=!0),this.defines.NUM_CLIPPING_ARRAY_LENGTH!==i&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=i,n=!0),this.defines.NUM_CLIPPING_BOX!==i/6&&(this.defines.NUM_CLIPPING_BOX=i/6,n=!0),this.uniforms.clipperPlanesArray.value=t;var r=new e.DataTexture(t,i,1,e.RGBAFormat,e.FloatType);r.wrapS=e.ClampToEdgeWrapping,r.wrapT=e.ClampToEdgeWrapping,r.minFilter=e.NearestFilter,r.magFilter=e.NearestFilter,this.uniforms.clipperPlanesTexture.value&&this.uniforms.clipperPlanesTexture.value.dispose(),this.uniforms.clipperPlanesTexture.value=r}else!1!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!1,n=!0),0!==this.defines.NUM_CLIPPING_ARRAY_LENGTH&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=0,n=!0),0!==this.defines.NUM_CLIPPING_BOX&&(this.defines.NUM_CLIPPING_BOX=0,n=!0),this.uniforms.clipperPlanesArray.value=new Float32Array,this.uniforms.clipperPlanesTexture.value=null;n&&(this.needsUpdate=!0)}},clipperFloors:{get:function(){return this.uniforms.clipperFloors.value},set:function(e){this.uniforms.clipperFloors.value=e}},globalFloorInfo:{get:function(){return this.uniforms.globalFloorInfo.value},set:function(t){var n=this.defines.NUM_FLOOR_COUNT;if(t&&n!==t.length){this.defines.NUM_FLOOR_COUNT=t.length,this.uniforms.globalFloorInfo.value=t;var i=[];t.forEach((function(e){i.push(e.x),i.push(e.y),i.push(0),i.push(0)}));var r=t.length,o=new e.DataTexture(new Float32Array(i),r,1,e.RGBAFormat,e.FloatType);o.wrapS=e.ClampToEdgeWrapping,o.wrapT=e.ClampToEdgeWrapping,o.minFilter=e.NearestFilter,o.magFilter=e.NearestFilter,this.uniforms.globalFloorInfoTexture.value&&this.uniforms.globalFloorInfoTexture.value.dispose(),this.uniforms.globalFloorInfoTexture.value=o,this.needsUpdate=!0}}}}),d.pano0=null!==(i=n.pano0)&&void 0!==i?i:null,d.pano1=null!==(r=n.pano1)&&void 0!==r?r:null,d.modelAlpha=null!==(o=n.modelAlpha)&&void 0!==o?o:1,d.progress=null!==(a=n.progress)&&void 0!==a?a:0,d.useBlackTransition=null!==(s=n.useBlackTransition)&&void 0!==s&&s,d.modelColorInfo=null!==(l=n.modelColorInfo)&&void 0!==l?l:null,d.opacity=null!==(u=n.opacity)&&void 0!==u?u:1,d.originOpacity=1,d.floorIndex=null!==(c=n.floorIndex)&&void 0!==c?c:-1,d.floorInfo=null!==(h=n.floorInfo)&&void 0!==h?h:null,d.clippers=null,d.clipperPlanesArray=null,d.clipperFloors=null,d.globalFloorInfo=null,d}return te(n,t),n}(e.ShaderMaterial),Tt=function(t){function n(n){var i=n.preserveDrawingBuffer,r=void 0===i||i,o=n.backgroundColor,a=void 0===o?1579548:o,s=n.backgroundAlpha,l=void 0===s?1:s,u=n.pixelRatio,c=void 0===u?1:u,h=n.antialias,d=void 0!==h&&h,p=n.webgl2,f=this;if(void 0!==p&&p){var A=document.createElement("canvas"),v=A.getContext("webgl2");if(null===v)throw new Error("error occurred when getting webgl2 canvas context");f=t.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1,canvas:A,context:v})||this}else f=t.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1})||this;return f.setPixelRatio(c),f.setClearColor(a,l),f.outputEncoding=e.sRGBEncoding,f.autoClear=!0,f}return te(n,t),n}(e.WebGLRenderer),Pt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t.prototype.add=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.add.apply(this,t)},t.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.remove.apply(this,t)},t}(e.Scene);function Rt(t,n){var i=Math.abs(Math.cos(t.latitude)),r=-Math.sin(t.longitude)*i,o=-Math.sin(t.latitude),a=-Math.cos(t.longitude)*i;return n?n.set(r,o,a):new e.Vector3(r,o,a)}var Lt=2*Math.PI,kt=Math.PI/2;function Ot(e){return e>0&&e<=Lt?e:(e%Lt+Lt)%Lt}var Ft,Dt,Qt,Nt,Vt=function(t){function n(n,i,r,o,a,s){void 0===i&&(i=1),void 0===r&&(r=.01),void 0===o&&(o=1e3),void 0===a&&(a=new e.Vector2),void 0===s&&(s=1);var l=t.call(this)||this;l.fov=n,l.aspect=i,l.near=r,l.far=o,l.perspToOrtho=a,l.orthoDistance=s,l.needsRender=!0,l.pose={longitude:0,latitude:0,fov:n,distance:0,offset:new e.Vector3},l.computePose(),l.perspectiveCamera=new e.PerspectiveCamera(l.fov,l.aspect,.001,l.far);var u=Math.max(l.orthoDistance,.01)*Math.tan(.5*l.fov/180*Math.PI),c=-.5*l.aspect*2*u;return l.orthographicCamera=new e.OrthographicCamera(c,-c,u,-u,.001,l.far),l.computeProjectionMatrix(),l.lastValues={position:l.position.clone(),quaternion:l.quaternion.clone(),scale:l.scale.clone(),fov:l.fov,aspect:l.aspect,near:l.near,far:l.far,perspToOrtho:l.perspToOrtho.clone(),orthoDistance:l.orthoDistance},l.type=l.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera",l}return te(n,t),n.prototype.getDirection=function(e){return Rt(this.pose,e)},n.prototype.computePose=function(t){void 0===t&&(t=0);var n=this.getDirection(new e.Vector3);this.pose.longitude=Ot(-Math.atan2(n.x,-n.z)),this.pose.latitude=-Math.asin(n.y/1),this.pose.fov=this.fov,this.pose.distance=t;var i=(new e.Vector3).add(this.position).add(n.clone().setLength(this.pose.distance));return this.pose.offset.copy(i),this},n.prototype.setFromPose=function(e){var t,n,i,r,o,a=Ot(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),s=Math.max(1e-4-kt,Math.min(kt-1e-4,null!==(n=e.latitude)&&void 0!==n?n:this.pose.latitude)),l=null!==(i=e.fov)&&void 0!==i?i:this.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.pose.offset,h=Rt({longitude:a,latitude:s}).normalize();return this.position.set(0,0,0),this.lookAt(h),this.position.add(c).sub(h.clone().setLength(u)),this.fov!==l&&(this.fov=l,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=a,this.pose.latitude=s,this.pose.fov=l,this.pose.distance=u,this.pose.offset.copy(c),this.needsRender=!0,this},n.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},n.prototype.computeProjectionMatrix=function(){!function(e,t,n,i){n=Math.pow(n,2);for(var r=0;r<16;r++)i.elements[r]=e.elements[r]+(t.elements[r]-e.elements[r])*n}(this.orthographicCamera.projectionMatrix,this.perspectiveCamera.projectionMatrix,1-this.perspToOrtho.x,this.projectionMatrix),this.projectionMatrixInverse.getInverse(this.projectionMatrix),this.needsRender=!0},n.prototype.setViewOffset=function(e,t,n,i,r,o){this.perspectiveCamera.setViewOffset(e,t,n,i,r,o),this.orthographicCamera.setViewOffset(e,t,n,i,r,o),this.computeProjectionMatrix()},n.prototype.clearViewOffset=function(){this.perspectiveCamera.clearViewOffset(),this.orthographicCamera.clearViewOffset(),this.computeProjectionMatrix()},n.prototype.updateProjectionMatrix=function(){this.perspectiveCamera.updateProjectionMatrix(),this.orthographicCamera.updateProjectionMatrix(),this.computeProjectionMatrix()},Object.defineProperty(n.prototype,"perspectiveProjectionMatrix",{get:function(){return this.perspectiveCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"perspectiveProjectionMatrixInverse",{get:function(){return this.perspectiveCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orthographicProjectionMatrix",{get:function(){return this.orthographicCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orthographicProjectionMatrixInverse",{get:function(){return this.orthographicCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),n.prototype.updateTime=function(e,t){var n=!1;if(this.lastValues.fov===this.fov&&this.lastValues.near===this.near&&this.lastValues.far===this.far&&this.lastValues.aspect===this.aspect||(this.perspectiveCamera.fov=this.fov,this.perspectiveCamera.near=this.near,this.perspectiveCamera.far=this.far,this.perspectiveCamera.aspect=this.aspect,this.perspectiveCamera.updateProjectionMatrix(),n=!0),!this.lastValues.position.equals(this.position)||!this.lastValues.quaternion.equals(this.quaternion)||!this.lastValues.scale.equals(this.scale)||this.lastValues.orthoDistance!==this.orthoDistance||this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.aspect!==this.aspect){var i=Math.max(this.orthoDistance,.01)*Math.tan(.5*this.fov/180*Math.PI),r=-.5*this.aspect*2*i;this.orthographicCamera.left=r,this.orthographicCamera.right=-r,this.orthographicCamera.top=i,this.orthographicCamera.bottom=-i,this.orthographicCamera.updateProjectionMatrix(),n=!0}this.lastValues.perspToOrtho.equals(this.perspToOrtho)||(n=!0),n&&this.computeProjectionMatrix(),this.lastValues.position.copy(this.position),this.lastValues.quaternion.copy(this.quaternion),this.lastValues.scale.copy(this.scale),this.lastValues.fov=this.fov,this.lastValues.aspect=this.aspect,this.lastValues.near=this.near,this.lastValues.far=this.far,this.lastValues.perspToOrtho.copy(this.perspToOrtho),this.lastValues.orthoDistance=this.orthoDistance,this.type=this.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera"},Object.defineProperty(n.prototype,"isPerspectiveCamera",{get:function(){return this.perspToOrtho.x<1},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isOrthographicCamera",{get:function(){return this.perspToOrtho.x>=1},enumerable:!1,configurable:!0}),n.prototype.copy=function(e,n){return t.prototype.copy.call(this,e,n),this.fov=e.fov,this.aspect=e.aspect,this.near=e.near,this.far=e.far,this.perspToOrtho.copy(e.perspToOrtho),this.orthoDistance=e.orthoDistance,this.updateTime(ce(),0),this},n}(e.Camera),Ut=function(){function e(e,t,n){this.x=e,this.y=t,this.z=n}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},e.prototype.set=function(e,t,n){return this.x=e,this.y=t,this.z=n,this},e.prototype.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},e.prototype.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},e.prototype.cross=function(e){var t=this.x,n=this.y,i=this.z;return this.x=n*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-n*e.x,this},e.prototype.crossVectors=function(e,t){var n=e.x,i=e.y,r=e.z,o=t.x,a=t.y,s=t.z;return this.x=i*s-r*a,this.y=r*o-n*s,this.z=n*a-i*o,this},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e}(),_t=function(e,t,n){this.extents=e,this.startIndex=t,this.endIndex=n},zt=function(e,t){this.triangle=e,this.intersectionPoint=t},qt=(Ft=new Ut(0,0,0),Dt=new Ut(0,0,0),Qt=new Ut(0,0,0),Nt=new Ut(0,0,0),function(e,t,n,i,r,o){Dt.subVectors(t,e),Qt.subVectors(n,e),Nt.crossVectors(Dt,Qt);var a,s=r.dot(Nt);if(s>0){if(o)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Ft.subVectors(i,e);var l=a*r.dot(Qt.crossVectors(Ft,Qt));if(l<0)return null;var u=a*r.dot(Dt.cross(Ft));if(u<0)return null;if(l+u>s)return null;var c=-a*Ft.dot(Nt);if(c<0)return null;var h=c/s;return new Ut(0,0,0).copy(r).multiplyScalar(h).add(i)}),Ht=function(e,t){this.min=e,this.max=t};function jt(e,t,n){var i=new Ht(0,0);t.x>=0?(i.min=(n.extents[0]-e.x)*t.x,i.max=(n.extents[3]-e.x)*t.x):(i.min=(n.extents[3]-e.x)*t.x,i.max=(n.extents[0]-e.x)*t.x);var r=new Ht(0,0);if(t.y>=0?(r.min=(n.extents[1]-e.y)*t.y,r.max=(n.extents[4]-e.y)*t.y):(r.min=(n.extents[4]-e.y)*t.y,r.max=(n.extents[1]-e.y)*t.y),i.min>r.max||r.min>i.max)return!1;r.min>i.min&&(i.min=r.min),r.max<i.max&&(i.max=r.max);var o=new Ht(0,0);return t.z>=0?(o.min=(n.extents[2]-e.z)*t.z,o.max=(n.extents[5]-e.z)*t.z):(o.min=(n.extents[5]-e.z)*t.z,o.max=(n.extents[2]-e.z)*t.z),!(i.min>o.max||o.min>i.max||(o.min>i.min&&(i.min=o.min),o.max<i.max&&(i.max=o.max),i.max<0))}function Kt(e,t,n,i,r){if(n>=i)return[0,0,0,0,0,0];for(var o=1/0,a=1/0,s=1/0,l=-1/0,u=-1/0,c=-1/0,h=n,d=void 0,p=void 0;h<i;h++)(p=t[d=6*e[h]])<o&&(o=p),(p=t[d+1])<a&&(a=p),(p=t[d+2])<s&&(s=p),(p=t[d+3])>l&&(l=p),(p=t[d+4])>u&&(u=p),(p=t[d+5])>c&&(c=p);return[o-r,a-r,s-r,l+r,u+r,c+r]}function Gt(e,t,n){return e<t?t:e>n?n:e}var Wt=1e-6,Xt=function(){function e(){}return e.prototype.create=function(e){return this.trianglesArray=e,this},e.prototype.splitNode=function(e){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");for(var t=this.trianglesArray,n=t.length/9,i=new Uint32Array(n),r=new Float32Array(6*n),o=[],a=0,s=1/0,l=1/0,u=1/0,c=-1/0,h=-1/0,d=-1/0,p=0,f=0,A=0,v=void 0,m=void 0,g=void 0,y=void 0,b=void 0,x=void 0,w=void 0;p<n;p++,f+=6,A+=9)i[p]=p,v=y=t[A],(w=t[A+3])<v&&(v=w),w>y&&(y=w),(w=t[A+6])<v&&(v=w),w>y&&(y=w),m=b=t[A+1],(w=t[A+4])<m&&(m=w),w>b&&(b=w),(w=t[A+7])<m&&(m=w),w>b&&(b=w),g=x=t[A+2],(w=t[A+5])<g&&(g=w),w>x&&(x=w),(w=t[A+8])<g&&(g=w),w>x&&(x=w),v<s&&(s=v),y>c&&(c=y),m<l&&(l=m),b>h&&(h=b),g<u&&(u=g),x>d&&(d=x),r[f]=v,r[f+1]=m,r[f+2]=g,r[f+3]=y,r[f+4]=b,r[f+5]=x;var M=new _t([s,l,u,c,h,d],0,n);function E(t){for(var n=t.startIndex,s=t.endIndex,l=t.extents,u=[l[3]-l[0],l[4]-l[1],l[5]-l[2]],c=[0,1,2].sort((function(e,t){return u[t]-u[e]})),h=0;h<3;h++){for(var d=c[h],p=l[d]+l[d+3],f=n,A=s-1,v=-1,m=void 0;f<=A;)-1===v?(m=i[f],r[6*m+d]+r[6*m+d+3]<p?f++:v=m):(m=i[A],r[6*m+d]+r[6*m+d+3]>=p||(i[f]=m,i[A]=v,v=-1,f++),A--);if(f>n&&f<s){var g=new _t(Kt(i,r,n,f,Wt),n,f);g.endIndex-g.startIndex>e&&(o[a++]=g);var y=new _t(Kt(i,r,f,s,Wt),f,s);y.endIndex-y.startIndex>e&&(o[a++]=y),t.node0=g,t.node1=y,t.startIndex=0,t.endIndex=0;break}}}for(o[a++]=M;a;)E(o[--a]);return this.offsetArray=i,this.rootNode=M,o.length=0,this},e.prototype.intersectRay=function(e,t,n){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");if(!this.rootNode||!this.offsetArray)throw new Error("bvh-tree never perpared. call `splitNode` to perpare.");for(var i,r=this.trianglesArray,o=this.offsetArray,a=this.rootNode,s=[],l=[],u=new Ut(1/t.x,1/t.y,1/t.z),c=[a];i=c.pop();)if(jt(e,u,i)){i.node0&&c.push(i.node0),i.node1&&c.push(i.node1);for(var h=i.startIndex;h<i.endIndex;h++)s.push(o[h])}for(var d=new Ut(0,0,0),p=new Ut(0,0,0),f=new Ut(0,0,0),A=new Ut(e.x,e.y,e.z),v=new Ut(t.x,t.y,t.z),m=void(h=0),g=s.length;h<g;h++){m=9*s[h],d.x=r[m],d.y=r[m+1],d.z=r[m+2],p.x=r[m+3],p.y=r[m+3+1],p.z=r[m+3+2],f.x=r[m+6],f.y=r[m+6+1],f.z=r[m+6+2];var y=qt(d,p,f,A,v,n);y&&l.push(new zt([d.clone(),p.clone(),f.clone()],y))}return l},e.prototype.trianglesInSphere=function(e,t){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");if(!this.rootNode||!this.offsetArray)throw new Error("bvh-tree never perpared. call `splitNode` to perpare.");for(var n,i=this.trianglesArray,r=this.offsetArray,o=[this.rootNode],a=[];n=o.pop();){var s=Gt(e.x,n.extents[0],n.extents[3])-e.x,l=Gt(e.y,n.extents[1],n.extents[4])-e.y,u=Gt(e.z,n.extents[2],n.extents[5])-e.z;if(s*s+l*l+u*u<=t*t){n.node0&&o.push(n.node0),n.node1&&o.push(n.node1);for(var c=n.startIndex;c<n.endIndex;c++)a.push(r[c])}}var h=a.length,d=new Float32Array(9*h);for(c=0;c<h;c++){var p=9*a[c];d[9*c]=i[p],d[9*c+1]=i[p+1],d[9*c+2]=i[p+2],d[9*c+3]=i[p+3],d[9*c+4]=i[p+4],d[9*c+5]=i[p+5],d[9*c+6]=i[p+6],d[9*c+7]=i[p+7],d[9*c+8]=i[p+8]}return d},e.prototype.dispose=function(){delete this.offsetArray,delete this.rootNode},e}(),Yt=null,Zt=!1,Jt=[];function $t(e){if(void 0===e&&(e=!1),e||!Zt)if(Yt)Zt=!1;else{Zt=!0;var t=Jt.shift();if(t){try{t()}catch(e){}ke.shared.add((function(){return $t(!0)}),!0,2,-100)}else Zt=!1}}function en(e){return new Promise((function(t,n){Jt.push((function(){try{t(e())}catch(e){n(e)}})),ke.shared.add((function(){return $t()}),!0,2,-100)}))}function tn(){var e={OutWindow:function(){this._windowSize=0}};return e.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},e.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},e.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},e.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},e.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},e.OutWindow.prototype.copyBlock=function(e,t){var n=this._pos-e-1;for(n<0&&(n+=this._windowSize);t--;)n>=this._windowSize&&(n=0),this._buffer[this._pos++]=this._buffer[n++],this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},e.RangeDecoder=function(){},e.RangeDecoder.prototype.setStream=function(e){this._stream=e},e.RangeDecoder.prototype.releaseStream=function(){this._stream=null},e.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},e.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,n=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,n=n<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return n},e.RangeDecoder.prototype.decodeBit=function(e,t){var n=e[t],i=(this._range>>>11)*n;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},e.initBitModels=function(e,t){for(;t--;)e[t]=1024},e.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},e.BitTreeDecoder.prototype.init=function(){e.initBitModels(this._models,1<<this._numBitLevels)},e.BitTreeDecoder.prototype.decode=function(e){for(var t=1,n=this._numBitLevels;n--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},e.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,n=1,i=0,r=0;r<this._numBitLevels;++r)n=n<<1|(t=e.decodeBit(this._models,n)),i|=t<<r;return i},e.reverseDecode2=function(e,t,n,i){for(var r,o=1,a=0,s=0;s<i;++s)o=o<<1|(r=n.decodeBit(e,t+o)),a|=r<<s;return a},e.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new e.BitTreeDecoder(8),this._numPosStates=0},e.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new e.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new e.BitTreeDecoder(3)},e.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(e.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},e.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},e.Decoder2=function(){this._decoders=[]},e.Decoder2.prototype.init=function(){e.initBitModels(this._decoders,768)},e.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},e.Decoder2.prototype.decodeWithMatchByte=function(e,t){var n,i,r=1;do{if(n=t>>7&1,t<<=1,r=r<<1|(i=e.decodeBit(this._decoders,(1+n<<8)+r)),n!==i){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},e.LiteralDecoder=function(){},e.LiteralDecoder.prototype.create=function(t,n){var i;if(!this._coders||this._numPrevBits!==n||this._numPosBits!==t)for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=n,this._coders=[],i=1<<this._numPrevBits+this._numPosBits;i--;)this._coders[i]=new e.Decoder2},e.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},e.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},e.Decoder=function(){this._outWindow=new e.OutWindow,this._rangeDecoder=new e.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new e.BitTreeDecoder(4),this._lenDecoder=new e.LenDecoder,this._repLenDecoder=new e.LenDecoder,this._literalDecoder=new e.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new e.BitTreeDecoder(6),this._posSlotDecoder[1]=new e.BitTreeDecoder(6),this._posSlotDecoder[2]=new e.BitTreeDecoder(6),this._posSlotDecoder[3]=new e.BitTreeDecoder(6)},e.Decoder.prototype.setDictionarySize=function(e){return!(e<0||(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),0))},e.Decoder.prototype.setLcLpPb=function(e,t,n){var i=1<<n;return!(e>8||t>4||n>4||(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,0))},e.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),e.initBitModels(this._isMatchDecoders,192),e.initBitModels(this._isRep0LongDecoders,192),e.initBitModels(this._isRepDecoders,12),e.initBitModels(this._isRepG0Decoders,12),e.initBitModels(this._isRepG1Decoders,12),e.initBitModels(this._isRepG2Decoders,12),e.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},e.Decoder.prototype.decode=function(t,n,i){var r,o,a,s,l,u,c=0,h=0,d=0,p=0,f=0,A=0,v=0;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(n),this.init();i<0||A<i;)if(r=A&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+r))o=this._literalDecoder.getDecoder(A++,v),v=c>=7?o.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(h)):o.decodeNormal(this._rangeDecoder),this._outWindow.putByte(v),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))a=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+r)&&(c=c<7?9:11,a=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?s=d:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?s=p:(s=f,f=p),p=d),d=h,h=s),0===a&&(a=2+this._repLenDecoder.decode(this._rangeDecoder,r),c=c<7?8:11);else if(f=p,p=d,d=h,a=2+this._lenDecoder.decode(this._rangeDecoder,r),c=c<7?7:10,(l=this._posSlotDecoder[a<=5?a-2:3].decode(this._rangeDecoder))>=4){if(h=(2|1&l)<<(u=(l>>1)-1),l<14)h+=e.reverseDecode2(this._posDecoders,h-l-1,this._rangeDecoder,u);else if(h+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(h+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===h)break;return!1}}else h=l;if(h>=A||h>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(h,a),A+=a,v=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},e.Decoder.prototype.setDecoderProperties=function(e){var t,n,i,r,o;return!(e.size<5)&&(n=(t=e.readByte())%9,i=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(n,i,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},e.decompress=function(t,n,i,r){var o=new e.Decoder;if(!o.setDecoderProperties(t))throw"Incorrect stream properties";if(!o.decode(n,i,r))throw"Error in data stream";return!0},e.decompressFile=function(t,n){var i,r=new e.Decoder;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(i=t.readByte(),i|=t.readByte()<<8,i|=t.readByte()<<16,i+=16777216*t.readByte(),t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,n,i))throw"Error in data stream";return!0},e}var nn=tn(),rn="\nvar decodeLZMA = (function() {\n var LZMA = (".concat(tn.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,n){try{var i={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},r=i.data.length,o={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/r);this.data[t]||(this.data[t]=new Uint8Array(r)),this.data[t][this.offset%r]=e,this.offset++}};e.decompressFile(i,o);for(var a=new Uint8Array(o.offset),s=0;s<o.offset;s++)a[s]=o.data[Math.floor(s/r)][s%r];n(null,a)}catch(e){n(e)}}.toString(),")(LZMA, data, callback);\n }\n})();\n\nvar decodeLZMAWithWASM = (function() {\n var LZMA_WASM = (").concat(function(){return function(e){for(var t=new Uint8Array(256),n=0;n<64;n++)t["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(n)]=n;var i,r,o,a,s,l=11460,u=0;"="===e[15279]&&(l--,"="===e[15278]&&l--);var c=new ArrayBuffer(l),h=new Uint8Array(c);for(i=0;i<15280;i+=4)r=t[e.charCodeAt(i)],o=t[e.charCodeAt(i+1)],a=t[e.charCodeAt(i+2)],s=t[e.charCodeAt(i+3)],h[u++]=r<<2|o>>4,h[u++]=(15&o)<<4|a>>2,h[u++]=(3&a)<<6|63&s;return c}("AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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")}.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,n){try{var i=new WebAssembly.Memory({initial:16}),r=new WebAssembly.Module(e),o=new WebAssembly.Instance(r,{env:{memory:i,abort:function(){n(new Error("webAssembly abort"))}}}).exports,a=o.newU8Array(t.length);new Uint8Array(i.buffer,a+24,t.length).set(t);var s=o.decode(a),l=new Uint32Array(i.buffer,s,4),u=l[0],c=l[2],h=l[3];u?n(null,new Uint8Array(i.buffer,h+24,c).slice(0,c)):n(new Error("lzma deocder error"))}catch(e){n(e)}}.toString(),')(LZMA_WASM, data, callback);\n }\n})();\n\nself.onmessage = function(event) {\n var packet = event.data;\n if (!packet.id) {\n postMessage({ id: packet.id, error: "No incoming id." });\n return;\n }\n if (!packet.data) {\n postMessage({ id: packet.id, error: "No input data." });\n return;\n }\n if (packet.type == "decompress") {\n if (packet.data.constructor !== Uint8Array) {\n postMessage({ id: packet.id, error: "Input data is not Uint8Array." });\n }\n const callback = function(error, result) {\n if (error) {\n postMessage({ id: packet.id, error: error.toString() });\n } else {\n postMessage({ id: packet.id, result: result, error: null }, [ result.buffer ]);\n }\n }\n if (typeof WebAssembly !== "undefined" && WebAssembly.instantiate) {\n decodeLZMAWithWASM(packet.data, callback);\n } else {\n decodeLZMA(packet.data, callback);\n }\n return;\n }\n postMessage({ id: packet.id, error: "type never matched." });\n};\n'),on="undefined"!=typeof Worker&&"undefined"!=typeof Blob,an="";if(on)try{var sn=new Blob([rn],{type:"text/javascript"});an=URL.createObjectURL(sn)}catch(e){}var ln=function(){function e(){var e=this;if(!on)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var t=this.worker=new Worker(an);t.onmessage=function(t){var n=t.data,i=n.id,r=n.result,o=n.error,a=e.getKey(i);e.requests[a]&&(o?e.requests[a](new Error(o)):e.requests[a](null,r),delete e.requests[a])},t.onerror=function(e){return console.error(e)}}return e.prototype.getKey=function(e){return"key_"+String(e)},e.prototype.decompress=function(e,t){var n=++this.callCounter;this.requests[this.getKey(n)]=t,this.worker.postMessage({type:"decompress",id:n,data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=on,e}();function un(e){return Array.prototype.reduce.call(e,(function(e,t,n){return e|t<<8*n}),0)}function cn(e){var t=new Uint8Array(e),n=un(t.slice(0,4));if(n>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var i=[],r=[],o=4+4*n,a=0;a<n;a++)r[a]=un(t.slice(4+4*a,8+4*a)),i[a]=a===n-1?t.subarray(o,o+r[a]):t.slice(o,o+r[a]),o+=r[a];return ln.support?function(e){for(var t=[],n=e.length,i=function(n){t.push(new Promise((function(t,i){var r=new ln;r.decompress(e[n],(function(e,n){if(r.terminate(),e)return i(e);t(n)}))})))},r=0;r<n;r++)i(r);return Promise.all(t)}(i):Promise.resolve(function(e){for(var t,n=[],i=e.length,r=function(i){var r={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,a={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};nn.decompressFile(r,a),t=new Uint8Array(a.offset);for(var s=0;s<a.offset;s++)t[s]=a.data[Math.floor(s/o)][s%o];n.push(t)},o=0;o<i;o++)r(o);return n}(i))}function hn(e,t){for(var n={},i=0,r=t;i<r.length;i++){var o=r[i];o in e&&(n[o]=e[o])}return n}function dn(e,t){void 0===t&&(t=!1);var n=typeof e;if("string"===n)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",r=e.length-1,o=0;o<r;o++)i+=dn(e[o],!1)+",";return r>-1&&(i+=dn(e[o],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return dn(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(i="",o=0;o<s;){var l=a[o],u=dn(e[l],!0);void 0!==u&&(o&&""!==i&&(i+=","),i+=JSON.stringify(l)+":"+u),o++}return"{"+i+"}"}switch(n){case"function":return JSON.stringify(e.toString());case"undefined":return t?void 0:null;case"number":return e;default:return isFinite(e)?e:null}}function pn(e){return"hash::".concat(dn(e,!1))}var fn=new e.WebGLRenderTarget(1,1),An=new e.OrthographicCamera(-1,1,1,-1,0,1);An.matrixAutoUpdate=!1;var vn=new e.BufferGeometry;vn.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));var mn=new e.Mesh(vn);mn.matrixAutoUpdate=!1;var gn=new e.Scene;gn.add(mn),gn.matrixAutoUpdate=!1;var yn=new e.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform sampler2D map;\n void main() {\n gl_FragColor = texture2D(map, vec2(0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,colorWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1}),bn=new e.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1}),xn=Promise.resolve();function wn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=[];e=e.map((function(e){return(null!=e?e:"").trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var i=0;i<e.length;i++){var r=0===i,o=i===e.length-1,a=e[i];r||(a=a.replace(/^\/+/,"")),o||(a=a.replace(/\/+$/,"")),n.push(a)}return n.join("/")}var Mn=__webpack_require__(967);const En=Mn.Reader,Cn=Mn.util,In=Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]||(Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]={}),Sn=In.Model=(()=>{function e(e){if(this.chunks=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.chunks=Cn.emptyArray,e.prototype.createAt=Cn.Long?Cn.Long.fromBits(0,0,!0):0,e.prototype.description="",e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Model;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.chunks&&i.chunks.length||(i.chunks=[]),i.chunks.push(In.Chunk.decode(e,e.uint32()));break;case 2:i.createAt=e.uint64();break;case 3:i.description=e.string();break;default:e.skipType(7&t)}}return i},e})();In.Chunk=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.vertices=null,e.prototype.faces=null,e.prototype.name="",e.prototype.texture="",e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Chunk;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.vertices=In.Vertices.decode(e,e.uint32());break;case 2:i.faces=In.Faces.decode(e,e.uint32());break;case 3:i.name=e.string();break;case 4:i.texture=e.string();break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("vertices"))throw Cn.ProtocolError("missing required 'vertices'",{instance:i});if(!i.hasOwnProperty("faces"))throw Cn.ProtocolError("missing required 'faces'",{instance:i});if(!i.hasOwnProperty("name"))throw Cn.ProtocolError("missing required 'name'",{instance:i});return i},e})(),In.Vertices=(()=>{function e(e){if(this.xyz=[],this.uvs=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.xyz=Cn.emptyArray,e.prototype.uvs=Cn.emptyArray,e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Vertices;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:if(i.xyz&&i.xyz.length||(i.xyz=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.xyz.push(e.float())}else i.xyz.push(e.float());break;case 2:if(i.uvs&&i.uvs.length||(i.uvs=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.uvs.push(e.float())}else i.uvs.push(e.float());break;default:e.skipType(7&t)}}return i},e})(),In.Faces=(()=>{function e(e){if(this.indices=[],this.normals=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.indices=Cn.emptyArray,e.prototype.normals=Cn.emptyArray,e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Faces;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:if(i.indices&&i.indices.length||(i.indices=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.indices.push(e.uint32())}else i.indices.push(e.uint32());break;case 2:if(i.normals&&i.normals.length||(i.normals=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.normals.push(e.float())}else i.normals.push(e.float());break;default:e.skipType(7&t)}}return i},e})();var Bn=(new e.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1).elements;function Tn(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function Pn(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function Rn(e){var t=Tn(e.name),n=Pn(e.name),i=function(e){var t=e.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}(e.name);return 1e6*t+1e3*n+i}function Ln(t,n,i,r,o,a){var s=ne({key:"texture.pbm"},hn(n,["format","quality","size","sharpen","mappings"])),l=new Mt({allowHosts:i,requestProxy:r,networkSubscribe:o}).loadTexture(t,{imageURL:{transform:n.transform,options:s},wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter,maxSize:"number"==typeof s.size?new e.Vector2(s.size,s.size):void 0}).then((function(t){var n=t.body;return n.needsUpdate=!0,function(t,n){if(!n)return Promise.resolve(t);var i=n.getRenderTarget();n.setRenderTarget(fn),t instanceof e.CubeTexture?(mn.material=bn,bn.uniforms.map.value=t,n.render(gn,An),bn.uniforms.map.value=null):(mn.material=yn,yn.uniforms.map.value=t,n.render(gn,An),bn.uniforms.map.value=null),n.setRenderTarget(i);var r=xn.then((function(){return new Promise((function(e){ke.shared.add((function(){e(t)}),!0)}))}));return xn=r.catch((function(){})),r}(n,a)}));return Object.assign(l,{url:t,textureOptions:n})}function kn(t,n,i,r,o,a,s,l,u){void 0===o&&(o={});for(var c=function(e){for(var t,n,i,r="number"==typeof e.createAt?e.createAt:null===e.createAt||void 0===e.createAt?0:e.createAt.toNumber(),o=null!==(t=e.description)&&void 0!==t?t:"",a=[],s=!0,l=0,u=e.chunks;l<u.length;l++)if(!(ne=u[l]).faces.normals||0===ne.faces.normals.length){s=!1;break}for(var c=e.chunks.sort((function(e,t){return Rn(e)-Rn(t)})),h=[],d=0,p=c;d<p.length;d++){var f=Tn((ne=p[d]).name);h[f]||(h[f]=[]),h[f].push(ne)}for(var A=0;A<h.length;A++){var v=h[A];if(v)if(s){for(var m=0,g=0;g<v.length;g++)m+=(ne=v[g]).faces.indices.length;for(var y=3*m,b=2*m,x=3*m,w=new ArrayBuffer(4*y+4*b+4*x),M=new Float32Array(w,0,y),E=new Float32Array(w,4*y,b),C=new Float32Array(w,4*y+4*b,x),I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],B=0,T=0;T<v.length;T++){var P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ne=v[T]).vertices.xyz,L=ne.vertices.uvs,k=ne.faces.indices,O=ne.faces.normals,F=k.length;for(g=0;g<F;g++){var D=k[g],Q=R[3*D],N=R[3*D+1],V=R[3*D+2],U=1/(Bn[3]*Q+Bn[7]*N+Bn[11]*V+Bn[15]),_=(Bn[0]*Q+Bn[4]*N+Bn[8]*V+Bn[12])*U,z=(Bn[1]*Q+Bn[5]*N+Bn[9]*V+Bn[13])*U,q=(Bn[2]*Q+Bn[6]*N+Bn[10]*V+Bn[14])*U;M[3*B+3*g]=_,M[3*B+3*g+1]=z,M[3*B+3*g+2]=q,E[2*B+2*g]=L[2*D],E[2*B+2*g+1]=L[2*D+1];var H=3*Math.floor(g/3),j=O[H],K=O[H+1],G=O[H+2],W=1/(Bn[3]*j+Bn[7]*K+Bn[11]*G+Bn[15]),X=(Bn[0]*j+Bn[4]*K+Bn[8]*G+Bn[12])*W,Y=(Bn[1]*j+Bn[5]*K+Bn[9]*G+Bn[13])*W,Z=(Bn[2]*j+Bn[6]*K+Bn[10]*G+Bn[14])*W;C[3*B+3*g]=X,C[3*B+3*g+1]=Y,C[3*B+3*g+2]=Z,_<P[0]&&(P[0]=_),z<P[1]&&(P[1]=z),q<P[2]&&(P[2]=q),_>P[3]&&(P[3]=_),z>P[4]&&(P[4]=z),q>P[5]&&(P[5]=q)}P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),I.push({materialIndex:T,name:ne.name,chunkName:Pn(ne.name),start:B,count:ne.faces.indices.length,texture:null!==(n=ne.texture)&&void 0!==n?n:void 0}),B+=F}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:E,indices:null,normals:C,groups:I,extents:S})}else{m=0;var J=0;for(g=0;g<v.length;g++)J+=(ne=v[g]).vertices.xyz.length/3,m+=ne.faces.indices.length;y=3*J,b=2*J,x=3*J;var $=m,ee=(w=new ArrayBuffer(4*y+4*b+4*x+4*$),M=new Float32Array(w,0,y),E=new Float32Array(w,4*y,b),C=new Float32Array(w,4*y+4*b,x),new Uint32Array(w,4*y+4*b+4*x,$)),te=(I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],0);for(B=0,T=0;T<v.length;T++){P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ne=v[T]).vertices.xyz,L=ne.vertices.uvs,k=ne.faces.indices;var ne,ie=R.length/3;for(F=k.length,g=0;g<ie;g++)Q=R[3*g],N=R[3*g+1],V=R[3*g+2],U=1/(Bn[3]*Q+Bn[7]*N+Bn[11]*V+Bn[15]),_=(Bn[0]*Q+Bn[4]*N+Bn[8]*V+Bn[12])*U,z=(Bn[1]*Q+Bn[5]*N+Bn[9]*V+Bn[13])*U,q=(Bn[2]*Q+Bn[6]*N+Bn[10]*V+Bn[14])*U,M[3*B+3*g]=_,M[3*B+3*g+1]=z,M[3*B+3*g+2]=q,E[2*B+2*g]=L[2*g],E[2*B+2*g+1]=L[2*g+1],_<P[0]&&(P[0]=_),z<P[1]&&(P[1]=z),q<P[2]&&(P[2]=q),_>P[3]&&(P[3]=_),z>P[4]&&(P[4]=z),q>P[5]&&(P[5]=q);for(P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),g=0;g<F;g++)ee[te+g]=B+k[g];I.push({materialIndex:T,name:ne.name,chunkName:Pn(ne.name),start:te,count:ne.faces.indices.length,texture:null!==(i=ne.texture)&&void 0!==i?i:void 0}),B+=ie,te+=F}for(g=0;g<m;g+=3){var re,oe,ae,se,le,ue,ce,he,de,pe,fe,Ae,ve,me,ge,ye;j=void 0,K=void 0,G=void 0,re=3*ee[g],oe=3*ee[g+1],ae=3*ee[g+2],se=M[re],le=M[re+1],ue=M[re+2],ce=M[oe],he=M[oe+1],de=M[oe+2],pe=M[ae],j=(Ae=M[ae+1]-he)*(ye=ue-de)-(ve=M[ae+2]-de)*(ge=le-he),K=ve*(me=se-ce)-(fe=pe-ce)*ye,G=fe*ge-Ae*me,C[re]+=j,C[re+1]+=K,C[re+2]+=G,C[oe]+=j,C[oe+1]+=K,C[oe+2]+=G,C[ae]+=j,C[ae+1]+=K,C[ae+2]+=G}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:E,indices:ee,normals:C,groups:I,extents:S})}}return a}(t),h=0,d="",p=[],f={},A=0,v=c;A<v.length;A++){var m=v[A],g=m.createAt,y=m.description,b=m.floorIndex,x=m.vertices,w=m.uvs,M=m.indices,E=m.normals,C=m.groups,I=m.extents,S=new e.Box3;S.min.x=I[0],S.min.y=I[1],S.min.z=I[2],S.max.x=I[3],S.max.y=I[4],S.max.z=I[5];var B=new e.BufferGeometry;B.setAttribute("position",new e.BufferAttribute(x,3)),B.setAttribute("uv",new e.BufferAttribute(w,2)),B.setAttribute("normal",new e.BufferAttribute(E,3)),M&&B.setIndex(new e.BufferAttribute(M,1)),B.boundingBox=S,B.boundingSphere=S.getBoundingSphere(new e.Sphere);for(var T=0,P=C;T<P.length;T++){var R=P[T];B.addGroup(R.start,R.count,R.materialIndex)}for(var L=[],k=0,O=C;k<O.length;k++){R=O[k];var F=i[R.chunkName]||(R.texture?wn(n,R.texture):void 0),D=new Bt;L.push(D),F?f[F]?f[F].push(D):f[F]=[D]:(D.defines.USE_MAP=!1,D.uniforms.diffuse.value=new e.Color(16777215)),D.uniforms.floorIndex.value=b}var Q=new Ge(B,L);Q.name="model_floor_"+b,Q.floorIndex=b,Q.userData.createAt=g,Q.userData.description=y,h=g,d=y,p.push(Q)}var N="",V=function(t){t=On(t,i.length);var n=[],r=pn(t);if(N===r)return Promise.resolve();N=r;for(var c=function(i){var c=null;i in o&&(pn(o[i].textureOptions)===pn(t)?c=o[i]:o[i].then((function(e){return e.dispose()}))),c||(c=Ln(i,t,a,s,l,u)),n.push(c.then((function(e){if(N===r)for(var t=0,n=f[i];t<n.length;t++){var o=n[t];o.uniforms.map.value&&o.uniforms.map.value.dispose(),o.uniforms.map.value=e,o.uniforms.exposure.value=3.3}else e.dispose()})).catch((function(){if(N===r)for(var t=0,n=f[i];t<n.length;t++){var o=n[t];o.uniforms.map.value&&o.uniforms.map.value.dispose(),o.uniforms.map.value=null,o.defines.USE_MAP=!1,o.uniforms.diffuse.value=new e.Color(16777215)}})))},h=0,d=Object.keys(f);h<d.length;h++)c(p=d[h]);for(var p in o)delete o[p];return Promise.all(n).then((function(){}))};return{createAt:h,description:d,objects:p,texturePromise:V(r),updateTexture:V}}function On(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(t>96?e.size=Math.min(e.size||1/0,100):t>48?e.size=Math.min(e.size||1/0,200):t>24?e.size=Math.min(e.size||1/0,400):t>22?e.size=Math.min(e.size||1/0,800):t>5&&(e.size=Math.min(e.size||1/0,1024))),e}function Fn(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:/i.test(e)}const Dn=Mn.Reader,Qn=Mn.util,Nn=Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]||(Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]={}),Vn=Nn.Model=(()=>{function e(e){if(this.meshes=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.meshes=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Model;for(;e.pos<n;){let t=e.uint32();t>>>3==1?(i.meshes&&i.meshes.length||(i.meshes=[]),i.meshes.push(Nn.Mesh.decode(e,e.uint32()))):e.skipType(7&t)}return i},e})();function Un(e){for(var t=[0,0,0],n=0;n<e.attributes.normal.array.length/9;n++)t[0]=e.attributes.normal.array[9*n],t[1]=e.attributes.normal.array[9*n+1],t[2]=e.attributes.normal.array[9*n+2],e.attributes.normal.array[9*n]=e.attributes.normal.array[9*n+6],e.attributes.normal.array[9*n+1]=e.attributes.normal.array[9*n+7],e.attributes.normal.array[9*n+2]=e.attributes.normal.array[9*n+8],e.attributes.normal.array[9*n+6]=t[0],e.attributes.normal.array[9*n+7]=t[1],e.attributes.normal.array[9*n+8]=t[2];for(n=0;n<e.attributes.position.array.length/9;n++)t[0]=e.attributes.position.array[9*n],t[1]=e.attributes.position.array[9*n+1],t[2]=e.attributes.position.array[9*n+2],e.attributes.position.array[9*n]=e.attributes.position.array[9*n+6],e.attributes.position.array[9*n+1]=e.attributes.position.array[9*n+7],e.attributes.position.array[9*n+2]=e.attributes.position.array[9*n+8],e.attributes.position.array[9*n+6]=t[0],e.attributes.position.array[9*n+7]=t[1],e.attributes.position.array[9*n+8]=t[2];for(n=0;n<e.attributes.uv.array.length/6;n++)t[0]=e.attributes.uv.array[6*n],t[1]=e.attributes.uv.array[6*n+1],e.attributes.uv.array[6*n]=e.attributes.uv.array[6*n+4],e.attributes.uv.array[6*n+1]=e.attributes.uv.array[6*n+5],e.attributes.uv.array[6*n+4]=t[0],e.attributes.uv.array[6*n+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}function _n(t){var n=t.position,i=t.normal,r=t.uv,o=t.uv2,a=t.groups,s=new e.BufferGeometry;s.setAttribute("position",new e.BufferAttribute(new Float32Array(n.array),3)),i&&s.setAttribute("normal",new e.BufferAttribute(new Float32Array(i.array),3)),r&&s.setAttribute("uv",new e.BufferAttribute(new Float32Array(r.array),2)),o&&s.setAttribute("uv2",new e.BufferAttribute(new Float32Array(o.array),2));for(var l=0,u=a;l<u.length;l++){var c=u[l];s.addGroup(c.start,c.count,c.materialIndex)}return s}function zn(t,n,i,r,o,a){if(a.hasOwnProperty(t))return a[t];Fn(t=t.split("?")[0])||(t=wn(n,t)),0===(t=t.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).indexOf("//")&&(t="https:"+t);var s=ne({key:"texture.dome",size:64},hn(i,["quality","format","sharpen","mappings"]));return a[t]=o.loadTexture(t,{imageURL:{transform:i.transform,options:s},wrapS:e.RepeatWrapping,wrapT:e.RepeatWrapping}).then((function(e){var t=e.body;return r&&t.repeat.copy(r),t.needsUpdate=!0,t.updateMatrix(),t}))}function qn(t,n,i,r,o){var a=[],s=new Bt,l=s.uniforms;l.exposure.value=4.3;var u=s.defines;if(u.USE_MAP=!1,u.USE_UV=!1,t.kd&&(l.diffuse.value=(new e.Color).fromArray(t.kd.rgb)),t.mapkd){var c=null;if(t.mapkdrepeat){var h=t.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),d=h[0],p=h[1];c=new e.Vector2(d,p)}a.push(zn(t.mapkd,n,i,c,r,o).then((function(e){u.USE_MAP=!0,u.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix,s.needsUpdate=!0})).catch(le))}if(t.ks&&(l.specular.value=(new e.Color).fromArray(t.ks.rgb)),t.mapks&&a.push(zn(t.mapks,n,i,null,r,o).then((function(e){l.specularMap.value=e})).catch(le)),t.ke&&(l.emissive.value=(new e.Color).fromArray(t.ke.rgb)),t.mapke&&a.push(zn(t.mapke,n,i,null,r,o).then((function(e){l.emissiveMap.value=e})).catch(le)),t.norm&&a.push(zn(t.norm,n,i,null,r,o).then((function(e){l.normalMap.value=e})).catch(le)),t.mapbump&&a.push(zn(t.mapbump,n,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),t.bump&&a.push(zn(t.bump,n,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),"number"==typeof t.ns&&(l.shininess.value=t.ns),"number"==typeof t.d){var f=t.d;f>0&&f<1&&(s.originOpacity=f,s.opacity=f)}return{material:s,textureReady:Promise.all(a).then(le)}}function Hn(t,n,i,r,o,a){for(var s,l=[],u=[],c=(s=t,Vn.decode(s).meshes),h=new Mt({allowHosts:r,requestProxy:o,networkSubscribe:a}),d=new e.Matrix4,p=new e.Vector3,f=new e.Quaternion,A=new e.Vector3,v={},m=0,g=c;m<g.length;m++){var y=g[m],b=y.name,x=y.chunks,w=y.matrix;if("Ceiling"!==b&&"CeilingDrop"!==b)for(var M=0,E=w;M<E.length;M++){var C=E[M];d.elements=C.elements;var I=new Xe;I.renderOrder=-4;for(var S=0;S<x.length;S++){var B=_n(x[S].geometry);B.applyMatrix4(d),d.decompose(p,f,A),A.x*A.y*A.z<0&&B.attributes.normal&&B.attributes.position&&B.attributes.uv&&Un(B);for(var T=[],P=0,R=x[S].material;P<R.length;P++){var L=qn(R[P],n,i,h,v),k=L.material,O=L.textureReady;u.push(O),T.push(k)}var F=new Ge(B,T);F.name="chunk_"+S,I.add(F)}I.floorIndex=0,I.name=b,l.push(I)}}return{createAt:0,description:"",objects:l,texturePromise:Promise.all(u).catch(le),updateTexture:function(e){return Promise.resolve()}}}Nn.Mesh=(()=>{function e(e){if(this.chunks=[],this.matrix=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.name="",e.prototype.chunks=Qn.emptyArray,e.prototype.matrix=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Mesh;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.name=e.string();break;case 2:i.chunks&&i.chunks.length||(i.chunks=[]),i.chunks.push(Nn.Chunk.decode(e,e.uint32()));break;case 3:i.matrix&&i.matrix.length||(i.matrix=[]),i.matrix.push(Nn.Matrix.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("name"))throw Qn.ProtocolError("missing required 'name'",{instance:i});return i},e})(),Nn.Matrix=(()=>{function e(e){if(this.elements=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.elements=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Matrix;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.elements&&i.elements.length||(i.elements=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.elements.push(e.float())}else i.elements.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Chunk=(()=>{function e(e){if(this.material=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.geometry=null,e.prototype.material=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Chunk;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 2:i.geometry=Nn.Geometry.decode(e,e.uint32());break;case 3:i.material&&i.material.length||(i.material=[]),i.material.push(Nn.Material.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("geometry"))throw Qn.ProtocolError("missing required 'geometry'",{instance:i});return i},e})(),Nn.Geometry=(()=>{function e(e){if(this.groups=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.position=null,e.prototype.uv=null,e.prototype.uv2=null,e.prototype.normal=null,e.prototype.groups=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Geometry;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.position=Nn.Position.decode(e,e.uint32());break;case 2:i.uv=Nn.UV.decode(e,e.uint32());break;case 3:i.uv2=Nn.UV.decode(e,e.uint32());break;case 4:i.normal=Nn.Normal.decode(e,e.uint32());break;case 5:i.groups&&i.groups.length||(i.groups=[]),i.groups.push(Nn.Group.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("position"))throw Qn.ProtocolError("missing required 'position'",{instance:i});if(!i.hasOwnProperty("normal"))throw Qn.ProtocolError("missing required 'normal'",{instance:i});return i},e})(),Nn.Position=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Position;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.UV=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.UV;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Normal=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Normal;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Group=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.start=0,e.prototype.count=0,e.prototype.materialIndex=0,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Group;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.start=e.uint32();break;case 2:i.count=e.uint32();break;case 3:i.materialIndex=e.uint32();break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("start"))throw Qn.ProtocolError("missing required 'start'",{instance:i});if(!i.hasOwnProperty("count"))throw Qn.ProtocolError("missing required 'count'",{instance:i});if(!i.hasOwnProperty("materialIndex"))throw Qn.ProtocolError("missing required 'materialIndex'",{instance:i});return i},e})(),Nn.Material=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.kd=null,e.prototype.ks=null,e.prototype.ke=null,e.prototype.mapkd="",e.prototype.mapks="",e.prototype.mapke="",e.prototype.norm="",e.prototype.mapbump="",e.prototype.bump="",e.prototype.mapd="",e.prototype.ns=0,e.prototype.d=0,e.prototype.tr=0,e.prototype.mapkdrepeat="",e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Material;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.kd=Nn.Color.decode(e,e.uint32());break;case 2:i.ks=Nn.Color.decode(e,e.uint32());break;case 3:i.ke=Nn.Color.decode(e,e.uint32());break;case 4:i.mapkd=e.string();break;case 5:i.mapks=e.string();break;case 6:i.mapke=e.string();break;case 7:i.norm=e.string();break;case 8:i.mapbump=e.string();break;case 9:i.bump=e.string();break;case 10:i.mapd=e.string();break;case 11:i.ns=e.float();break;case 12:i.d=e.float();break;case 13:i.tr=e.float();break;case 14:i.mapkdrepeat=e.string();break;default:e.skipType(7&t)}}return i},e})(),Nn.Color=(()=>{function e(e){if(this.rgb=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.rgb=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Color;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.rgb&&i.rgb.length||(i.rgb=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.rgb.push(e.float())}else i.rgb.push(e.float());else e.skipType(7&t)}return i},e})();var jn={throttleRequests:!0,maxRequests:5},Kn=function(){function e(e){void 0===e&&(e={}),this.props=ne(ne({},jn),e),this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.deferred=null}return e.prototype.scheduleRequest=function(e,t){if(void 0===t&&(t=function(){return 0}),!this.props.throttleRequests)return Promise.resolve({done:function(){}});if(this.requestMap.has(e))return this.requestMap.get(e);var n={identiy:e,priority:0,getPriority:t,resolve:function(){}},i=new Promise((function(e){return n.resolve=e}));return this.requestQueue.push(n),this.requestMap.set(e,i),this.issueNewRequests(),i},e.prototype.issueRequest=function(e){var t=this,n=e.identiy,i=e.resolve,r=!1;this.activeRequestCount++,i({done:function(){r||(r=!0,t.requestMap.delete(n),t.activeRequestCount--,t.issueNewRequests())}})},e.prototype.issueNewRequests=function(){var e=this;this.deferred||(this.deferred=setTimeout((function(){return e.issueNewRequestsAsync()}),0))},e.prototype.issueNewRequestsAsync=function(){this.deferred=null;var e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(0!==e){this.updateAllRequests();for(var t=0;t<e;t++){var n=this.requestQueue.shift();n&&this.issueRequest(n)}}},e.prototype.updateAllRequests=function(){for(var e=this.requestQueue,t=0;t<e.length;t++){var n=e[t];this.updateRequest(n)||(e.splice(t,1),this.requestMap.delete(n.identiy),t--)}e.sort((function(e,t){return e.priority-t.priority}))},e.prototype.updateRequest=function(e){return e.priority=e.getPriority(e.identiy),!(e.priority<0&&(e.resolve(null),1))},e}(),Gn=function(e,t,n){this.item=e,this.previous=t,this.next=n},Wn=function(){function e(){this.head=null,this.tail=null,this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.add=function(e){var t=new Gn(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),this._length++,t},e.prototype.remove=function(e){e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,this._length--},e.prototype.splice=function(e,t){e!==t&&(this.remove(t),this.insert(e,t))},e.prototype.insert=function(e,t){var n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e,this._length++},e.prototype.toArray=function(){for(var e=[],t=this.head;t;)e.push(t),t=t.next;return e},e}(),Xn=function(){function e(){this.list=new Wn,this.sentinel=this.list.add("sentinel")}return e.prototype.reset=function(){this.list.splice(this.list.tail,this.sentinel)},e.prototype.touch=function(e){var t=e.cacheNode;t&&this.list.splice(this.sentinel,t)},e.prototype.add=function(e,t){e.cacheNode||(e.cacheNode=this.list.add(e),t&&t(e))},e.prototype.unloadTile=function(e,t){var n=e.cacheNode;n&&(this.list.remove(n),e.cacheNode=void 0,t&&t(e))},e.prototype.unloadTiles=function(e,t){for(var n=this.list.head;n!==this.sentinel&&e();){var i=n.item;n=n.next,this.unloadTile(i,t)}},e.prototype.toArray=function(){for(var e=[],t=0,n=this.list.toArray();t<n.length;t++){var i=n[t];"sentinel"!==i.item&&e.push(i.item)}return e},e}(),Yn=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),Zn=[new e.Vector3(1,0,0),new e.Vector3(0,1,0),new e.Vector3(0,0,1)],Jn=new e.Vector3,$n=new e.Vector3,ei=function(){function t(e){void 0===e&&(e=[]),this.planes=e}return Object.defineProperty(t,"MASK_OUTSIDE",{get:function(){return 4294967295},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INSIDE",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INDETERMINATE",{get:function(){return 2147483647},enumerable:!1,configurable:!0}),t.prototype.fromBoundingSphere=function(t){this.planes.length=2*Zn.length;for(var n=t.center,i=t.radius,r=0,o=0,a=Zn;o<a.length;o++){var s=a[o],l=this.planes[r],u=this.planes[r+1];l||(l=this.planes[r]=new e.Plane),u||(u=this.planes[r+1]=new e.Plane);var c=Jn.copy(s).multiplyScalar(-i).add(n);l.setFromNormalAndCoplanarPoint(s,c);var h=Jn.copy(s).multiplyScalar(i).add(n),d=$n.copy(s).negate();u.setFromNormalAndCoplanarPoint(d,h),r+=2}return this},t.prototype.computeVisibilityWithPlaneMask=function(e,n){if(n===t.MASK_OUTSIDE||n===t.MASK_INSIDE)return n;for(var i=t.MASK_INSIDE,r=this.planes,o=0;o<this.planes.length;++o){var a=o<31?1<<o:0;if(!(o<31&&0==(n&a))){var s=r[o],l=e.intersectPlane(s);if(l===Yn.OUTSIDE)return t.MASK_OUTSIDE;l===Yn.INTERSECTING&&(i|=a)}}return i},t}(),ti=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),ni=new e.Vector3,ii=new e.Vector3,ri=function(){function t(t,n){void 0===t&&(t=[0,0,0]),void 0===n&&(n=0),this.radius=-0,this.center=new e.Vector3,this.fromCenterRadius(t,n)}return t.prototype.fromCenterRadius=function(e,t){return this.center.fromArray(e),this.radius=t,this},t.prototype.fromCornerPoints=function(t,n){var i=ni.fromArray(n);return this.center=(new e.Vector3).fromArray(t).add((new e.Vector3).fromArray(n)).multiplyScalar(.5),this.radius=this.center.distanceTo(i),this},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius},t.prototype.clone=function(){return new t(this.center.toArray(),this.radius)},t.prototype.union=function(e){var t=this.center,n=this.radius,i=e.center,r=e.radius,o=ni.copy(i).sub(t),a=o.length();if(n>=a+r)return this.clone();if(r>=a+n)return e.clone();var s=.5*(n+a+r);return ii.copy(o).multiplyScalar((-n+s)/a).add(t),this.center.copy(ii),this.radius=s,this},t.prototype.expand=function(e){var t=ni.fromArray(e).sub(this.center).length();return t>this.radius&&(this.radius=t),this},t.prototype.transform=function(e){this.center.applyMatrix4(e);var t,n,i,r,o,a,s,l,u,c,h,d=(t=ni.toArray(),i=(n=e.toArray())[0],r=n[1],o=n[2],a=n[4],s=n[5],l=n[6],u=n[8],c=n[9],h=n[10],t[0]=Math.hypot(i,r,o),t[1]=Math.hypot(a,s,l),t[2]=Math.hypot(u,c,h),t);return this.radius=Math.max(d[0],Math.max(d[1],d[2]))*this.radius,this},t.prototype.distanceSquaredTo=function(e){var t=this.distanceTo(e);return t*t},t.prototype.distanceTo=function(e){var t=ni.fromArray(e).sub(this.center);return Math.max(0,t.length()-this.radius)},t.prototype.intersectPlane=function(e){var t=this.center,n=this.radius,i=e.normal.dot(t)+e.constant;return i<-n?ti.OUTSIDE:i<n?ti.INTERSECTING:ti.INSIDE},t}(),oi=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),ai=new e.Vector3,si=new e.Vector3,li=new e.Vector3,ui=new e.Vector3,ci=new e.Vector3,hi=new e.Vector3,di=new e.Vector3;function pi(t,n,i){void 0===i&&(i=new e.Vector3);for(var r=3*n,o=new Array(3),a=0;a<3;++a)o[a]=t.toArray()[r+a];return i.fromArray(o)}var fi=function(){function t(t,n){this.center=(new e.Vector3).fromArray(t),this.halfAxes=(new e.Matrix3).fromArray(n)}return t.prototype.clone=function(){return new t(this.center.toArray(),this.halfAxes.toArray())},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)},t.prototype.getBoundingSphere=function(e){void 0===e&&(e=new ri);var t=this.halfAxes,n=pi(t,0,li),i=pi(t,1,ui),r=pi(t,2,ci),o=ai.copy(n).add(i).add(r);return e.center.copy(this.center),e.radius=o.length(),e},t.prototype.intersectPlane=function(e){var t=this.center,n=e.normal,i=this.halfAxes.toArray(),r=n.x,o=n.y,a=n.z,s=Math.abs(r*i[0]+o*i[1]+a*i[2])+Math.abs(r*i[3]+o*i[4]+a*i[5])+Math.abs(r*i[6]+o*i[7]+a*i[8]),l=n.dot(t)+e.constant;return l<=-s?oi.OUTSIDE:l>=s?oi.INSIDE:oi.INTERSECTING},t.prototype.distanceTo=function(e){return Math.sqrt(this.distanceSquaredTo(e))},t.prototype.distanceSquaredTo=function(e){var t=si.fromArray(e).sub(this.center),n=this.halfAxes,i=pi(n,0,li),r=pi(n,1,ui),o=pi(n,2,ci),a=i.length(),s=r.length(),l=o.length();i.normalize(),r.normalize(),o.normalize();var u,c=0;return(u=Math.abs(t.dot(i))-a)>0&&(c+=u*u),(u=Math.abs(t.dot(r))-s)>0&&(c+=u*u),(u=Math.abs(t.dot(o))-l)>0&&(c+=u*u),c},t.prototype.computePlaneDistances=function(e,t,n){void 0===n&&(n=[-0,-0]);var i=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=this.center,a=this.halfAxes,s=pi(a,0,li),l=pi(a,1,ui),u=pi(a,2,ci),c=hi.copy(s).add(l).add(u).add(o),h=di.copy(c).sub(e),d=t.dot(h);return i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).add(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),n[0]=i,n[1]=r,n},t.prototype.transform=function(t){var n=(new e.Matrix4).fromArray(t);this.center.applyMatrix4(n);var i=pi(this.halfAxes,0,li);i.applyMatrix4(n);var r=pi(this.halfAxes,1,ui);r.applyMatrix4(n);var o=pi(this.halfAxes,2,ci);return o.applyMatrix4(n),this.halfAxes=(new e.Matrix3).fromArray(ie(ie(ie([],i.toArray(),!0),r.toArray(),!0),o.toArray(),!0)),this},t}();function Ai(e,t){var n=e[0],i=e[1],r=e[2],o=t[3]*n+t[7]*i+t[11]*r||1;return e[0]=(t[0]*n+t[4]*i+t[8]*r)/o,e[1]=(t[1]*n+t[5]*i+t[9]*r)/o,e[2]=(t[2]*n+t[6]*i+t[10]*r)/o,e}function vi(e,t,n){var i=t[0],r=t[1],o=t[2],a=t[3],s=e[0],l=e[1],u=e[2],c=r*u-o*l,h=o*s-i*u,d=i*l-r*s,p=r*d-o*h,f=o*c-i*d,A=i*h-r*c,v=2*a;return c*=v,h*=v,d*=v,p*=2,f*=2,A*=2,e[0]=(s+c+p)*n,e[1]=(l+h+f)*n,e[2]=(u+d+A)*n,e}function mi(e,t){var n=e.box;if(n){var i=t.elements,r=[n[0],n[1],n[2]];Ai(r,i);var o=void 0,a=void 0,s=void 0;if(10===n.length){var l=[n[6],n[7],n[8]];o=vi([1,0,0],l,n[3]),a=vi([0,1,0],l,n[4]),s=vi([0,0,1],l,n[5])}else o=[n[3],n[4],n[5]],a=[n[6],n[7],n[8]],s=[n[9],n[10],n[11]];Ai(o,i),Ai(a,i),Ai(s,i);var u=[o[0],o[1],o[2],a[0],a[1],a[2],s[0],s[1],s[2]];return new fi(r,u)}throw new Error("3D Tile: boundingVolume must only can be box")}var gi="undefined"!=typeof Worker,yi=function(){function e(){if(!gi)throw new Error("B3dmWorker cannot work in this browser");var e=URL.createObjectURL(new Blob(['\n var SIZEOF_UINT32 = 4\n\n var getStringFromArrayBuffer = function(arrayBuffer, byteOffset, byteLength) {\n const textDecoder = new TextDecoder("utf8");\n const typedArray = new Uint8Array(arrayBuffer, byteOffset, byteLength);\n const string = textDecoder.decode(typedArray);\n return string;\n }\n\n var sliceArrayBuffer = function(arrayBuffer, byteOffset, byteLength) {\n const subArray =\n byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n }\n\n var parse3DTileHeaderSync = function(tile, arrayBuffer, byteOffset=0){\n const view = new DataView(arrayBuffer);\n tile.magic = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n tile.version = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n tile.byteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n \n if (tile.version !== 1) {\n throw new Error("3D Tile Version ".concat(tile.version, " not supported"));\n }\n return byteOffset;\n }\n\n var parse3DTileTablesHeaderSync = function(tile, arrayBuffer, byteOffset=0) {\n const view = new DataView(arrayBuffer);\n let batchLength;\n tile.header = tile.header || {};\n let featureTableJsonByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let featureTableBinaryByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let batchTableJsonByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let batchTableBinaryByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n\n if (batchTableJsonByteLength >= 570425344) {\n byteOffset -= SIZEOF_UINT32 * 2;\n batchLength = featureTableJsonByteLength;\n batchTableJsonByteLength = featureTableBinaryByteLength;\n batchTableBinaryByteLength = 0;\n featureTableJsonByteLength = 0;\n featureTableBinaryByteLength = 0;\n console.warn(\'b3dm tile in legacy format.\');\n } else if (batchTableBinaryByteLength >= 570425344) {\n byteOffset -= SIZEOF_UINT32;\n batchLength = batchTableJsonByteLength;\n batchTableJsonByteLength = featureTableJsonByteLength;\n batchTableBinaryByteLength = featureTableBinaryByteLength;\n featureTableJsonByteLength = 0;\n featureTableBinaryByteLength = 0;\n console.warn(\'b3dm tile in legacy format.\');\n }\n\n tile.header.featureTableJsonByteLength = featureTableJsonByteLength;\n tile.header.featureTableBinaryByteLength = featureTableBinaryByteLength;\n tile.header.batchTableJsonByteLength = batchTableJsonByteLength;\n tile.header.batchTableBinaryByteLength = batchTableBinaryByteLength;\n tile.header.batchLength = batchLength;\n return byteOffset;\n }\n\n var parse3DTileTablesSync = function(tile, arrayBuffer, byteOffset = 0) {\n byteOffset = parse3DTileFeatureTable(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileBatchTable(tile, arrayBuffer, byteOffset);\n return byteOffset;\n }\n\n var parse3DTileFeatureTable = function (tile, arrayBuffer, byteOffset = 0) {\n const {\n featureTableJsonByteLength,\n featureTableBinaryByteLength,\n batchLength\n } = tile.header;\n tile.featureTableJson = {\n BATCH_LENGTH: batchLength || 0\n };\n \n if (featureTableJsonByteLength > 0) {\n const featureTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, featureTableJsonByteLength);\n tile.featureTableJson = JSON.parse(featureTableString);\n }\n \n byteOffset += featureTableJsonByteLength;\n tile.featureTableBinary = new Uint8Array(arrayBuffer, byteOffset, featureTableBinaryByteLength);\n byteOffset += featureTableBinaryByteLength;\n return byteOffset;\n }\n\n var parse3DTileBatchTable = function(tile, arrayBuffer, byteOffset = 0) {\n const {\n batchTableJsonByteLength,\n batchTableBinaryByteLength\n } = tile.header;\n \n if (batchTableJsonByteLength > 0) {\n const batchTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, batchTableJsonByteLength);\n tile.batchTableJson = JSON.parse(batchTableString);\n byteOffset += batchTableJsonByteLength;\n \n if (batchTableBinaryByteLength > 0) {\n tile.batchTableBinary = new Uint8Array(arrayBuffer, byteOffset, batchTableBinaryByteLength);\n tile.batchTableBinary = new Uint8Array(tile.batchTableBinary);\n byteOffset += batchTableBinaryByteLength;\n }\n }\n \n return byteOffset;\n }\n\n var parse3DTileGLTFViewSync = function(tile, arrayBuffer, byteOffset = 0) {\n const gltfByteLength = tile.byteOffset + tile.byteLength - byteOffset;\n\n if (gltfByteLength === 0) {\n throw new Error("glTF byte length must be greater than 0.");\n }\n tile.rotateYtoZ = true;\n tile.gltfUpAxis = "Y";\n tile.gltfArrayBuffer = sliceArrayBuffer(arrayBuffer, byteOffset, gltfByteLength);\n tile.gltfByteOffset = 0;\n tile.gltfByteLength = gltfByteLength;\n\n if (byteOffset % 4 === 0) {\n\n } else {\n console.warn("".concat(tile.type, ": embedded glb is not aligned to a 4-byte boundary."));\n }\n\n return tile.byteOffset + tile.byteLength;\n }\n\n var parseBatchedModel3DTile = function(tile, arrayBuffer, byteOffset) {\n byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileTablesSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileGLTFViewSync(tile, arrayBuffer, byteOffset);\n \n const rctCenterJsonValue = tile.featureTableJson["RTC_CENTER"];\n if (rctCenterJsonValue && Number.isFinite(rctCenterJsonValue.byteOffset)) {\n tile.rtcCenter = new Float32Array(tile.featureTableBinary.buffer, tile.featureTableBinary.buffer.byteOffset + rctCenterJsonValue.byteOffset, 3);\n }\n \n return byteOffset;\n }\n\n self.onmessage = function(event) {\n const {id, buffer} = event.data\n try{\n const tile = { byteOffset: 0, type: "b3dm" };\n parseBatchedModel3DTile(tile, buffer, tile.byteOffset);\n self.postMessage({id, tile})\n }catch(err){\n console.error(err)\n }\n }\n \n'],{type:"text/javascript"}));this.worker=new Worker(e),this.worker.addEventListener("message",(function(e){Promise.resolve(e)}))}return Object.defineProperty(e,"shared",{get:function(){return this.instance||(this.instance=new e),this.instance},enumerable:!1,configurable:!0}),e.prototype.terminate=function(){this.worker.terminate()},e}(),bi=function(){function t(t,n,i){this.header=n,this.tileset=t,this.parent=i,this.children=[],this.contentState="UNLOADED",this.transform=this.header.transform?(new e.Matrix4).fromArray(this.header.transform):new e.Matrix4;var r=this.parent&&this.parent.computedTransform?this.parent.computedTransform.clone():t.modelMatrix.clone();this.computedTransform=r.multiply(this.transform),this.boundingVolume=mi(this.header.boundingVolume,this.computedTransform),this.depth=this.parent?this.parent.depth+1:0,this.distanceToCamera=0,this.centerZDepth=0,this.screenSpaceError=0,this.shouldRefine=!1,this.visibilityPlaneMask=ei.MASK_INDETERMINATE,this.visible=!1,this.selectionDepth=0,this.frameNumber=0,this.touchedFrameNumber=0,this.selectedFrameNumber=0,this.requestedFrameNumber=0}return Object.defineProperty(t.prototype,"id",{get:function(){return this.header.id},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.header.refine||this.parent&&this.parent.refine||"REPLACE"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.header.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUrl",{get:function(){if(this.header.content.uri){var e=this.tileset.b3dmMapping.b3dm_url[this.header.content.uri];if(!/^https?\:\/\//.test(e)){e=/^\//.test(e)?e.slice(1):e;var t=this.tileset.b3dmMapping.b3dm_base_url;e=(t=/\/$/.test(t)?t:t+"/")+e}return Ve(e,{key:"model-".concat(this.siblingIndex)})}return this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"siblingIndex",{get:function(){var e;return null===(e=this.parent)||void 0===e?void 0:e.children.indexOf(this)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.header.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.header.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasEmptyContent",{get:function(){return!this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this.selectedFrameNumber===this.tileset.frameNumber},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasRenderContent",{get:function(){return!this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasChildren",{get:function(){return this.children.length>0||this.header.children&&this.header.children.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentReady",{get:function(){return"READY"===this.contentState||this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentAvailable",{get:function(){return Boolean(this.contentReady&&this.hasRenderContent||!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasUnloadedContent",{get:function(){return this.hasRenderContent&&this.contentUnloaded},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUnloaded",{get:function(){return"UNLOADED"===this.contentState},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentFailed",{get:function(){return"FAILED"===this.contentState},enumerable:!1,configurable:!0}),t.prototype.getScreenSpaceError=function(e,t){if("TILES3D"===this.tileset.type)return function(e,t,n){var i=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,o=n?r:e.lodMetricValue;if(0===o)return 0;var a=Math.max(e.distanceToCamera,1e-7),s=i.options.viewDistanceScale;return o*t.height*s/(a*t.sseDenominator)-function(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){var n=e.dynamicScreenSpaceErrorComputedDensity,i=e.dynamicScreenSpaceErrorFactor,r=function(e,t){var n=e*t;return 1-Math.exp(-n*n)}(t,n)*i;return r}return 0}(i,a)}(this,e,t);throw new Error("Unsupported tileset type")},t.prototype.getPriority=function(){var e=this.tileset.traverser,t=e.options.skipLevelOfDetail,n="ADD"===this.refine||t;if(n&&!this.visible)return-1;if(this.tileset.frameNumber-this.touchedFrameNumber>=1)return-1;if("UNLOADED"===this.contentState)return-1;var i=this.parent,r=!i||n&&0!==this.screenSpaceError?this.screenSpaceError:i.screenSpaceError,o=e.root?e.root.screenSpaceError:0;return Math.max(o-r,0)},t.prototype.loadContent=function(){var e=this;return this.hasEmptyContent||!this.contentUrl?Promise.resolve(!1):this.content?Promise.resolve(!0):(this.contentState="LOADING",this.tileset.requestScheduler.scheduleRequest(this.id,(function(){return e.getPriority()})).then((function(t){return t?Se(e.contentUrl,{responseType:"arraybuffer",allowHosts:e.tileset.options.allowHosts,networkSubscribe:e.tileset.options.networkSubscribe,requestProxy:e.tileset.options.requestProxy}).then((function(e){return e.body})).then((function(t){return new Promise((function(n,i){var r=function(t){var i=t.data,o=i.id,a=i.tile;o===e.id&&(n(a),yi.shared.worker.removeEventListener("message",r))};yi.shared.worker.addEventListener("message",r);var o={id:e.id,buffer:t};yi.shared.worker.postMessage(o,[t])}))})).then((function(n){return e.content=n,e.tileset.options.contentLoader(e).then((function(){return e.contentState="READY",t.done(),!0}))})).catch((function(n){return e.contentState="FAILED",t.done(),Promise.reject(n)})):(e.contentState="UNLOADED",Promise.resolve(!1))})))},t.prototype.unloadContent=function(){this.content=void 0,this.contentState="UNLOADED"},t.prototype.updateVisibility=function(e){if(this.frameNumber!==e.frameNumber){var t=this.parent,n=t?t.visibilityPlaneMask:ei.MASK_INDETERMINATE,i=t?t.computedTransform:this.tileset.modelMatrix;this.updateTransform(i),this.distanceToCamera=this.distanceToTile(e),this.screenSpaceError=this.getScreenSpaceError(e,!1),this.visibilityPlaneMask=this.visibility(e,n),this.visible=this.visibilityPlaneMask!==ei.MASK_OUTSIDE,this.frameNumber=e.frameNumber}},t.prototype.visibility=function(e,t){return e.cullingVolume.computeVisibilityWithPlaneMask(this.boundingVolume,t)},t.prototype.distanceToTile=function(e){return Math.sqrt(Math.max(this.boundingVolume.distanceSquaredTo(e.camera.position),0))},t.prototype.updateTransform=function(t){void 0===t&&(t=new e.Matrix4);var n=t.clone().multiply(this.transform);!n.equals(this.computedTransform)&&(this.computedTransform.copy(n),this.boundingVolume=mi(this.header.boundingVolume,this.computedTransform))},t}(),xi=function(){function e(){this.map=new Map,this.array=[],this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.array[e]},e.prototype.set=function(e,t){e>=this.length&&(this._length=e+1),this.map.has(this.array[e])&&this.map.delete(this.array[e]),this.array[e]=t,this.map.set(t,e)},e.prototype.delete=function(e){var t=this.map.get(e);void 0!==t&&t>=0&&(this.array.splice(t,1),this.map.delete(e),this._length--)},e.prototype.push=function(e){if(!this.map.has(e)){var t=this._length++;this.array[t]=e,this.map.set(e,t)}},e.prototype.pop=function(){var e=this.array[--this._length];return this.map.delete(e),e},e.prototype.reset=function(){this.array=[],this.map=new Map,this._length=0},e.prototype.find=function(e){return this.map.has(e)},e}(),wi=function(){function e(e){var t;this.options=e,this._traversalStack=new xi,this._emptyTraversalStack=new xi,this._frameNumber=null,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.maxDepth=null!==(t=e.maxDepth)&&void 0!==t?t:100}return e.prototype.traverse=function(e,t){this.root=e,this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)},e.prototype.reset=function(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()},e.prototype.executeTraversal=function(e,t){var n=this._traversalStack;for(e.selectionDepth=1,n.push(e);n.length>0;){var i=n.pop(),r=!1;if(this.canTraverse(i,t)){this.updateChildTiles(i,t);var o=i.hasRenderContent?i.selectionDepth+1:i.selectionDepth;r=this.updateAndPushChildren(i,t,n,o)}var a=i.parent,s=Boolean(!a||a.shouldRefine),l=!r;i.hasRenderContent?"ADD"===i.refine?(this.loadTile(i,t.frameNumber),this.selectTile(i,t)):"REPLACE"===i.refine&&(this.loadTile(i,t.frameNumber),l&&this.selectTile(i,t)):(this.emptyTiles[i.id]=i,this.loadTile(i,t.frameNumber),l&&this.selectTile(i,t)),this.touchTile(i,t),i.shouldRefine=r&&s}this.options.onTraversalEnd(t)},e.prototype.updateChildTiles=function(e,t){for(var n=0,i=e.children;n<i.length;n++){var r=i[n];this.updateTile(r,t)}return!0},e.prototype.updateAndPushChildren=function(e,t,n,i){var r=this.options,o=r.loadSiblings,a=r.skipLevelOfDetail,s=e.children;s.sort(this.compareDistanceToCamera.bind(this));for(var l="REPLACE"===e.refine&&e.hasRenderContent&&!a,u=!1,c=!0,h=0,d=s;h<d.length;h++){var p=d[h];if(p.selectionDepth=i,p.visible?(n.find(p)&&n.delete(p),n.push(p),u=!0):(l||o)&&(this.loadTile(p,t.frameNumber),this.touchTile(p,t)),l){var f;if(f=p.hasRenderContent?p.contentAvailable:this.executeEmptyTraversal(p,t),!(c=c&&f))return!1}}return u||(c=!1),c},e.prototype.updateTile=function(e,t){this.updateTileVisibility(e,t)},e.prototype.selectTile=function(e,t){this.shouldSelectTile(e)&&(e.selectedFrameNumber=t.frameNumber,this.selectedTiles[e.id]=e)},e.prototype.loadTile=function(e,t){this.shouldLoadTile(e)&&(e.requestedFrameNumber=t,this.requestedTiles[e.id]=e)},e.prototype.touchTile=function(e,t){e.tileset.cache.touch(e),e.touchedFrameNumber=t.frameNumber},e.prototype.canTraverse=function(e,t,n,i){return void 0===n&&(n=!1),void 0===i&&(i=!1),!!e.hasChildren&&!(!i&&!e.visible)&&this.shouldRefine(e,t,n)},e.prototype.shouldLoadTile=function(e){return e.hasUnloadedContent},e.prototype.shouldSelectTile=function(e){return e.contentAvailable&&!this.options.skipLevelOfDetail},e.prototype.shouldRefine=function(e,t,n){if(e.hasEmptyContent)return!0;var i=e.screenSpaceError;return n&&(i=e.getScreenSpaceError(t,!0)),i>this.options.maxScreenSpaceError},e.prototype.updateTileVisibility=function(e,t){e.updateVisibility(t),1===e.depth&&(e.visible=!0)},e.prototype.meetsScreenSpaceErrorEarly=function(e,t){var n=e.parent;return!(!n||"ADD"!==n.refine||this.shouldRefine(e,t,!0))},e.prototype.compareDistanceToCamera=function(e,t){return 0===t.distanceToCamera&&0===e.distanceToCamera?t.centerZDepth-e.centerZDepth:t.distanceToCamera-e.distanceToCamera},e.prototype.anyChildrenVisible=function(e,t){for(var n=!1,i=0,r=e.children;i<r.length;i++){var o=r[i];o.updateVisibility(t),n=n||o.visible}return n},e.prototype.executeEmptyTraversal=function(e,t){var n=!0,i=this._emptyTraversalStack;for(i.push(e);i.length>0&&n;){var r=i.pop();if(this.updateTile(r,t),r.visible||this.loadTile(r,t.frameNumber),this.touchTile(r,t),!r.hasRenderContent&&this.canTraverse(r,t,!1,!0))for(var o=0,a=r.children;o<a.length;o++){var s=a[o];i.find(s)&&i.delete(s),i.push(s)}else r.contentAvailable||(n=!1)}return n},e}();function Mi(e){for(var t=[],n=0,i=Object.keys(e);n<i.length;n++){var r=i[n];t.push(e[r])}return t}var Ei=function(){function t(e,t){var n=this;this.rawJson=e,this.b3dmMapping=e.b3dmMapping,this.options=t,this.traverser=new wi({loadSiblings:!1,maxScreenSpaceError:this.options.maxScreenSpaceError,skipLevelOfDetail:!1,maxDepth:this.options.maxDepth,onTraversalEnd:function(e){return n.onTraversalEnd(e)}}),this.cache=new Xn,this.requestScheduler=new Kn({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.frameNumber=0,this.pendingCount=0,this._tiles={},this.selectedTiles=[],this.requestedTiles=[],this.memoryUsageInBytes=0,this.root=new bi(this,e.root);for(var i=[this.root],r=1;r;)for(var o=i[--r],a=o.header.children,s=a.length,l=0;l<s;l++){var u=a[l],c=new bi(this,u,o);o.children[l]=c,c.header.children&&c.header.children.length&&(i[r++]=c)}}return Object.defineProperty(t.prototype,"maxMemoryUsage",{get:function(){return this.options.maxMemoryUsage},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"asset",{get:function(){return this.rawJson.asset},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.rawJson.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"basePath",{get:function(){return this.rawJson.basePath},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"modelMatrix",{get:function(){return this.options.modelMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"geometricError",{get:function(){return this.rawJson.geometricError},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.rawJson.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.rawJson.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.rawJson.root.refine},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tiles",{get:function(){return Mi(this._tiles)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"floorInfo",{get:function(){return this.rawJson.floorInfo||this.rawJson.floor_info||[]},enumerable:!1,configurable:!0}),t.prototype.reset=function(){for(var e=this,t=[this.root];t.length>0;){for(var n=t.pop(),i=0,r=n.children;i<r.length;i++){var o=r[i];t.push(o)}this.cache.unloadTile(n,(function(t){return e.unloadTile(t)}))}this.cache.reset(),this.traverser.reset(),this.selectedTiles=[],this.requestedTiles=[],this._tiles={}},t.prototype.isLoaded=function(){return 0===this.pendingCount&&0!==this.frameNumber},t.prototype.onTraversalEnd=function(t){var n=this,i=(new e.Vector3).fromArray(t.camera.position);this.selectedTiles=this.options.onTraversalComplete(Mi(this.traverser.selectedTiles)),this.requestedTiles=Mi(this.traverser.requestedTiles).slice().sort((function(e,t){return e.boundingVolume.center.distanceTo(i)-t.boundingVolume.center.distanceTo(i)}));for(var r=0,o=this.selectedTiles;r<o.length;r++){var a=o[r];this._tiles[a.id]=a}for(var s=0,l=this.requestedTiles;s<l.length;s++)(a=l[s]).contentUnloaded&&this.loadTile(a);this.cache.unloadTiles((function(){return n.memoryUsageInBytes>1024*n.maxMemoryUsage*1024}),(function(e){n.unloadTile(e)}))},t.prototype.loadTile=function(e){var t=this;e.depth>this.options.maxDepth||(this.pendingCount++,e.loadContent().catch((function(n){var i=n.message||n.toString();return console.error("A 3D tile failed to load: ".concat(e.id," ").concat(i)),t.options.onTileError(e,i),!1})).then((function(n){t.pendingCount--,n&&(t.cache.add(e,(function(){e.content&&(t.memoryUsageInBytes+=e.content.byteLength||0)})),t.options.onTileLoad(e))})))},t.prototype.unloadTile=function(e){this.memoryUsageInBytes-=e.content&&e.content.byteLength||0,this.options.onTileUnload(e),e.unloadContent()},t}();function Ci(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Ii(){return(Ci()+Ci()+"-"+Ci()+"-4"+Ci().substr(0,3)+"-"+Ci()+"-"+Ci()+Ci()+Ci()).toLowerCase()}function Si(e,t){var n;return e.content&&(e.contentUrl="".concat(t,"/").concat(e.content.uri||e.content.url)),e.id=null!==(n=e.contentUrl)&&void 0!==n?n:"empty:"+Ii(),e.lodMetricType="geometricError",e.lodMetricValue=e.geometricError,e.transformMatrix=e.transform,e.type=e.contentUrl?"SCENEGRAPH":"EMPTY",e.refine=function(e){switch(e){case"REPLACE":case"replace":return"REPLACE";case"ADD":case"add":return"ADD";default:throw new Error("refine ".concat(e," is not supported."))}}(e.refine),e}var Bi=function(){function t(t){e.Loader.call(this,t),this.dracoLoader=null,this.ddsLoader=null}function n(){var e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}t.prototype=Object.assign(Object.create(e.Loader.prototype),{constructor:t,load:function(t,n,i,r){var o,a=this;o=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.LoaderUtils.extractUrlBase(t),a.manager.itemStart(t);var s=function(e){r?r(e):console.error(e),a.manager.itemError(t),a.manager.itemEnd(t)},l=new e.FileLoader(a.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),"use-credentials"===a.crossOrigin&&l.setWithCredentials(!0),l.load(t,(function(e){try{a.parse(e,o,(function(e){n(e),a.manager.itemEnd(t)}),s)}catch(e){s(e)}}),i,s)},setDRACOLoader:function(e){return this.dracoLoader=e,this},setDDSLoader:function(e){return this.ddsLoader=e,this},parse:function(t,n,u,c){var f,m={};if("string"==typeof t)f=t;else if(e.LoaderUtils.decodeText(new Uint8Array(t,0,4))===l){try{m[i.KHR_BINARY_GLTF]=new h(t)}catch(e){return void(c&&c(e))}f=m[i.KHR_BINARY_GLTF].content}else f=e.LoaderUtils.decodeText(new Uint8Array(t));var g=JSON.parse(f);if(void 0===g.asset||g.asset.version[0]<2)c&&c(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));else{if(g.extensionsUsed)for(var y=0;y<g.extensionsUsed.length;++y){var b=g.extensionsUsed[y],x=g.extensionsRequired||[];switch(b){case i.KHR_LIGHTS_PUNCTUAL:m[b]=new o(g);break;case i.KHR_MATERIALS_CLEARCOAT:m[b]=new s;break;case i.KHR_MATERIALS_UNLIT:m[b]=new a;break;case i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:m[b]=new A;break;case i.KHR_DRACO_MESH_COMPRESSION:m[b]=new d(g,this.dracoLoader);break;case i.MSFT_TEXTURE_DDS:m[b]=new r(this.ddsLoader);break;case i.KHR_TEXTURE_TRANSFORM:m[b]=new p;break;case i.KHR_MESH_QUANTIZATION:m[b]=new v;break;default:x.indexOf(b)>=0&&console.warn('THREE.GLTFLoader: Unknown extension "'+b+'".')}}var w=new R(g,m,{path:n||this.resourcePath||"",crossOrigin:this.crossOrigin,manager:this.manager});w.fileLoader.setRequestHeader(this.requestHeader),w.parse(u,c)}}});var i={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};function r(e){if(!e)throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader");this.name=i.MSFT_TEXTURE_DDS,this.ddsLoader=e}function o(e){this.name=i.KHR_LIGHTS_PUNCTUAL;var t=e.extensions&&e.extensions[i.KHR_LIGHTS_PUNCTUAL]||{};this.lightDefs=t.lights||[]}function a(){this.name=i.KHR_MATERIALS_UNLIT}function s(){this.name=i.KHR_MATERIALS_CLEARCOAT}o.prototype.loadLight=function(t){var n,i=this.lightDefs[t],r=new e.Color(16777215);void 0!==i.color&&r.fromArray(i.color);var o=void 0!==i.range?i.range:0;switch(i.type){case"directional":(n=new e.DirectionalLight(r)).target.position.set(0,0,-1),n.add(n.target);break;case"point":(n=new e.PointLight(r)).distance=o;break;case"spot":(n=new e.SpotLight(r)).distance=o,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,n.angle=i.spot.outerConeAngle,n.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,n.target.position.set(0,0,-1),n.add(n.target);break;default:throw new Error('THREE.GLTFLoader: Unexpected light type, "'+i.type+'".')}return n.position.set(0,0,0),n.decay=2,void 0!==i.intensity&&(n.intensity=i.intensity),n.name=i.name||"light_"+t,Promise.resolve(n)},a.prototype.getMaterialType=function(){return e.MeshBasicMaterial},a.prototype.extendParams=function(t,n,i){var r=[];t.color=new e.Color(1,1,1),t.opacity=1;var o=n.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){var a=o.baseColorFactor;t.color.fromArray(a),t.opacity=a[3]}void 0!==o.baseColorTexture&&r.push(i.assignTexture(t,"map",o.baseColorTexture))}return Promise.all(r)},s.prototype.getMaterialType=function(){return e.MeshPhysicalMaterial},s.prototype.extendParams=function(t,n,i){var r=[],o=n.extensions[this.name];if(void 0!==o.clearcoatFactor&&(t.clearcoat=o.clearcoatFactor),void 0!==o.clearcoatTexture&&r.push(i.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),void 0!==o.clearcoatRoughnessFactor&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),void 0!==o.clearcoatRoughnessTexture&&r.push(i.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),void 0!==o.clearcoatNormalTexture&&(r.push(i.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),void 0!==o.clearcoatNormalTexture.scale)){var a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new e.Vector2(a,a)}return Promise.all(r)};var l="glTF",u=12,c={JSON:1313821514,BIN:5130562};function h(t){this.name=i.KHR_BINARY_GLTF,this.content=null,this.body=null;var n=new DataView(t,0,u);if(this.header={magic:e.LoaderUtils.decodeText(new Uint8Array(t.slice(0,4))),version:n.getUint32(4,!0),length:n.getUint32(8,!0)},this.header.magic!==l)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");for(var r=new DataView(t,u),o=0;o<r.byteLength;){var a=r.getUint32(o,!0);o+=4;var s=r.getUint32(o,!0);if(o+=4,s===c.JSON){var h=new Uint8Array(t,u+o,a);this.content=e.LoaderUtils.decodeText(h)}else if(s===c.BIN){var d=u+o;this.body=t.slice(d,d+a)}o+=a}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function d(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=i.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}function p(){this.name=i.KHR_TEXTURE_TRANSFORM}function f(t){e.MeshStandardMaterial.call(this),this.isGLTFSpecularGlossinessMaterial=!0;var n=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),i=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),o=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),a=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor.rgb;"].join("\n"),s={specular:{value:(new e.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=s,this.onBeforeCompile=function(e){for(var t in s)e.uniforms[t]=s[t];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;"),e.fragmentShader=e.fragmentShader.replace("uniform float metalness;","uniform float glossiness;"),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_pars_fragment>",n),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_pars_fragment>",i),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_fragment>",r),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_fragment>",o),e.fragmentShader=e.fragmentShader.replace("#include <lights_physical_fragment>",a)},Object.defineProperties(this,{specular:{get:function(){return s.specular.value},set:function(e){s.specular.value=e}},specularMap:{get:function(){return s.specularMap.value},set:function(e){s.specularMap.value=e}},glossiness:{get:function(){return s.glossiness.value},set:function(e){s.glossiness.value=e}},glossinessMap:{get:function(){return s.glossinessMap.value},set:function(e){s.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_ROUGHNESSMAP=""):(delete this.defines.USE_ROUGHNESSMAP,delete this.defines.USE_GLOSSINESSMAP)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(t)}function A(){return{name:i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return f},extendParams:function(t,n,i){var r=n.extensions[this.name];t.color=new e.Color(1,1,1),t.opacity=1;var o=[];if(Array.isArray(r.diffuseFactor)){var a=r.diffuseFactor;t.color.fromArray(a),t.opacity=a[3]}if(void 0!==r.diffuseTexture&&o.push(i.assignTexture(t,"map",r.diffuseTexture)),t.emissive=new e.Color(0,0,0),t.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,t.specular=new e.Color(1,1,1),Array.isArray(r.specularFactor)&&t.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var s=r.specularGlossinessTexture;o.push(i.assignTexture(t,"glossinessMap",s)),o.push(i.assignTexture(t,"specularMap",s))}return Promise.all(o)},createMaterial:function(t){var n=new f(t);return n.fog=!0,n.color=t.color,n.map=void 0===t.map?null:t.map,n.lightMap=null,n.lightMapIntensity=1,n.aoMap=void 0===t.aoMap?null:t.aoMap,n.aoMapIntensity=1,n.emissive=t.emissive,n.emissiveIntensity=1,n.emissiveMap=void 0===t.emissiveMap?null:t.emissiveMap,n.bumpMap=void 0===t.bumpMap?null:t.bumpMap,n.bumpScale=1,n.normalMap=void 0===t.normalMap?null:t.normalMap,n.normalMapType=e.TangentSpaceNormalMap,t.normalScale&&(n.normalScale=t.normalScale),n.displacementMap=null,n.displacementScale=1,n.displacementBias=0,n.specularMap=void 0===t.specularMap?null:t.specularMap,n.specular=t.specular,n.glossinessMap=void 0===t.glossinessMap?null:t.glossinessMap,n.glossiness=t.glossiness,n.alphaMap=null,n.envMap=void 0===t.envMap?null:t.envMap,n.envMapIntensity=1,n.refractionRatio=.98,n}}}function v(){this.name=i.KHR_MESH_QUANTIZATION}function m(t,n,i,r){e.Interpolant.call(this,t,n,i,r)}d.prototype.decodePrimitive=function(e,t){var n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},s={},l={};for(var u in o){var c=w[u]||u.toLowerCase();a[c]=o[u]}for(u in e.attributes)if(c=w[u]||u.toLowerCase(),void 0!==o[u]){var h=n.accessors[e.attributes[u]],d=g[h.componentType];l[c]=d,s[c]=!0===h.normalized}return t.getDependency("bufferView",r).then((function(e){return new Promise((function(t){i.decodeDracoFile(e,(function(e){for(var n in e.attributes){var i=e.attributes[n],r=s[n];void 0!==r&&(i.normalized=r)}t(e)}),a,l)}))}))},p.prototype.extendTexture=function(e,t){return e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.needsUpdate=!0,e},f.prototype=Object.create(e.MeshStandardMaterial.prototype),f.prototype.constructor=f,f.prototype.copy=function(t){return e.MeshStandardMaterial.prototype.copy.call(this,t),this.specularMap=t.specularMap,this.specular.copy(t.specular),this.glossinessMap=t.glossinessMap,this.glossiness=t.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this},m.prototype=Object.create(e.Interpolant.prototype),m.prototype.constructor=m,m.prototype.copySampleValue_=function(e){for(var t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i,o=0;o!==i;o++)t[o]=n[r+o];return t},m.prototype.beforeStart_=m.prototype.copySampleValue_,m.prototype.afterEnd_=m.prototype.copySampleValue_,m.prototype.interpolate_=function(e,t,n,i){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=2*a,l=3*a,u=i-t,c=(n-t)/u,h=c*c,d=h*c,p=e*l,f=p-l,A=-2*d+3*h,v=d-h,m=1-A,g=v-h+c,y=0;y!==a;y++){var b=o[f+y+a],x=o[f+y+s]*u,w=o[p+y+a],M=o[p+y]*u;r[y]=m*b+g*x+A*w+v*M}return r};var g={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},y={9728:e.NearestFilter,9729:e.LinearFilter,9984:e.NearestMipmapNearestFilter,9985:e.LinearMipmapNearestFilter,9986:e.NearestMipmapLinearFilter,9987:e.LinearMipmapLinearFilter},b={33071:e.ClampToEdgeWrapping,33648:e.MirroredRepeatWrapping,10497:e.RepeatWrapping},x={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},w={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},M={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},E={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear,STEP:e.InterpolateDiscrete},C={"image/png":e.RGBAFormat,"image/jpeg":e.RGBFormat};function I(e,t){return"string"!=typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}function S(e,t,n){for(var i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function B(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function T(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){var r=t.extras.targetNames;if(e.morphTargetInfluences.length===r.length)for(e.morphTargetDictionary={},n=0,i=r.length;n<i;n++)e.morphTargetDictionary[r[n]]=n;else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function P(e){for(var t="",n=Object.keys(e).sort(),i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function R(t,i,r){this.json=t||{},this.extensions=i||{},this.options=r||{},this.cache=new n,this.associations=new Map,this.primitiveCache={},this.textureLoader=new e.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new e.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}function L(t,n,i){var r=n.attributes,o=[];function a(e,n){return i.getDependency("accessor",e).then((function(e){t.setAttribute(n,e)}))}for(var s in r){var l=w[s]||s.toLowerCase();l in t.attributes||o.push(a(r[s],l))}if(void 0!==n.indices&&!t.index){var u=i.getDependency("accessor",n.indices).then((function(e){t.setIndex(e)}));o.push(u)}return B(t,n),function(t,n,i){var r=n.attributes,o=new e.Box3;if(void 0!==r.POSITION){var a=(p=i.json.accessors[r.POSITION]).min,s=p.max;if(void 0!==a&&void 0!==s){o.set(new e.Vector3(a[0],a[1],a[2]),new e.Vector3(s[0],s[1],s[2]));var l=n.targets;if(void 0!==l){for(var u=new e.Vector3,c=new e.Vector3,h=0,d=l.length;h<d;h++){var p,f=l[h];void 0!==f.POSITION&&(a=(p=i.json.accessors[f.POSITION]).min,s=p.max,void 0!==a&&void 0!==s?(c.setX(Math.max(Math.abs(a[0]),Math.abs(s[0]))),c.setY(Math.max(Math.abs(a[1]),Math.abs(s[1]))),c.setZ(Math.max(Math.abs(a[2]),Math.abs(s[2]))),u.max(c)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION."))}o.expandByVector(u)}t.boundingBox=o;var A=new e.Sphere;o.getCenter(A.center),A.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=A}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}(t,n,i),Promise.all(o).then((function(){return void 0!==n.targets?function(e,t,n){for(var i=!1,r=!1,o=0,a=t.length;o<a&&(void 0!==(u=t[o]).POSITION&&(i=!0),void 0!==u.NORMAL&&(r=!0),!i||!r);o++);if(!i&&!r)return Promise.resolve(e);var s=[],l=[];for(o=0,a=t.length;o<a;o++){var u=t[o];if(i){var c=void 0!==u.POSITION?n.getDependency("accessor",u.POSITION):e.attributes.position;s.push(c)}r&&(c=void 0!==u.NORMAL?n.getDependency("accessor",u.NORMAL):e.attributes.normal,l.push(c))}return Promise.all([Promise.all(s),Promise.all(l)]).then((function(t){var n=t[0],o=t[1];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}(t,n.targets,i):t}))}function k(t,n){var i=t.getIndex();if(null===i){var r=[],o=t.getAttribute("position");if(void 0===o)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(var a=0;a<o.count;a++)r.push(a);t.setIndex(r),i=t.getIndex()}var s=i.count-2,l=[];if(n===e.TriangleFanDrawMode)for(a=1;a<=s;a++)l.push(i.getX(0)),l.push(i.getX(a)),l.push(i.getX(a+1));else for(a=0;a<s;a++)a%2==0?(l.push(i.getX(a)),l.push(i.getX(a+1)),l.push(i.getX(a+2))):(l.push(i.getX(a+2)),l.push(i.getX(a+1)),l.push(i.getX(a)));l.length/3!==s&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var u=t.clone();return u.setIndex(l),u}return R.prototype.parse=function(e,t){var n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.markDefs(),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then((function(t){var o={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};S(r,o,i),B(o,i),e(o)})).catch(t)},R.prototype.markDefs=function(){for(var e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[],i={},r={},o=0,a=t.length;o<a;o++)for(var s=t[o].joints,l=0,u=s.length;l<u;l++)e[s[l]].isBone=!0;for(var c=0,h=e.length;c<h;c++){var d=e[c];void 0!==d.mesh&&(void 0===i[d.mesh]&&(i[d.mesh]=r[d.mesh]=0),i[d.mesh]++,void 0!==d.skin&&(n[d.mesh].isSkinnedMesh=!0))}this.json.meshReferences=i,this.json.meshUses=r},R.prototype.getDependency=function(e,t){var n=e+":"+t,r=this.cache.get(n);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this.loadNode(t);break;case"mesh":r=this.loadMesh(t);break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this.loadBufferView(t);break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this.loadMaterial(t);break;case"texture":r=this.loadTexture(t);break;case"skin":r=this.loadSkin(t);break;case"animation":r=this.loadAnimation(t);break;case"camera":r=this.loadCamera(t);break;case"light":r=this.extensions[i.KHR_LIGHTS_PUNCTUAL].loadLight(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(n,r)}return r},R.prototype.getDependencies=function(e){var t=this.cache.get(e);if(!t){var n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map((function(t,i){return n.getDependency(e,i)}))),this.cache.add(e,t)}return t},R.prototype.loadBuffer=function(e){var t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[i.KHR_BINARY_GLTF].body);var r=this.options;return new Promise((function(e,i){n.load(I(t.uri,r.path),e,void 0,(function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))},R.prototype.loadBufferView=function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){var n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)}))},R.prototype.loadAccessor=function(t){var n=this,i=this.json,r=this.json.accessors[t];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);var o=[];return void 0!==r.bufferView?o.push(this.getDependency("bufferView",r.bufferView)):o.push(null),void 0!==r.sparse&&(o.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(o).then((function(t){var o,a,s=t[0],l=x[r.type],u=g[r.componentType],c=u.BYTES_PER_ELEMENT,h=c*l,d=r.byteOffset||0,p=void 0!==r.bufferView?i.bufferViews[r.bufferView].byteStride:void 0,f=!0===r.normalized;if(p&&p!==h){var A=Math.floor(d/p),v="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+A+":"+r.count,m=n.cache.get(v);m||(o=new u(s,A*p,r.count*p/c),m=new e.InterleavedBuffer(o,p/c),n.cache.add(v,m)),a=new e.InterleavedBufferAttribute(m,l,d%p/c,f)}else o=null===s?new u(r.count*l):new u(s,d,r.count*l),a=new e.BufferAttribute(o,l,f);if(void 0!==r.sparse){var y=x.SCALAR,b=g[r.sparse.indices.componentType],w=r.sparse.indices.byteOffset||0,M=r.sparse.values.byteOffset||0,E=new b(t[1],w,r.sparse.count*y),C=new u(t[2],M,r.sparse.count*l);null!==s&&(a=new e.BufferAttribute(a.array.slice(),a.itemSize,a.normalized));for(var I=0,S=E.length;I<S;I++){var B=E[I];if(a.setX(B,C[I*l]),l>=2&&a.setY(B,C[I*l+1]),l>=3&&a.setZ(B,C[I*l+2]),l>=4&&a.setW(B,C[I*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))},R.prototype.loadTexture=function(t){var n,r=this,o=this.json,a=this.options,s=this.textureLoader,l=self.URL||self.webkitURL,u=o.textures[t],c=u.extensions||{},h=(n=c[i.MSFT_TEXTURE_DDS]?o.images[c[i.MSFT_TEXTURE_DDS].source]:o.images[u.source]).uri,d=!1;return void 0!==n.bufferView&&(h=r.getDependency("bufferView",n.bufferView).then((function(e){d=!0;var t=new Blob([e],{type:n.mimeType});return h=l.createObjectURL(t)}))),Promise.resolve(h).then((function(e){var t=a.manager.getHandler(e);return t||(t=c[i.MSFT_TEXTURE_DDS]?r.extensions[i.MSFT_TEXTURE_DDS].ddsLoader:s),new Promise((function(n,i){t.load(I(e,a.path),n,void 0,i)}))})).then((function(i){!0===d&&l.revokeObjectURL(h),i.flipY=!1,u.name&&(i.name=u.name),n.mimeType in C&&(i.format=C[n.mimeType]);var a=(o.samplers||{})[u.sampler]||{};return i.magFilter=y[a.magFilter]||e.LinearFilter,i.minFilter=y[a.minFilter]||e.LinearMipmapLinearFilter,i.wrapS=b[a.wrapS]||e.RepeatWrapping,i.wrapT=b[a.wrapT]||e.RepeatWrapping,r.associations.set(i,{type:"textures",index:t}),i}))},R.prototype.assignTexture=function(t,n,r){var o=this;return this.getDependency("texture",r.index).then((function(a){if(!a.isCompressedTexture)switch(n){case"aoMap":case"emissiveMap":case"metalnessMap":case"normalMap":case"roughnessMap":a.format=e.RGBFormat}if(void 0===r.texCoord||0==r.texCoord||"aoMap"===n&&1==r.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+r.texCoord+" for texture "+n+" not yet supported."),o.extensions[i.KHR_TEXTURE_TRANSFORM]){var s=void 0!==r.extensions?r.extensions[i.KHR_TEXTURE_TRANSFORM]:void 0;if(s){var l=this.associations.get(a);a=o.extensions[i.KHR_TEXTURE_TRANSFORM].extendTexture(a,s),this.associations.set(a,l)}}t[n]=a}))},R.prototype.assignFinalMaterial=function(t){var n=t.geometry,i=t.material,r=void 0!==n.attributes.tangent,o=void 0!==n.attributes.color,a=void 0===n.attributes.normal,s=!0===t.isSkinnedMesh,l=Object.keys(n.morphAttributes).length>0,u=l&&void 0!==n.morphAttributes.normal;if(t.isPoints){var c="PointsMaterial:"+i.uuid,h=this.cache.get(c);h||(h=new e.PointsMaterial,e.Material.prototype.copy.call(h,i),h.color.copy(i.color),h.map=i.map,h.sizeAttenuation=!1,this.cache.add(c,h)),i=h}else if(t.isLine){c="LineBasicMaterial:"+i.uuid;var d=this.cache.get(c);d||(d=new e.LineBasicMaterial,e.Material.prototype.copy.call(d,i),d.color.copy(i.color),this.cache.add(c,d)),i=d}if(r||o||a||s||l){c="ClonedMaterial:"+i.uuid+":",i.isGLTFSpecularGlossinessMaterial&&(c+="specular-glossiness:"),s&&(c+="skinning:"),r&&(c+="vertex-tangents:"),o&&(c+="vertex-colors:"),a&&(c+="flat-shading:"),l&&(c+="morph-targets:"),u&&(c+="morph-normals:");var p=this.cache.get(c);p||(p=i.clone(),s&&(p.skinning=!0),r&&(p.vertexTangents=!0),o&&(p.vertexColors=!0),a&&(p.flatShading=!0),l&&(p.morphTargets=!0),u&&(p.morphNormals=!0),this.cache.add(c,p),this.associations.set(p,this.associations.get(i))),i=p}i.aoMap&&void 0===n.attributes.uv2&&void 0!==n.attributes.uv&&n.setAttribute("uv2",n.attributes.uv),i.normalScale&&!r&&(i.normalScale.y=-i.normalScale.y),i.clearcoatNormalScale&&!r&&(i.clearcoatNormalScale.y=-i.clearcoatNormalScale.y),t.material=i},R.prototype.loadMaterial=function(t){var n,r=this,o=this.json,a=this.extensions,s=o.materials[t],l={},u=s.extensions||{},c=[];if(u[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var h=a[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];n=h.getMaterialType(),c.push(h.extendParams(l,s,r))}else if(u[i.KHR_MATERIALS_UNLIT]){var d=a[i.KHR_MATERIALS_UNLIT];n=d.getMaterialType(),c.push(d.extendParams(l,s,r))}else{n=e.MeshStandardMaterial;var p=s.pbrMetallicRoughness||{};if(l.color=new e.Color(1,1,1),l.opacity=1,Array.isArray(p.baseColorFactor)){var A=p.baseColorFactor;l.color.fromArray(A),l.opacity=A[3]}void 0!==p.baseColorTexture&&c.push(r.assignTexture(l,"map",p.baseColorTexture)),l.metalness=void 0!==p.metallicFactor?p.metallicFactor:1,l.roughness=void 0!==p.roughnessFactor?p.roughnessFactor:1,void 0!==p.metallicRoughnessTexture&&(c.push(r.assignTexture(l,"metalnessMap",p.metallicRoughnessTexture)),c.push(r.assignTexture(l,"roughnessMap",p.metallicRoughnessTexture)))}!0===s.doubleSided&&(l.side=e.DoubleSide);var v=s.alphaMode||"OPAQUE";if("BLEND"===v?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,"MASK"===v&&(l.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&n!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new e.Vector2(1,1),void 0!==s.normalTexture.scale&&l.normalScale.set(s.normalTexture.scale,s.normalTexture.scale)),void 0!==s.occlusionTexture&&n!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(l.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&n!==e.MeshBasicMaterial&&(l.emissive=(new e.Color).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&n!==e.MeshBasicMaterial&&c.push(r.assignTexture(l,"emissiveMap",s.emissiveTexture)),u[i.KHR_MATERIALS_CLEARCOAT]){var m=a[i.KHR_MATERIALS_CLEARCOAT];n=m.getMaterialType(),c.push(m.extendParams(l,{extensions:u},r))}return Promise.all(c).then((function(){var o;return o=n===f?a[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(l):new n(l),s.name&&(o.name=s.name),o.map&&(o.map.encoding=e.sRGBEncoding),o.emissiveMap&&(o.emissiveMap.encoding=e.sRGBEncoding),B(o,s),r.associations.set(o,{type:"materials",index:t}),s.extensions&&S(a,o,s),o}))},R.prototype.loadGeometries=function(t){var n=this,r=this.extensions,o=this.primitiveCache;function a(e){return r[i.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,n).then((function(t){return L(t,e,n)}))}for(var s,l,u=[],c=0,h=t.length;c<h;c++){var d,p=t[c],f=(void 0,(l=(s=p).extensions&&s.extensions[i.KHR_DRACO_MESH_COMPRESSION])?"draco:"+l.bufferView+":"+l.indices+":"+P(l.attributes):s.indices+":"+P(s.attributes)+":"+s.mode),A=o[f];A?u.push(A.promise):(d=p.extensions&&p.extensions[i.KHR_DRACO_MESH_COMPRESSION]?a(p):L(new e.BufferGeometry,p,n),o[f]={primitive:p,promise:d},u.push(d))}return Promise.all(u)},R.prototype.loadMesh=function(t){for(var n,i=this,r=this.json.meshes[t],o=r.primitives,a=[],s=0,l=o.length;s<l;s++){var u=void 0===o[s].material?(void 0===(n=this.cache).DefaultMaterial&&(n.DefaultMaterial=new e.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:e.FrontSide})),n.DefaultMaterial):this.getDependency("material",o[s].material);a.push(u)}return a.push(i.loadGeometries(o)),Promise.all(a).then((function(n){for(var a=n.slice(0,n.length-1),s=n[n.length-1],l=[],u=0,c=s.length;u<c;u++){var h,d=s[u],p=o[u],f=a[u];if(4===p.mode||5===p.mode||6===p.mode||void 0===p.mode)!0!==(h=!0===r.isSkinnedMesh?new e.SkinnedMesh(d,f):new e.Mesh(d,f)).isSkinnedMesh||h.geometry.attributes.skinWeight.normalized||h.normalizeSkinWeights(),5===p.mode?h.geometry=k(h.geometry,e.TriangleStripDrawMode):6===p.mode&&(h.geometry=k(h.geometry,e.TriangleFanDrawMode));else if(1===p.mode)h=new e.LineSegments(d,f);else if(3===p.mode)h=new e.Line(d,f);else if(2===p.mode)h=new e.LineLoop(d,f);else{if(0!==p.mode)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);h=new e.Points(d,f)}Object.keys(h.geometry.morphAttributes).length>0&&T(h,r),h.name=r.name||"mesh_"+t,s.length>1&&(h.name+="_"+u),B(h,r),i.assignFinalMaterial(h),l.push(h)}if(1===l.length)return l[0];var A=new e.Group;for(u=0,c=l.length;u<c;u++)A.add(l[u]);return A}))},R.prototype.loadCamera=function(t){var n,i=this.json.cameras[t],r=i[i.type];if(r)return"perspective"===i.type?n=new e.PerspectiveCamera(e.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===i.type&&(n=new e.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),i.name&&(n.name=i.name),B(n,i),Promise.resolve(n);console.warn("THREE.GLTFLoader: Missing camera parameters.")},R.prototype.loadSkin=function(e){var t=this.json.skins[e],n={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(n):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return n.inverseBindMatrices=e,n}))},R.prototype.loadAnimation=function(t){for(var n=this.json.animations[t],i=[],r=[],o=[],a=[],s=[],l=0,u=n.channels.length;l<u;l++){var c=n.channels[l],h=n.samplers[c.sampler],d=c.target,p=void 0!==d.node?d.node:d.id,f=void 0!==n.parameters?n.parameters[h.input]:h.input,A=void 0!==n.parameters?n.parameters[h.output]:h.output;i.push(this.getDependency("node",p)),r.push(this.getDependency("accessor",f)),o.push(this.getDependency("accessor",A)),a.push(h),s.push(d)}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o),Promise.all(a),Promise.all(s)]).then((function(i){for(var r=i[0],o=i[1],a=i[2],s=i[3],l=i[4],u=[],c=0,h=r.length;c<h;c++){var d=r[c],p=o[c],f=a[c],A=s[c],v=l[c];if(void 0!==d){var g;switch(d.updateMatrix(),d.matrixAutoUpdate=!0,M[v.path]){case M.weights:g=e.NumberKeyframeTrack;break;case M.rotation:g=e.QuaternionKeyframeTrack;break;default:g=e.VectorKeyframeTrack}var y=d.name?d.name:d.uuid,b=void 0!==A.interpolation?E[A.interpolation]:e.InterpolateLinear,x=[];M[v.path]===M.weights?d.traverse((function(e){!0===e.isMesh&&e.morphTargetInfluences&&x.push(e.name?e.name:e.uuid)})):x.push(y);var w=f.array;if(f.normalized){var C;if(w.constructor===Int8Array)C=1/127;else if(w.constructor===Uint8Array)C=1/255;else if(w.constructor==Int16Array)C=1/32767;else{if(w.constructor!==Uint16Array)throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");C=1/65535}for(var I=new Float32Array(w.length),S=0,B=w.length;S<B;S++)I[S]=w[S]*C;w=I}for(S=0,B=x.length;S<B;S++){var T=new g(x[S]+"."+M[v.path],p.array,w,b);"CUBICSPLINE"===A.interpolation&&(T.createInterpolant=function(e){return new m(this.times,this.values,this.getValueSize()/3,e)},T.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),u.push(T)}}}var P=n.name?n.name:"animation_"+t;return new e.AnimationClip(P,void 0,u)}))},R.prototype.loadNode=function(t){var n,r=this.json,o=this.extensions,a=this,s=r.meshReferences,l=r.meshUses,u=r.nodes[t];return(n=[],void 0!==u.mesh&&n.push(a.getDependency("mesh",u.mesh).then((function(e){var t;if(s[u.mesh]>1){var n=l[u.mesh]++;(t=e.clone()).name+="_instance_"+n}else t=e;return void 0!==u.weights&&t.traverse((function(e){if(e.isMesh)for(var t=0,n=u.weights.length;t<n;t++)e.morphTargetInfluences[t]=u.weights[t]})),t}))),void 0!==u.camera&&n.push(a.getDependency("camera",u.camera)),u.extensions&&u.extensions[i.KHR_LIGHTS_PUNCTUAL]&&void 0!==u.extensions[i.KHR_LIGHTS_PUNCTUAL].light&&n.push(a.getDependency("light",u.extensions[i.KHR_LIGHTS_PUNCTUAL].light)),Promise.all(n)).then((function(n){var i;if((i=!0===u.isBone?new e.Bone:n.length>1?new e.Group:1===n.length?n[0]:new e.Object3D)!==n[0])for(var r=0,s=n.length;r<s;r++)i.add(n[r]);if(u.name&&(i.userData.name=u.name,i.name=e.PropertyBinding.sanitizeNodeName(u.name)),B(i,u),u.extensions&&S(o,i,u),void 0!==u.matrix){var l=new e.Matrix4;l.fromArray(u.matrix),i.applyMatrix4(l)}else void 0!==u.translation&&i.position.fromArray(u.translation),void 0!==u.rotation&&i.quaternion.fromArray(u.rotation),void 0!==u.scale&&i.scale.fromArray(u.scale);return a.associations.set(i,{type:"nodes",index:t}),i}))},R.prototype.loadScene=function(){function t(n,i,r,o){var a=r.nodes[n];return o.getDependency("node",n).then((function(t){return void 0===a.skin?t:o.getDependency("skin",a.skin).then((function(e){for(var t=[],i=0,r=(n=e).joints.length;i<r;i++)t.push(o.getDependency("node",n.joints[i]));return Promise.all(t)})).then((function(i){return t.traverse((function(t){if(t.isMesh){for(var r=[],o=[],a=0,s=i.length;a<s;a++){var l=i[a];if(l){r.push(l);var u=new e.Matrix4;void 0!==n.inverseBindMatrices&&u.fromArray(n.inverseBindMatrices.array,16*a),o.push(u)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',n.joints[a])}t.bind(new e.Skeleton(r,o),t.matrixWorld)}})),t}));var n})).then((function(e){i.add(e);var n=[];if(a.children)for(var s=a.children,l=0,u=s.length;l<u;l++){var c=s[l];n.push(t(c,e,r,o))}return Promise.all(n)}))}return function(n){var i=this.json,r=this.extensions,o=this.json.scenes[n],a=new e.Group;o.name&&(a.name=o.name),B(a,o),o.extensions&&S(r,a,o);for(var s=o.nodes||[],l=[],u=0,c=s.length;u<c;u++)l.push(t(s[u],a,i,this));return Promise.all(l).then((function(){return a}))}}(),t}(),Ti=new Bi,Pi=(new e.Matrix4).makeRotationAxis(new e.Vector3(1,0,0),Math.PI/2);function Ri(t){function n(t){if(t.isMesh)return function(t){var n=new Ge;n.geometry=t.geometry,n.geometry.computeVertexNormals(),n.geometry.computeBoundingBox(),n.geometry.computeBoundingSphere(),n.geometry.addGroup(0,t.geometry.index.count,0);var i=new Bt;return i.uniforms.map.value=t.material.map,i.uniforms.map.value&&(i.uniforms.map.value.magFilter=e.LinearFilter,i.uniforms.map.value.minFilter=e.LinearFilter,i.uniforms.map.value.generateMipmaps=!1),i.uniforms.exposure.value=3.3,i.opacity=1,t.material.dispose(),t.geometry=null,t.material=null,n.material=[i],n.position.copy(t.position),n.quaternion.copy(t.quaternion),n.scale.copy(t.scale),n.matrix.compose(n.position,n.quaternion,n.scale),n}(t);if(t.isGroup){for(var i=function(e){var t=new Xe;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.copy(e.scale),t.matrix.compose(t.position,t.quaternion,t.scale),t}(t),r=0;r<t.children.length;r++){var o=n(t.children[r]);i.add(o)}return i}return new Xe}return new Promise((function(i,r){var o,a=(new e.Matrix4).copy(t.computedTransform);if("Z"!==(null===(o=t.tileset.asset)||void 0===o?void 0:o.gltfUpAxis)&&a.multiply(Pi),t.content){var s=t.content.gltfArrayBuffer;delete t.content.gltfArrayBuffer;var l=t.contentUrl?t.contentUrl.slice(0,t.contentUrl.lastIndexOf("/")+1):"";Ti.parse(s,l,(function(e){var r=e.scene,o=new Xe,s=n(r);s.applyMatrix4(a),o.add(s),t.contentUrl&&(o.name=t.contentUrl),i(o)}),(function(e){r(new Error("error parsing gltf in tile ".concat(t.id,": ").concat(e.message)))}))}else i(new Xe)}))}function Li(e){e.traverse((function(e){if(e instanceof Ge){e.geometry.dispose();for(var t=0,n=e.material;t<n.length;t++){var i=n[t];i.uniforms.map&&i.uniforms.map.value&&(i.uniforms.map.value.dispose(),i.uniforms.map.value=null),i.dispose()}}}))}function ki(t){t.updateMatrix(),t.updateMatrixWorld();var n=(new e.Matrix4).multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse);return(new e.Frustum).setFromProjectionMatrix(n)}new e.EdgesGeometry(new e.BoxBufferGeometry(1,1,1)),new e.LineBasicMaterial({color:new e.Color(1,1,0),transparent:!0});var Oi=["tileTextureUpload","basicTileLoaded"],Fi={throttleRequests:!0,maxRequests:64,updateInterval:.1,maxScreenSpaceError:8,maxMemoryUsage:24,viewDistanceScale:.2,onNodeCreated:function(){},maxDepth:100},Di=function(t){function n(n,i,r){var o,a=this;return(a=t.call(this)||this).options=ne(ne({},Fi),n),a.options.maxDepth=null!==(o=a.options.maxDepth)&&void 0!==o?o:100,a.clock=new e.Clock,a.timer=0,a.unloadTileQueue=[],a.nodes={},a.boundings={},a.nodeGroup=new e.Group,a.boundingGroup=new e.Group,a.add(a.nodeGroup),a.sseDenominator=null,a.lastCameraTransform=new e.Matrix4,a.lastCameraAspect=1,a.lastCameraFov=null,a.lastCamera=null,a.lastRenderer=null,a.enabled=!1,a.listener=new se,a.basicTiles=[],a.parseTask=[],a.originModel=i,a.renderer=r,a}return te(n,t),Object.defineProperty(n.prototype,"enable",{get:function(){return this.enabled},set:function(e){this.enabled!==e&&(this.enabled=e,!1===this.enabled?this.reset():(this.timer=0,this.clock.getDelta()))},enumerable:!1,configurable:!0}),n.prototype.load=function(t){var n=this,i=t.tileset_url,r=(t.tileset_url_md5,t.b3md_mappings_url),o=(t.b3md_mappings_url_md5,{modelMatrix:(new e.Matrix4).fromArray([1,0,0,0,0,-1,0,1e9,0,0,-1,0,0,0,0,1]),maxMemoryUsage:this.options.maxMemoryUsage,maxScreenSpaceError:this.options.maxScreenSpaceError,viewDistanceScale:this.options.viewDistanceScale,throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests,maxDepth:this.options.maxDepth,contentLoader:function(e){if("SCENEGRAPH"===e.type||"MESH"===e.type)return Ri(e).then((function(t){return new Promise((function(i,r){void 0===n.tileset?Li(t):(t.visible=!1,n.nodes[e.id]=t,n.nodeGroup.add(t),n.options.onNodeCreated(t),t.updateMatrixWorld(!0)),i()}))}))},onTileLoad:function(){n.enabled&&n.tileset&&n.lastRenderer&&n.lastCamera&&(n.tileset.frameNumber++,n.tilesetUpdate(n.tileset,n.lastRenderer,n.lastCamera)),n.enabled||n.reset()},onTileUnload:function(e){n.unloadTileQueue.push(e)},onTileError:function(e,t){console.error("Tile error",e.id,t)},onTraversalComplete:function(e){return e},allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}),a=i.split("/").slice(0,-1).join("/"),s=Se(i,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return function(e,t){var n,i=e;return i.basePath=t,i.root=function(e,t){e=Si(e,t);var n=[];for(n.push(e);n.length>0;)for(var i=0,r=(n.pop()||{}).children||[];i<r.length;i++){var o=r[i];Si(o,t),n.push(o)}return e}(i.root,t),i.type="TILES3D",i.lodMetricType="geometricError",i.lodMetricValue=(null===(n=i.root)||void 0===n?void 0:n.lodMetricValue)||0,i}(JSON.parse(e.body),a)})),l=Se(r,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return JSON.parse(e.body)}));Promise.all([s,l]).then((function(t){var i=t[0],r=t[1];i.b3dmMapping=r;var a=n.tileset=new Ei(i,o),s=new e.Matrix4;if(a.root&&a.root.boundingVolume){var l=a.root.boundingVolume,u=l.halfAxes,c=l.center;s.extractRotation(function(t){var n=t.toArray();return(new e.Matrix4).fromArray([2*n[0],2*n[1],2*n[2],0,2*n[3],2*n[4],2*n[5],0,2*n[6],2*n[7],2*n[8],0,0,0,0,1])}(u)),s.setPosition(c.x,c.y,c.z)}a.modelMatrix.copy((new e.Matrix4).getInverse(s))}))},n.prototype.update=function(e,t){this.lastCamera=t,this.lastRenderer=e,!1!==this.enabled&&(this.timer+=this.clock.getDelta(),this.tileset&&this.timer>=this.options.updateInterval&&(t.matrixWorld.equals(this.lastCameraTransform)&&t.aspect===this.lastCameraAspect&&t.fov===this.lastCameraFov||(this.timer=0,this.tileset.frameNumber++,this.lastCameraTransform.copy(t.matrixWorld),this.tilesetUpdate(this.tileset,e,t))))},n.prototype.tilesetUpdate=function(t,n,i){var r,o;this.sseDenominator&&i.aspect===this.lastCameraAspect&&i.fov===this.lastCameraFov||(this.sseDenominator=function(e){var t=e.aspect,n=e.fov/180*Math.PI,i=e.aspect<=1?n:2*Math.atan(Math.tan(.5*n)/t);return 2*Math.tan(.5*i)}(i),this.lastCameraAspect=i.aspect,this.lastCameraFov=i.fov);var a,s,l,u={camera:{position:i.position.toArray(),direction:i.getDirection(new e.Vector3).toArray(),up:i.up.toArray()},height:n.getSize(new e.Vector2).height,frameNumber:t.frameNumber,sseDenominator:this.sseDenominator,cullingVolume:(a=ki(i),s=a.planes.map((function(t){return new e.Plane(t.normal,t.constant)})),new ei(s))};if(t.cache.reset(),t.traverser.traverse(t.root,u),this.basicTiles=t.tiles.filter((function(e){return 1===e.depth})),this.basicTiles.length===(null===(r=this.tileset)||void 0===r?void 0:r.root.children.length))for(var c=0,h=t.tiles;c<h.length;c++){var d=h[c],p=d.selected,f=d.id;this.nodes[f]&&this.nodes[f].visible!==p&&(this.nodes[f].visible=p,p&&(this.needsRender=!0))}for(this.basicTiles.length===(null===(o=this.tileset)||void 0===o?void 0:o.root.children.length)&&(this.originModel.visible=!1,this.needsRender=!0);l=this.unloadTileQueue.pop();)if(f=l.id,this.nodes[f]){var A=this.nodes[f];this.nodeGroup.remove(A),Li(A),delete this.nodes[f]}},n.prototype.reset=function(){if(this.tileset){this.tileset.reset();var e=void 0;for(this.basicTiles.length=0;e=this.unloadTileQueue.pop();)if("UNLOADED"!==e.contentState){var t=e.id;if(this.nodes[t]){var n=this.nodes[t];this.nodeGroup.remove(n),Li(n),delete this.nodes[t]}this.boundings[t]&&(n=this.boundings[t],this.boundingGroup.remove(n),delete this.boundings[t])}for(var i=0,r=Object.keys(this.nodes);i<r.length;i++){t=r[i];var o=this.nodes[t];this.nodeGroup.remove(o),Li(o),delete this.nodes[t]}for(var a=0,s=Object.keys(this.boundings);a<s.length;a++)t=s[a],o=this.boundings[t],this.boundingGroup.remove(o),delete this.boundings[t]}},n}(We);function Qi(e){return null==e}var Ni=function(t,n){void 0===n&&(n=1e-4),n=Math.max(n,Number.EPSILON);for(var i={},r=t.getIndex(),o=t.getAttribute("position"),a=r?r.count:o.count,s=0,l=Object.keys(t.attributes),u={},c={},h=[],d=["getX","getY","getZ","getW"],p=0,f=l.length;p<f;p++)u[b=l[p]]=[],(E=t.morphAttributes[b])&&(c[b]=new Array(E.length).fill().map((function(){return[]})));var A=Math.log10(1/n),v=Math.pow(10,A);for(p=0;p<a;p++){var m=r?r.getX(p):p,g="",y=0;for(f=l.length;y<f;y++)for(var b=l[y],x=(M=t.getAttribute(b)).itemSize,w=0;w<x;w++)g+="".concat(~~(M[d[w]](m)*v),",");if(g in i)h.push(i[g]);else{for(y=0,f=l.length;y<f;y++){b=l[y];var M=t.getAttribute(b),E=t.morphAttributes[b],C=(x=M.itemSize,u[b]),I=c[b];for(w=0;w<x;w++){var S=d[w];if(C.push(M[S](m)),E)for(var B=0,T=E.length;B<T;B++)I[B].push(E[B][S](m))}}i[g]=s,h.push(s),s++}}var P=t.clone();for(p=0,f=l.length;p<f;p++){b=l[p];var R=t.getAttribute(b),L=new R.array.constructor(u[b]);if(M=new e.BufferAttribute(L,R.itemSize,R.normalized),P.setAttribute(b,M),b in c)for(y=0;y<c[b].length;y++){var k=t.morphAttributes[b][y],O=(L=new k.array.constructor(c[b][y]),new e.BufferAttribute(L,k.itemSize,k.normalized));P.morphAttributes[b][y]=O}}return P.setIndex(h),P};function Vi(t){var n;return new((n=e.Triangle).bind.apply(n,ie([void 0],t.map((function(t){return new e.Vector3(t.x,t.y,t.z)})),!1)))}var Ui={at3d:function(e,t){for(var n=On(t.textureOptions,e.textures.length),i={},r=0,o=e.textures;r<o.length;r++){var a=o[r];i[a]=Ln(a,n,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return cn(e.body)})).then((function(e){return en((function(){for(var t,n={chunks:[],createAt:void 0,description:void 0},i=0,r=e;i<r.length;i++){var o=r[i],a=Sn.decode(o);a.chunks.length&&((t=n.chunks).push.apply(t,a.chunks),n.createAt=a.createAt,n.description=a.description)}return n}))})).then((function(r){return en((function(){return kn(r,e.textureBase,e.textures.slice(),n,i,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}))}))},pbm:function(e,t){for(var n=On(t.textureOptions,e.textures.length),i={},r=0,o=e.textures;r<o.length;r++){var a=o[r];i[a]=Ln(a,n,t.allowHosts,t.requestProxy,t.networkSubscribe)}return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return en((function(){var t=new Uint8Array(e.body);return Sn.decode(t)}))})).then((function(r){return en((function(){return kn(r,e.textureBase,e.textures.slice(),n,i,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(n){return Hn(new Uint8Array(n.body),e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))},domez:function(e,t){return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return cn(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),n=new Uint8Array(t),i=0;return e.forEach((function(e){n.set(e,i),i+=e.length})),n})).then((function(n){return Hn(n,e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))}},_i=function(t){function n(n,i){var r=t.call(this)||this;return r.empty=!0,r.name="model",r.workCode="",r.loaded=!1,r.bvhs=Object.assign([],{loaded:!1}),r.bounding=new e.Box3,r.shownFloor=null,r.floorLength=0,r.textureOptions={},r.requestProxy=n.requestProxy,r.networkSubscribe=n.networkSubscribe,r.allowHosts=n.allowHosts,r.renderOrder=-4,r.renderer=i,r}return te(n,t),Object.defineProperty(n.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasTiles",{get:function(){return void 0!==this.tiledModel},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enableTiles",{get:function(){return!!this.tiledModel&&this.tiledModel.enable},set:function(e){this.tiledModel&&(this.tiledModel.enable=e)},enumerable:!1,configurable:!0}),n.prototype.updateTexture=function(e){return this.textureOptions=e,Promise.resolve()},n.prototype.getEdges=function(t){var n;if(void 0===t&&(t=30/180*Math.PI),!this.originModel)return[];for(var i=Math.cos(t),r=[],o=0,a=this.originModel.children;o<a.length;o++){var s=a[o];if(s instanceof Ge){var l={},u=["a","b","c"],c=Ni(s.geometry),h=c.getAttribute("position").array,d=(null===(n=c.getIndex())||void 0===n?void 0:n.array)||[];c.dispose();for(var p=[],f=[],A=0,v=h.length;A<v;A+=3)p.push(new e.Vector3(h[A],h[A+1],h[A+2]));for(A=0,v=d.length;A<v;A+=3){var m=d[A],g=d[A+1],y=d[A+2],b=(new e.Vector3).crossVectors(p[g].clone().sub(p[m]),p[y].clone().sub(p[m])).normalize();f.push({a:m,b:g,c:y,normal:b})}for(A=0,v=f.length;A<v;A++)for(var x=f[A],w=0;w<3;w++){var M=x[u[w]],E=x[u[(w+1)%3]],C=[Math.min(M,E),Math.max(M,E)];void 0===l[I=C[0]+"-"+C[1]]?l[I]={index1:C[0],index2:C[1],face1:A}:l[I].face2=A}for(var I in l){var S=l[I];if(void 0===S.face2||f[S.face1].normal.dot(f[S.face2].normal)<=i){var B=p[S.index1],T=p[S.index2];r.push(new e.Line3(B,T))}}p.length=0,f.length=0}}return r},n.prototype.getEdgesBySphere=function(t,n){var i;if(void 0===n&&(n=30/180*Math.PI),!this.bvhs)return[];for(var r=Math.cos(n),o=[],a=0,s=this.bvhs;a<s.length;a++){var l={},u=["a","b","c"],c=s[a].trianglesInSphere(t.center,t.radius),h=new e.BufferGeometry;h.setAttribute("position",new e.BufferAttribute(c,3));var d=Ni(h),p=d.getAttribute("position").array,f=(null===(i=d.getIndex())||void 0===i?void 0:i.array)||[];h.dispose(),d.dispose();for(var A=[],v=[],m=0,g=p.length;m<g;m+=3)A.push(new e.Vector3(p[m],p[m+1],p[m+2]));for(m=0,g=f.length;m<g;m+=3){var y=f[m],b=f[m+1],x=f[m+2],w=(new e.Vector3).crossVectors(A[b].clone().sub(A[y]),A[x].clone().sub(A[y])).normalize();v.push({a:y,b,c:x,normal:w})}for(m=0,g=v.length;m<g;m++)for(var M=v[m],E=0;E<3;E++){var C=M[u[E]],I=M[u[(E+1)%3]],S=[Math.min(C,I),Math.max(C,I)];void 0===l[B=S[0]+"-"+S[1]]?l[B]={index1:S[0],index2:S[1],face1:m}:l[B].face2=m}for(var B in l){var T=l[B];if(void 0===T.face2||v[T.face1].normal.dot(v[T.face2].normal)<=r){var P=A[T.index1],R=A[T.index2];o.push(new e.Line3(P,R))}}A.length=0,v.length=0}return o},n.prototype.hasFloors=function(){return this.hasFloors_()},n.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof Ge&&(e[t.floorIndex]=!0)})),e.length},n.prototype.show=function(){for(var t,n,i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];var o,a=this.shownFloor,s=null!==(t=i[1])&&void 0!==t?t:.1,l=0!==i.length;this.shownFloor=o=l?i[0]:null,this.setMaterial({opacity:1,floorInfo:new e.Vector3(0,0,0)}),(null===(n=this.tiledModel)||void 0===n?void 0:n.enable)?this.b3dmShow(a,o):this.at3dShow(a,o,s)},n.prototype.at3dShow=function(e,t,n){var i;null===(i=this.originModel)||void 0===i||i.traverse((function(e){e instanceof Ge&&e.material.forEach((function(i){null===t||t===e.floorIndex?i.opacity=1*i.originOpacity:i.opacity=i.originOpacity*n}))})),e!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},n.prototype.b3dmShow=function(t,n){var i,r;if(null===(r=null===(i=this.tiledModel)||void 0===i?void 0:i.tileset)||void 0===r?void 0:r.floorInfo){if("number"==typeof n&&n>=0&&n<this.tiledModel.tileset.floorInfo.length){var o=this.tiledModel.tileset.floorInfo,a=-o[n].ground,s=o[n].height+a;this.setMaterial({opacity:1,floorInfo:new e.Vector3(a,s,0)})}else this.setMaterial({opacity:1,floorInfo:new e.Vector3(0,0,0)});t!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0}},n.prototype.intersectRaycaster=function(t,n){var i=t.ray,r=i.origin,o=i.direction;if(Qi(n))if(Qi(this.shownFloor)){var a=this.floorLength;n=[];for(var s=-1;s<a;s++)n.push(s)}else n=[this.shownFloor];var l=[],u=[];Array.isArray(n)?u.push.apply(u,n):u.push(n);for(var c=function(n){var i=h.bvhs&&h.bvhs[n];if(i){var a=new Ut(r.x,r.y,r.z),s=new Ut(o.x,o.y,o.z),u=i.intersectRay(a,s,!0).map((function(t){var n=t.intersectionPoint,i=t.triangle,o=new e.Vector3(n.x,n.y,n.z);return{point:o,face:{normal:Vi(i).getNormal(new e.Vector3)},distance:r.distanceTo(o)}}));u.length&&l.push.apply(l,u)}else if(h.originModel){var c=[];h.originModel.traverse((function(e){e instanceof Ge&&e.floorIndex===n&&c.push(e)})),(u=t.intersectObjects(c).map((function(e){return{face:e.face?{normal:e.face.normal}:void 0,point:e.point,distance:e.distance}}))).length&&l.push.apply(l,u)}},h=this,d=0,p=u;d<p.length;d++)c(p[d]);return l.filter((function(e){var n=e.distance;return n<=t.far&&n>=t.near})).sort((function(e,t){return e.distance-t.distance}))},n.prototype.buildBVH=function(){if(!this.bvhs.loaded&&this.originModel){var e=[];this.originModel.traverse((function(t){t instanceof Ge&&(e[t.floorIndex]=e[t.floorIndex]||[],e[t.floorIndex].push(t.geometry))})),this.bvhs.length=0;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=0;if(i){for(var o=0,a=i;o<a.length;o++){var s;s=(d=a[o]).index?d.index.array.length:d.attributes.position.array.length/3,r+=3*Math.floor(s/3)}for(var l=new Float32Array(3*r),u=0,c=0,h=i;c<h.length;c++){var d,p=(d=h[c]).attributes.position.array,f=d.index?d.index.array:null;if(f){for(var A=3*Math.floor(f.length/3),v=0,m=void 0,g=void 0;v<A;v++)m=3*(u+v),g=3*f[v],l[m]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}else{for(A=3*Math.floor(p.length/3/3),v=0,m=void 0,g=void 0;v<A;v++)g=3*v,l[m=3*(u+v)]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}}var y=(new Xt).create(l).splitNode(200);this.bvhs.push(y)}}this.bvhs.loaded=!0,this.emit("bvhLoaded")}},n.prototype.load=function(e,t,n){var i=this;if(void 0===t&&(t={}),void 0===n&&(n={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var r=function(e,t){if(void 0===t&&(t=[]),/^blob\:/.test(e))return"at3d";var n=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!n)return"";for(var i=0,r=String(n[1]).trim().split(".").slice(1).reverse();i<r.length;i++){var o=r[i],a=t.indexOf(o);if(a>=0)return t[a]}return""}(e.file,Object.keys(Ui)),o=Ui[r];if(!o)throw new Error("[MODEL LOAD ERROR]: file type(".concat(r,") does not support."));return this.name=e.file,this.textureOptions=t,o(e,{textureOptions:t,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe,renderer:this.renderer}).then((function(t){var r=t.createAt,o=t.description,a=t.objects,s=t.texturePromise,l=t.updateTexture;i.userData.createAt=r,i.userData.description=o,i.updateTexture=function(e){var t=this;return this.textureOptions=e,l(this.textureOptions).then((function(){t.needsRender=!0}))},i.bounding.makeEmpty();var u=i.originModel=new We;u.renderOrder=-4;for(var c=0,h=a;c<h.length;c++){var d=h[c];d.traverse((function(e){if(e instanceof Ge){var t=e.geometry;t.boundingBox||t.computeBoundingBox(),t.boundingSphere||t.computeBoundingSphere(),i.bounding.union(t.boundingBox)}})),u.add(d)}if(i.add(u),i.floorLength=i.hasFloors_(),i.empty=!1,i.loaded=!0,e.tiles&&e.tiles.tileset_url&&e.tiles.b3md_mappings_url){var p=i.tiledModel=new Di({onNodeCreated:function(e){var t=u.getMaterial();t&&(e.setMaterial(t),e.renderOrder=-4)},allowHosts:i.allowHosts,networkSubscribe:i.networkSubscribe,requestProxy:i.requestProxy,maxDepth:n.maxDepth},i.originModel,i.renderer);p.renderOrder=-4,i.add(p),p.load(e.tiles);for(var f=function(e){i.tiledModel.listener.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];i.emit.apply(i,ie([e],t,!1))}))},A=0,v=Oi;A<v.length;A++)f(v[A])}e.bvh&&i.buildBVH(),en((function(){i.emit("geometryLoaded"),s.then((function(){i.emit("materialLoaded"),i.emit("loaded")}))}))})).catch((function(e){return i.name="",i.emit("error",e),Promise.reject(e)}))},n.prototype.update=function(e,t){if(this.originModel){var n=this.originModel.visible;if(this.tiledModel&&this.tiledModel.enable&&this.tiledModel.tileset){this.tiledModel.update(e,t);var i=this.tiledModel.tileset.root;i.content&&"READY"===i.contentState&&!1!==n&&(this.setTransparent(!1),this.shownFloor&&this.show(this.shownFloor),this.originModel.visible=!1,this.originModel.needsRender=!0)}else!0!==n&&(this.originModel.visible=!0,this.originModel.needsRender=!0)}},n.prototype.dispose=function(){this.off();var e=this.originModel,t=this.tiledModel;if(t&&(t.enable=!1,t.reset()),e)for(e.disposeGeometry(),e.disposeMaterial();e.children.length;)e.remove(e.children[0]);this.bvhs.length=0,this.bvhs.loaded=!1},n}(We);Object.assign(_i.prototype,{on:se.prototype.on,once:se.prototype.once,off:se.prototype.off,emit:se.prototype.emit,hasListener:se.prototype.hasListener});var zi="Panorama";function qi(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,i,r;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(i=n;0!=i--;)if(!qi(e[i],t[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(r=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){var o=r[i];if(!qi(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function Hi(e){return"number"==typeof e}var ji=function(){return new Error("Invalid input.")},Ki=function(){return new Error("Invalid certificate.")},Gi=function(){return new Error("Invalid signature.")},Wi=function(e){return new Error("date(".concat(e.toString(),") expired."))},Xi=function(e){return new Error("host(".concat(JSON.stringify(e),") is not allowed."))};function Yi(e,t){void 0===t&&(t=!1);var n=typeof e;if("string"===n)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",r=e.length-1,o=0;o<r;o++)i+=Yi(e[o],!1)+",";return r>-1&&(i+=Yi(e[o],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return Yi(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(i="",o=0;o<s;){var l=a[o],u=Yi(e[l],!0);void 0!==u&&(o&&""!==i&&(i+=","),i+=JSON.stringify(l)+":"+u),o++}return"{"+i+"}"}switch(n){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function Zi(e){return String(Yi(e,!1))}function Ji(e){var t,n,i;if(Array.isArray(e)){var r,o,a=void 0;if(e.length<=0)return ji();for(var s=function(t){var n=Ji(e[t]);if(n instanceof Error)return{value:n};if(a){if(a!==n.issuer)return{value:Ki()}}else a=n.issuer;r?n.expire.getTime()<r.getTime()&&(r=n.expire):r=n.expire,o=o?o.filter((function(e){return-1!==n.allowHosts.indexOf(e)})):n.allowHosts},l=0;l<e.length;l++){var u=s(l);if("object"==typeof u)return u.value}return he({issuer:a,expire:r,allowHosts:o})}var c=JSON.parse(e),h="undefined"!=typeof location?location.hostname:"",d=Date.now();if("object"!=typeof c)return ji();var p=new Date("string"==typeof c.expire_at&&/^\d+$/.test(c.expire_at)?Number(c.expire_at):c.expire_at),f=Array.isArray(c.allow_hosts)?c.allow_hosts:[];if(0===h.length||pe(h)||me.filter((function(e){return fe(e,h)})).length>0){var A=String(null!==(t=c.certificate)&&void 0!==t?t:"");if(A){var v=new W;return v.readCertPEM(A),he({issuer:v.getSubjectString(),expire:p,allowHosts:f})}return he({issuer:"none",expire:p,allowHosts:f})}var m=String(null!==(n=c.certificate)&&void 0!==n?n:"");if(!m)return Ki();var g=new W;g.readCertPEM(m);var y=String(null!==(i=c._signature)&&void 0!==i?i:"");if(!y)return Gi();var b=Zi(function(e,t){for(var n={},i=0,r=Object.keys(e);i<r.length;i++){var o=r[i];-1===t.indexOf(o)&&(n[o]=e[o])}return n}(c,["_signature"]));return!1===function(e,t,n){var i=new W;if("string"==typeof n?i.readCertPEM(n):i.readCertHex(n.hex),!1===$(i))return!1;var r=new k;return r.readCertPubKeyHex(i.hex,6),!!r.verify(e,P(t))}(b,y,g)?Gi():d<p.getTime()?0===f.filter((function(e){return fe(e,h)})).length?Xi(h):he({issuer:g.getSubjectString(),expire:p,allowHosts:f}):Wi(p)}var $i=new WeakMap,er=function(){function t(){this.name="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={mode:zi,latitude:0,longitude:0,panoIndex:0,fov:80},this.observers=[],this.boundingBox=new e.Box3,this.issuer="none",this.raw={works:[""],options:""}}return t.prototype.toJSON=function(){return this.raw.works},t.parse=rr,t}();function tr(e){return null==e?"null":Array.isArray(e)?"array":"object"==typeof e?"dict":"value"}function nr(e,t){var n=tr(e),i=tr(t);if("null"===i)return e;if("value"===i)return t;if(i!==n)return JSON.parse(JSON.stringify(t));if("array"===i)for(var r=0;r<t.length;r++)e[r]=nr(e[r],t[r]);else if("dict"===i)for(var o in t)e[o]=nr(e[o],t[o]);return e}function ir(t,n,i){for(var r,o=JSON.stringify(n),a=[],s=0,l=[].concat(t);s<l.length;s++){var u=l[s];u instanceof er?a.push.apply(a,u.raw.works):"string"==typeof u?a.push(u):a.push(JSON.stringify(u))}var c=Ji(a);if(c instanceof Error)return c;n=JSON.parse(o),t=a.map((function(e){return JSON.parse(e)})).reduce((function(e,t){return nr(e,t)}));var h=new er;if(c instanceof Error)return c;h.issuer=c.issuer,h.expire=c.expire,h.allowHosts=c.allowHosts,h.raw={works:a,options:o};var d=null!==(r=t.base_url)&&void 0!==r?r:"";d&&"/"!==d[d.length-1]&&(d+="/");var p=function(e,t){return 0===e.indexOf(t)},f=function(e,t){var r,o=e;if(!0===n.jsonp){o=e.replace(/([\?\#].*)?$/i,"");var a=X("".concat(o)).slice(0,7);o="".concat(o,".").concat(a,".jsonp")}if(!0===n.shortPath){var s=o.replace(d,"").split("."),l=null!==(r=s.shift())&&void 0!==r?r:"",u=s.join(".");o=wn(d,X(l))+(u?"."+u:"")}var c=o.replace(d,"");return n.baseURL&&(o=wn(n.baseURL,c)),i&&i(e,o,c,t),o},A=function(e,n){var i,r,o,a,s,l,u=e;if(!Fn(e)){var c=null!==(l=null!==(a=null!==(r=null===(i=t.panorama)||void 0===i?void 0:i.pano_high_cube_base_url)&&void 0!==r?r:null===(o=t.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==a?a:null===(s=t.panorama)||void 0===s?void 0:s.base_url)&&void 0!==l?l:"";c&&(c=wn(c,String(n))),u=wn(c,u)}return Fn(u)||(u=wn(d,u)),p(u,d)||console.warn("".concat(u," is not start with base_url(").concat(d,").")),f(u,"panorama")},v=function(e){var t=e;return Fn(t)||(t=wn(d,e)),p(t,d)||console.warn("".concat(t," is not start with base_url(").concat(d,").")),f(t,"model")},m=function(e,t){void 0===t&&(t="");var n=e;return Fn(n)||(n=wn(t,n)),Fn(n)||(n=wn(d,n)),p(n,d)||console.warn("".concat(n," is not start with base_url(").concat(d,").")),f(n,"texture")};if(c instanceof Error)return c;if(h.workCode=String(t.work_code||t.code||t.vr_code||t.workCode),h.name=String(t.name),c instanceof Error)return c;if(t.model){var g={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof n.modelBvh?g.bvh=n.modelBvh:"boolean"==typeof t.model.bvh?g.bvh=t.model.bvh:"boolean"==typeof t.bvh&&(g.bvh=t.bvh),t.model.file?g.file=v(t.model.file):t.model.file_url&&(g.file=v(t.model.file_url)),t.model.textureBase?g.textureBase=m("",t.model.textureBase):t.model.material_base_url?g.textureBase=m("",t.model.material_base_url):g.file&&(g.textureBase=g.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Array.isArray(t.model.textures)?g.textures=t.model.textures.map((function(e){var n,i;return m(e,null!==(i=null!==(n=t.model.textureBase)&&void 0!==n?n:t.model.material_base_url)&&void 0!==i?i:"")})):Array.isArray(t.model.material_textures)&&(g.textures=t.model.material_textures.map((function(e){var n,i;return m(e,null!==(i=null!==(n=t.model.textureBase)&&void 0!==n?n:t.model.material_base_url)&&void 0!==i?i:"")}))),t.model.tiles&&(g.tiles=t.model.tiles),g.file&&(h.model=g)}if(c instanceof Error)return c;if(t.observers&&Array.isArray(t.observers)){var y=[];t.panorama&&(Array.isArray(t.panorama)?y=t.panorama:Array.isArray(t.panorama.list)?y=t.panorama.list:Array.isArray(t.panorama.info)&&(y=t.panorama.info));for(var b=0;b<t.observers.length;b++){var x={},w=t.observers[b];if(!w)break;var M=y[b];if(!M)break;w=Object.assign({},w,M,{active:!1!==w.active&&!1!==M.active}),x.panoIndex=b,x.active=!1!==w.active,x.loadable=!0===w.loadable,x.derivedId=w.derived_id,x.images={up:A(w.images?w.images.up:w.up,b),down:A(w.images?w.images.down:w.down,b),right:A(w.images?w.images.right:w.right,b),left:A(w.images?w.images.left:w.left,b),front:A(w.images?w.images.front:w.front,b),back:A(w.images?w.images.back:w.back,b)};var E=w.images?w.images.depth:w.depth;E&&(x.images.depth=A(E,b));var C=w.images?w.images.luminance:w.luminance;C&&(x.images.luminance={up:A(C.up,b),down:A(C.down,b),right:A(C.right,b),left:A(C.left,b),front:A(C.front,b),back:A(C.back,b)});var I=w.images?w.images.tiles:w.tiles;if(I){for(var S=[],B=function(e){var t,n=e.match(/\/cube_(\d+)\//);if(n){var i=Number(n[1]);if(0==((t=i)&t-1)&&0!==t)return i}return!1},T=function(e,t){return e.replace(/\/cube_(\d+)\//,(function(){return"/cube_".concat(t,"/")}))},P=0,R=I;P<R.length;P++){var L=R[P];if("number"==typeof L){var k=L,O=B(x.images.front);if(!1===O)continue;if((_=Math.max(O,512*Math.pow(2,k)))>2048){var F=T(x.images.up,_),D=T(x.images.down,_),Q=T(x.images.right,_),N=T(x.images.left,_),V=T(x.images.front,_),U=T(x.images.back,_);S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}else F=x.images.up,D=x.images.down,Q=x.images.right,N=x.images.left,V=x.images.front,U=x.images.back,S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}else{var _;if("number"!=typeof(k=L.level))continue;if("number"!=typeof(_=L.size))continue;F=A(L.up,b),D=A(L.down,b),Q=A(L.right,b),N=A(L.left,b),V=A(L.front,b),U=A(L.back,b),S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}}S.sort((function(e,t){return e.level-t.level})),x.images.tiles=S}if(w.position instanceof e.Vector3)x.position=w.position.clone();else{if(!Array.isArray(w.position))break;x.position=(new e.Vector3).fromArray(w.position)}if(w.standingPosition instanceof e.Vector3)x.standingPosition=w.standingPosition.clone();else if(Array.isArray(w.standingPosition))x.standingPosition=(new e.Vector3).fromArray(w.standingPosition);else if(w.standing_position instanceof e.Vector3)x.standingPosition=w.standing_position.clone();else{if(!Array.isArray(w.standing_position))break;x.standingPosition=(new e.Vector3).fromArray(w.standing_position)}if(w.quaternion instanceof e.Quaternion)x.quaternion=w.quaternion.clone();else if(Array.isArray(w.quaternion))x.quaternion=(new e.Quaternion).fromArray(w.quaternion);else{if(!w.quaternion)break;var z=w.quaternion,q=z.x,H=z.y,j=z.z,K=z.w;x.quaternion=new e.Quaternion(q,H,j,K)}if(Array.isArray(w.accessibleNodes)?x.accessibleNodes=w.accessibleNodes.slice():Array.isArray(w.accessible_nodes)&&(x.accessibleNodes=w.accessible_nodes.slice()),Array.isArray(w.visibleNodes)?x.visibleNodes=w.visibleNodes.slice():Array.isArray(w.visible_nodes)&&(x.visibleNodes=w.visible_nodes.slice()),Hi(w.floorIndex)?x.floorIndex=w.floorIndex:Hi(w.floor_index)?x.floorIndex=w.floor_index:x.floorIndex=0,w.video){var G={};"string"==typeof w.video.source&&(G.source=w.video.source),w.video.matrix instanceof e.Matrix4?G.matrix=w.video.matrix.clone():Array.isArray(w.video.matrix)&&(G.matrix=(new e.Matrix4).fromArray(w.video.matrix)),w.video.size instanceof e.Vector2?G.size=w.video.size.clone():Array.isArray(w.video.size)&&(G.size=(new e.Vector2).fromArray(w.video.size)),G.source&&G.matrix&&G.size&&(x.video=G)}h.observers[b]=x}}if(c instanceof Error)return c;for(var W=0,Y=h.observers;W<Y.length;W++){if((x=Y[W]).accessibleNodes)x.accessibleNodes=x.accessibleNodes.filter((function(e){return e<h.observers.length}));else{x.accessibleNodes=[];for(var Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.accessibleNodes.push(Z)}if(x.visibleNodes)x.visibleNodes=x.visibleNodes.filter((function(e){return e<h.observers.length}));else for(x.visibleNodes=[],Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.visibleNodes.push(Z)}if(c instanceof Error)return c;if(t.initial)if("Floorplan"!==t.initial.mode&&"Topview"!==t.initial.mode&&"Panorama"!==t.initial.mode&&"VRPanorama"!==t.initial.mode&&"Model"!==t.initial.mode&&"DepthPanorama"!==t.initial.mode||(h.initial.mode=t.initial.mode),Hi(t.initial.latitude)&&(h.initial.latitude=t.initial.latitude),Hi(t.initial.longitude)?h.initial.longitude=t.initial.longitude:Hi(t.initial.heading)&&(h.initial.longitude=-(360*(t.initial.heading-.25)+90)/180*Math.PI),Hi(t.initial.fov)&&(h.initial.fov=t.initial.fov),Hi(t.initial.panoIndex)){var J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=Gt(t.initial.panoIndex,0,J)}else Hi(t.initial.pano_index)?(J=h.observers.length>0?h.observers.length-1:0,h.initial.panoIndex=Gt(t.initial.pano_index,0,J)):Hi(t.initial.pano)&&(J=h.observers.length>0?h.observers.length-1:0,h.initial.panoIndex=Gt(t.initial.pano,0,J));if(c instanceof Error)return c;h.boundingBox.makeEmpty();for(var $=0,ee=h.observers;$<ee.length;$++)x=ee[$],h.boundingBox.expandByPoint(x.standingPosition),h.boundingBox.expandByPoint((new e.Vector3).fromArray([x.position.x,2*x.position.y-x.standingPosition.y,x.position.z]));if(c instanceof Error)return c;var te=he(h);return $i.set(te,{works:a,options:o}),te}function rr(e,t,n){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var i=$i.get(e);if(i){if(t&&!qi(JSON.parse(i.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var r=ir(e,null!=t?t:{},n);if(r instanceof Error)throw new Error("[PARSE FAILED]: "+r.message+"\nError work input:\n"+JSON.stringify(e));return r}function or(e,t,n){return e+(t-e)*n}function ar(e,t){var n=t[1]-t[0];return e<t[0]?ar(e+n,t):e>=t[1]?ar(e-n,t):e}function sr(e,t,n,i){return i?function(e,t,n,i){var r=i[1]-i[0];return e=ar(e,i),or((t=ar(t,i))-e>r/2?e+r:e-t>r/2?e-r:e,t,n)}(e,t,n,i):or(e,t,n)}var lr=function(){function e(e){for(var t in this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=ce(),this.startVelocity=0,this.duration=0,this.keyframes=[],e){var n=e[t];"number"==typeof n?(this.value[t]=n,this.config[t]={circle:!1}):(this.value[t]=n.value,this.config[t]={circle:n.circle})}this.keyframes=[{progress:0,value:ne({},this.value)},{progress:1,value:ne({},this.value)}]}return e.prototype.getProgress=function(e){var t=e-this.startTime;return t<0?0:t>=this.duration?1:1-function(e,t,n,i){var r=(t*n+2)/Math.pow(n,3),o=-(2*t*n+3)/Math.pow(n,2),a=t;return r*Math.pow(i,3)+o*Math.pow(i,2)+a*i+1}(0,this.startVelocity,this.duration,t)},e.prototype.getValue=function(e){for(var t=1;t<this.keyframes.length;t++)if(this.keyframes[t].progress>e){var n=this.keyframes[t-1],i=this.keyframes[t],r={};for(var o in this.config){var a=(e-n.progress)/(i.progress-n.progress);r[o]=sr(n.value[o],i.value[o],a,this.config[o].circle)}return r}return ne({},this.keyframes[this.keyframes.length-1].value)},e.prototype.getProgressVelocity=function(e){var t=e-this.startTime;return t>=this.duration?0:function(e,t,n,i){var r=(t*n+2)/Math.pow(n,3),o=-(2*t*n+3)/Math.pow(n,2),a=t;return 3*r*Math.pow(i,2)+2*o*i+a}(0,this.startVelocity,this.duration,t)},e.prototype.update=function(e){return!!this.ended||(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(e))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},e.prototype.getKeyFrameSegment=function(e){for(var t=this.getProgress(e),n=1;n<this.keyframes.length;n++)if(this.keyframes[n].progress>t)return[this.keyframes[n-1],this.keyframes[n]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},e.prototype.getTargetKeyframe=function(){return this.keyframes[this.keyframes.length-1]},e.prototype.set=function(e,t,n,i){var r;void 0===n&&(n=0),isNaN(t)&&(t=0),isNaN(n)&&(n=0),i=null!=i?i:ce();var o=this.getProgress(i),a=this.getValue(o),s={};for(var l in this.config)s[l]=null!==(r=e[l])&&void 0!==r?r:a[l];var u=[{progress:0,value:a},{progress:1,value:s}];return this.setKeyframes(u,t,n,i)},e.prototype.setKeyframes=function(e,t,n,i){var r=this;if(void 0===n&&(n=0),e.length<2)throw new Error("keyframes invalid.");return isNaN(t)&&(t=0),isNaN(n)&&(n=0),this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise((function(o,a){i=null!=i?i:ce(),r.progress=0,r.ended=!1,r.startTime=i,r.startVelocity=n,r.keyframes=e,r.duration=t,0===t?(r.progress=1,r.value=ne({},e[e.length-1].value)):r.value=ne({},e[0].value),r.callbacks=[o,a]}))},e.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},e}(),ur=function(e){return e*(2-e)},cr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),hr=function(t){function n(n){void 0===n&&(n={});var i,r,o=this;o=t.call(this)||this;var a=null!==(i=n.color)&&void 0!==i?i:16777215,s=null!==(r=n.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new lr({progress:0}),o.ringMotion=new lr({scale:1,opacity:1}),o.tapMotion=new lr({scale:1,opacity:1}),o.loadingOpacityMotion=new lr({opacity:0}),o.progressMotion=new lr({progress:0}),o.progressOpacityMotion=new lr({opacity:0}),o.opacityMotion=new lr({opacity:0}),o.disableMotion=new lr({progress:0}),o.panoMesh=new e.Mesh(cr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float ringScale;\nuniform float ringOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.8 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 1.5, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * inside(0.15 * circleScale * tapScale) * outside(0.234 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_ring() {\n float gradient = clamp(0.5 + abs(dot(normalize(vec2(1.0, 1.0)), vUv - CENTER)), 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * ringOpacity * inside(0.27 * ringScale * tapScale) * outside(0.32 * ringScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.4 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.5;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 ringColor = create_ring();\n gl_FragColor = mix(gl_FragColor, ringColor, ringColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new e.Color(a)},circleScale:{value:1},ringScale:{value:1},ringOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=ur(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;l%5<2&&(s=l%1,this.panoMesh.material.uniforms.expand1.value=ur(s)*this.currentMotion.value.progress,this.needsRender=!0)}if(this.currentMotion.value.progress>.2&&0===this.progress&&!1===this.loading&&(e-this.currentStartTime-1e3)/2e3%5<2?.8!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:.8,opacity:0},600).catch(le):1!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:1,opacity:1},600).catch(le),!this.ringMotion.ended){var u=this.ringMotion.value;o=u.scale,i=u.opacity,this.ringMotion.update(e),this.panoMesh.material.uniforms.ringScale.value=o,this.panoMesh.material.uniforms.ringOpacity.value=i,this.needsRender=!0}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.ringMotion.dispose(),this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),dr=function(e){return e*(2-e)},pr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),fr=function(t){function n(n){void 0===n&&(n={});var i,r,o=this;o=t.call(this)||this;var a=null!==(i=n.color)&&void 0!==i?i:16777215,s=null!==(r=n.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new lr({progress:0}),o.tapMotion=new lr({scale:1,opacity:1}),o.loadingOpacityMotion=new lr({opacity:0}),o.progressMotion=new lr({progress:0}),o.progressOpacityMotion=new lr({opacity:0}),o.opacityMotion=new lr({opacity:0}),o.disableMotion=new lr({progress:0}),o.panoMesh=new e.Mesh(pr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.8 * circleOpacity * tapOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new e.Color(a)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=dr(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;l%5<2&&(s=l%1,this.panoMesh.material.uniforms.expand1.value=dr(s)*this.currentMotion.value.progress,this.needsRender=!0)}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),Ar=function(e){return e*(2-e)},vr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),mr=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c=this;c=t.call(this)||this;var h=null!==(i=n.color)&&void 0!==i?i:16777215,d=null!==(r=n.scale)&&void 0!==r?r:1,p=n.map,f=null!==(o=n.mapAlpha)&&void 0!==o?o:1,A=null!==(a=n.mapUseColor)&&void 0!==a&&a,v=null!==(s=n.mapUseReverse)&&void 0!==s&&s,m=null!==(l=n.borderWidth)&&void 0!==l?l:.1,g=null!==(u=n.borderColor)&&void 0!==u?u:16777215;return c.progress=0,c.opacity=0,c.loading=!1,c.current=!1,c.disabled=!1,c.currentMotion=new lr({progress:0}),c.tapMotion=new lr({scale:1,opacity:1}),c.loadingOpacityMotion=new lr({opacity:0}),c.progressMotion=new lr({progress:0}),c.progressOpacityMotion=new lr({opacity:0}),c.opacityMotion=new lr({opacity:0}),c.disableMotion=new lr({progress:0}),c.panoMesh=new e.Mesh(vr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_MAP)\nuniform sampler2D map;\nuniform float mapAlpha;\n#endif\n#if defined(USE_BORDER)\nuniform float borderWidth;\nuniform vec3 borderColor;\n#endif\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float radius = 0.3 * circleScale * tapScale;\n #if defined(USE_MAP)\n float delta = radius / 0.5;\n vec2 deltaUv = (vUv - CENTER) / delta + CENTER;\n vec4 image = texture2D(map, deltaUv);\n image.a = image.a * mapAlpha;\n #if defined(USE_COLOR)\n image = vec4(baseColor, 1.0) * image;\n #endif\n #endif\n #if defined(USE_REVERSE)\n image = vec4(baseColor, 1.0 - image.a);\n #else\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n float clipAlpha = inside(radius - borderDist * radius);\n float gradient = clamp(borderWidth * 2.0 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)), 0.0, 1.0);\n vec4 borderColor = vec4(borderColor, clipAlpha * gradient);\n image = mix(borderColor, image, image.a);\n #endif\n #endif\n return vec4(image.rgb, image.a * circleOpacity * tapOpacity * outside(radius));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(baseColor, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, gradient * tapOpacity * loadingOpacity * inner * outside(radius));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, bar * tapOpacity * progressOpacity * inner * outside(radius));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(baseColor, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",defines:{USE_COLOR:A,USE_MAP:void 0!==p,USE_BORDER:m>0,USE_REVERSE:v},uniforms:{baseColor:{value:new e.Color(h)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0},map:{value:p},mapAlpha:{value:f},borderWidth:{value:m},borderColor:{value:new e.Color(g)}}})),c.renderOrder=-2,c.panoMesh.renderOrder=-2,c.panoMesh.position.y=.004,c.panoMesh.scale.set(d,1,d),c.add(c.panoMesh),c.currentStartTime=ce(),c.needsRender=!0,c}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=r%1;this.panoMesh.material.uniforms.expand0.value=Ar(o)*this.currentMotion.value.progress,this.needsRender=!0}var a=(e-this.currentStartTime-1e3)/2e3;a%5<2&&(o=a%1,this.panoMesh.material.uniforms.expand1.value=Ar(o)*this.currentMotion.value.progress,this.needsRender=!0)}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),gr=new e.CircleBufferGeometry(.1,16),yr=new e.ShaderMaterial({vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * outside * inside);\n}\n",transparent:!0}),br=function(t){function n(){var n=t.call(this)||this;return n.ringMesh=new e.Mesh(gr,yr),n.ringMesh.renderOrder=-2,n.add(n.ringMesh),n}return te(n,t),n.prototype.dispose=function(){this.remove(this.ringMesh)},n}(e.Object3D);function xr(e,t,n){var i=Math.abs(e-t);return i<.001||void 0!==n&&Math.abs(n-i)<.001}function wr(e,t,n){return!xr(e,t,n)}function Mr(e,t){return e.distanceTo(t)<.001}function Er(e,t){return!Mr(e,t)}var Cr=new e.Vector3(0,0,0),Ir=function(t){function n(n,i){void 0===i&&(i=Cr);var r=t.call(this)||this,o=new e.BoxBufferGeometry(n.max.x-n.min.x+2*i.x,n.max.y-n.min.y+2*i.y,n.max.z-n.min.z+2*i.z,1,1);o.groups.length=0,o.groups.push({start:0,count:36,materialIndex:0}),o.applyMatrix4((new e.Matrix4).makeScale(-1,1,1)),o.computeVertexNormals();var a=new Bt;a.defines.USE_MAP=!1,a.defines.USE_UV=!1,a.defines.USE_PANO_OPACITY=!0,a.uniforms.diffuse.value=new e.Color(10066329),a.depthWrite=!1;var s=new Ge(o,[a]);return s.floorIndex=-1,s.position.copy(n.getCenter(new e.Vector3)),s.frustumCulled=!1,r.renderOrder=-4,r.add(s),r.boundingBox=new e.Box3,r.boundingBox.setFromObject(r),r}return te(n,t),n.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},n}(Xe);function Sr(e,t){return void 0===t&&(t=Cr),new Ir(e,t)}var Br=2*Math.PI;function Tr(e){return e>=0&&e<Br?e:(e%Br+Br)%Br}var Pr=Math.PI,Rr=2*Pr;function Lr(e,t,n){if(e===t)return t;var i=t-e;return Math.abs(i)<=n?t:e+(i>0?1:-1)*n}function kr(e,t,n){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var i=Tr(e.longitude),r=e.latitude,o=Tr(t.longitude),a=t.latitude;o-i>Pr?i+=Rr:i-o>Pr&&(i-=Rr);var s=n/Math.sqrt(Math.pow(o-i,2)+Math.pow(a-r,2));return s>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:i+(o-i)*s,latitude:r+(a-r)*s}}(function(){try{var e=document.createElement("canvas");return!(!window.WebGLRenderingContext||!e.getContext("webgl")&&!e.getContext("experimental-webgl"))}catch(e){return!1}})(),"undefined"!=typeof history&&"pushState"in history&&"replaceState"in history&&history;var Or=function(){var e="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node";return/android/i.test(e)||/webos/i.test(e)||/ipad|iphone|ipod/i.test(e)||/iemobile/i.test(e)||/opera mini/i.test(e)||/blackberry/i.test(e)||/windows phone/i.test(e)};function Fr(e,t){e.mode=t.mode,e.panoIndex=t.panoIndex,e.longitude=t.longitude,e.latitude=t.latitude,e.fov=t.fov,e.offset.copy(t.offset),e.distance=t.distance}function Dr(e,t){return e.panoIndex===t.panoIndex&&e.mode===t.mode&&xr(e.longitude,t.longitude,2*Math.PI)&&xr(e.latitude,t.latitude)&&xr(e.fov,t.fov)&&Mr(e.offset,t.offset)&&xr(e.distance,t.distance)}var Qr=function(e){return Number(e)};function Nr(e,t,n){var i;void 0===t&&(t=Qr),void 0===n&&(n=!1);for(var r,o=1/0,a=0,s=e;a<s.length;a++){var l=s[a],u=t(l);u<=o&&(r=(i=[l,u])[0],o=i[1])}return isFinite(o)||(o=0),n?[r,o]:r}function Vr(e){for(var t in e)return!1;return!0}function Ur(e){return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset.clone(),distance:e.distance}}var _r=function(e,t,n,i){var r,o=["","webkit","Moz","MS","ms","o"],a=t.createElement?t.createElement("div"):i,s="function",l=Math.round,u=Math.abs,c=Date.now;function h(e,t,n){return setTimeout(g(e,n),t)}function d(e,t,n){return!!Array.isArray(e)&&(p(e,n[t],n),!0)}function p(e,t,n){var r;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==i)for(r=0;r<e.length;)t.call(n,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e)}function f(t,n,i){var r="DEPRECATED METHOD: "+n+"\n"+i+" AT \n";return function(){var n=new Error("get-stack-trace"),i=n&&n.stack?n.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,i),t.apply(this,arguments)}}r="function"!=typeof Object.assign?function(e){if(e===i||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(r!==i&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var A=f((function(e,t,n){for(var r=Object.keys(t),o=0;o<r.length;)(!n||n&&e[r[o]]===i)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),v=f((function(e,t){return A(e,t,!0)}),"merge","Use `assign`.");function m(e,t,n){var i,o=t.prototype;(i=e.prototype=Object.create(o)).constructor=e,i._super=o,n&&r(i,n)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return typeof e==s?e.apply(t&&t[0]||i,t):e}function b(e,t){return e===i?t:e}function x(e,t,n){p(C(t),(function(t){e.addEventListener(t,n,!1)}))}function w(e,t,n){p(C(t),(function(t){e.removeEventListener(t,n,!1)}))}function M(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function E(e,t){return e.indexOf(t)>-1}function C(e){return e.trim().split(/\s+/g)}function I(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var i=0;i<e.length;){if(n&&e[i][n]==t||!n&&e[i]===t)return i;i++}return-1}function S(e){return Array.prototype.slice.call(e,0)}function B(e,t,n){for(var i=[],r=[],o=0;o<e.length;){var a=t?e[o][t]:e[o];I(r,a)<0&&i.push(e[o]),r[o]=a,o++}return n&&(i=t?i.sort((function(e,n){return e[t]>n[t]})):i.sort()),i}function T(e,t){for(var n,r,a=t[0].toUpperCase()+t.slice(1),s=0;s<o.length;){if((r=(n=o[s])?n+a:t)in e)return r;s++}return i}var P=1;function R(t){var n=t.ownerDocument||t;return n.defaultView||n.parentWindow||e}var L="ontouchstart"in e,k=T(e,"PointerEvent")!==i,O=L&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),F="touch",D="mouse",Q=25,N=1,V=2,U=4,_=8,z=1,q=2,H=4,j=8,K=16,G=q|H,W=j|K,X=G|W,Y=["x","y"],Z=["clientX","clientY"];function J(e,t){var n=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&n.handler(t)},this.init()}function $(e,t,n){var r=n.pointers.length,o=n.changedPointers.length,a=t&N&&r-o==0,s=t&(U|_)&&r-o==0;n.isFirst=!!a,n.isFinal=!!s,a&&(e.session={}),n.eventType=t,function(e,t){var n=e.session,r=t.pointers,o=r.length;n.firstInput||(n.firstInput=ee(t)),o>1&&!n.firstMultiple?n.firstMultiple=ee(t):1===o&&(n.firstMultiple=!1);var a=n.firstInput,s=n.firstMultiple,l=s?s.center:a.center,h=t.center=te(r);t.timeStamp=c(),t.deltaTime=t.timeStamp-a.timeStamp,t.angle=oe(l,h),t.distance=re(l,h),function(e,t){var n=t.center,i=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};t.eventType!==N&&o.eventType!==U||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=e.offsetDelta={x:n.x,y:n.y}),t.deltaX=r.x+(n.x-i.x),t.deltaY=r.y+(n.y-i.y)}(n,t),t.offsetDirection=ie(t.deltaX,t.deltaY);var d=ne(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=s?function(e,t){return re(t[0],t[1],Z)/re(e[0],e[1],Z)}(s.pointers,r):1,t.rotation=s?function(e,t){return oe(t[1],t[0],Z)+oe(e[1],e[0],Z)}(s.pointers,r):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,r,o,a,s=e.lastInterval||t,l=t.timeStamp-s.timeStamp;if(t.eventType!=_&&(l>Q||s.velocity===i)){var c=t.deltaX-s.deltaX,h=t.deltaY-s.deltaY,d=ne(l,c,h);r=d.x,o=d.y,n=u(d.x)>u(d.y)?d.x:d.y,a=ie(c,h),e.lastInterval=t}else n=s.velocity,r=s.velocityX,o=s.velocityY,a=s.direction;t.velocity=n,t.velocityX=r,t.velocityY=o,t.direction=a}(n,t);var p=e.element;M(t.srcEvent.target,p)&&(p=t.srcEvent.target),t.target=p}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function ee(e){for(var t=[],n=0;n<e.pointers.length;)t[n]={clientX:l(e.pointers[n].clientX),clientY:l(e.pointers[n].clientY)},n++;return{timeStamp:c(),pointers:t,center:te(t),deltaX:e.deltaX,deltaY:e.deltaY}}function te(e){var t=e.length;if(1===t)return{x:l(e[0].clientX),y:l(e[0].clientY)};for(var n=0,i=0,r=0;r<t;)n+=e[r].clientX,i+=e[r].clientY,r++;return{x:l(n/t),y:l(i/t)}}function ne(e,t,n){return{x:t/e||0,y:n/e||0}}function ie(e,t){return e===t?z:u(e)>=u(t)?e<0?q:H:t<0?j:K}function re(e,t,n){n||(n=Y);var i=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return Math.sqrt(i*i+r*r)}function oe(e,t,n){n||(n=Y);var i=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return 180*Math.atan2(r,i)/Math.PI}J.prototype={handler:function(){},init:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(R(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&w(this.element,this.evEl,this.domHandler),this.evTarget&&w(this.target,this.evTarget,this.domHandler),this.evWin&&w(R(this.element),this.evWin,this.domHandler)}};var ae={mousedown:N,mousemove:V,mouseup:U},se="mousedown",le="mousemove mouseup";function ue(){this.evEl=se,this.evWin=le,this.pressed=!1,J.apply(this,arguments)}m(ue,J,{handler:function(e){var t=ae[e.type];t&N&&(0===e.button||2===e.button)&&(this.pressed=!0),t&V&&1!==e.which&&(t=U),this.pressed&&(t&U&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:D,srcEvent:e}))}});var ce={pointerdown:N,pointermove:V,pointerup:U,pointercancel:_,pointerout:_},he={2:F,3:"pen",4:D,5:"kinect"},de="pointerdown",pe="pointermove pointerup pointercancel";function fe(){this.evEl=de,this.evWin=pe,J.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(de="MSPointerDown",pe="MSPointerMove MSPointerUp MSPointerCancel"),m(fe,J,{handler:function(e){var t=this.store,n=!1,i=!1,r=e.type.toLowerCase().replace("ms",""),o=ce[r],a=he[e.pointerType]||e.pointerType,s=a==F,l=I(t,e.pointerId,"pointerId");o&N&&(0===e.button||2===e.button||s)?l<0&&(t.push(e),l=t.length-1):o&(U|_)?n=!0:s||0!==e.buttons||(n=!0,i=!0,o=ce.pointerup),l<0||(i||(t[l]=e),this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:a,srcEvent:t[l]}),n&&t.splice(l,1))}});var Ae={touchstart:N,touchmove:V,touchend:U,touchcancel:_};function ve(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,J.apply(this,arguments)}function me(e,t){var n=S(e.touches),i=S(e.changedTouches);return t&(U|_)&&(n=B(n.concat(i),"identifier",!0)),[n,i]}m(ve,J,{handler:function(e){var t=Ae[e.type];if(t===N&&(this.started=!0),this.started){var n=me.call(this,e,t);t&(U|_)&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:F,srcEvent:e})}}});var ge={touchstart:N,touchmove:V,touchend:U,touchcancel:_},ye="touchstart touchmove touchend touchcancel";function be(){this.evTarget=ye,this.targetIds={},J.apply(this,arguments)}function xe(e,t){var n=S(e.touches),i=this.targetIds;if(t&(N|V)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,a=S(e.changedTouches),s=[],l=this.target;if(o=n.filter((function(e){return M(e.target,l)})),t===N)for(r=0;r<o.length;)i[o[r].identifier]=!0,r++;for(r=0;r<a.length;)i[a[r].identifier]&&s.push(a[r]),t&(U|_)&&delete i[a[r].identifier],r++;return s.length?[B(o.concat(s),"identifier",!0),s]:void 0}m(be,J,{handler:function(e){var t=ge[e.type],n=xe.call(this,e,t);n&&this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:F,srcEvent:e})}});var we=2500;function Me(){J.apply(this,arguments);var e=g(this.handler,this);this.touch=new be(this.manager,e),this.mouse=new ue(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function Ee(e,t){e&N?(this.primaryTouch=t.changedPointers[0].identifier,Ce.call(this,t)):e&(U|_)&&Ce.call(this,t)}function Ce(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var n={x:t.clientX,y:t.clientY};this.lastTouches.push(n);var i=this.lastTouches;setTimeout((function(){var e=i.indexOf(n);e>-1&&i.splice(e,1)}),we)}}function Ie(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var r=this.lastTouches[i],o=Math.abs(t-r.x),a=Math.abs(n-r.y);if(o<=25&&a<=25)return!0}return!1}m(Me,J,{handler:function(e,t,n){var i=n.pointerType==F,r=n.pointerType==D;if(!(r&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(i)Ee.call(this,t,n);else if(r&&Ie.call(this,n))return;this.callback(e,t,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Se=a?T(a.style,"touchAction"):i,Be=Se!==i,Te="compute",Pe="auto",Re="manipulation",Le="none",ke="pan-x",Oe="pan-y",Fe=function(){if(!Be)return!1;var t={},n=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(i){t[i]=!n||e.CSS.supports("touch-action",i)})),t}();function De(e,t){this.manager=e,this.set(t)}De.prototype={set:function(e){e==Te&&(e=this.compute()),Be&&this.manager.element.style&&Fe[e]&&(this.manager.element.style[Se]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return p(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(E(e,Le))return Le;var t=E(e,ke),n=E(e,Oe);return t&&n?Le:t||n?t?ke:Oe:E(e,Re)?Re:Pe}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,n=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var i=this.actions,r=E(i,Le)&&!Fe[Le],o=E(i,Oe)&&!Fe[Oe],a=E(i,ke)&&!Fe[ke];if(r){var s=1===e.pointers.length,l=e.distance<2,u=e.deltaTime<250;if(s&&l&&u)return}if(!a||!o)return r||o&&n&G||a&&n&W?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Qe=1,Ne=2,Ve=4,Ue=8,_e=Ue,ze=16,qe=32;function He(e){this.options=r({},this.defaults,e||{}),this.id=P++,this.manager=null,this.options.enable=b(this.options.enable,!0),this.state=Qe,this.simultaneous={},this.requireFail=[]}function je(e){return e&ze?"cancel":e&Ue?"end":e&Ve?"move":e&Ne?"start":""}function Ke(e){return e==K?"down":e==j?"up":e==q?"left":e==H?"right":""}function Ge(e,t){var n=t.manager;return n?n.get(e):e}function We(){He.apply(this,arguments)}function Xe(){We.apply(this,arguments),this.pX=null,this.pY=null}function Ye(){We.apply(this,arguments)}function Ze(){He.apply(this,arguments),this._timer=null,this._input=null}function Je(){We.apply(this,arguments)}function $e(){We.apply(this,arguments)}function et(){He.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function tt(e,t){return(t=t||{}).recognizers=b(t.recognizers,tt.defaults.preset),new nt(e,t)}function nt(e,t){this.options=r({},tt.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new(this.options.inputClass||(k?fe:O?be:L?Me:ue))(this,$),this.touchAction=new De(this,this.options.touchAction),it(this,!0),p(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function it(e,t){var n,i=e.element;i.style&&(p(e.options.cssProps,(function(r,o){n=T(i.style,o),t?(e.oldCssProps[n]=i.style[n],i.style[n]=r):i.style[n]=e.oldCssProps[n]||""})),t||(e.oldCssProps={}))}return He.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(d(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ge(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return d(e,"dropRecognizeWith",this)||(e=Ge(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(d(e,"requireFailure",this))return this;var t=this.requireFail;return-1===I(t,e=Ge(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(d(e,"dropRequireFailure",this))return this;e=Ge(e,this);var t=I(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function i(n){t.manager.emit(n,e)}n<Ue&&i(t.options.event+je(n)),i(t.options.event),e.additionalEvent&&i(e.additionalEvent),n>=Ue&&i(t.options.event+je(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=qe},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(qe|Qe)))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=qe);this.state&(_e|ze|qe)&&(this.state=Qe),this.state=this.process(t),this.state&(Ne|Ve|Ue|ze)&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},m(We,He,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,n=e.eventType,i=t&(Ne|Ve),r=this.attrTest(e);return i&&(n&_||!r)?t|ze:i||r?n&U?t|Ue:t&Ne?t|Ve:Ne:qe}}),m(Xe,We,{defaults:{event:"pan",threshold:10,pointers:1,direction:X},getTouchAction:function(){var e=this.options.direction,t=[];return e&G&&t.push(Oe),e&W&&t.push(ke),t},directionTest:function(e){var t=this.options,n=!0,i=e.distance,r=e.direction,o=e.deltaX,a=e.deltaY;return r&t.direction||(t.direction&G?(r=0===o?z:o<0?q:H,n=o!=this.pX,i=Math.abs(e.deltaX)):(r=0===a?z:a<0?j:K,n=a!=this.pY,i=Math.abs(e.deltaY))),e.direction=r,n&&i>t.threshold&&r&t.direction},attrTest:function(e){return We.prototype.attrTest.call(this,e)&&(this.state&Ne||!(this.state&Ne)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Ke(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),m(Ye,We,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Le]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Ne)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),m(Ze,He,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Pe]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!i||!n||e.eventType&(U|_)&&!r)this.reset();else if(e.eventType&N)this.reset(),this._timer=h((function(){this.state=_e,this.tryEmit()}),t.time,this);else if(e.eventType&U)return _e;return qe},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===_e&&(e&&e.eventType&U?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),m(Je,We,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Le]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Ne)}}),m($e,We,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|W,pointers:1},getTouchAction:function(){return Xe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return n&(G|W)?t=e.overallVelocity:n&G?t=e.overallVelocityX:n&W&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&e.eventType&U},emit:function(e){var t=Ke(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),m(et,He,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Re]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),e.eventType&N&&0===this.count)return this.failTimeout();if(i&&r&&n){if(e.eventType!=U)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||re(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&o?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=h((function(){this.state=_e,this.tryEmit()}),t.interval,this),Ne):_e}return qe},failTimeout:function(){return this._timer=h((function(){this.state=qe}),this.options.interval,this),qe},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==_e&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),tt.VERSION="2.0.7",tt.defaults={domEvents:!1,touchAction:Te,enable:!0,inputTarget:null,inputClass:null,preset:[[Je,{enable:!1}],[Ye,{enable:!1},["rotate"]],[$e,{direction:G}],[Xe,{direction:G},["swipe"]],[et],[et,{event:"doubletap",taps:2},["tap"]],[Ze]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},nt.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var n;this.touchAction.preventDefaults(e);var i=this.recognizers,r=t.curRecognizer;(!r||r&&r.state&_e)&&(r=t.curRecognizer=null);for(var o=0;o<i.length;)n=i[o],2===t.stopped||r&&n!=r&&!n.canRecognizeWith(r)?n.reset():n.recognize(e),!r&&n.state&(Ne|Ve|Ue)&&(r=t.curRecognizer=n),o++}},get:function(e){if(e instanceof He)return e;for(var t=this.recognizers,n=0;n<t.length;n++)if(t[n].options.event==e)return t[n];return null},add:function(e){if(d(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(d(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,n=I(t,e);-1!==n&&(t.splice(n,1),this.touchAction.update())}return this},on:function(e,t){if(e!==i&&t!==i){var n=this.handlers;return p(C(e),(function(e){n[e]=n[e]||[],n[e].push(t)})),this}},off:function(e,t){if(e!==i){var n=this.handlers;return p(C(e),(function(e){t?n[e]&&n[e].splice(I(n[e],t),1):delete n[e]})),this}},emit:function(e,n){this.options.domEvents&&function(e,n){var i=t.createEvent("Event");i.initEvent(e,!0,!0),i.gesture=n,n.target.dispatchEvent(i)}(e,n);var i=this.handlers[e]&&this.handlers[e].slice();if(i&&i.length){n.type=e,n.preventDefault=function(){n.srcEvent.preventDefault()};for(var r=0;r<i.length;)i[r](n),r++}},destroy:function(){this.element&&it(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(tt,{INPUT_START:N,INPUT_MOVE:V,INPUT_END:U,INPUT_CANCEL:_,STATE_POSSIBLE:Qe,STATE_BEGAN:Ne,STATE_CHANGED:Ve,STATE_ENDED:Ue,STATE_RECOGNIZED:_e,STATE_CANCELLED:ze,STATE_FAILED:qe,DIRECTION_NONE:z,DIRECTION_LEFT:q,DIRECTION_RIGHT:H,DIRECTION_UP:j,DIRECTION_DOWN:K,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:W,DIRECTION_ALL:X,Manager:nt,Input:J,TouchAction:De,TouchInput:be,MouseInput:ue,PointerEventInput:fe,TouchMouseInput:Me,SingleTouchInput:ve,Recognizer:He,AttrRecognizer:We,Tap:et,Pan:Xe,Swipe:$e,Pinch:Ye,Rotate:Je,Press:Ze,on:x,off:w,each:p,merge:v,extend:A,assign:r,inherit:m,bindFn:g,prefixed:T}),tt}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});const zr=_r;function qr(t,n,i){var r=n.getBoundingClientRect(),o=r.top,a=r.left,s=r.width,l=r.height;return i&&(a+=s*i.left,o+=l*(1-i.bottom-i.height),s*=i.width,l*=i.height),new e.Vector2((t.x-a)/s*2-1,-(t.y-o)/l*2+1)}var Hr=new e.OrthographicCamera(-1,1,1,-1,0,1),jr=new e.BufferGeometry;jr.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),jr.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));var Kr=new e.Mesh(jr),Gr=new e.Scene;Gr.add(Kr);var Wr,Xr=function(){function t(t,n){var i;this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:null!==(i=n.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:n.fragment,uniforms:Object.assign({inputBuffer:new e.Uniform(null)},n.uniforms),defines:Object.assign({},n.defines),blending:e.NoBlending,depthWrite:!1,depthTest:!1})}return t.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Kr.material;this.material.uniforms.inputBuffer.value=e.texture,Kr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Gr,Hr),this.renderer.setRenderTarget(n),Kr.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),Yr=function(){function t(t){this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new e.Uniform(new e.Vector3)}),blending:e.NoBlending,depthWrite:!1,depthTest:!1})}return t.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Kr.material;this.material.uniforms.inputValue.value.copy(e),Kr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Gr,Hr),this.renderer.setRenderTarget(n),Kr.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),Zr=function(e){function t(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return te(t,e),t}(Xr),Jr=function(){function e(e){this.enable=!0,this.renderer=e,this.copyPass=new Zr(this.renderer)}return e.prototype.render=function(e,t){this.copyPass.render(e,t)},e.prototype.dispose=function(){this.copyPass.dispose()},e}(),$r=function(e){function t(n){var i,r=this;r=e.call(this)||this;var o=t.parseArgs(n);return r.pending=new Set,r.userAction=o.initial[3],r.destroyed=!1,r.ident=o.ident,r.scene=o.scene,r.xrCustomObjectsScene=o.xrCustomObjectsScene,r.helper=o.helper,r.boundingMesh=o.boundingMesh,r.camera=o.camera,r.renderer=o.renderer,r.scissor=o.scissor,r.element=o.element,r.model=o.model,r.enableIOSEDR=null!==(i=o.enableIOSEDR)&&void 0!==i&&i,r.work=o.work,r.imageOptions=o.imageOptions,r.videoTexture=o.videoTexture,r.networkSubscribe=o.networkSubscribe,r.requestProxy=o.requestProxy,r.needsRender=!0,r.maxFov=120,r.minFov=40,r.maxLatitude=+Math.PI/2,r.minLatitude=-Math.PI/2,r.cameraMotion=new lr({longitude:{value:r.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:r.camera.pose.latitude,fov:r.camera.pose.fov}),r.eventUnbinds=[o.element].concat(o.extraElements||[]).map((function(e){return r.bindEvents(e)})),r.pending.add("init-animation"),ke.shared.add((function(){r.initAnimation.apply(r,o.initial).then((function(){r.pending.delete("init-animation")}))}),!0),r}return te(t,e),t.parseArgs=function(e){return ne({},e)},t.initAnimationEndState=function(e){var t=this.parseArgs(e);return{longitude:t.camera.pose.longitude,latitude:t.camera.pose.latitude,fov:t.camera.pose.fov,offset:t.camera.pose.offset.clone(),distance:t.camera.pose.distance}},t.prototype.destroy=function(){var e;this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var t=0,n=this.eventUnbinds;t<n.length;t++)(0,n[t])();this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,null===(e=this.pressState)||void 0===e||e.stop(),delete this.pressState},t.prototype.isReady=function(){return 0===this.pending.size&&!0===this.cameraMotion.ended},t.prototype.bindExtraElement=function(e){for(var t=0,n=this.eventUnbinds;t<n.length;t++)if(n[t].element===e)return;this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=[],n=0,i=this.eventUnbinds;n<i.length;n++){var r=i[n];r.element===e?r():t.push(r)}this.eventUnbinds=t},t.prototype.updateRenderSize=function(){this.needsRender=!0},t.prototype.updateModel=function(e){this.model=e,this.needsRender=!0},t.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.userAction=r,!1},t.prototype.updateTime=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];if(!this.destroyed){var r={};this.cameraMotion.ended&&(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Vr(r)&&this.setCamera(r)}},t.prototype.render=function(){this.renderer.render(this.scene,this.camera)},t.prototype.postProcessing=function(e,t){this.destroyed||(this.copyEffect||(this.copyEffect=new Jr(this.renderer)),this.copyEffect.render(e,t))},t.prototype.updateCamera=function(e,t,n){return this.userAction=n,this.cameraMotion.set(e,t).catch(le)},t.prototype.updateCameraWithKeyframes=function(e,t,n){return this.userAction=n,this.cameraMotion.setKeyframes(e,t)},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}},t.prototype.moveToPano=function(e,t,n){void 0===t&&(t={}),this.userAction=n;var i={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};t.moveStartCallback&&t.moveStartCallback(e,i),this.emit("moveToPano",e,this.userAction),this.emit("panoWillArrive",e,i,this.userAction),this.emit("panoArrived",e,i,this.userAction),t.moveEndCallback&&t.moveEndCallback(e,i)},t.prototype.initAnimation=function(e,t,n,i){return this.userAction=i,Promise.resolve()},t.prototype.setCamera=function(e){var t,n,i,r,o;void 0===e&&(e={});var a=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,s=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,l=null!==(i=e.fov)&&void 0!==i?i:this.camera.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.camera.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=this.camera.position.clone(),d=wr(a,this.camera.pose.longitude,2*Math.PI)||wr(s,this.camera.pose.latitude),p=wr(l,this.camera.pose.fov),f=wr(u,this.camera.pose.distance),A=Er(c,this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:s,fov:l,distance:u,offset:c});var v=Er(h,this.camera.position);p&&this.emit("cameraFovUpdate",l,this.userAction),d&&this.emit("cameraDirectionUpdate",{longitude:a,latitude:s},this.userAction),v&&this.emit("cameraPositionUpdate",this.camera.position.clone(),this.userAction),(p||d||A||f)&&this.emit("cameraUpdate",{longitude:a,latitude:s,fov:l,offset:c,distance:u},this.userAction),this.needsRender=!0},t.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","pan",i,e.isFinal)||this.emit("gesture","pan",i,e.isFinal)}},t.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","tap",t,!0)||this.emit("gesture","tap",t,!0)},t.prototype.onPressGesture=function(e,t){var n,i=[e];if(this.emit("wantsGesture","press",i,t))return null===(n=this.pressState)||void 0===n||n.stop(),void delete this.pressState;this.emit("gesture","press",i,t)},t.prototype.onPinchGesture=function(e){var t=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","pinch",t,e.isFinal)||this.emit("gesture","pinch",t,e.isFinal)},t.prototype.onMouseWheel=function(e){var t=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:t}];this.emit("wantsGesture","mouseWheel",n,!1)||this.emit("gesture","mouseWheel",n,!1)},t.prototype.onMouseMove=function(e){},t.prototype.onMouseOut=function(){},t.prototype.relativeClientPosition=function(e){return qr(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,n=function(e){var n=qr(e,t.element,t.scissor);return!(Math.abs(n.x)>1||Math.abs(n.y)>1)},i=new zr.Manager(e),r=function(e){return e.session.firstInput||null};i.add(new zr.Pan({threshold:10,pointers:0})),i.add(new zr.Tap({interval:410})),i.add(new zr.Pinch({threshold:0,pointers:2})),i.on("panstart pan",(function(e){var o=r(i);o&&!n(o.center)||(t.onPanGesture(e),f())})),i.on("tap",(function(e){if("mouse"!==e.pointerType||0===e.srcEvent.button){var o=r(i);o&&!n(o.center)||(t.onTapGesture(e),f())}})),i.on("pinchstart pinch pinchend",(function(e){var o=r(i);o&&!n(o.center)||(t.onPinchGesture(e),f())}));var o=null,a=null,s=function(e,t,n){var i="pinchend"===e?t:t-n.deltaY/280;return{type:e,target:n.target,pointerType:"mouse",srcEvent:n,pointers:[{x:n.clientX,y:n.clientY}],isFirst:"pinchstart"===e,isFinal:"pinchend"===e,scale:Gt(i,.1,10),center:{x:n.clientX,y:n.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},l=function(e){var i,r={x:e.clientX,y:e.clientY};if(n(r)){if(e.preventDefault(),e.ctrlKey){var l=null!==(i=null==o?void 0:o.prevInput.scale)&&void 0!==i?i:1,u=s(o?"pinch":"pinchstart",l,e);null===o?o={firstInput:u,prevInput:u}:o.prevInput=u,t.onPinchGesture(u),null!==a&&window.clearTimeout(a),a=window.setTimeout((function(){var n;a=null;var i=null!==(n=null==o?void 0:o.prevInput.scale)&&void 0!==n?n:1,r=s("pinchend",i,e);o=null,t.onPinchGesture(r)}),200)}else t.onMouseWheel(e);f()}},u=function(e){if(!Or()){var i={x:e.clientX,y:e.clientY};n(i)?(t.onMouseMove(e),t.pressState&&Math.abs(e.clientX-t.pressState.x)>10&&Math.abs(e.clientY-t.pressState.y)>10&&f()):t.onMouseOut()}},c=function(){t.onMouseOut(),f()},h=function(e,i){if(n(e)){t.pressState={x:e.x,y:e.y,time:t.pressState?t.pressState.time:i,stop:le};var r=i-t.pressState.time;t.onPressGesture({x:e.x,y:e.y,delta:r},!1),t.pressState&&(t.pressState.stop=ke.shared.add((function(t){return h({x:e.x,y:e.y},t)}),!0,1))}else f()},d=function(e){f(),e.touches.length>1||e.changedTouches.length<=0||h({x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY},ce())},p=function(e){f(),h({x:e.clientX,y:e.clientY},ce())},f=function(){var e;if(t.pressState){var n=ce()-t.pressState.time;t.onPressGesture({x:t.pressState.x,y:t.pressState.y,delta:n},!0),null===(e=t.pressState)||void 0===e||e.stop(),delete t.pressState}},A=null,v=function(e){var t,n="pinch",i=!1,r=!1;switch(e.type){case"gesturestart":n="pinchstart",i=!0;break;case"gestureend":n="pinchend",r=!0}return{type:n,target:e.target,pointerType:"mouse",srcEvent:e,pointers:[{x:e.clientX,y:e.clientY}],isFirst:i,isFinal:r,scale:null!==(t=e.scale)&&void 0!==t?t:1,center:{x:e.clientX,y:e.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},m=function(e){if(e.preventDefault(),!Or()){var i=v(e),r=(A={firstInput:i}).firstInput;r&&!n(r.center)||t.onPinchGesture(i)}},g=function(e){if(e.preventDefault(),!Or()&&A){var i=v(e),r=A.firstInput;r&&!n(r.center)||t.onPinchGesture(i)}},y=function(e){if(e.preventDefault(),!Or()&&A){var i=v(e),r=A.firstInput;A=null,r&&!n(r.center)||t.onPinchGesture(i)}},b=function(t){if(t&&"function"==typeof t.preventDefault&&t.currentTarget===e&&t.preventDefault(),"function"==typeof getSelection){var n=getSelection();n&&n.focusNode&&(n.removeAllRanges&&n.removeAllRanges(),n.empty&&n.empty())}};return e.addEventListener("wheel",l,{passive:!1}),e.addEventListener("mousemove",u,!1),e.addEventListener("mouseout",c,!1),e.addEventListener("touchstart",d,{passive:!0}),e.addEventListener("touchend",f,!1),e.addEventListener("touchcancel",f,!1),e.addEventListener("mousedown",p,!1),e.addEventListener("mouseup",f,!1),e.addEventListener("gesturestart",m,{passive:!1}),e.addEventListener("gesturechange",g,{passive:!1}),e.addEventListener("gestureend",y,{passive:!1}),e.addEventListener("touchstart",b,{passive:!1}),e.addEventListener("contextmenu",b,!1),Object.assign((function(){i.destroy(),e.removeEventListener("wheel",l,!1),e.removeEventListener("mousemove",u,!1),e.removeEventListener("mouseout",c,!1),e.removeEventListener("touchstart",d,!1),e.removeEventListener("touchend",f,!1),e.removeEventListener("touchcancel",f,!1),e.removeEventListener("mousedown",p,!1),e.removeEventListener("mouseup",f,!1),e.removeEventListener("gesturestart",m,!1),e.removeEventListener("gesturechange",g,!1),e.removeEventListener("gestureend",y,!1),e.removeEventListener("touchstart",b,!1),e.removeEventListener("contextmenu",b,!1)}),{element:e})},t}(se),eo=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultFov=a.defaultFov,o.maxFov=a.maxFov,o.minFov=a.minFov,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o.currentTapPanoIndex=-1,o.intersectMeshCreator=a.intersectMeshCreator,o.intersectMesh=o.intersectMeshCreator(),o.intersectMesh.name="intersect",o.intersectMesh.visible=!1,o.helper.add(o.intersectMesh),o}return te(n,t),n.distanceFromModel=function(e,t,n){var i=e.bounding,r=Math.pow(Math.pow(i.max.x-i.min.x+1,2)+Math.pow(i.max.y-i.min.y+1,2)+Math.pow(i.max.z-i.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return n<1&&(o/=n),isNaN(o)?r:o},n.parseArgs=function(e){var n,i,r,o,a,s,l,u,c=t.parseArgs.call(this,e);return ne(ne({},c),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultFov:null!==(r=e.defaultFov)&&void 0!==r?r:80,maxFov:null!==(o=e.maxFov)&&void 0!==o?o:120,minFov:null!==(a=e.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=e.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=e.minLatitude)&&void 0!==l?l:-Math.PI/2,intersectMeshCreator:null!==(u=e.intersectMeshCreator)&&void 0!==u?u:function(){return new br}})},n.initAnimationEndPose=function(t){var i,r,o,a=this.parseArgs(t),s=t.initial[1];return{longitude:null!==(i=s.longitude)&&void 0!==i?i:a.defaultLongitude,latitude:Gt(null!==(r=s.latitude)&&void 0!==r?r:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:null!==(o=s.fov)&&void 0!==o?o:a.defaultFov,offset:t.model.bounding.getCenter(new e.Vector3),distance:n.distanceFromModel(a.model,a.defaultFov,a.camera.aspect)}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},n.prototype.isReady=function(){return!1!==this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.updateCamera(n,null!=i?i:0,r),!0},n.prototype.updateModel=function(i){t.prototype.updateModel.call(this,i);var r=i.bounding.getCenter(new e.Vector3),o=n.distanceFromModel(i,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:o},0).catch(le)},n.prototype.updateTime=function(t,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(!this.destroyed){var o={},a={};this.locationMotion.ended||(this.locationMotion.update(t),o.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,a.distance=this.locationMotion.value.distance,a.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(t),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),Vr(o)||this.model.setMaterial(o),Vr(a)||this.setCamera(a)}},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,offset:new e.Vector3(n.value.x,n.value.y,n.value.z),distance:n.value.distance}},n.prototype.initAnimation=function(t,i,r,o){var a=this;return this.destroyed?Promise.resolve():new Promise((function(s){var l,u,c;a.userAction=o;var h={longitude:null!==(l=i.longitude)&&void 0!==l?l:a.defaultLongitude,latitude:Gt(null!==(u=i.latitude)&&void 0!==u?u:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:Gt(null!==(c=i.fov)&&void 0!==c?c:a.defaultFov,a.minFov,a.maxFov),offset:a.model.bounding.getCenter(new e.Vector3),distance:n.distanceFromModel(a.model,a.defaultFov,a.camera.aspect)},d=hn(h,["longitude","latitude","fov"]),p={x:h.offset.x,y:h.offset.y,z:h.offset.z,distance:h.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:h.distance};a.emit("initAnimationWillStart",t,h,a.userAction),a.cameraMotion.set(d,r).catch(le),a.locationMotion.set(p,r).then((function(){a.emit("initAnimationEnded",t,h,a.userAction)}),(function(e){var n=Ur(a.camera.pose);a.emit("initAnimationEnded",t,n,a.userAction)})).then((function(){s()}))}))},n.prototype.updateRenderSize=function(){this.locationMotion.set({distance:n.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),n=this.model.intersectRaycaster(e)[0];if(!n)return null;var i=Nr(t,(function(e){return e.standingPosition.distanceTo(n.point)}),!0),r=i[0];return i[1]<10?r.panoIndex:null},n.prototype.coordinatesForOffset=function(t){var n=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(n.x*this.scissor.width),latitude:2*t.y/(n.y*this.scissor.height)}},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.994008,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",i,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.relativeClientPosition(e.center),a=this.camera.pose.latitude<Math.PI/6||o.y<0?-1:1;r.x*=a;var s=this.coordinatesForOffset(r),l=Tr(this.cameraMotion.value.longitude+s.longitude),u=Gt(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(u=this.cameraMotion.value.latitude);var c={longitude:l,latitude:u,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",c,e.isFinal)&&(this.emit("gesture","pan",i,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh(),this.cameraMotion.set({longitude:c.longitude,latitude:c.latitude},0).catch(le),e.isFinal&&!this.emit("wantsInteriaPan",c))){this.interiaMovement=!0;var h=e.velocityX*a,d=e.velocityY;this.requestInteriaMovement(this.coordinatesForOffset({x:h,y:d}),0)}}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(i=!0,delete this.panState,delete this.pinchState),void 0!==n){var r=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,i)){var o=Gt(n/e.scale,this.minFov,this.maxFov);this.emit("wantsPinchGesture",e.scale,o,i)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,i),this.emit("pinchGesture",e.scale,o,i),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseMove=function(t){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var n=this.relativeClientPosition({x:t.clientX,y:t.clientY}),i=new e.Raycaster;if(i.setFromCamera(n,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:t.clientX,clientY:t.clientY}}}},n.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=this.minFov,o=this.maxFov,a=Gt(this.camera.fov-n,r,o);this.emit("wantsMouseWheel",n,a,!1)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,a,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,a,!0)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,a,!0))}),200)})}},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.getForwardPanoIndexOrNot(o);if(!Qi(a)){this.emit("panoSelected",a);var s={longitude:this.camera.pose.longitude,latitude:0};this.currentTapPanoIndex=a,this.preloadPano(a).then((function(e){n.currentTapPanoIndex===e&&n.emit("wantsMoveToPano",e,s,!0)}))}}}},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n.prototype.preloadPano=function(e,t){var n=this;void 0===t&&(t=le);var i=this.work.observers[e],r=this.work.allowHosts;return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ne({key:"pano.".concat(e,".").concat(t)},hn(n.imageOptions,["size","format","quality","mappings"])),a=i.images[t];return Te(n.imageOptions.transform?n.imageOptions.transform(a,o):Ve(a,o),{allowHosts:r,requestProxy:n.requestProxy,networkSubscribe:n.networkSubscribe})}))).then((function(){return t(e),e}))},n.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},n}($r),to=0,no=Math.PI/2,io=0,ro=0,oo=Math.PI/2,ao=0,so=Math.PI,lo=0,uo=1.5*Math.PI,co=0,ho=function(t){function n(e){var i=n.parseArgs(e);return t.call(this,i)||this}return te(n,t),n.parseArgs=function(e){var n=[e.initial[0],ne(ne({},e.initial[1]),{longitude:0,latitude:Math.PI/2}),e.initial[2],e.initial[3]],i=ne(ne({},e),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return t.parseArgs.call(this,i)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.updateModel=function(t){this.model=t,this.needsRender=!0;var n=t.bounding.getCenter(new e.Vector3);this.locationMotion.set({x:n.x,y:n.y,z:n.z,distance:eo.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},n.prototype.initAnimation=function(t,n,i,r){var o=this;return this.destroyed?Promise.resolve():new Promise((function(a){var s;o.userAction=r;var l={longitude:0,latitude:Math.PI/2,fov:Gt(null!==(s=n.fov)&&void 0!==s?s:o.defaultFov,o.minFov,o.maxFov),offset:o.model.bounding.getCenter(new e.Vector3),distance:eo.distanceFromModel(o.model,o.defaultFov,o.camera.aspect)},u=hn(l,["longitude","latitude","fov"]),c={x:l.offset.x,y:l.offset.y,z:l.offset.z,distance:l.distance,modelAlpha:1,perspToOrtho:1,orthoDistance:l.distance};o.cameraMotion.set(u,i).catch(le),o.locationMotion.set(c,i).then((function(){o.emit("initAnimationEnded",t,l,o.userAction)}),(function(e){var n=Ur(o.camera.pose);o.emit("initAnimationEnded",t,n,o.userAction)})).then((function(){a()}))}))},n.prototype.getZoomOffsetFromFov=function(t,n,i){var r=this.camera.getDirection(new e.Vector3),o=Math.tan(i/2*Math.PI/180),a=Math.tan(n.fov/2*Math.PI/180),s=(a-o)/a,l=new e.Raycaster;l.setFromCamera(t,n);var u=l.ray.direction,c=u.angleTo(r),h=eo.distanceFromModel(this.model,this.defaultFov,this.camera.aspect),d=h*Math.tan(c),p=u.clone().setLength(h*Math.cos(c)).projectOnPlane(r),f=p.length(),A=s/f*p.x*d,v=s/f*p.z*d,m=s/f*p.y*d;return new e.Vector3(A,m,v)},n.prototype.requestInteriaMovement=function(e,t){},n.prototype.onPanGesture=function(t){var n=this.panState,i=t.pointers.length;if(t.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:i,x:t.center.x,y:t.center.y},void 0!==n&&n.pointerLength===i){var r=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,t.isFinal)){var o=t.center.x-n.x,a=t.center.y-n.y,s=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=this.model.bounding,u=l.getCenter(new e.Vector3),c=(l.max.x-l.min.x)/this.defaultFov*this.cameraMotion.value.fov,h=(l.max.y-l.min.y)/this.defaultFov*this.cameraMotion.value.fov,d=(l.max.z-l.min.z)/this.defaultFov*this.cameraMotion.value.fov,p={left:new e.Vector3,up:new e.Vector3,cameraDirection:"y"};this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?(p.left.set(1,0,0),p.up.set(0,0,-1),p.cameraDirection="y"):this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro?(p.left.set(1,0,0),p.up.set(0,1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?(p.left.set(1,0,0),p.up.set(0,-1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co?(p.left.set(0,0,-1),p.up.set(0,-1,0),p.cameraDirection="x"):this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao&&(p.left.set(0,0,-1),p.up.set(0,1,0),p.cameraDirection="x");var f=(this.camera.position[p.cameraDirection]-l.min[p.cameraDirection])*Math.tan(this.camera.fov/2*Math.PI/180),A=this.renderer.getSize(new e.Vector2);s.add(function(t,n){var i=(new e.Vector3).copy(n);return i.multiplyScalar(-t),i}(2*o*f/A.y,p.left)),s.add(function(t,n){var i=(new e.Vector3).copy(n);return i.multiplyScalar(t),i}(2*a*f/A.y,p.up)),s.x=Gt(s.x,u.x-c,u.x+c),s.y=Gt(s.y,u.y-h,u.y+h),s.z=Gt(s.z,u.z-d,u.z+d);var v={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:s,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",v,t.isFinal)||(this.emit("gesture","pan",r,t.isFinal),this.emit("panGesture",v,t.isFinal),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le))}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(i=!0,delete this.pinchState),void 0!==n){var r=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,i)){var o=Gt(n/e.scale,this.minFov,this.maxFov),a=this.relativeClientPosition({x:e.center.x,y:e.center.y}),s=this.getZoomOffsetFromFov(a,this.camera,o);this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?s.y=0:this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro||this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?s.z=0:(this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co||this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao)&&(s.x=0);var l=this.camera.pose.offset.clone().add(s);this.emit("wantsPinchGesture",e.scale,o,i)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,i),this.emit("pinchGesture",e.scale,o,i),this.userAction=!0,this.locationMotion.set({x:l.x,y:l.y,z:l.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.cameraMotion.value.fov-n,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.clientX,y:e.clientY}),a=this.getZoomOffsetFromFov(o,this.camera,r);this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?a.y=0:this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro||this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?a.z=0:(this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co||this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao)&&(a.x=0);var s=this.camera.pose.offset.clone().add(a);this.emit("wantsMouseWheel",n,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,r,!1),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},n}(eo),po=function(t){function n(e){var i=this,r=n.parseArgs(e);return(i=t.call(this,r)||this).defaultLongitude=r.defaultLongitude,i.defaultLatitude=r.defaultLongitude,i.defaultFov=r.defaultFov,i.maxFov=r.maxFov,i.minFov=r.minFov,i.maxLatitude=r.maxLatitude,i.minLatitude=r.minLatitude,i.moveSpeed=r.moveSpeed,i.intersectMeshCreator=r.intersectMeshCreator,i.interiaMovement=!1,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s,l,u,c,h=t.parseArgs.call(this,e);return ne(ne({},h),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:0,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:0,defaultFov:null!==(r=e.defaultFov)&&void 0!==r?r:90,maxFov:null!==(o=e.maxFov)&&void 0!==o?o:120,minFov:null!==(a=e.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=e.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=e.minLatitude)&&void 0!==l?l:-Math.PI/2,moveSpeed:null!==(u=e.moveSpeed)&&void 0!==u?u:3.2,intersectMeshCreator:null!==(c=e.intersectMeshCreator)&&void 0!==c?c:function(){return new br}})},n.initAnimationEndPose=function(e){var t,n,i,r=this.parseArgs(e),o=e.initial,a=o[0],s=o[1];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:Gt(null!==(n=s.latitude)&&void 0!==n?n:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(i=s.fov)&&void 0!==i?i:r.defaultFov,r.minFov,r.maxFov),offset:r.work.observers[a].position.clone(),distance:0}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.interiaMovement=!1,this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose()),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState},n.prototype.isReady=function(){return!this.interiaMovement&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&t.prototype.isReady.call(this)},n.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Gt(t,2,5)/this.moveSpeed*1e3}},n.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},n.prototype.coordinatesForOffset=function(t){var n=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(r.x*this.scissor.width)*n/95*i,latitude:-2*t.y/(r.y*this.scissor.height)*n/95}},n.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,n=e.latitude,i=e.fov,r=[{progress:0,value:{longitude:t,latitude:n,fov:i}},{progress:.5,value:{longitude:t,latitude:n,fov:.98*i}},{progress:1,value:{longitude:t,latitude:n,fov:i}}];this.cameraMotion.setKeyframes(r,500).catch(le)},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.98604,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",i,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.coordinatesForOffset(r),a=Tr(this.cameraMotion.value.longitude+o.longitude),s=Gt(this.cameraMotion.value.latitude+o.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(s=this.cameraMotion.value.latitude);var l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",l,e.isFinal)){this.emit("gesture","pan",i,e.isFinal),this.emit("panGesture",l,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh();var u={longitude:l.longitude,latitude:l.latitude,fov:l.fov};if(this.cameraMotion.set(u,0).catch(le),e.isFinal&&!this.emit("wantsInteriaPan",l)){this.interiaMovement=!0;var c=e.velocityX,h=.6*e.velocityY;Math.abs(h)>.5&&Math.abs(c)<.5&&(c=0),this.requestInteriaMovement(this.coordinatesForOffset({x:c,y:h}),0)}}}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=e.scale,r=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(r=!0,delete this.pinchState),void 0!==n){var o=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",o,r)){var a=Gt(n/i,this.minFov,this.maxFov);this.emit("wantsPinchGesture",i,a,r)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","pinch",o,r),this.emit("pinchGesture",i,a,r),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.cameraMotion.value.fov-n,this.minFov,this.maxFov);this.emit("wantsMouseWheel",n,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,r,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},n.prototype.onMouseMove=function(t){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var n=this.relativeClientPosition({x:t.clientX,y:t.clientY}),i=new e.Raycaster;if(i.setFromCamera(n,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:t.clientX,clientY:t.clientY}}}},n.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n}($r);function fo(){return Wr||(Wr=new Promise((function(e){var t,n=document.createElement("video");n.muted=!0,n.src="data:video/mp4;base64,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",n.addEventListener("timeupdate",(function i(){n.removeEventListener("timeupdate",i,!1),clearTimeout(t);var r=document.createElement("canvas");r.width=r.height=1;var o=r.getContext("2d");o?(o.drawImage(n,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),n.addEventListener("canplay",(function e(){n.removeEventListener("canplay",e,!1),n.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))}var Ao,vo=function(t){function n(n,i){return void 0===i&&(i=.5),t.call(this,n,{uniforms:{inputBuffer:new e.Uniform(null),scale:new e.Uniform(i)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return te(n,t),n}(Xr),mo=function(t){function n(n,i){void 0===i&&(i=.002);var r=t.call(this,n,{uniforms:{targetBuffer:new e.Uniform(null),inputBuffer:new e.Uniform(null),step:new e.Uniform(i)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return r.material.extensions.shaderTextureLOD=!0,r}return te(n,t),Object.defineProperty(n.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),n}(Xr),go=function(t){function n(n){var i=t.call(this,n,{uniforms:{inputBuffer:new e.Uniform(null),luminanceAdaptiveBuffer:new e.Uniform(null),progress:new e.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 1.5;\n float whitePoint = 13.0;\n float exposure = 1.4;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return i.material.transparent=!0,i}return te(n,t),Object.defineProperty(n.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),n}(Xr),yo=function(t){function n(e){var n=t.call(this,e)||this;return n.enableTime=ce(),n.renderer=e,n.valuePass=new Yr(n.renderer),n.luminancePass=new vo(n.renderer,Math.sqrt(1/3)),n.nextStepPass=new mo(n.renderer,.01),n.luminanceAdaptivePass=new go(n.renderer),n}return te(n,t),n.prototype.render=function(t,n){if(!this.enable)return this.enableTime=null,void this.copyPass.render(t,n);null===this.enableTime&&(this.enableTime=ce()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new e.WebGLRenderTarget(128,128,{minFilter:e.LinearMipmapLinearFilter,magFilter:e.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:e.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(t,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new e.WebGLRenderTarget(1,1,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,type:e.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new e.WebGLRenderTarget(1,1,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,type:e.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((ce()-this.enableTime)/100,1),this.luminanceAdaptivePass.render(t,n)},n.prototype.dispose=function(){var e,t,n;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(n=this.luminanceNextBuffer)||void 0===n||n.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},n}(Jr),bo=null!==(Ao=Math.SQRT1_2)&&void 0!==Ao?Ao:Math.sqrt(2),xo={up:new e.Quaternion(bo,0,0,bo),down:new e.Quaternion(-bo,0,0,bo),left:new e.Quaternion(0,bo,0,bo),right:new e.Quaternion(0,-bo,0,bo),front:new e.Quaternion(0,0,0,1),back:new e.Quaternion(0,1,0,0)},wo=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Mo=new Float32Array([0,0,1,0,0,1,1,1]),Eo=new Uint8Array([0,1,2,1,3,2]),Co=new e.BufferGeometry;Co.setAttribute("position",new e.BufferAttribute(wo,3)),Co.setAttribute("uv",new e.BufferAttribute(Mo,2)),Co.setIndex(new e.BufferAttribute(Eo,1));var Io=function(t){function n(){var n=t.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return n.depthTest=!1,n.depthWrite=!1,n.blending=e.NoBlending,n.map=n.uniforms.map.value,n.luminanceMap=n.uniforms.luminanceMap.value,Object.defineProperties(n,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e,this.needsUpdate=!0}}}),n}return te(n,t),n}(e.ShaderMaterial),So=function(t){function n(n,i){var r=t.call(this,Co,new Io)||this;return n.box.getCenter(r.position),r.quaternion.multiplyQuaternions((new e.Quaternion).setFromAxisAngle(new e.Vector3(0,1,0),-Math.PI),xo[n.face]),r.scale.setScalar(n.size),r.node=n,r.name="tiling:tile",r.material.visible=!1,r.activeTime=-1,r.disposed=!1,r.needsRender=!1,r.frustumCulled=!1,i.then((function(e){var t=e[0],n=e[1];r.disposed?(t.dispose(),null==n||n.dispose()):(r.material.map=t,r.material.luminanceMap=n,r.material.needsUpdate=!0,r.material.visible=!0,r.needsRender=!0)})).catch(le),r}return te(n,t),n.prototype.updateTime=function(e){},n.prototype.dispose=function(){var e;this.disposed=!0,this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},n}(e.Mesh),Bo=function(e){function t(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return te(t,e),t}(e.Group),To=function(){function t(e,t,n){this.disposed=!1,this.textureLoader=new Mt(e),this.minLevel=t,this.level=0,this.panoIndex=0,this.pedding=0,this.tileTree=$e(this.minLevel),this.tileMeshes=new Map,this.resource=[],this.luminance=null,this.imageOptions=n,this.object=new Bo,this.object.renderOrder=-3}return t.prototype.setAllowHosts=function(e){this.textureLoader.setAllowHosts(e)},t.prototype.setRequestProxy=function(e){this.textureLoader.setRequestProxy(e)},t.prototype.setNetworkSubscribe=function(e){this.textureLoader.setNetworkSubscribe(e)},t.prototype.cleanup=function(){var e=this;this.tileMeshes.forEach((function(t){t.dispose(),e.object.remove(t),e.object.needsRender=!0})),this.tileMeshes.clear()},t.prototype.setRotation=function(e){this.disposed||this.object.quaternion.equals(e)||(this.object.quaternion.copy(e),this.object.needsRender=!0)},t.prototype.setPosition=function(e){this.disposed||this.object.position.equals(e)||(this.object.position.copy(e),this.object.needsRender=!0)},t.prototype.setResource=function(e,t){var n,i;if(!this.disposed&&(this.resource!==e||this.luminance!==t)){this.cleanup(),this.resource=e;var r=null!==(i=null===(n=e.slice().sort((function(e,t){return t.level-e.level}))[0])||void 0===n?void 0:n.level)&&void 0!==i?i:0;this.tileTree=$e(r),this.luminance=t,this.object.needsRender=!0}},t.prototype.update=function(t,n,i){var r=this;if(!this.disposed){this.level=n;var o=t.planes[5].normal,a=[];n>=this.minLevel&&et(this.tileTree,(function(e){if(!(e.level<r.minLevel))return!(e.level>n)&&!!t.intersectsBox(e.box)&&void a.push(e)}));var s=new e.Vector3;a.sort((function(e,t){return e.level!==t.level?e.level-t.level:e.box.getCenter(s).angleTo(o)-t.box.getCenter(s).angleTo(o)}));for(var l=new Set,u=function(e){var t=c.resource.filter((function(t){return t.level===e.level}))[0];if(!t)return"continue";if(l.add(e),c.tileMeshes.has(e))return c.tileMeshes.get(e).activeTime=i,"continue";var n=t.size,o=c.imageOptions.transform,a=Math.pow(2,e.level)*e.position.y,s=Math.pow(2,e.level)*e.position.x,u="".concat(c.panoIndex,".").concat(e.face,".").concat(e.level,".").concat(a,".").concat(s),h=ne(ne({key:"pano_tile.".concat(u)},hn(c.imageOptions,["format","size","quality","sharpen","mappings"])),{size:n*e.size==512?void 0:512,cut:[n*e.position.x,n*e.position.y,n*e.size,n*e.size]}),d=c.textureLoader.loadTexture(t[e.face],{imageURL:{transform:o,options:h}}).then((function(e){return e.body})),p=null;if(c.luminance){var f=c.luminance[e.face],A=f.match(/\/cube_(\d+)\//),v=!!A&&Number(A[1]);if(!1!==v){var m=ne(ne({},h),{size:v*e.size==256?void 0:256,cut:[v*e.position.x,v*e.position.y,v*e.size,v*e.size],key:"pano_tile_luminance.".concat(u)});p=c.textureLoader.loadTexture(f,{imageURL:{transform:c.imageOptions.transform,options:m}}).then((function(e){return e.body})).catch((function(){return null}))}}c.pedding++;var g=Promise.all([d,p]).then((function(e){return r.pedding--,e}),(function(e){return r.pedding--,Promise.reject(e)})),y=new So(e,g);y.name="tiling:tile-".concat(u),y.activeTime=i,y.renderOrder=e.level,c.tileMeshes.set(e,y),c.object.needsRender=!0,c.object.add(y)},c=this,h=0,d=a;h<d.length;h++)u(m=d[h]);var p=[];this.tileMeshes.forEach((function(e,t){l.has(t)||p.push(t),e.visible=t.level<=n}));for(var f=p.sort((function(e,t){var n,i,o,a;return(null!==(i=null===(n=r.tileMeshes.get(t))||void 0===n?void 0:n.activeTime)&&void 0!==i?i:0)-(null!==(a=null===(o=r.tileMeshes.get(e))||void 0===o?void 0:o.activeTime)&&void 0!==a?a:0)})).slice(Math.max(0,32-l.size)),A=0,v=f;A<v.length;A++){var m=v[A],g=this.tileMeshes.get(m);g&&(g.dispose(),this.object.remove(g),this.object.needsRender=!0),this.tileMeshes.delete(m)}}},t.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},t}(),Po=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),Ro=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),Lo=new e.BufferGeometry;Lo.setAttribute("position",new e.BufferAttribute(Po,3)),Lo.setIndex(new e.BufferAttribute(Ro,1));var ko,Oo,Fo=function(){function t(){this.material=new e.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new e.Uniform(null),matrix:new e.Uniform(null),alpha:new e.Uniform(null),map:new e.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor}),this.object=new e.Mesh(Lo,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new lr({alpha:0})}return t.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.map.value=e.map,this.alphaMotion.set({alpha:e.alpha},500).catch(le),this.material.uniforms.alpha.value=e.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(le));var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},t.prototype.updateTime=function(e){this.alphaMotion.ended||(this.alphaMotion.update(e),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},t.prototype.dispose=function(){this.material.dispose()},t}(),Do=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),Qo=new e.Vector3(-1,1,1),No=function(){function t(e){void 0===e&&(e=0),this.width=e,this.pool=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),t.prototype.create=function(){return new e.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},t.prototype.pop=function(){return this.pool.pop()||this.create()},t.prototype.push=function(e){-1===this.pool.indexOf(e)&&this.pool.push(e)},t.prototype.clear=function(){for(var e=0,t=this.pool;e<t.length;e++)t[e].dispose();this.pool.length=0},t}(),Vo=function(t){function n(e){var i,r,o,a,s=this,l=n.parseArgs(e);(s=t.call(this,l)||this).TILED_CUBE_TEXTURE_LEVEL=2,s.tileLevel=0,s.initAnimationed=!1,s.forwardPanoIndex=null,s.currentPanoIndex=l.initial[0],s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.tileLevelForFov=l.tileLevelForFov,s.luminanceAdaptiveEffectEnable=l.luminanceAdaptiveEffectEnable,s.colorCubeRenderTargetPool=new No,s.luminanceCubeRenderTargetPool=new No;var u=s.model.getMaterial()||{},c=u.pano0,h=u.pano1;c&&(null==h?void 0:h.map)!==c.map&&(s.model.setMaterial({pano0:h}),c.map.dispose(),c.map instanceof wt&&c.map.cubeRenderTarget&&s.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof wt&&c.luminanceMap.cubeRenderTarget&&s.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var d=s.colorCubeRenderTargetPool.size;d<2;d++){var p=Math.max(1024*s.TILED_CUBE_TEXTURE_LEVEL,512),f=s.colorCubeRenderTargetPool.create();f.setSize(p,p),at(null,f,s.renderer),s.colorCubeRenderTargetPool.push(f)}s.panoMeshes=[],s.panoMeshHitTested={},s.updatePanoMeshes(),s.locationMotion=new lr({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(r=null===(i=s.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Ii()]={panoIndex:s.currentPanoIndex,workCode:s.work.workCode,panoPicture:null!==(a=null===(o=s.model.getMaterial())||void 0===o?void 0:o.pano1)&&void 0!==a?a:null,position:s.camera.pose.offset.clone(),effect:"fly"};var A={allowHosts:s.work.allowHosts,requestProxy:s.requestProxy,networkSubscribe:s.networkSubscribe};return s.textureLoader=new Mt(A),s.tiling=new To(A,s.TILED_CUBE_TEXTURE_LEVEL+1,s.imageOptions),s.scene.add(s.tiling.object),s.panoVideo=new Fo,s.scene.add(s.panoVideo.object),s}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s=t.parseArgs.call(this,e);return ne(ne({},s),{maxAccessibleDistance:null!==(n=e.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=e.panoTapTriggerRadius)&&void 0!==i?i:.5,panoCircleMeshCreator:null!==(r=e.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new hr},tileLevelForFov:null!==(o=e.tileLevelForFov)&&void 0!==o?o:function(e,t){var n=2*Math.atan(Math.tan(e/180*Math.PI/2)*(t.width/t.height))/Math.PI*180,i=Math.max(t.width/n,t.height/e);return i>60?4:i>30?3:i>18?2:i>12?1:0},luminanceAdaptiveEffectEnable:null===(a=e.luminanceAdaptiveEffectEnable)||void 0===a||a})},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){var e,n,i=this;t.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes&&(this.panoMeshes.forEach((function(e){i.helper.remove(e),e.dispose()})),this.panoMeshes.length=0),this.interiaMovement=!1;var r=this.videoTexture.image;r.pause(),r.oncanplay=function(){},r.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var o=null!==(e=this.model.getMaterial())&&void 0!==e?e:{},a=o.pano0,s=o.pano1,l=0,u=Object.keys(this.panoResources);l<u.length;l++){var c=u[l],h=this.panoResources[c];if(h.panoPicture){var d=h.panoPicture.map;d&&d!==(null==a?void 0:a.map)&&d!==(null==s?void 0:s.map)&&(d.dispose(),null===(n=h.panoPicture.luminanceMap)||void 0===n||n.dispose(),h.panoPicture=null)}delete this.panoResources[c]}this.luminanceAdaptiveEffect&&(this.luminanceAdaptiveEffect.dispose(),delete this.luminanceAdaptiveEffect)},n.prototype.isReady=function(){return!0===this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.isTileReady=function(){var e,t,n,i=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),r=(null===(e=i.panoPicture)||void 0===e?void 0:e.map)instanceof wt&&null!==(n=null===(t=i.panoPicture)||void 0===t?void 0:t.map.tilePending)&&void 0!==n?n:0,o=this.tiling.pedding;return this.initAnimationed&&r<=0&&o<=0},n.prototype.updateWork=function(e,t,n,i,r){var o=this;return this.userAction=r,this.work=e,this.currentPanoIndex=t,this.textureLoader.setAllowHosts(this.work.allowHosts),this.tiling.setAllowHosts(this.work.allowHosts),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:i,longitude:n.longitude,latitude:n.latitude,fov:n.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},r),!0},n.prototype.updateModel=function(e){this.model=e,this.updatePanoMeshes(!0)},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u,c,h,d,p=this,f=[],A=2;A<arguments.length;A++)f[A-2]=arguments[A];if(!this.destroyed){var v=this.currentPanoIndex,m={},g={},y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),x=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var w=this.locationMotion.getKeyFrameSegment(t),M=w[0],E=w[1],C=this.panoResourceFromLocationMotionKeyframe(M),I=this.panoResourceFromLocationMotionKeyframe(E),S=(new e.Vector3).copy(C.position),B=(new e.Vector3).copy(I.position),T=this.locationMotion.value.count-E.value.count+1;m.progress=T,m.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,I.panoPicture&&(T<1?C.panoPicture&&(m.pano0=C.panoPicture):m.pano0=I.panoPicture,m.pano1=I.panoPicture),x=m.useBlackTransition="instant"===I.effect||"montage"===I.effect,"fade"!==I.effect&&"montage"!==I.effect||(m.pano0&&C.panoPicture&&(m.pano0={map:m.pano0.map,luminanceMap:m.pano0.luminanceMap,matrix:C.panoPicture.matrix.clone().setPosition(I.position)}),S.copy(B)),g.distance=this.locationMotion.value.distance,g.offset=new e.Vector3(S.x+(B.x-S.x)*T,S.y+(B.y-S.y)*T,S.z+(B.z-S.z)*T);for(var P=[],R=[],L=0,k=this.locationMotion.keyframes;L<k.length;L++){var O=k[L],F=O.key,D=O.progress;void 0!==F&&(P.push(F),D>=this.locationMotion.progress&&R.push(F))}for(var Q=0,N=Object.keys(this.panoResources);Q<N.length;Q++){var V=N[Q];if(!(R.indexOf(V)>=0)){var U=this.panoResources[V];if(U.panoPicture){var _=U.panoPicture.map,z=U.panoPicture.luminanceMap;if(_){if(_===(null===(i=m.pano0)||void 0===i?void 0:i.map))continue;if(_===(null===(r=m.pano1)||void 0===r?void 0:r.map))continue;_ instanceof wt&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),z&&(z instanceof wt&&z.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(z.cubeRenderTarget),z.dispose()),U.panoPicture=null}}P.indexOf(V)>=0||delete this.panoResources[V]}}C.workCode===I.workCode?this.currentPanoIndex=T<.5?C.panoIndex:I.panoIndex:this.currentPanoIndex=I.panoIndex,this.emit("movingToPano",b.panoIndex,y.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),!1===Vr(m)&&((null===(o=m.pano0)||void 0===o?void 0:o.map)&&m.pano0.map instanceof wt&&!m.pano0.map.cubeRenderTarget&&(m.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=m.pano0)||void 0===a?void 0:a.luminanceMap)&&m.pano0.luminanceMap instanceof wt&&!m.pano0.luminanceMap.cubeRenderTarget&&(m.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=m.pano1)||void 0===s?void 0:s.map)&&m.pano1.map instanceof wt&&!m.pano1.map.cubeRenderTarget&&(m.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=m.pano1)||void 0===l?void 0:l.luminanceMap)&&m.pano1.luminanceMap instanceof wt&&!m.pano1.luminanceMap.cubeRenderTarget&&(m.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(m));var q=!1;if(!1===Vr(g)&&(this.setCamera(g),q=!0),this.currentPanoIndex!==v&&(this.updatePanoMeshesVisible(),q=!0),q&&(ie=this.work.observers[this.currentPanoIndex])){var H=Rt(this.camera.pose).normalize(),j=new e.Raycaster(ie.position,H);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(j)}if(this.camera.pose.distance>.1||x){var K=this.work.observers[this.currentPanoIndex];if(K)for(var G=0,W=J=K.visibleNodes.concat(this.currentPanoIndex);G<W.length;G++){var X=W[G];(ne=this.panoMeshes[X])&&ne.setOpacity(0)}}else{var Y=this.work.observers[this.currentPanoIndex];if(Y){var Z=Nr(Y.visibleNodes,(function(e){return Y.standingPosition.distanceTo(p.work.observers[e].standingPosition)}),!0)[1];Z=Gt(Z,2.5,1/0);for(var J=Y.visibleNodes.concat(this.currentPanoIndex),$=this.camera.getDirection(new e.Vector3),ee=0,te=J;ee<te.length;ee++){X=te[ee];var ne,ie=this.work.observers[X];if(ne=this.panoMeshes[X])if(ie.loadable||ie.active){var re=ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ne.setCurrent(!ne.loading&&0===ne.progress&&this.forwardPanoIndex===X),ne.setOpacity(re<.01?0:Gt(Z/re*1.2,.4,.85));var oe=this.camera.position.clone().setY(ne.position.y);if(H=(new e.Vector3).copy(ne.position).sub(oe).normalize(),X===this.currentPanoIndex){var ae=Gt((.5-oe.distanceTo(ne.position))/.5,0,1);H.multiplyScalar(1-ae).add($.clone().multiplyScalar(ae))}H.length()>0&&ne.quaternion.setFromEuler(new e.Euler(0,Math.atan2(H.x,H.z),0)),ne.updateTime&&ne.updateTime(t,n)}else ne.setOpacity(0)}}}var se=this.tileLevel=function(){if(!1===p.tileLevelForFov)return 0;var t=p.renderer.getDrawingBufferSize(new e.Vector2);t.width*=p.scissor.width,t.height*=p.scissor.height;var n=b.panoIndex,i=p.work.observers[n],r=p.imageOptions.size;if(void 0===r&&i){var o=i.images.up.match(/\/cube_(\d+)\//);o&&(r=Number(o[1]))}void 0===r&&(r=2048);var a=0;r>=1024&&(a=1),r>=2048&&(a=2),r>=4096&&(a=3),r>=8192&&(a=4);var s=p.tileLevelForFov(p.camera.fov,t);return s>a?s:0}(),le=function(){var t,n=p.camera.quaternion.clone();n.premultiply((null!==(t=p.work.observers[b.panoIndex])&&void 0!==t?t:p.work.observers[p.currentPanoIndex]).quaternion.clone().inverse());var i=(new e.Matrix4).makeRotationFromQuaternion(n),r=(new e.Matrix4).getInverse(i);return(new e.Frustum).setFromProjectionMatrix((new e.Matrix4).multiplyMatrices(p.camera.projectionMatrix,r))}();b.panoIndex===this.currentPanoIndex&&((null===(u=b.panoPicture)||void 0===u?void 0:u.map)instanceof wt&&(b.panoPicture.map.update(le,se),!0===b.panoPicture.map.needsRender&&(b.panoPicture.map.needsRender=!1,this.needsRender=!0)),(null===(c=b.panoPicture)||void 0===c?void 0:c.luminanceMap)instanceof wt&&(b.panoPicture.luminanceMap.update(le,se),!0===b.panoPicture.luminanceMap.needsRender&&(b.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0)));var ue=this.tiling.object.visible;if(this.initAnimationed){var ce=b.panoIndex,he=this.work.observers[ce];he&&Mr(this.camera.position,he.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==ce&&this.tiling.cleanup(),this.tiling.panoIndex=ce,this.tiling.setResource(null!==(d=null===(h=he.images)||void 0===h?void 0:h.tiles)&&void 0!==d?d:[],this.enableIOSEDR&&he.images.luminance?he.images.luminance:null),this.tiling.setRotation(he.quaternion),this.tiling.setPosition(he.position),se>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(le,se,t):this.tiling.update(le,0,t)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;ue!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(t)}},n.prototype.render=function(){var e=this.work.observers[this.currentPanoIndex];e&&e.video&&(this.needsRender=!0),t.prototype.render.call(this)},n.prototype.postProcessing=function(e,t){if(!this.destroyed)return this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new yo(this.renderer),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e,t)},n.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],n=this.panoResourceFromLocationMotionKeyframe(t),i=this.work.observers[n.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:i?i.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},n.prototype.moveToPano=function(t,n,i){var r,o,a,s,l=this;this.userAction=i;var u=this.work.observers[t],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality","sharpen","mappings"])),f=u.images,A=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,v=d,m={key:"pano_luminance.".concat(t),size:p.size?p.size/2:1024},g=this.enableIOSEDR&&u.images.luminance?u.images.luminance:null,y=function(){if(!u.images.tiles)return null;if(!g)return null;var e=g.up.match(/\/cube_(\d+)\//),t=!!e&&Number(e[1]);return!1===t?null:null==A?void 0:A.map((function(e){return{level:e.level,size:t,back:g.back,front:g.front,left:g.left,right:g.right,up:g.up,down:g.down}}))}(),b="pano:"+pn([f,p,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[x])||void 0===a||a.setProgress(0),this.emit("textureAbort",x,u),this.pendingTextureTask.onError(new Error("texture aborted"))}var w="move-to-pano-"+t;this.pending.add(w);var M,E=this.model.getMaterial()||{},C=E.pano0,I=E.pano1;if(C&&C.map.name===b&&null!==C.luminanceMap===this.enableIOSEDR?M=C:(null==I?void 0:I.map.name)===b&&null!==I.luminanceMap===this.enableIOSEDR&&(M=I),M){var S={panoIndex:t,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fly",panoPicture:{map:M.map,luminanceMap:M.luminanceMap,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};ke.shared.add((function(){l.pending.delete(w),l.emit("panoLoaded",t),l.doMoveToPano(t,S,n)}),!0,1)}else{this.pendingTextureTask={panoIndex:t,hash:b,onLoad:function(i,r){var o,a;if(l.pending.delete(w),l.destroyed)i.body.dispose();else{i.body.name=b,l.emit("panoLoaded",t);var s={panoIndex:t,workCode:l.work.workCode,effect:null!==(o=n.effect)&&void 0!==o?o:"fly",panoPicture:{map:i.body,luminanceMap:null!==(a=null==r?void 0:r.body)&&void 0!==a?a:null,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};l.doMoveToPano(t,s,n)}},onError:function(e){l.pending.delete(w),n.moveCancelCallback&&n.moveCancelCallback(),l.emit("panoLoadError",e,t),l.emit("moveToPanoCanceled",t)}};var B=this.panoMeshes[t];B&&B.tap&&B.tap(),Promise.all([this.tileLevelForFov&&A&&A.length?this.textureLoader.loadTiledCubeTexture(f,A,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:d,options:p},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(f,{imageURL:{transform:d,options:p},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer),g?this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(g,y,{tileImageSize:256,tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):Promise.resolve(null)]).then((function(e){var n,i,r=e[0],o=e[1];(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b?(l.pendingTextureTask.onLoad(r,o),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",t,u,r.meta)):(r.body.dispose(),null==o||o.body.dispose())})).catch((function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(l.pendingTextureTask.onError(e),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",e,t,u),l.emit("error",e))})),this.emit("textureStartLoad",t,u)}},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l,u=!1;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){u=!0,r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),r.initAnimationed=!0,o()},moveCancelCallback:function(){var e={longitude:r.camera.pose.longitude,latitude:r.camera.pose.latitude,fov:r.camera.pose.fov,offset:r.camera.pose.offset.clone(),distance:r.camera.pose.distance};!1===u&&r.emit("initAnimationWillStart",r.currentPanoIndex,e,r.userAction),r.emit("initAnimationEnded",r.currentPanoIndex,e,r.userAction),r.initAnimationed=!0,o()}},i)}))},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.locationMotionKeyframesLength=function(e){for(var t=0,n=1;n<e.length;n++){var i=this.panoResourceFromLocationMotionKeyframe(e[n-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[n]).position;t+=i.distanceTo(r)*(e[n].value.count-e[n-1].value.count)}return t},n.prototype.updatePanoMeshesVisible=function(t){var n=this;void 0===t&&(t=!1);for(var i=this.work.observers[this.currentPanoIndex],r=(i?i.visibleNodes:[]).concat(this.currentPanoIndex),o=[],a=0,s=this.work.observers;a<s.length;a++){var l=s[a],u=this.panoMeshes[l.panoIndex];u&&(r.indexOf(l.panoIndex)>=0?u.parent!==this.helper&&(this.helper.add(u),!0!==this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(l.panoIndex)]&&o.push(l)):u.parent===this.helper&&(this.helper.remove(u),u.setOpacity(0)))}t&&(o=r.map((function(e){return n.work.observers[e]})));for(var c=0,h=o;c<h.length;c++){var d=h[c];if(this.model.loaded&&this.model.bvhs.loaded&&this.model.workCode===this.work.workCode&&r.length<=10){this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(d.panoIndex)]=!0;var p=new e.Vector3(0,-1,0),f=new e.Vector3(0,.1,0).add(d.standingPosition),A=new e.Raycaster(f,p,0,.2),v=this.model.intersectRaycaster(A)[0];if(!v)continue;if(d.standingPosition.y>=v.point.y&&d.standingPosition.y-v.point.y<.1)continue;this.panoMeshes[d.panoIndex]&&this.panoMeshes[d.panoIndex].position.copy(v.point)}}},n.prototype.updatePanoMeshes=function(e){var t=this;void 0===e&&(e=!1);for(var n={},i=0,r=this.panoMeshes;i<r.length;i++)n[(f=r[i]).name]=f;this.panoMeshes.length=0,this.panoMeshHitTested={};for(var o=1,a={},s=function(e){if(e.accessibleNodes.length){var n=Nr(e.accessibleNodes,(function(n){return Gt(t.work.observers[n].standingPosition.distanceTo(e.standingPosition),1,1/0)}),!0),i=n[1];void 0===a[e.panoIndex]&&(a[e.panoIndex]=i)}},l=0,u=this.work.observers;l<u.length;l++)s(p=u[l]);var c=Object.keys(a).map((function(e){return a[e]}));c.length&&(o=Gt(c.reduce((function(e,t){return e+t}),0)/c.length*.6,1,3));for(var h=0;h<this.work.observers.length;h++){var d="panoCircle_".concat(this.work.workCode,"_").concat(h),p=this.work.observers[h],f=void 0;n[d]?(!0===(f=n[d]).loading&&!1===p.loadable&&f.setLoading(!1),delete n[d]):(f=this.panoCircleMeshCreator(h)).name=d,f.scale.set(o,1,o),f.position.copy(p.standingPosition),this.panoMeshes[h]=f}for(var A=0,v=Object.keys(n);A<v.length;A++){var m=v[A];this.helper.remove(n[m]),n[m].dispose(),delete n[m]}this.updatePanoMeshesVisible(e)},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s,l=this;void 0===i&&(i={});var u,c,h,d=ce(),p=Ii();if(this.tiling.cleanup(),this.panoResources[p]=n,this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(d),A=(f[0],f[1]),v=this.locationMotion.value,m=(null!==(r=this.panoResourceFromLocationMotionKeyframe(A))&&void 0!==r?r:this.camera).position,g=n.position;u=Math.max(m.distanceTo(g),1),c=[{key:A.key,progress:0,value:ne(ne({},v),{count:0})},{key:p,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],h=0}else{var y=this.locationMotion.getKeyFrameSegment(d),b=y[0],x=(A=y[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(b).position),w=(m=this.panoResourceFromLocationMotionKeyframe(A).position,g=n.position,A.value.count-v.count),M=Math.max(x.distanceTo(m),1)*w;u=M+Math.max(m.distanceTo(g),1),c=[{key:b.key,progress:0,value:ne({},v)},{key:A.key,progress:M/u,value:A.value},{key:p,progress:1,value:{count:A.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var E=this.locationMotionKeyframesLength(this.locationMotion.keyframes),C=this.locationMotionKeyframesLength(c);h=0===E||0===E?0:this.locationMotion.getProgressVelocity(d)*E/C}var I=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:u),S={longitude:i.longitude,latitude:i.latitude,fov:i.fov},B={longitude:null!==(o=S.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=S.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=S.fov)&&void 0!==s?s:this.camera.pose.fov,offset:n.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,B),this.emit("panoWillArrive",t,B,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(S,I).catch(le),this.locationMotion.setKeyframes(c,I,h).then((function(){var n,r,o,a={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(t,a),l.emit("panoArrived",t,a,l.userAction);var s=l.work.observers[l.currentPanoIndex];if(s&&s.video&&l.videoTexture&&l.videoTexture.image instanceof HTMLVideoElement){var u=Do.clone().multiply(null!==(o=null===(r=null===(n=l.model.getMaterial())||void 0===n?void 0:n.pano1)||void 0===r?void 0:r.matrix)&&void 0!==o?o:new e.Matrix4).multiply(s.video.matrix),c={map:l.videoTexture,size:s.video.size,matrix:u,alpha:1},h=Ii(),d=l.videoTexture.image;d.setAttribute("uuid",h),fo().then((function(e){e&&s.video&&d.getAttribute("uuid")===h&&(d.oncanplay=function(){d.oncanplay=le,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=le,l.panoVideo.setMaterial(c))},d.src=s.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),l.emit("moveToPanoCanceled",t)}))},n.prototype.getForwardPanoIndexOrNot=function(t){var n=this,i=this.work.observers[this.currentPanoIndex];if(!i)return null;var r=null!=t?t:new e.Raycaster(this.camera.position.clone(),this.camera.getDirection(new e.Vector3)),o=i.standingPosition.clone();if(i.position.distanceTo(r.ray.origin)>1){var a=this.model.intersectRaycaster(new e.Raycaster(r.ray.origin,new e.Vector3(0,-1,0)))[0];a&&a.distance<=2?o.copy(a.point):o.copy(r.ray.origin).add(new e.Vector3(0,-1.5,0))}var s=this.model.intersectRaycaster(r)[0],l=(s?s.point:r.ray.origin.clone().add(r.ray.direction.clone().normalize().multiplyScalar(3))).clone().sub(o).normalize();if(0===l.length())return null;for(var u=i.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e],i=t.standingPosition.clone().project(n.camera);return!(Math.abs(i.z)>1)&&!(Math.abs(i.x)>1)&&!(Math.abs(i.y)>1)&&(t.loadable||t.active)})),c=u.slice().sort((function(e,t){return n.work.observers[e].standingPosition.clone().distanceTo(o)-n.work.observers[t].standingPosition.clone().distanceTo(o)})),h=0,d=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];h<d.length;h++)for(var p=d[h],f=0,A=c;f<A.length;f++){var v=A[f],m=this.work.observers[v].standingPosition.clone().sub(o);if(0!==m.length()&&l.angleTo(m)<p)return v}return null},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new e.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),c=this.model.intersectRaycaster(o)[0];if(c){var h=Nr(u,(function(e){return n.work.observers[e].standingPosition.clone().distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}Qi(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),Qi(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),w=[],M=0,E=m.accessibleNodes;M<E.length;M++)if((d=E[M])!==this.currentPanoIndex&&d!==s){var C=this.work.observers[d].position.clone().sub(m.position).setY(0);x.angleTo(C)<y&&w.push(C)}var I=(w.length>0?w:ie(ie([],[],!0),[],!0)).slice().sort((function(e,t){return e.angleTo(x)-t.angleTo(x)}))[0];I&&I.angleTo(a)>b&&(g.longitude=Math.atan2(-I.x,-I.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(g.fov=this.defaultFov),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},n}(po),Uo=Math.PI/180,_o=180/Math.PI,zo=function(){var e="undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),qo=function(){var e="undefined"!=typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),Ho=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),jo=(ko="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,Oo=ko?parseInt(ko[1],10):null,function(){return Oo}),Ko=function(){var e=!1;if(65===jo()){var t="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var n=t[1].split("."),i=(n[0],n[1],n[2]),r=n[3];e=3325===parseInt(i,10)&&parseInt(r,10)<148}}return function(){return e}}(),Go=function(){var e=zo()&&qo()&&"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("13_4");return function(){return e}}(),Wo=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}();function Xo(){var e="undefined"!=typeof window&&(90==window.orientation||-90==window.orientation);return Wo()?!e:e}var Yo,Zo=(Yo={},function(e,t){void 0===Yo[e]&&(console.warn("cardboard: "+t),Yo[e]=!0)});function Jo(e){var t,n=e.indexOf("://");t=-1!==n?n+3:0;var i=e.indexOf("/",t);return-1===i&&(i=e.length),e.substring(0,i)}var $o,ea=function(e,t,n){var i,r,o,a,s,l,u,c,h,d,p,f,A,v,m,g,y,b;i=e,d=(o=(r=t)?r[0]:0)*(u=o+o),p=o*(c=(a=r?r[1]:0)+a),f=o*(h=(s=r?r[2]:0)+s),A=a*c,v=a*h,m=s*h,g=(l=r?r[3]:1)*u,y=l*c,b=l*h,i[0]=1-(A+m),i[1]=p+b,i[2]=f-y,i[3]=0,i[4]=p-b,i[5]=1-(d+m),i[6]=v+g,i[7]=0,i[8]=f+y,i[9]=v-g,i[10]=1-(d+A),i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,n&&function(e,t,n){var i,r,o,a,s,l,u,c,h,d,p,f,A=n[0],v=n[1],m=n[2];t===e?(e[12]=t[0]*A+t[4]*v+t[8]*m+t[12],e[13]=t[1]*A+t[5]*v+t[9]*m+t[13],e[14]=t[2]*A+t[6]*v+t[10]*m+t[14],e[15]=t[3]*A+t[7]*v+t[11]*m+t[15]):(i=t[0],r=t[1],o=t[2],a=t[3],s=t[4],l=t[5],u=t[6],c=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=i,e[1]=r,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=u,e[7]=c,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=i*A+s*v+h*m+t[12],e[13]=r*A+l*v+d*m+t[13],e[14]=o*A+u*v+p*m+t[14],e[15]=a*A+c*v+f*m+t[15])}(e,e,n),function(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],h=t[9],d=t[10],p=t[11],f=t[12],A=t[13],v=t[14],m=t[15],g=n*s-i*a,y=n*l-r*a,b=n*u-o*a,x=i*l-r*s,w=i*u-o*s,M=r*u-o*l,E=c*A-h*f,C=c*v-d*f,I=c*m-p*f,S=h*v-d*A,B=h*m-p*A,T=d*m-p*v,P=g*T-y*B+b*S+x*I-w*C+M*E;P&&(P=1/P,e[0]=(s*T-l*B+u*S)*P,e[1]=(r*B-i*T-o*S)*P,e[2]=(A*M-v*w+m*x)*P,e[3]=(d*w-h*M-p*x)*P,e[4]=(l*I-a*T-u*C)*P,e[5]=(n*T-r*I+o*C)*P,e[6]=(v*b-f*M-m*y)*P,e[7]=(c*M-d*b+p*y)*P,e[8]=(a*B-s*I+u*E)*P,e[9]=(i*I-n*B-o*E)*P,e[10]=(f*w-A*b+m*g)*P,e[11]=(h*b-c*w-p*g)*P,e[12]=(s*C-a*S-l*E)*P,e[13]=(n*S-i*C+r*E)*P,e[14]=(A*y-f*x-v*g)*P,e[15]=(c*x-h*y+d*g)*P)}(e,e)},ta=function(){function t(t,n){void 0===t&&(t=new e.Vector3),void 0===n&&(n=0),this.sample=t,this.timestampS=n}return t.prototype.set=function(e,t){this.sample=e,this.timestampS=t},t.prototype.copy=function(e){this.set(e.sample,e.timestampS)},t}(),na=function(){function t(t,n){this.kFilter=t,this.isDebug=n,this.currentAccelMeasurement=new ta,this.currentGyroMeasurement=new ta,this.previousGyroMeasurement=new ta,zo()?this.filterQ=new e.Quaternion(-1,0,0,1):this.filterQ=new e.Quaternion(1,0,0,1),this.previousFilterQ=new e.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new e.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new e.Vector3,this.measuredGravity=new e.Vector3,this.gyroIntegralQ=new e.Quaternion}return t.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},t.prototype.addGyroMeasurement=function(e,t){var n;this.currentGyroMeasurement.set(e,t),n=t-this.previousGyroMeasurement.timestampS,isNaN(n)||n<=.001||n>1||this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},t.prototype.getOrientation=function(){return this.filterQ},t.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var t=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,n=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,t);this.gyroIntegralQ.multiply(n),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(n);var i=new e.Quaternion;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r,o=new e.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",_o*((r=o).w>1?0:2*Math.acos(r.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var a=new e.Quaternion;a.copy(this.filterQ),a.multiply(o),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},t.prototype.accelToQuaternion_=function(t){var n=new e.Vector3;n.copy(t),n.normalize();var i=new e.Quaternion;return i.setFromUnitVectors(new e.Vector3(0,0,-1),n),i.inverse(),i},t.prototype.gyroToQuaternionDelta_=function(t,n){var i=new e.Quaternion,r=new e.Vector3;return r.copy(t),r.normalize(),i.setFromAxisAngle(r,t.length()*n),i},t}(),ia=function(){function t(t,n){this.predictionTimeS=t,this.isDebug=n,this.previousQ=new e.Quaternion,this.previousTimestampS=null,this.deltaQ=new e.Quaternion,this.outQ=new e.Quaternion}return t.prototype.getPrediction=function(t,n,i){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=i,t;var r=new e.Vector3;r.copy(n),r.normalize();var o=n.length();if(o<20*Uo)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(_o*o).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var a=o*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,a),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=i,this.outQ},t}(),ra=function(){function e(e){this.coefficients=e}return e.prototype.distortInverse=function(e){for(var t=0,n=1,i=e-this.distort(t);Math.abs(n-t)>1e-4;){var r=e-this.distort(n),o=n-r*((n-t)/(r-i));t=n,n=o,i=r}return n},e.prototype.distort=function(e){for(var t=e*e,n=0,i=0;i<this.coefficients.length;i++)n=t*(n+this.coefficients[i]);return(n+1)*e},e}(),oa=function(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null},aa=function(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0},sa=function(){function t(t,n,i,r){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=i,this.accelerometer=new e.Vector3,this.gyroscope=new e.Vector3,this.filter=new na(t,r),this.posePredictor=new ia(n,r),this.isFirefoxAndroid=Ho(),this.isIOS=zo();var o=jo();this.isDeviceMotionInRadians=!this.isIOS&&null!==o&&o<66,this.isWithoutDeviceMotion=Ko()||Go(),this.filterToWorldQ=new e.Quaternion,zo()?this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new e.Quaternion,this.worldToScreenQ=new e.Quaternion,this.originalPoseAdjustQ=new e.Quaternion;var a="undefined"!=typeof window?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0,0,1),a),this.setScreenTransform_(),Xo()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new e.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return t.prototype.getPosition=function(){return null},t.prototype.getOrientation=function(){var t;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(r=(new e.Quaternion).setFromAxisAngle(new e.Vector3(0,0,-1),0),o=new e.Quaternion,"undefined"!=typeof window&&-90===window.orientation?o.setFromAxisAngle(new e.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new e.Vector3(0,1,0),Math.PI/2),r.multiply(o)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new e.Quaternion).setFromAxisAngle(new e.Vector3(1,0,0),-Math.PI/2),i),t=this._deviceOrientationQ;var n=new e.Quaternion;return n.copy(t),n.multiply(this.deviceOrientationFilterToWorldQ),n.multiply(this.resetQ),n.multiply(this.worldToScreenQ),n.multiplyQuaternions(this.deviceOrientationFixQ,n),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_}var i,r,o,a=this.filter.getOrientation();t=this.posePredictor.getPrediction(a,this.gyroscope,this.previousTimestampS);var s=new e.Quaternion;return s.copy(this.filterToWorldQ),s.multiply(this.resetQ),s.multiply(t),s.multiply(this.worldToScreenQ),this.yawOnly&&(s.x=0,s.z=0,s.normalize()),this.orientationOut_[0]=s.x,this.orientationOut_[1]=s.y,this.orientationOut_[2]=s.z,this.orientationOut_[3]=s.w,this.orientationOut_},t.prototype.getPose=function(){var e=new oa;return e.orientation=this.getOrientation(),e},t.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),Xo()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},t.prototype.getFrameData=function(e){var t=this.getOrientation(),n=this.getEyeOffset(),i=this.getEyeProjectionMatrix();return e.pose.angularAcceleration=null,e.pose.angularVelocity=null,e.pose.linearAcceleration=null,e.pose.linearVelocity=null,e.pose.orientation=t,e.pose.position=null,e.timestamp=this.previousTimestampS,e.leftProjectionMatrix.set(i.left),e.rightProjectionMatrix.set(i.right),ea(e.leftViewMatrix,t,n.left),ea(e.rightViewMatrix,t,n.right),e},t.prototype.start=function(){if("undefined"==typeof window)return function(){};var e=this.onDeviceMotion_.bind(this),t=this.onOrientationChange_.bind(this),n=this.onMessage_.bind(this),i=this.onDeviceOrientation_.bind(this);return zo()&&function(){if("undefined"==typeof window)return!1;if("undefined"==typeof document)return!1;var e=window.self!==window.top,t=Jo(document.referrer),n=Jo(window.location.href);return e&&t!==n}()&&window.addEventListener("message",n),window.addEventListener("orientationchange",t),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",i):window.addEventListener("devicemotion",e),function(){window.removeEventListener("devicemotion",e),window.removeEventListener("deviceorientation",t),window.removeEventListener("orientationchange",t),window.removeEventListener("message",n)}},t.prototype.getEyeOffset=function(){return{left:[.5*-this.viewer.interLensDistance,0,0],right:[.5*this.viewer.interLensDistance,0,0]}},t.prototype.getEyeProjectionMatrix=function(){var e,t,n=this.getEyeFieldOfView(),i=this.depthNear,r=this.depthFar,o={left:[],right:[]},a=n.left.upDegrees*Uo,s=n.left.downDegrees*Uo,l=2/((e=n.left.leftDegrees*Uo)+(t=n.left.rightDegrees*Uo)),u=2/(a+s);return o.left[0]=l,o.left[1]=0,o.left[2]=0,o.left[3]=0,o.left[4]=0,o.left[5]=u,o.left[6]=0,o.left[7]=0,o.left[8]=-(e-t)*l*.5,o.left[9]=(a-s)*u*.5,o.left[10]=r/(i-r),o.left[11]=-1,o.left[12]=0,o.left[13]=0,o.left[14]=r*i/(i-r),o.left[15]=0,a=n.right.upDegrees*Uo,s=n.right.downDegrees*Uo,l=2/((e=n.right.leftDegrees*Uo)+(t=n.right.rightDegrees*Uo)),u=2/(a+s),o.right[0]=l,o.right[1]=0,o.right[2]=0,o.right[3]=0,o.right[4]=0,o.right[5]=u,o.right[6]=0,o.right[7]=0,o.right[8]=-(e-t)*l*.5,o.right[9]=(a-s)*u*.5,o.right[10]=r/(i-r),o.right[11]=-1,o.right[12]=0,o.right[13]=0,o.right[14]=r*i/(i-r),o.right[15]=0,o},t.prototype.getEyeFieldOfView=function(){var e=this.viewer,t=this.device,n=new ra(e.distortionCoefficients),i=e.screenLensDistance,r=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=_o*Math.atan(n.distort(r/i)),u=_o*Math.atan(n.distort(o/i)),c=_o*Math.atan(n.distort(a/i)),h=_o*Math.atan(n.distort(s/i)),d=new aa,p=new aa;return d.leftDegrees=Math.min(l,e.fov),d.rightDegrees=Math.min(u,e.fov),d.downDegrees=Math.min(c,e.fov),d.upDegrees=Math.min(h,e.fov),p.leftDegrees=d.rightDegrees,p.rightDegrees=d.leftDegrees,p.upDegrees=d.upDegrees,p.downDegrees=d.downDegrees,{left:d,right:p}},t.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new e.Quaternion;var n=t.alpha,i=t.beta,r=t.gamma;n=(n||0)*Math.PI/180,i=(i||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new e.Euler(n,i,-r,"YXZ"))},t.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},t.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,n=e.rotationRate,i=e.timeStamp/1e3,r=i-this.previousTimestampS;return r<0?(Zo("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=i)):r<=.001||r>1?(Zo("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=i)):(t&&(this.accelerometer.set(-t.x,-t.y,-t.z),n&&(Wo()?this.gyroscope.set(-n.beta,n.alpha,n.gamma):this.gyroscope.set(n.alpha,n.beta,n.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,i)),this.filter.addAccelMeasurement(this.accelerometer,i)),void(this.previousTimestampS=i))},t.prototype.onOrientationChange_=function(){this.setScreenTransform_()},t.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},t.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),"undefined"!=typeof window?window.orientation:0){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new e.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new e.Vector3(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},t}(),la=[0,0,.5,1],ua=[.5,0,.5,1],ca=function(){function t(t){var n=this;this.renderer=t,this.sensor=new sa(.98,.04,!1,!1),this.scale=1,this.cameraL=new e.PerspectiveCamera,this.cameraR=new e.PerspectiveCamera;var i=this.sensor.start();this.dispose=function(){var t=n.renderer.getSize(new e.Vector2);n.renderer.setScissor(0,0,t.width,t.height),n.renderer.setViewport(0,0,t.width,t.height),n.renderer.setScissorTest(!1),i()}}return t.prototype.render=function(t,n){var i=this.renderer.getSize(new e.Vector2);if(i.width>i.height){var r=t.autoUpdate;r&&(t.updateMatrixWorld(),t.autoUpdate=!1);var o={x:Math.round(i.width*la[0]),y:Math.round(i.height*la[1]),width:Math.round(i.width*la[2]),height:Math.round(i.height*la[3])},a={x:Math.round(i.width*ua[0]),y:Math.round(i.height*ua[1]),width:Math.round(i.width*ua[2]),height:Math.round(i.height*ua[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),n.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis((new e.Vector3).fromArray(s.left),this.scale),this.cameraR.translateOnAxis((new e.Vector3).fromArray(s.right),this.scale);var l=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=l.left.slice(),this.cameraR.projectionMatrix.elements=l.right.slice(),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(t,this.cameraR),this.renderer.setViewport(0,0,i.width,i.height),this.renderer.setScissor(0,0,i.width,i.height),this.renderer.setScissorTest(!1),r&&(t.autoUpdate=!0)}else this.renderer.render(t,n)},t.prototype.dispose=function(){},t}(),ha={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},da="undefined"!=typeof navigator&&null!==($o=ha[navigator.language.split("-")[0]])&&void 0!==$o?$o:ha.zh,pa="\n<style>\n.$id {\n all: initial;\n position: absolute;\n overflow: hidden;\n display: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.$id-modal {\n width: 100%;\n height: 332px;\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: transform;\n animation: $id-modal-fade-in 0.3s ease 1;\n}\n.$id-modal-bg {\n background: rgba(0, 0, 0, 0.75);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.$id-modal-bg-line {\n height: 1px;\n background-image: linear-gradient(\n 85deg,\n rgba(162, 177, 255, 0.3) 1%,\n rgba(120, 126, 255, 0.8) 30%,\n rgba(147, 218, 255, 0.8) 66%,\n rgba(250, 255, 184, 0.3) 92%\n );\n}\n.$id-modal-bg-wave svg {\n width: 375px;\n height: 61px;\n display: block;\n}\n.$id-modal-content {\n color: #ffffff;\n padding: 0 14px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n overflow: hidden;\n}\n.$id-modal-content-title {\n font-size: 17px;\n font-family: sans-serif;\n line-height: 18px;\n padding: 20px 0;\n font-weight: bold;\n}\n.$id-modal-content-hit {\n font-size: 14px;\n font-family: sans-serif;\n line-height: 24px;\n opacity: 0.85;\n}\n.$id-modal-content-guide {\n position: relative;\n width: 168px;\n height: 139px;\n margin: 36px auto 0;\n}\n.$id-modal-content-guide-cardboard {\n position: absolute;\n width: 100px;\n height: 82px;\n left: 68px;\n top: 57px;\n}\n.$id-modal-content-guide-cardboard-image {\n width: 100px;\n height: 82px;\n background-image: url(".concat("data:image/png;base64,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",");\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-content-guide-phone {\n position: absolute;\n width: 58px;\n height: 56px;\n left: 0;\n top: 0;\n}\n.$id-modal-content-guide-phone-move-x {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-x 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-move-y {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-y 4s cubic-bezier(0.42, 0, 0.23, 0.98) 0.5s infinite;\n}\n.$id-modal-content-guide-phone-blink {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n will-change: opacity;\n animation: $id-guide-blink 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-image {\n width: 58px;\n height: 56px;\n background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAClCAMAAADyFTYfAAAC+lBMVEUAAABISEhKSkpGRkZERERCQkJOTk45OTlBQUFQUFBSUlJUVFQ7OztYWFg/Pz8/Pz9aWlpkZGQ3NzdcXFxeXl5MTExHR0dhYWFJSUk9PT1WVlZMTEygoKBERERFRUVmZmZQUFA9PT1LS0tra2tPT09ubm5SUlI2NjZXV1czMzOpqalTU1O3t7dVVVVoaGhaWlpqamq1tbWhoaGenp6lpaWurq6ysrJZWVmjo6OgoKBUVFRdXV1cXFyvr6+0tLSwsLCrq6ubm5syMjKbm5twcHCQkJCLi4uGhobLy8uCgoJ9fX1ycnLPz894eHizs7NxcXFgYGCVlZWYmJh7e3umpqa3t7fOzs7JycnFxcWvr6+JiYl0dHRra2uSkpKNjY2IiIi4uLiUlJSsrKx3d3fDw8OHh4eQkJB9fX2dnZ2UlJR/f3++vr6RkZFzc3ODg4OioqKcnJyUlJSCgoJ4eHirq6u4uLh4eHiBgYF2dnaLi4uMjIyjo6OZmZm1tbWwsLCcnJyxsbF6enqAgICwsLC9vb26urqjo6OKioqsrKyWlpaoqKhbW1u2traCgoJ6enqZmZmbm5t+fn6JiYmgoKC0tLS4uLhmZma0tLSYmJhxcXF1dXWlpaWfn5+IiIicnJyzs7Ofn5+xsbGampq7u7vAwMCMjIxgYGChoaGgoKCQkJCOjo5vb2+RkZG1tbWOjo6Hh4d6enq1tbV8fHzGxsZubm5mZmanp6eZmZmvr6+Hh4eTk5Ojo6NwcHCenp6mpqZ6enqlpaWWlpaJiYmlpaVjY2OcnJyKiop9fX1/f3+CgoKlpaV4eHiUlJSIiIixsbGqqqqGhoZxcXGPj4+ysrK1tbWurq63t7eBgYG2tra2tralpaV+fn6enp6tra2EhISZmZmVlZWGhoZycnKhoaHV1dXX19fW1tbZ2dmrq6upqamwsLDa2trU1NSzs7Ovr6+ysrKurq6tra3S0tLGxsa9vb3Q0NDDw8PNzc3BwcG/v7/IyMi6urq4uLi1tbVYe8d+AAAA5HRSTlMA4+Pj4+Dj4OPj4+Pg4+Pg4+Pg4+Pj4OPg4OPg7+Dg4+Dj4OPg4+Dg4ODM4Mzg4+DjzPDwzMzM4MzM4ODgzMzMzMzg7uPMzMz+zMzM/swD4+DNzMz0/vz8+fXNzerMzAr58dPN9fLs7MzMzPn05My3j1w/Lff07+7MLRH77+7u7uVbJfr39PPr6eno6Ofn59W7jl9ZVxAK+ffr6dXVuHNAQCYm/Prx6uff3NLNuaePjX9zc/vq6d/f3NbUyK6rqaeNjXMR6ufc2tG9vLynp4xzWUnn0ry8t6WZemFLNxrRyMjIxGrWwvApAAASsUlEQVR42uzW12tTYRjH8aMQvLDiJDa2aimigqiQ3NjLIjVpTQutrba2FkupthXqIA6caNUaxYUXDlTcWhUVB+LeCxXUGy8EFxlocoxohokJ+Hvfk9Pn4q1By/EYwe9f8OHhd4b0P40qmXfm6vuJV8/Mk/6BVp19XD2Rd+Lq8xIprVu88kY1sEnuCYCltK1k3tbi+kXV8HLsgzpHIuFwnpHSMowA2EXVi7j2wYzA9/j3eLyioiL7lZRuYQTFxcX19fDiuNVtju+sOLio9ayUTmEERZO4lk9hoyUYDALburBXd8ORhkSF/DmN7osRTJoELcJtHzgrgqx43V1TRkYPtOFDQrZI6RFGAKuqrX9RFY1GgV2yYEgGsEqDErKcDs8bRtBcVFTEucDeXxv9FkWBhp4ZiLwNstwu6Z04gkdFPK59uDT+jRXccaG3KYntOK8sl0t/tcXPXhY2N6vahy9aw+EwsI4FRhNL4aoZZPmzpH80gtOFhdA2K9r75V+/htH0w4N6m3h0XF4/WQ5If6tVtx8VshTtpRWHvqJw1FJj6I0ELrT6c2kET1usHdqHzu2xGNNWzcwEFQlTgFb369II3lmtLS2Fire9PGaLgXvwcC9+WOLy6Li6cmkEe6ysFu69lB222aANm2sMLOISVkeuOALrVCsP2NfO6ZGIDbXOzDIoqVjUCTfwUdIvjGDCVGCTt22vskWQ7VBdL4OaOAXSMq5+18UIJkzo4B5fe85ut0cisbXnB6vW1FtAAb24i+c+hRVazp16b3UoZEfbF2YNNhCXsDQF3a+LEZyq5VjluBerQl9CqLKu/5DByEDcVMdFAR22e+D2ydraWlXbvn7Kly/Q2sp3GocIWuG4+nIxgicFKKk9fvSQy8+00xtygOXaX1+uyNV6BLcKOBbhsheX+T0uv99/bukAI7BMK16X3mLicUcEPv457oG9J6cV8Bj28rrJbrfH5Qo5dmUa0U+PS1hEWoGr9QiapqnaguNHK71uaD2rG0YZFWzqKZg61Y74+Ee4JftuvS2FVvHWXpzv9jHtlPEDM3FZgUta8UkjLbj96LpajmBLaWlTUxK7eZ3dh7wux67cTGjVJbB+TUveGs25d7Y9KS0rZdwmaC8frfR5YfXNahvNsHRc1m+9FtAYM8ag7QjelJVBq1z32Hw3qF7fZEvfXI6l4xpTLFf8Lef1mWHWlIsR5JexuHbzcrvPizxVm7JykcKlKYjeVJ+IHmOcZgSuViO4lp+fr2DR+kovuysbQZagRZ1gSStuoRsuqxkXI5jTmM/jXIzAi3w2S98sxLW5xE35iQA4Q3gtmOrMKveTFiNQsQgj4FaMIAfWJJe0qlc4boop1CS12XTdro8gr7ERXN7m9ZU4LJrVNnLYMEFLxyUvaVniFvqhNlA1GEPJvptX8vIa85K35SNANsvQnGGIYclLWjou1YGl1wJ5l2pwXYxgdh6PH3f3crsbny6vHyMAlrTCcUmb+rjEXZHUgvupqyO4Pm5cUgssRuCGFiMYm4NScVP+OIpbIG62mbi/PQIVC+6xNR4vw9osY4bDqnrFKSjRcAVvZw8acbt23f0/SLV7n6aiMAzg8SMkSkwkaPz+SPwqbbHcXAVjpRJ1cFIGAjJqTB1IR+IiyiDRBRZhkYGYuDK4ECb/AAcd/IgObscGk8YAf4Hve96ePj19r+e28eEf+OXJc889bfn04cqlK47LI+CYyYXc+dPCTRpu+uXmiNWq5XrcPx1yl169v0RhLVt5BJypcuE8x3VLSeOqbvVywWUtuO2PIHtJtMxdmzZMpREM5HLQppTLadHWvYlaxz3O+aO4wRFks1mnXX46bq10EvTnOJ2UywmUK1Rwb3bc7tLi+yzFlfuyPoLn5eLV3NVcR+WeONnBFITLWOFutjOClY8jI9kGd21ORjARn+nv7xcutLpcSYArCXAxBs3VI/g6cjlb12YxgkeZfqu1QbsWeza4XEon5V7gdsENj2D1MqVe7vLLxklQzGQyrKVAaxMqFw8a0g73OLjBEQxftrHaphFkBIt29RY4Spv25QK4wF5or903775eHx4erne7PDNe/UV/NIJCRsJY4upyj6XfHBH1imgEXJIKd3PrnyMYHCStlPuAR1C1IxgdGhpq1oIrWJu0m6OHDX25wPG4m8kjKA2SVrgja3O1KoVGcK4wREG5BGZs6BSTBMoVbahccDeJq0fwpVQi7KCdwgMaQZWq3Z6cL1BYK162SrfeoYtyrdfDhk4xlOtryeu1q0YQRYS15V6nEZgqZ6rcY7EFaDngkla3i49oTpv+iVKV67Xrb/fnj1I+KpWEO7xOI+BMxHevFSTYArR6C4JFuekXR30Xg7avL5m79COfz0d1rh2BqRoaQfEatF656lgIXcvDXH2KwZvMXfkWRaSNSHt99mGVsKb6vHyKsNDiQRMt2gUXWmA7vy645frtbjW4i9SslPt5ZrtqKBNxpVgkrea65bZebrxDt4Obo+ai3L5E7ru6NhqcZmqVR8C5xlFab7rhKegHLV2L6frtbglXtJa7fpu1U+WLo0UbT4stoNxcMtfXYrr6Z6kwty9pDIsRdcvaWW52en501Gk5oi0ka9X7V50LwVMsrFVj2LBvBrYSuDRD2tsvCKu4arl40Nq6iqX/zqMvN4q7JdxVovKxwNq5AWC1ViLDtd4WrXih/a+LrmjBjYW7mJfM1kxtsoewvle/Ijih96+N1qaXq7U+d4O4d77lbbfr28ZMVyqVu3eLo6FycYgprTrE2rvcHAl0q8awwlgS3zPm3gJhKbco5zhJZ24GN0fRSgJclNvJp4hWbiztfs/bdulQ2J7ncimMRc5w/Cl45QIradGCm/r61VpwY+EuUbXc7rgxYwR1adIiA5RD2IJg4YXWRbCdlKu3cKPB3SDuCmO53NptbhZSaIGlXOSc4hwIfhUiVl2u/hQRKBftxjIG90J7yOVSdLO+V7CSHpfe0/61HN0GD139UwS0/2r3u32jfTamtkBQR9Va1yv9OS1yyOWs0oa2EFgutMKN69xV+0ajLbxVxXqRZrUUWs6BQwc4vb29x/zLjY+FNjQFcNHuF7uFGdoCtOAOuFyEVheLkFa8kv2cw+Rt99tyF48rWOHaM5enW4ZUtJ5XqGJVWkiBFa5kXz3OG/jPQbXcFi5Z6W/CmHmxetQzVKp+wMLaXq1FjnK6u7t9beLlRrTCjcG1BxmduhW9WnFKUC7ScMpm1Q5IStZWbrfN3nr8LahyKU+auXLRNcYkvRRgBRRBraBKudB6te7rdlyA9+zdw+nq6iKtOhaEGzvub+JGFFNzXEyWmYob3KyTIl6tVgoruOJ1OXiwhRs3ceViLu1Ci6fLST2tgkILbwPqsNA6qkS04FJ22uzYDe4zx40oNeImnwXt70CCdvVeEXAhVVzyco6PjY097rpx5PXGb+JGBC7RzRxYHLHQpjQLK6T7odVQaD2oSKHl9Nx/tGcXx223xGMAF3sNbdZz+lxILfRvc2f2clMUhvGNkzFucOPOrTtD4kJcupArc8oQURQyJZI5U5nKzI1ZQiFTpkLxDyhxZZ91bHPmsbzvWmftd6/1rGWT4zjP58Plr6ffftdwPptHyylI0Al7FVQOkxrczLjLuC+clRZMiI/ZPPCE4dNleX1ne0qCsBVKu4qRodCuKdahDIogY6sQz1iNC8L+iratNNvWa7bCyTKWgS/x6FHTxfrbGAElVMaFXg0pzoOu8Hh5sFYAkTZPjkq/Ca1pV1/oUruwLyiZBdArLLc+p8MLukocDQyqtKuvn2mZcOdskFbW2hzTpxVnXVrsVXARVXBz2o4dO2pc2y6vYUAbecBCT5eHK6hxXk3q4BZBg7hsrsFFUhOcXPS7MRZmgQ1qEFjAfFCkzUk5BpfL5UctZoHg4sYAcB1UjxaXMNAAaAG3r22XUAO8uIShBbCbhUEA5cooAFyXlH5Z3DZZtjQh2rzdAmV40EoKuEIbHVtC6k8EwQzj2nTr1q1zlvVPBjLuUG438nAFaIWzWC5uuFxaO2froEhrFZDhJbCUo1k2RXBjswAONeEhS9+wj/Hi4DKpZkVcgXVwF2XZhIRoPdzQydZDRVyeswaUvrv4tIWHS6wFUEb1abvl6Tg7y7Yl5uNfcvcPDgpdveATBr06xmK1MGQtrgDTk5bNTwZKuxo0RGtIi7wwDNwDo88ptIEFoQ19wehymrUubEgSXa7gFijNX9ADKBZPX3k8VtjGwJAVWMHtzem4lF0wuEM0buR+QzyAjUFeLgsLWxigrcdwurA4DDSt4FK5SycRLtMyrmxiJNE5i4fFPMFezbqAtUpwzhpS+sXpROY+SDSuaVeqRVzoVWhttbKCAS3H2xigr4Y155VejQq7s2xZYnCHcLsKaC0qDFrvrAiPWM4JHuDk4oSc9XCn09Z8JeNyt0aGHl6gWLjf8EB9WpPgZlY4Jb4Gkm5MeyPhmJ+5SVUqkE7gMiZ2pEFnXVx8xAqkdnSBB5zKbLodu5zoEK2RAZ+uQoC2ZDebc3q0QupW6wwDD/f2UqFNzA80kQxQbWgWdI01i7QOKEjroIoH0GyHTVzt03tJPUzLuEpooyeFAmVx0KKySItLwi8esJy348Tdb+inGJaeTXzcVHCjqy1IAL2GN97uoaZQqkMLzW6a/vTVK/qpgBOrkjxsLuGq1HRqElEWeONDNu4Bbr2DyrZftPTZM6LN7jpvHCJYIwM8XRYXDouS6GERcUMS4OgSCV4+o7zqf2A+QyJu6gorEgCtkCItYMITJmMLcEWCZy9f0z/9y07yyhDBNajIG7mMKXMWUIUWQE2sBNlLerPBy2cbtu1MMJp2GLkbmAX0HTvSeLi4L4gfaULWigT0NiTCXWckwGjaYeRuoNnwaiuBBQx79QetA+rhbjrycjTlxxuRAHE1r0pTC+ntEb1eQ6Or3IKKJDYLOs1YoF819eMOSBBqNw19XNfrF8XSd6zYdh6uR4q7rsr5/of0m7FAgiBuH3LXoS2bBbkHfKAJWOClSGtJhfbo7NHfGHb1FZAAwrTa3RLa6NE2uB5gsRoXeiUJFq/WL/L6fucMSoBhWi2DsMIuJnKm4V+5tYCKHuCeq7Jn3Zf3nFEgQSTaBZah0G35p0q4mUXa+AJW33QfnX3oC9PuAgni0bR9VKry5cs5gQGog/uLYv2LLju3RILX+j1e74+BBCW4xEsyWFq49o59DOrhuq0WyoViWYKl9GYswl1wCiT4dZiWZaB2cdDG14Tf23hTKrgvODrls36R1+Qt25M/Dbug2xUFOLEjjaMBbLhKlgTG7Tx98rt3THvsNEpQHi5XP2qOsBxZwkqPto6uYIGwVvaO+qpf5DUeJPgjXJUqBxeURVy53wiLgLPr9u6PGvZQVILyMC3jmnbLP60TWtxwSWBykQSHvn5l2o0swV/ipkoFL2PgIC6o3vwC0CJuu0UL9Hu8vu4iCf4qxGrc7QwiiAW61PiaAFPLlfZC/7H6RV6H97MEDcFN1W9/WifBy0NcwDofmTXiE9NqCRqDO0CpFM40MV6oFou1C1ibRatHjGDahVtJgkZE0w5QqXJoQVko1y3Wpc0lGPOBaceJBA1ql93NSfHyCD9Uil512j97HfnM7/Ea8Wn96UkNQpV2U6V0tUAaXW7jNwYswYxdL94y7VqSoKFhWiMDXnUBaHBwoQT9Prx4Szm3TyRodLupoMJHH5LyK+9es8+l/CKvDytukQQND8FSlFIOreGM0/omiATVapVo12xd0jhExKW5294RAc40RVoftY47cd2LKtMOFwkajzuAeVOlIhfJeKahLyiWJRhLr3Ai2BVzQYKG4lLYXfg8HCSI33a2nTH5OaVWmzYHJGhsdLmDuN2exAonBTzZIuzEUS+ec0ZMBQn+Ea5KlXNI4C/UAO/k6hKwBptJgn8fgmVckgFXML9YEEFLUKMvlqAp0eWyDEAL65dLqyWo6RekTZ2XNCsD6rgpTK/4p3WcrrPH1ghWJGhONC3JoGAkRHH1JKjpNEcCxOV2I8MWyiUJqNVajSVodgiWcVMVLVeSS1ATCZoc88qjVKlSc3kSLJ5c5V6rTZQAcVkGbBeuOkgCgq2CBM3MoFwGr1tvim2aMpZZqyBBc3N1UF2GX90j9SQJKCBB83OfYAcNVjFcSrvzo95WOShB83Ody5V24fqzO0nAUSzB/89Nph38VqmuOa3gticJOP9fApuHTDt4nFJ7AXdPC0lg8/gq8y5XapSrgpUgbQ0JpF5u97hS1fOC26nlJJA8Yd41Sg3fU4dtRQkKeXSN3jo4Qqm0397OmyZOGatoDrScBIWM3DFn5kXi1ZyqRSUoZtKOa1vWKArztqgEnhIHty4f9/btuEstKwGkxf+XuCT5CbTFnFRuxktuAAAAAElFTkSuQmCC",');\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-close {\n position: absolute;\n top: 20px;\n right: 14px;\n width: 14px;\n height: 14px;\n}\n.$id-modal-close svg {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n@keyframes $id-modal-fade-in {\n 0% { transform: translate3d(0, 100%, 0); opacity: 0.5; }\n 100% { transform: translate3d(0, 0, 0); opacity: 1; }\n}\n@keyframes $id-guide-blink {\n 0% { opacity: 0; }\n 7% { opacity: 0; }\n 12% { opacity: 1; }\n 29% { opacity: 1; }\n 34% { opacity: 0.3; }\n 39% { opacity: 1; }\n 44% { opacity: 0.3; }\n 49% { opacity: 1; }\n 80% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes $id-guide-move-x {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(70px, 0, 0); }\n 100% { transform: translate3d(70px, 0, 0); }\n}\n@keyframes $id-guide-move-y {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(0, 58px, 0); }\n 100% { transform: translate3d(0, 58px, 0); }\n}\n@media screen and (orientation: portrait) {\n .$id {\n display: block;\n }\n}\n</style>\n<div class="$id-modal">\n <div class="$id-modal-bg">\n <div class="$id-modal-bg-line"></div>\n <div class="$id-modal-bg-wave">\n <svg width="375" height="61" viewBox="0 0 375 61" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <linearGradient x1="0" y1="0%" x2="0" y2="100%" id="$id-2y6_dj_hgp">\n <stop stop-color="#8598FF" stop-opacity="0.15" offset="0%"></stop>\n <stop stop-color="#000" stop-opacity="0" offset="100%"></stop>\n </linearGradient>\n </defs>\n <path transform="translate(187.5, 30.5) scale(-1, 1) translate(-187.5, -30.5)" fill="url(#$id-2y6_dj_hgp)" d="\nM0,1\nC83.001,1.706 140.146,4.164 171.435,8.374\nC218.369,14.688 253.467,26.308 273.002,33\nC292.536,39.691323.501,51 343.709,56\nC357.182,59.333 367.612,61 375,61\nL375,0\nL0,0\nL0,1\nZ\n"></path>\n </svg>\n </div>\n </div>\n <div class="$id-modal-content">\n <div class="$id-modal-content-title">').concat(da.TITLE,'</div>\n <div class="$id-modal-content-hit">').concat(da.HIT,'</div>\n <div class="$id-modal-content-guide">\n <div class="$id-modal-content-guide-phone">\n <div class="$id-modal-content-guide-phone-move-x">\n <div class="$id-modal-content-guide-phone-move-y">\n <div class="$id-modal-content-guide-phone-blink">\n <div class="$id-modal-content-guide-phone-image"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="$id-modal-content-guide-cardboard">\n <div class="$id-modal-content-guide-cardboard-image"></div>\n </div>\n </div>\n </div>\n <div class="$id-modal-close">\n <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70%" id="$id-ho0itsc4p9">\n <stop stop-color="#FFF" stop-opacity="0.75" offset="0%"></stop>\n <stop stop-color="#FFF" stop-opacity="0.22" offset="100%"></stop>\n </radialGradient>\n </defs>\n <path transform="translate(-3, -3)" fill="url(#$id-ho0itsc4p9)" fill-rule="nonzero" d="\nM16.791,3.198\nC17.044,3.438 17.067,3.814 16.860,4.080\nL16.791,4.156\nL12.144,9.331\nC11.803,9.711 11.803,10.288 12.144,10.668\nL16.791,15.843\nC17.044,16.084 17.067,16.460 16.860,16.725\nL16.791,16.801\nC16.538,17.042 16.142,17.063 15.864,16.867\nL15.784,16.801\nL10.000,11.250\nL4.215,16.801\nL4.135,16.867\nC3.857,17.063 3.461,17.042 3.208,16.801\nL3.208,16.801\nL3.139,16.725\nC2.932,16.460 2.955,16.084 3.208,15.843\nL3.208,15.843\nL7.855,10.668\nC8.196,10.288 8.196,9.711 7.855,9.331\nL7.855,9.331\nL3.208,4.156\nL3.139,4.080\nC2.932,3.814 2.955,3.438 3.208,3.198\nC3.486,2.933 3.937,2.933 4.215,3.198\nL4.215,3.198 L9.999,8.749\nL15.784,3.198\nC16.062,2.933 16.513,2.933 16.791,3.198\nZ\n"></path>\n </svg>\n </div>\n</div>\n');var fa=new e.CircleBufferGeometry(.12,16),Aa=function(t){function n(){var n=t.call(this)||this;n.progress=0,n.opacity=0,n.loading=!1,n.current=!1,n.disabled=!1,n.currentMotion=new lr({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),n.opacityMotion=new lr({opacity:0}),n.loadingMotion=new lr({opacity:0}),n.disableMotion=new lr({opacity:0});var i={blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return n.hitTestMesh=new e.Mesh(fa,new e.MeshBasicMaterial(ne(ne({},i),{color:0,opacity:0}))),n.hitTestMesh.scale.set(1.5,1.5,1.5),n.ringMesh=new e.Mesh(fa,new e.ShaderMaterial(ne(ne({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\nuniform float opacity;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n",uniforms:{opacity:{value:0}}}))),n.panoMesh=new e.Mesh(fa,new e.ShaderMaterial(ne(ne({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),n.add(n.hitTestMesh),n.add(n.ringMesh),n.add(n.panoMesh),n.renderOrder=1e4,n.needsRender=!0,n}return te(n,t),n.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},30).catch(le))},n.prototype.setCurrent=function(e){if(this.current!==e){if(e){var t=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(t,1500).catch(le)}else t=[{progress:0,value:ne({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}],this.currentMotion.setKeyframes(t,200).catch(le);this.current=e}},n.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(le):this.loadingMotion.set({opacity:0},0).catch(le),this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.needsRender=!0)},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(le),this.needsRender=!0)},n.prototype.tap=function(){return Promise.resolve()},n.prototype.updateTime=function(e,t){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var n=this.opacityMotion.value.opacity,i=this.currentMotion.value,r=i.ringScale,o=i.ringOpacity,a=i.circleFade,s=i.circleOpacity,l=i.circleScale;this.ringMesh.scale.set(r,1,r),this.ringMesh.material.uniforms.opacity.value=o*n,this.panoMesh.material.uniforms.opacity.value=n,this.panoMesh.material.uniforms.circleOpacity.value=s,this.panoMesh.material.uniforms.circleScale.value=l,this.panoMesh.material.uniforms.circleFade.value=a,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0},n.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),va=function(t){function n(e){var i=this,r=n.parseArgs(e);(i=t.call(this,r)||this).cardboard=new ca(i.renderer);var o,a,s,l=(a=function(e){for(var t=1,n=document.getElementsByTagName("meta"),i=0;i<n.length;i++){var r=n[i];if("viewport"===r.getAttribute("name")){var o=(r.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(t=Number(o[1])),isNaN(t)&&(t=1)}}return pa.replace(/\n/g," ").replace(/\ +/g," ").replace(/\$id/g,e).replace(/(\d+)px/g,(function(e,n){return function(e){return Math.floor(e*t)+"px"}(Number(n))}))}(o="five_vr_helper_"+Ii()),(s=document.createElement("div")).className=o,s.innerHTML=a,s);i.helperElement=l;var u=new zr(l);return i.element.parentNode&&(i.element.parentNode.insertBefore(l,i.element),i.setHelperElementSize(),u.on("tap",(function(){return i.emit("vrWantsToExit")}))),i.destroyHelper=function(){u.destroy(),l.parentNode&&l.parentNode.removeChild(l),delete i.helperElement},i}return te(n,t),n.parseArgs=function(e){var n=ne(ne({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,n)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var e=0,n=this.panoMeshes;e<n.length;e++){var i=n[e];this.helper.remove(i),i.dispose()}this.panoMeshes.length=0},n.prototype.isReady=function(){return!1},n.prototype.updateRenderSize=function(){this.needsRender=!0,this.setHelperElementSize()},n.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),n=0,i=this.work.observers;n<i.length;n++){var r=i[n],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&(this.helper.remove(o),o.setOpacity(0)))}},n.prototype.updatePanoMeshes=function(){var e=this;this.panoMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoMeshes.length=0,this.panoMeshHitTested={};for(var t=0;t<this.work.observers.length;t++){var n=this.work.observers[t],i=new Aa;i.name="panoSphere_".concat(this.work.workCode,"_").concat(t),i.position.copy(n.position),i.needsRender=!0,this.panoMeshes[t]=i}this.updatePanoMeshesVisible()},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u=[],c=2;c<arguments.length;c++)u[c-2]=arguments[c];if(!this.destroyed){var h=this.currentPanoIndex;this.needsRender=!0;var d={},p={};if(!1===this.locationMotion.ended){this.locationMotion.update(t);var f=this.locationMotion.getKeyFrameSegment(t),A=f[0],v=f[1],m=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(v),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),x=m.position,w=g.position,M=this.locationMotion.value.count-v.value.count+1;d.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,d.useBlackTransition="instant"===g.effect,g.panoPicture&&(M<1?m.panoPicture&&(d.pano0=m.panoPicture):d.pano0=g.panoPicture,d.pano1=g.panoPicture),"fade"===g.effect&&(d.pano0&&m.panoPicture&&(d.pano0={map:d.pano0.map,luminanceMap:d.pano0.luminanceMap,matrix:m.panoPicture.matrix.clone().setPosition(g.position)}),x.copy(w)),d.progress=M,p.distance=this.locationMotion.value.distance,p.offset=new e.Vector3(x.x+(w.x-x.x)*M,x.y+(w.y-x.y)*M,x.z+(w.z-x.z)*M);for(var E=[],C=[],I=0,S=this.locationMotion.keyframes;I<S.length;I++){var B=S[I],T=B.key,P=B.progress;void 0!==T&&(E.push(T),P>=this.locationMotion.progress&&C.push(T))}for(var R=0,L=Object.keys(this.panoResources);R<L.length;R++){var k=L[R];if(!(C.indexOf(k)>=0)){var O=this.panoResources[k];if(O.panoPicture){var F=O.panoPicture.map;if(F){if(F===(null===(i=d.pano0)||void 0===i?void 0:i.map))continue;if(F===(null===(r=d.pano1)||void 0===r?void 0:r.map))continue;F.dispose(),O.panoPicture=null}}E.indexOf(k)>=0||delete this.panoResources[k]}}this.currentPanoIndex=M<.5?m.panoIndex:g.panoIndex,this.emit("movingToPano",b.panoIndex,y.panoIndex,this.locationMotion.progress)}!1===Vr(d)&&((null===(o=d.pano0)||void 0===o?void 0:o.map)&&d.pano0.map instanceof wt&&!d.pano0.map.cubeRenderTarget&&(d.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=d.pano0)||void 0===a?void 0:a.luminanceMap)&&d.pano0.luminanceMap instanceof wt&&!d.pano0.luminanceMap.cubeRenderTarget&&(d.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=d.pano1)||void 0===s?void 0:s.map)&&d.pano1.map instanceof wt&&!d.pano1.map.cubeRenderTarget&&(d.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=d.pano1)||void 0===l?void 0:l.luminanceMap)&&d.pano1.luminanceMap instanceof wt&&!d.pano1.luminanceMap.cubeRenderTarget&&(d.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(d)),p.offset&&this.camera.position.copy(p.offset),this.currentPanoIndex!==h&&this.updatePanoMeshesVisible();var D=this.camera.pose.longitude,Q=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.updateMatrixWorld(),this.camera.computePose();for(var N=0,V=this.work.observers[this.currentPanoIndex].visibleNodes.concat(this.currentPanoIndex);N<V.length;N++){var U=V[N],_=this.work.observers[U],z=this.panoMeshes[U];if(_.loadable||_.active){var q=z.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);q<.05?z.setOpacity(0):z.setOpacity(Gt(1.5/q,0,1)),this.currentPanoIndex===U&&z.setOpacity(0),z.lookAt(this.camera.position)}else z.setOpacity(0)}var H=this.intersect(t);for(U=0;U<this.work.observers.length;U++)null==(z=this.panoMeshes[U])||z.setCurrent(z===H);for(U=0;U<this.work.observers.length;U++)(z=this.panoMeshes[U])&&z.updateTime&&z.updateTime(t,n);D===this.camera.pose.longitude&&Q===this.camera.pose.latitude||(this.cameraMotion.set(hn(this.camera.pose,["longitude","latitude"]),0).catch(le),this.emit("cameraDirectionUpdate",hn(this.camera.pose,["longitude","latitude"]),!0),this.emit("cameraUpdate",Ur(hn(this.camera.pose,["longitude","latitude","fov","offset","distance"])),!0))}},n.prototype.render=function(){this.cardboard.render(this.scene,this.camera)},n.prototype.setCamera=function(e){void 0===e&&(e={})},n.prototype.destroyHelper=function(){},n.prototype.setHelperElementSize=function(){if(this.helperElement){var t=new e.Vector2(this.element.offsetWidth,this.element.offsetHeight),n=t.x*this.scissor.left,i=t.y*(1-this.scissor.bottom-this.scissor.height),r=t.x*this.scissor.width,o=t.y*this.scissor.height;this.helperElement.style.marginLeft=n+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=r+"px",this.helperElement.style.height=o+"px"}},n.prototype.intersect=function(t){var n;if(!1===this.locationMotion.ended)return this.intersectMesh.visible=!1,delete this.activePanoMesh,void delete this.activeTime;if(this.activePanoMesh&&this.activeTime&&t-this.activeTime>1500){var i=this.activePanoMesh;return(u=this.panoMeshes.indexOf(i))>=0&&this.moveToPano(u,{},!0),delete this.activePanoMesh,delete this.activeTime,i}for(var r=this.camera.getDirection(new e.Vector3),o=new e.Raycaster(this.camera.position,r),a=void 0,s=[],l=this.work.observers[this.currentPanoIndex].visibleNodes,u=0;u<this.work.observers.length;u++){var c=this.panoMeshes[u];if(-1!==l.indexOf(u)){var h=o.intersectObject(null!==(n=c.hitTestMesh)&&void 0!==n?n:c,!0)[0];h&&s.push({panoMesh:c,intersection:h})}}var d=s.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];if(d?(a=d.intersection,this.activePanoMesh!==d.panoMesh&&(this.activePanoMesh=d.panoMesh,this.activeTime=t),this.intersectMesh.position.copy(d.panoMesh.position),this.intersectMesh.lookAt(this.camera.position),this.intersectMesh.visible=!1):(this.activePanoMesh=void 0,this.activeTime=void 0),!a)if((a=this.model.intersectRaycaster(o)[0])&&a.face){var p=a.face.normal,f=new e.Quaternion;f.setFromUnitVectors(new e.Vector3(0,0,1),p),this.intersectMesh.quaternion.copy(f);var A=p.clone().multiplyScalar(.05),v=a.point.clone().add(A);this.intersectMesh.position.copy(v),this.intersectMesh.visible=!0,this.emit("intersectionOnModelUpdate",a,this.intersectMesh)}else this.intersectMesh.visible=!1,this.emit("intersectionHidden");return null==d?void 0:d.panoMesh},n.prototype.onPanGesture=function(){},n.prototype.onTapGesture=function(){},n.prototype.onPinchGesture=function(){},n.prototype.onMouseMove=function(){},n.prototype.onMouseOut=function(){},n}(Vo),ma=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).currentPanoIndex=a.initial[0],o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(n,t),n.parseArgs=function(e){return t.parseArgs.call(this,e)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.locationMotion.dispose()},n.prototype.isReady=function(){return!1!==this.locationMotion.ended},n.prototype.updateWork=function(e,t,n,i,r){this.work=e,this.currentPanoIndex=t,this.hideIntersectMesh();var o={duration:0,longitude:n.longitude,latitude:n.latitude,fov:n.fov};return this.moveToPano(t,o,r),!0},n.prototype.updateTime=function(t,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(!this.destroyed){var o={},a={};if(!this.locationMotion.ended){this.locationMotion.update(t),o.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,a.distance=this.locationMotion.value.distance,a.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var s=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=Nr(this.work.observers,(function(e){return e.position.distanceTo(s)}));this.currentPanoIndex=this.work.observers.indexOf(l)}this.cameraMotion.ended||(this.cameraMotion.update(t),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),Vr(o)||this.model.setMaterial(o),Vr(a)||this.setCamera(a)}},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),o()},moveCancelCallback:function(){var e=r.currentPanoIndex,t={longitude:r.camera.pose.longitude,latitude:r.camera.pose.latitude,fov:r.camera.pose.fov,offset:r.camera.pose.offset.clone(),distance:r.camera.pose.distance};r.emit("initAnimationEnded",e,t,r.userAction),o()}},i)}))},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,offset:new e.Vector3(n.value.x,n.value.y,n.value.z),distance:n.value.distance}},n.prototype.moveToPano=function(e,t,n){void 0===t&&(t={});var i=this.work.observers[e];i&&this.moveToPosition(i.position,t,n)},n.prototype.moveToPosition=function(t,n,i){var r,o,a,s=this;void 0===n&&(n={}),this.userAction=i;for(var l=ce(),u=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z).distanceTo(t),c=this.locationMotion.getProgressVelocity(l),h=0,d=1;d<this.locationMotion.keyframes.length;d++){var p=this.locationMotion.keyframes[d-1].value,f=p.x,A=p.y,v=p.z,m=this.locationMotion.keyframes[d].value,g=m.x,y=m.y,b=m.z;h+=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-A,2)+Math.pow(b-v,2))}var x=0===u?0:c*h/u,w=this.calculateMovingDuration(n.duration,u),M={x:t.x,y:t.y,z:t.z,distance:0,modelAlpha:1,perspToOrtho:0,orthoDistance:1},E={longitude:n.longitude,latitude:n.latitude,fov:n.fov},C={longitude:null!==(r=E.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(o=E.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=E.fov)&&void 0!==a?a:this.camera.pose.fov,offset:t.clone(),distance:0},I=Nr(this.work.observers,(function(e){return e.position.distanceTo(t)})),S=this.work.observers.indexOf(I);this.emit("moveToPano",S,this.userAction),n.moveStartCallback&&n.moveStartCallback(S,C),this.emit("panoWillArrive",S,C,this.userAction),this.cameraMotion.set(E,w).catch(le),this.locationMotion.set(M,w,x).then((function(){var e=Ur(s.camera.pose);n.moveEndCallback&&n.moveEndCallback(S,e),s.emit("panoArrived",S,e,s.userAction)}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),s.emit("moveToPanoCanceled",S)}))},n.prototype.onTapGesture=function(t){var n=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var i=this.relativeClientPosition(t.center),r=new e.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.model.intersectRaycaster(r)[0];if(o&&o.face){var a=o.face.normal,s=o.point;if(new e.Vector3(0,1,0).angleTo(a)>Math.PI/3){var l=this.camera.position.clone().setY(s.y),u=s.clone().sub(l).setLength(.3),c=s.clone().sub(u);r.set(c,new e.Vector3(0,-1,0)),o=this.model.intersectRaycaster(r)[0]}}if(o){var h=o.point.clone(),d=Nr(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-h.y)<1})),(function(e){return e.standingPosition.distanceTo(h)}));if(d)return h.y=d.position.y,void this.moveToPosition(h,{},!0)}this.cameraBounce()}}},n}(po);const ga=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),ya=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f");var ba=Object.assign({opacity:new e.Uniform(1),scale:new e.Uniform(13.1),panoMap:new e.Uniform(null),panoDisplacementMap:new e.Uniform(null),panoPosition:new e.Uniform(new e.Vector3),panoMatrix:new e.Uniform(new e.Matrix4)},{emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),xa=new e.SphereBufferGeometry(.01,128,128),wa=function(){function t(e){void 0===e&&(e={}),this.textureLoader=new Mt({allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe}),this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return t.prototype.setAllowHosts=function(e){this.allowHosts=e,this.textureLoader.setAllowHosts(e)},t.prototype.setRequestProxy=function(e){this.requestProxy=e,this.textureLoader.setRequestProxy(e)},t.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e,this.textureLoader.setNetworkSubscribe(e)},t.prototype.load=function(t,n,i,r,o,a,s,l,u){var c=[0,0],h=function(e,t){c[t]=e,l(.8*c[0]+.2*c[1])},d=[this.textureLoader.loadTexture(t,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,1)}),u),this.textureLoader.loadCubeTexture(n,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,0)}),u)];return Promise.all(d).then((function(t){var n=t[0],i=t[1],s=function(t,n,i,r){var o=new e.ShaderMaterial({side:e.BackSide,vertexShader:ga,fragmentShader:ya,transparent:!0,uniforms:e.UniformsUtils.clone(ba)}),a=n;return a.needsUpdate=!0,a.minFilter=e.LinearFilter,a.magFilter=e.LinearFilter,t.needsUpdate=!0,t.minFilter=e.LinearFilter,t.magFilter=e.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=a,o.uniforms.panoDisplacementMap.value=t,o.uniforms.panoPosition.value=i,o.uniforms.panoMatrix.value=r,Object.assign(new e.Mesh(xa,o),{frustumCulled:!1,dispose:function(){this.material instanceof e.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(n.body,i.body,r,o),l={body:s,meta:ie([n.meta],i.meta,!0)};return a(l),l})).catch((function(e){for(var t=0,n=d;t<n.length;t++)n[t].then((function(e){return e.body.dispose()})).catch(le);return s(e),Promise.reject(e)}))},t}(),Ma=new e.Vector3(-1,1,1),Ea=function(t){function n(i){var r,o,a,s,l,u=this,c=n.parseArgs(i);return(u=t.call(this,c)||this).currentPanoIndex=c.initial[0],u.forwardPanoIndex=null,u.maxAccessibleDistance=c.maxAccessibleDistance,u.panoTapTriggerRadius=c.panoTapTriggerRadius,u.panoCircleMeshCreator=c.panoCircleMeshCreator,u.panoModelGroup=new e.Group,u.panoModelGroup.name="panoModels",u.scene.add(u.panoModelGroup),u.panoMeshes=[],u.updatePanoMeshes(),u.helper.remove(u.intersectMesh),u.locationMotion=new lr({count:0,distance:u.camera.pose.distance,modelAlpha:null!==(o=null===(r=u.model.getMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,perspToOrtho:u.camera.perspToOrtho.x,orthoDistance:u.camera.orthoDistance}),u.panoResources={},u.panoResources[u.locationMotion.keyframes[0].key=u.locationMotion.keyframes[1].key=Ii()]={panoIndex:u.currentPanoIndex,workCode:u.work.workCode,matrix:null!==(l=null===(s=null===(a=u.model.getMaterial())||void 0===a?void 0:a.pano1)||void 0===s?void 0:s.matrix)&&void 0!==l?l:new e.Matrix4,position:u.camera.pose.offset.clone(),effect:"fly"},u.depthTextureLoader=new wa({allowHosts:u.work.allowHosts,requestProxy:u.requestProxy,networkSubscribe:u.networkSubscribe}),u}return te(n,t),n.parseArgs=function(e){var n,i,r,o=t.parseArgs.call(this,e);return ne(ne({},o),{maxAccessibleDistance:null!==(n=e.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=e.panoTapTriggerRadius)&&void 0!==i?i:1,panoCircleMeshCreator:null!==(r=e.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new hr}})},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){var e,n=this;if(t.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.model&&(this.model.visible=!0),this.panoModelGroup){for(var i=0,r=this.panoModelGroup.children;i<r.length;i++){var o=r[i];"function"==typeof o.dispose&&o.dispose()}this.scene.remove(this.panoModelGroup)}this.panoMeshes&&(this.panoMeshes.forEach((function(e){n.helper.remove(e),e.dispose()})),this.panoMeshes.length=0);for(var a=null!==(e=this.model.getMaterial())&&void 0!==e?e:{},s=a.pano0,l=a.pano1,u=0,c=Object.keys(this.panoResources);u<c.length;u++){var h=c[u],d=this.panoResources[h];d.panoModel&&d.panoModel.material.uniforms.panoMap.value!==(null==s?void 0:s.map)&&d.panoModel.material.uniforms.panoMap.value!==(null==l?void 0:l.map)&&(this.panoModelGroup.remove(d.panoModel),d.panoModel.material.uniforms.panoMap.value.dispose(),d.panoModel.dispose(),delete d.panoModel),delete this.panoResources[h]}this.interiaMovement=!1},n.prototype.isReady=function(){return!1===this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.currentPanoIndex=t,this.depthTextureLoader.setAllowHosts(this.work.allowHosts),this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:i,longitude:n.longitude,latitude:n.latitude,fov:n.fov},r),!0},n.prototype.updateTime=function(t,n){for(var i,r,o=this,a=[],s=2;s<arguments.length;s++)a[s-2]=arguments[s];if(!this.destroyed){var l=this.currentPanoIndex,u={},c={},h=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),d=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),p=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var f=this.locationMotion.getKeyFrameSegment(t),A=f[0],v=f[1],m=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(v),y=(new e.Vector3).copy(m.position),b=(new e.Vector3).copy(g.position),x=this.locationMotion.value.count-v.value.count+1;u.progress=x,u.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance;for(var w=0,M=this.panoModelGroup.children;w<M.length;w++){var E=M[w];E.visible=E===m.panoModel||E===g.panoModel}m.panoModel&&(m.panoModel.material.uniforms.opacity.value=1-x,m.panoModel.material.depthTest=0!==x),g.panoModel&&(g.panoModel.material.uniforms.opacity.value=x,g.panoModel.material.depthTest=1!==x),g.panoModel&&(x<1?m.panoModel&&(u.pano0={map:m.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:m.matrix}):u.pano0={map:g.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:g.matrix},u.pano1={map:g.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:g.matrix}),p=u.useBlackTransition="instant"===g.effect||"montage"===g.effect,"fade"!==g.effect&&"montage"!==g.effect||(u.pano0&&(u.pano0={map:u.pano0.map,luminanceMap:null,matrix:m.matrix.clone().setPosition(g.position)}),y.copy(b)),c.distance=this.locationMotion.value.distance,c.offset=new e.Vector3(y.x+(b.x-y.x)*x,y.y+(b.y-y.y)*x,y.z+(b.z-y.z)*x);for(var C=[],I=[],S=0,B=this.locationMotion.keyframes;S<B.length;S++){var T=B[S],P=T.key,R=T.progress;void 0!==P&&(C.push(P),R>=this.locationMotion.progress&&I.push(P))}for(var L=0,k=Object.keys(this.panoResources);L<k.length;L++){var O=k[L];if(!(I.indexOf(O)>=0)){var F=this.panoResources[O];if(F.panoModel){if(F.panoModel.material.uniforms.panoMap.value===(null===(i=u.pano0)||void 0===i?void 0:i.map))continue;if(F.panoModel.material.uniforms.panoMap.value===(null===(r=u.pano1)||void 0===r?void 0:r.map))continue;this.panoModelGroup.remove(F.panoModel),F.panoModel.material.uniforms.panoMap.value.dispose(),F.panoModel.dispose(),delete F.panoModel}C.indexOf(O)>=0||delete this.panoResources[O]}}m.workCode===g.workCode?this.currentPanoIndex=x<.5?m.panoIndex:g.panoIndex:this.currentPanoIndex=g.panoIndex,this.emit("movingToPano",d.panoIndex,h.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),c.longitude=this.cameraMotion.value.longitude,c.latitude=this.cameraMotion.value.latitude,c.fov=this.cameraMotion.value.fov),!1===Vr(u)&&this.model.setMaterial(u);var D=!1;if(!1===Vr(c)&&(this.setCamera(c),D=!0),this.currentPanoIndex!==l&&(this.updatePanoMeshesVisible(),D=!0),D&&(Y=this.work.observers[this.currentPanoIndex])){var Q=Rt(this.camera.pose).normalize(),N=new e.Raycaster(Y.position,Q);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(N)}if(this.camera.pose.distance>.1||p){var V=this.work.observers[this.currentPanoIndex];if(V)for(var U=0,_=j=V.visibleNodes.concat(this.currentPanoIndex);U<_.length;U++){var z=_[U];(X=this.panoMeshes[z])&&X.setOpacity(0)}}else{var q=this.work.observers[this.currentPanoIndex];if(q){var H=Nr(q.visibleNodes,(function(e){return q.standingPosition.distanceTo(o.work.observers[e].standingPosition)}),!0)[1];H=Gt(H,2.5,1/0);for(var j=q.visibleNodes.concat(this.currentPanoIndex),K=this.camera.getDirection(new e.Vector3),G=0,W=j;G<W.length;G++){z=W[G];var X,Y=this.work.observers[z];if(X=this.panoMeshes[z])if(Y.loadable||Y.active){var Z=X.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);X.setCurrent(!X.loading&&0===X.progress&&this.forwardPanoIndex===z),X.setOpacity(Z<.01?0:Gt(H/Z*1.2,.65,.98));var J=this.camera.position.clone().setY(X.position.y);if(Q=(new e.Vector3).copy(X.position).sub(J).normalize(),z===this.currentPanoIndex){var $=Gt((.5-J.distanceTo(X.position))/.5,0,1);Q.multiplyScalar(1-$).add(K.clone().multiplyScalar($))}Q.length()>0&&X.quaternion.setFromEuler(new e.Euler(0,Math.atan2(Q.x,Q.z),0)),X.updateTime&&X.updateTime(t,n)}else X.setOpacity(0)}}}}},n.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],n=this.panoResourceFromLocationMotionKeyframe(t),i=this.work.observers[n.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:i?i.position.clone():this.camera.position.clone(),distance:0}},n.prototype.moveToPano=function(t,n,i){var r,o=this;void 0===n&&(n={}),this.userAction=i;var a=this.work.observers[t].images.depth,s=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality","sharpen","mappings"])),l=this.imageOptions.transform,u=this.work.observers[t].images,c=this.work.observers[t],h=c.position,d=c.quaternion,p=(new e.Matrix4).compose(h,d,new e.Vector3(-1,1,1)),f="pano:"+pn(u);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var A=this.pendingTextureTask.panoIndex;null===(r=this.panoMeshes[A])||void 0===r||r.setProgress(0),this.emit("textureAbort",A,this.work.observers[A]),this.pendingTextureTask.onError(new Error("texture aborted"))}var v="move-to-pano-"+t;this.pending.add(v),this.pendingTextureTask={panoIndex:t,hash:f,onLoad:function(e){o.pending.delete(v),o.destroyed?e.body.dispose():(e.body.name=f,o.emit("panoLoaded",t),o.doMoveToPano(t,e.body,n))},onError:function(e){o.pending.delete(v),n.moveCancelCallback&&n.moveCancelCallback(),o.emit("panoLoadError",e,t),o.emit("moveToPanoCanceled",t)}};var m=this.panoMeshes[t];m&&m.tap&&m.tap(),this.depthTextureLoader.load(a,u,{transform:l,options:s},h,p,(function(e){var n,i;(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f?(o.pendingTextureTask.onLoad(e),null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(0),delete o.pendingTextureTask,o.emit("textureLoaded",t,o.work.observers[t],e.meta)):e.body.dispose()}),(function(e){var n,i;(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f&&(o.pendingTextureTask.onError(e),null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(0),delete o.pendingTextureTask,o.emit("textureError",e,t,o.work.observers[t]),o.emit("error",e))}),(function(e){var n,i;o.emit("textureLoading",e,t,o.work.observers[t]),(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f&&(null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer),this.emit("textureStartLoad",t,this.work.observers[t])},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l,u=!1;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){u=!0,r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),o()},moveCancelCallback:function(){var e=Ur(r.camera.pose);!1===u&&r.emit("initAnimationWillStart",r.currentPanoIndex,e,r.userAction),r.emit("initAnimationEnded",r.currentPanoIndex,e,r.userAction),o()}},i)}))},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.locationMotionKeyframesLength=function(e){for(var t=0,n=1;n<e.length;n++){var i=this.panoResourceFromLocationMotionKeyframe(e[n-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[n]).position;t+=i.distanceTo(r)*(e[n].value.count-e[n-1].value.count)}return t},n.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),n=0,i=this.work.observers;n<i.length;n++){var r=i[n],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&this.helper.remove(o))}},n.prototype.updatePanoMeshes=function(){for(var e=this,t={},n=0,i=this.panoMeshes;n<i.length;n++)t[(p=i[n]).name]=p;this.panoMeshes.length=0;for(var r=1,o={},a=function(t){var n=Nr(t.accessibleNodes,(function(n){return Gt(e.work.observers[n].standingPosition.distanceTo(t.standingPosition),1,1/0)}),!0),i=n[1];void 0===o[t.panoIndex]&&(o[t.panoIndex]=i)},s=0,l=this.work.observers;s<l.length;s++)a(d=l[s]);var u=Object.keys(o).map((function(e){return o[e]}));u.length&&(r=Gt(u.reduce((function(e,t){return e+t}),0)/u.length*.6,1,3));for(var c=0;c<this.work.observers.length;c++){var h="panoCircle_".concat(this.work.workCode,"_").concat(c),d=this.work.observers[c],p=void 0;t[h]?(!0===(p=t[h]).loading&&!1===d.loadable&&p.setLoading(!1),delete t[h]):(p=this.panoCircleMeshCreator(c)).name=h,p.scale.set(r,1,r),p.position.copy(d.standingPosition),this.panoMeshes[c]=p}for(var f=0,A=Object.keys(t);f<A.length;f++){var v=A[f];this.helper.remove(t[v]),t[v].dispose(),delete t[v]}this.updatePanoMeshesVisible()},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s,l=this;void 0===i&&(i={});var u,c,h,d=ce(),p=Ii(),f=this.work.observers[t],A=this.panoResources[p]={panoIndex:t,workCode:this.work.workCode,effect:null!==(r=i.effect)&&void 0!==r?r:"fly",panoModel:n,matrix:(new e.Matrix4).compose(f.position,f.quaternion,Ma),position:f.position.clone()};if(n.visible=!1,n.renderOrder=-1,this.panoModelGroup.add(n),this.locationMotion.ended){var v=this.locationMotion.getKeyFrameSegment(d),m=(v[0],v[1]),g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(m).position,b=A.position;u=Math.max(y.distanceTo(b),1),c=[{key:m.key,progress:0,value:ne(ne({},g),{count:0})},{key:p,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,orthoDistance:1,count:1}}],h=0}else{var x=this.locationMotion.getKeyFrameSegment(d),w=x[0],M=(m=x[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(w).position),E=(y=this.panoResourceFromLocationMotionKeyframe(m).position,b=A.position,m.value.count-g.count),C=Math.max(M.distanceTo(y),1)*E;u=C+Math.max(y.distanceTo(b),1),c=[{key:w.key,progress:0,value:ne({},g)},{key:m.key,progress:C/u,value:m.value},{key:p,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var I=this.locationMotionKeyframesLength(this.locationMotion.keyframes),S=this.locationMotionKeyframesLength(c);h=0===I||0===I?0:this.locationMotion.getProgressVelocity(d)*I/S}var B=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:u),T={longitude:i.longitude,latitude:i.latitude,fov:i.fov},P={longitude:null!==(o=T.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=T.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:f.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,P),this.emit("panoWillArrive",t,P,this.userAction),this.cameraMotion.set(T,B).catch(le),this.locationMotion.setKeyframes(c,B,h).then((function(){var e={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(t,e),l.emit("panoArrived",t,e,l.userAction)}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),l.emit("moveToPanoCanceled",t)}))},n.prototype.getForwardPanoIndexOrNot=function(t){var n=this,i=this.camera.getDirection(new e.Vector3),r=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var a=o.accessibleNodes.filter((function(t){if(t===n.currentPanoIndex)return!1;var i=n.work.observers[t],o=i.standingPosition.clone().sub(r);return 0!==o.length()&&!(o.angleTo(new e.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active)})),s=(t?t.ray.direction.clone():i.clone()).setY(0);if(0===s.length())return null;for(var l=a.slice().sort((function(e,t){var i=n.work.observers[e].position.clone().setY(r.y),o=n.work.observers[t].position.clone().setY(r.y);return i.distanceTo(r)-o.distanceTo(r)})),u=0,c=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];u<c.length;u++)for(var h=c[u],d=0,p=l;d<p.length;d++){var f=p[d],A=this.work.observers[f].position.clone().setY(r.y).sub(r);if(0!==A.length()&&s.angleTo(A)<h)return f}return null},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new e.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),c=o.intersectObject(this.boundingMesh,!0)[0];if(c){var h=Nr(u,(function(e){var t=n.work.observers[e].standingPosition.clone();return t.clone().sub(n.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}Qi(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),Qi(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=new e.Vector3(0,1,0),w=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),M=w.clone().applyAxisAngle(x,y),E=w.clone().applyAxisAngle(x,-y),C=[],I=[],S=[],B=0,T=m.accessibleNodes;B<T.length;B++)if((d=T[B])!==this.currentPanoIndex&&d!==s){var P=this.work.observers[d].position.clone().sub(m.position).setY(0);w.angleTo(P)<y?S.push(P):M.angleTo(P)<y?C.push(P):E.angleTo(P)<y&&I.push(P)}var R=(S.length>0?S:ie(ie([],C,!0),I,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];R&&R.angleTo(a)>b&&(g.longitude=Math.atan2(-R.x,-R.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},n}(po),Ca=80;function Ia(t,n){var i=new e.Vector3;return i.setFromMatrixColumn(n,0),i.multiplyScalar(-t),i}function Sa(t){var n=new e.Vector3;return n.x=0,n.z=0,n.y=t,n}var Ba=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).currentPanoIndex=a.initial[0],o.defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultDistance=a.defaultDistance,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.maxDistance=a.maxDistance,o.minDistance=a.minDistance,o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s,l,u=t.parseArgs.call(this,e);return ne(ne({},u),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultDistance:null!==(r=e.defaultDistance)&&void 0!==r?r:100,maxLatitude:null!==(o=e.maxLatitude)&&void 0!==o?o:+Math.PI/2,minLatitude:null!==(a=e.minLatitude)&&void 0!==a?a:0,maxDistance:null!==(s=e.maxDistance)&&void 0!==s?s:100,minDistance:null!==(l=e.minDistance)&&void 0!==l?l:0})},n.distanceFromModel=function(e,t,n){var i=e.bounding,r=Math.pow(Math.pow(i.max.x-i.min.x+1,2)+Math.pow(i.max.y-i.min.y+1,2)+Math.pow(i.max.z-i.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return n<1&&(o/=n),isNaN(o)?r:o},n.initAnimationEndPose=function(t){var i,r,o,a,s,l=this.parseArgs(t),u=(t.initial[0],t.initial[1]);return{longitude:null!==(i=u.longitude)&&void 0!==i?i:l.defaultLongitude,latitude:null!==(r=u.latitude)&&void 0!==r?r:l.defaultLatitude,fov:null!==(o=u.fov)&&void 0!==o?o:Ca,offset:null!==(a=u.offset)&&void 0!==a?a:t.model.bounding.getCenter(new e.Vector3),distance:null!==(s=u.distance)&&void 0!==s?s:n.distanceFromModel(l.model,Ca,l.camera.aspect)}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.model.enableTiles=!1,this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.panState},n.prototype.isReady=function(){return!1!==this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateCamera=function(e,t,n){var i,r,o;this.userAction=n;var a={longitude:e.longitude,latitude:e.latitude,fov:e.fov},s={x:null===(i=e.offset)||void 0===i?void 0:i.x,y:null===(r=e.offset)||void 0===r?void 0:r.y,z:null===(o=e.offset)||void 0===o?void 0:o.z,distance:e.distance};return Promise.all([this.locationMotion.set(s,t),this.cameraMotion.set(a,t).catch(le)])},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.updateCamera(n,i,r),!0},n.prototype.updateModel=function(n){t.prototype.updateModel.call(this,n);var i=n.bounding.getCenter(new e.Vector3);this.locationMotion.set({x:i.x,y:i.y,z:i.z},0).catch(le),this.model.enableTiles=!0},n.prototype.updateTime=function(t,n){if(!this.destroyed){var i={},r={};this.locationMotion.ended||(this.locationMotion.update(t),i.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,r.distance=this.locationMotion.value.distance,r.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(t),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Vr(i)||this.model.setMaterial(i),Vr(r)||this.setCamera(r)}},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,distance:n.value.distance,offset:new e.Vector3(n.value.x,n.value.y,n.value.z)}},n.prototype.initAnimation=function(t,i,r,o){var a=this;return this.destroyed?Promise.resolve():new Promise((function(s){var l,u,c,h,d;a.userAction=o;var p={longitude:null!==(l=i.longitude)&&void 0!==l?l:a.defaultLongitude,latitude:Gt(null!==(u=i.latitude)&&void 0!==u?u:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:null!==(c=i.fov)&&void 0!==c?c:Ca,offset:null!==(h=i.offset)&&void 0!==h?h:a.model.bounding.getCenter(new e.Vector3),distance:null!==(d=i.distance)&&void 0!==d?d:n.distanceFromModel(a.model,Ca,a.camera.aspect)},f=hn(p,["longitude","latitude","fov"]),A={x:p.offset.x,y:p.offset.y,z:p.offset.z,distance:p.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:p.distance};a.emit("initAnimationWillStart",t,p,a.userAction),a.cameraMotion.set(f,r).catch(le),a.locationMotion.set(A,r).then((function(){a.emit("initAnimationEnded",t,p,a.userAction)}),(function(e){var n=Ur(a.camera.pose);a.emit("initAnimationEnded",t,n,a.userAction)})).then((function(){a.model.enableTiles=!0,s()}))}))},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),n=this.model.intersectRaycaster(e)[0];if(!n)return null;var i=Nr(t,(function(e){return e.standingPosition.distanceTo(n.point)}),!0),r=i[0];return i[1]<5?this.work.observers.indexOf(r):null},n.prototype.coordinatesForOffset=function(t){var n=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(r.x*this.scissor.width)*n/95*i,latitude:-2*t.y/(r.y*this.scissor.height)*n/95}},n.prototype.onPanGesture=function(t){var i=this.panState,r=t.pointers.length;if(t.isFinal)delete this.panState;else{var o=void 0;if(t.pointerType)switch(t.srcEvent.buttons){case 0:o=void 0;break;case 1:o="left";break;case 2:o="right"}this.panState={mouseState:o,pointerLength:r,x:t.center.x,y:t.center.y}}if(void 0!==i&&i.pointerLength===r){var a=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",a,t.isFinal))if("mouse"===t.pointerType&&2===t.srcEvent.buttons){var s={x:t.center.x-i.x,y:t.center.y-i.y},l=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),u=(b=this.model.bounding).getCenter(new e.Vector3),c={x:(b.max.x-b.min.x)/Ca*this.cameraMotion.value.fov,y:(b.max.y-b.min.y)/Ca*this.cameraMotion.value.fov,z:(b.max.z-b.min.z)/Ca*this.cameraMotion.value.fov},h=(this.camera.position.y-b.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),d=this.renderer.getSize(new e.Vector2);l.add(Ia(4*s.x*h/d.y,this.camera.matrix)),l.add(Sa(4*s.y*h/d.y)),l.x=Gt(l.x,u.x-c.x,u.x+c.x),l.y=Gt(l.y,u.y-c.y,u.y+c.y);var p={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:l,distance:this.locationMotion.value.distance};if(this.emit("wantsPanGesture",p,t.isFinal))return;this.emit("gesture","pan",a,t.isFinal),this.emit("panGesture",p,t.isFinal),this.userAction=!0,this.locationMotion.set({x:l.x,y:l.y,z:l.z},0).catch(le)}else{l={x:t.center.x-i.x,y:t.center.y-i.y};var f=this.relativeClientPosition(t.center),A=this.camera.pose.latitude<Math.PI/6||f.y<0?1:-1;l.x*=A;var v=this.coordinatesForOffset(l),m=Tr(this.cameraMotion.value.longitude+-1*v.longitude),g=Gt(this.cameraMotion.value.latitude+-1*v.latitude,this.minLatitude,this.maxLatitude);if(this.camera.aspect<1&&Math.abs(t.overallVelocityX)>.2&&Math.atan2(Math.abs(t.overallVelocityY),Math.abs(t.overallVelocityX))<Math.PI/6.923&&(g=this.cameraMotion.value.latitude),p={longitude:m,latitude:g,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance},this.emit("wantsPanGesture",p,t.isFinal))return;this.emit("gesture","pan",a,t.isFinal),this.emit("panGesture",p,t.isFinal),this.userAction=!0,this.interiaMovement=!1;var y={longitude:p.longitude,latitude:p.latitude,fov:p.fov};if(this.cameraMotion.set(y,0).catch(le),t.isFinal&&"right"===i.mouseState){var b=this.model.bounding,x=Math.pow(Math.pow((b.max.x-b.min.x)/2,2)+Math.pow((b.max.y-b.min.y)/2,2)+Math.pow((b.max.z-b.min.z)/2,2),.5);console.log(x);var w=new e.Vector3;this.model.bounding.getCenter(w);var M=w.sub(this.camera.position).length();if(M<=x){var E=n.distanceFromModel(this.model,this.cameraMotion.value.fov,this.camera.aspect),C=Gt((0*x-E)/(.5*x)*(x-M)+E,0*x,this.maxDistance);this.camera.computePose(C);var I=this.camera.pose.offset;this.locationMotion.set({distance:C,x:I.x,y:I.y,z:I.z},0),this.emit("cameraUpdate",this.camera.pose,!0)}}if(t.isFinal&&!this.emit("wantsInteriaPan",p)){this.interiaMovement=!0;var S=t.velocityX*-A,B=-1*t.velocityY;this.requestInteriaMovement(this.coordinatesForOffset({x:S,y:B}),0)}}}},n.prototype.onPinchGesture=function(t){var n=this.pinchState||{},i=n.distance,r=(n.offsetY,!1);if("pinchstart"!==t.type){if("pinchend"===t.type&&(r=!0,delete this.pinchState),void 0!==i){this.pinchState={distance:i};var o=t.pointers.map((function(e){return hn(e,["x","y"])}));if(this.emit("wantsGesture","pinch",o,r))return;var a=Gt(i/t.scale,this.minDistance,this.maxDistance);if(this.emit("wantsPinchGesture",t.scale,this.camera.pose.fov,r))return;this.emit("gesture","pinch",o,r),this.emit("pinchGesture",t.scale,this.camera.pose.fov,r),this.userAction=!0,this.locationMotion.set({distance:a},0).catch(le)}var s=this.panState,l=t.pointers.length;if(t.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:l,x:t.center.x,y:t.center.y},void 0!==s&&s.pointerLength===l){var u=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",u,r)){var c=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",c,r)){var h={x:t.center.x-s.x,y:t.center.y-s.y},d=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),p=this.model.bounding,f=p.getCenter(new e.Vector3),A={x:(p.max.x-p.min.x)/Ca*this.cameraMotion.value.fov,y:(p.max.y-p.min.y)/Ca*this.cameraMotion.value.fov,z:(p.max.z-p.min.z)/Ca*this.cameraMotion.value.fov},v=(this.camera.position.y-p.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),m=this.renderer.getSize(new e.Vector2);d.add(Ia(2*h.x*v/m.y,this.camera.matrix)),d.add(Sa(2*h.y*v/m.y)),d.x=Gt(d.x,f.x-A.x,f.x+A.x),d.y=Gt(d.y,f.y-A.y,f.y+A.y);var g={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:d,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",g,t.isFinal)||(this.emit("gesture","pan",c,t.isFinal),this.emit("panGesture",g,t.isFinal),this.userAction=!0,this.locationMotion.set({x:d.x,y:d.y,z:d.z},0).catch(le))}}}}else this.pinchState={distance:this.locationMotion.value.distance}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.locationMotion.value.distance-n/2,this.minDistance,this.maxDistance);console.log(r,this.maxDistance),this.emit("wantsMouseWheel",n,this.camera.pose.fov,!1)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,this.camera.pose.fov,!1),this.userAction=!0,this.locationMotion.set({distance:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,t.camera.pose.fov,!0)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,t.camera.pose.fov,!0))}),200)})}},n.prototype.onTapGesture=function(t){var n=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var i=this.relativeClientPosition(t.center),r=new e.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.getForwardPanoIndexOrNot(r);if(!Qi(o)){this.emit("panoSelected",o);var a={longitude:this.camera.pose.longitude,latitude:0};this.emit("wantsMoveToPano",o,a,!0)}}}},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.994008,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n}($r),Ta={type:"move"},Pa=function(){function t(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return t.prototype.getHandSpace=function(){return null===this._hand&&(this._hand=new e.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},t.prototype.getTargetRaySpace=function(){return null===this._targetRay&&(this._targetRay=new e.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new e.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new e.Vector3),this._targetRay},t.prototype.getGripSpace=function(){return null===this._grip&&(this._grip=new e.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new e.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new e.Vector3),this._grip},t.prototype.dispatchEvent=function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},t.prototype.disconnect=function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},t.prototype.getAxes=function(){return this._axes},t.prototype.update=function(t,n,i){var r=null,o=null,a=null,s=this._targetRay,l=this._grip,u=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&"visible-blurred"!==n.session.visibilityState)if(null!==s&&null!==(r=n.getPose(t.targetRaySpace,i))&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(Ta)),u&&t.hand){a=!0;for(var c=0,h=t.hand.values();c<h.length;c++){var d=h[c],p=n.getJointPose(d,i);if(void 0===u.joints[d.jointName]){var f=new e.Group;f.matrixAutoUpdate=!1,f.visible=!1,u.joints[d.jointName]=f,u.add(f)}var A=u.joints[d.jointName];null!==p&&(A.matrix.fromArray(p.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.jointRadius=p.radius),A.visible=null!==p}var v=u.joints["index-finger-tip"],m=u.joints["thumb-tip"],g=v.position.distanceTo(m.position);u.inputState.pinching&&g>.025?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!u.inputState.pinching&&g<=.015&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==l&&t.gripSpace&&null!==(o=n.getPose(t.gripSpace,i))&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1);return null!==s&&(s.visible=null!==r),null!==l&&(l.visible=null!==o),null!==u&&(u.visible=null!==a),this},t}(),Ra=function(t){function n(n,i,r){var o,a,s,l=this;return(l=t.call(this)||this).isPanorama=null===(o=null==r?void 0:r.isPanorama)||void 0===o||o,l.machineType=null!==(a=null==r?void 0:r.machineType)&&void 0!==a?a:"Pico",l.renderer=n,l.gl=i,l.enabled=!1,l.session=null,l.referenceSpaceType=null!==(s=null==r?void 0:r.referenceSpaceType)&&void 0!==s?s:"local-floor",l.referenceSpace=null,l.controllers=[new Pa,new Pa],l.inputSourcesMap=new Map,l.cameraVR=new e.ArrayCamera,l.cameraL=new e.PerspectiveCamera,l.cameraR=new e.PerspectiveCamera,l.cameraL.viewport=new e.Vector4,l.cameraR.viewport=new e.Vector4,l.cameraL.layers.enable(1),l.cameraR.layers.enable(2),l.cameraVR.layers.enable(1),l.cameraVR.layers.enable(2),l.isPresenting=!1,l.currentDepthNear=null,l.currentDepthFar=null,l.cameraLPos=new e.Vector3,l.cameraRPos=new e.Vector3,l}return te(n,t),n.prototype.getController=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getTargetRaySpace()},n.prototype.getControllerGrip=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.getInverse(e.matrixWorld)},n.prototype.setProjectionFromUnion=function(e,t,n){this.cameraLPos.setFromMatrixPosition(t.matrixWorld),this.cameraRPos.setFromMatrixPosition(n.matrixWorld);var i=this.cameraLPos.distanceTo(this.cameraRPos),r=t.projectionMatrix.elements,o=n.projectionMatrix.elements,a=r[14]/(r[10]-1),s=r[14]/(r[10]+1),l=(r[9]+1)/r[5],u=(r[9]-1)/r[5],c=(r[8]-1)/r[0],h=(o[8]+1)/o[0],d=a*c,p=a*h,f=i/(-c+h),A=f*-c;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(A),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var v=a+f,m=s+f,g=d-A,y=p+(i-A),b=l*s/m*v,x=u*s/m*v;e.projectionMatrix.makePerspective(g,y,b,x,v,m)},n.prototype.getCamera=function(e){this.cameraVR.near=this.cameraR.near=this.cameraL.near=e.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=e.far,!this.session||this.currentDepthNear===this.cameraVR.near&&this.currentDepthFar===this.cameraVR.far||(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var t=e.parent,n=this.cameraVR.cameras;this.updateCamera(this.cameraVR,t);for(var i=0;i<n.length;i++)this.updateCamera(n[i],t);e.matrixWorld.copy(this.cameraVR.matrixWorld);for(var r=e.children,o=(i=0,r.length);i<o;i++)r[i].updateMatrixWorld(!0);return 2===n.length?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(e){if(this.session){for(var t=this.session.inputSources,n=0;n<this.controllers.length;n++)this.inputSourcesMap.set(t[n],this.controllers[n]);for(n=0;n<e.removed.length;n++){var i=e.removed[n];(r=this.inputSourcesMap.get(i))&&(r.dispatchEvent({type:"disconnected",data:i}),this.inputSourcesMap.delete(i))}for(n=0;n<e.added.length;n++){var r;i=e.added[n],(r=this.inputSourcesMap.get(i))&&r.dispatchEvent({type:"connected",data:i})}}else console.warn("session is lose!")},n.prototype.onSessionEvent=function(e){var t=this.inputSourcesMap.get(e.inputSource);t&&t.dispatchEvent({type:e.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach((function(e,t){e.disconnect(t)})),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,ke.shared.setContext(null),this.emit("webXRSessionEnd")},n.prototype.onRequestReferenceSpace=function(e){this.referenceSpace=e,this.isPresenting=!0,this.emit("webXRSessionStart")},n.prototype.setSession=function(e){var t=this;if(this.session=e,this.session){this.session.addEventListener("select",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectstart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeeze",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezestart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezeend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("end",(function(e){t.onSessionEnd()}));var n=this.gl.getContextAttributes();this.gl.makeXRCompatible().then((function(){var e={antialias:null==n?void 0:n.antialias,alpha:null==n?void 0:n.alpha,depth:null==n?void 0:n.depth,stencil:null==n?void 0:n.stencil,framebufferScaleFactor:1};if(t.session){switch(t.machineType){case"Pico":t.session.updateRenderState({baseLayer:new XRWebGLLayer(t.session,t.gl,e)});break;case"Oculus":t.session.updateRenderState({layers:[new XRWebGLLayer(t.session,t.gl,e)]});break;default:t.machineType}t.session.requestReferenceSpace(t.referenceSpaceType).then((function(e){t.onRequestReferenceSpace(e)})),t.session.addEventListener("inputsourceschange",(function(e){t.updateInputSources(e)}))}else console.error("session is lose while set session!")}))}},n}(se),La=["webXRSessionStart","webXRSessionEnd"],ka=function(t){function n(){var n=t.call(this)||this;return n.type="LineSegmentsGeometry",n.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),n.setAttribute("position",new e.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),n.setAttribute("uv",new e.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2)),n}return te(n,t),n.prototype.applyMatrix4=function(e){var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),n.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},n.prototype.setPositions=function(t){var n;n=t instanceof Float32Array?t:Array.isArray(t)?new Float32Array(t):new Float32Array;var i=new e.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceStart",new e.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new e.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},n.prototype.setColors=function(t){var n;n=t instanceof Float32Array?t:Array.isArray(t)?new Float32Array(t):new Float32Array;var i=new e.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceColorStart",new e.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new e.InterleavedBufferAttribute(i,3,3)),this},n.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},n.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},n.prototype.fromMesh=function(t){return this.fromWireframeGeometry(new e.WireframeGeometry(t.geometry)),this},n.prototype.fromLineSegments=function(t){var n=t.geometry;if(n instanceof e.Geometry){var i=(new e.BufferGeometry).fromGeometry(n);this.setPositions(i.attributes.position.array)}else n instanceof e.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},n.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new e.Box3);var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(void 0!==t&&void 0!==n){var i=new e.Box3;this.boundingBox.setFromBufferAttribute(t),i.setFromBufferAttribute(n),this.boundingBox.union(i)}},n.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new e.Sphere),null===this.boundingBox&&this.computeBoundingBox();var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(void 0!==t&&void 0!==n){var i=this.boundingSphere.center;this.boundingBox.getCenter(i);for(var r=0,o=new e.Vector3,a=0,s=t.count;a<s;a++)o.fromBufferAttribute(t,a),r=Math.max(r,i.distanceToSquared(o)),o.fromBufferAttribute(n,a),r=Math.max(r,i.distanceToSquared(o));this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},n.prototype.toJSON=function(){},n}(e.InstancedBufferGeometry);Object.assign(ka.prototype,{isLineSegmentsGeometry:!0});var Oa={uniforms:e.UniformsUtils.merge([e.UniformsLib.common,e.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new e.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"},Fa=function(t){function n(n){var i=t.call(this,{uniforms:e.UniformsUtils.clone(Oa.uniforms),vertexShader:Oa.vertexShader,fragmentShader:Oa.fragmentShader,clipping:!0})||this;return i.type="LineMaterial",i.dashed=!1,Object.defineProperties(i,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),i.setValues(n),i}return te(n,t),n}(e.ShaderMaterial);Object.assign(Fa.prototype,{isLineMaterial:!0});var Da=function(t){function n(e,n){var i=t.call(this)||this;return i.type="LineSegments2",i.geometry=void 0!==e?e:new ka,i.material=void 0!==n?n:new Fa({color:16777215*Math.random()}),i}return te(n,t),n.prototype.computeLineDistances=function(){for(var t=this.geometry,n=t.attributes.instanceStart,i=t.attributes.instanceEnd,r=new Float32Array(2*n.count),o=new e.Vector3,a=new e.Vector3,s=0,l=0,u=n.count;s<u;s++,l+=2)o.fromBufferAttribute(n,s),a.fromBufferAttribute(i,s),r[l]=0===l?0:r[l-1],r[l+1]=r[l]+o.distanceTo(a);var c=new e.InstancedInterleavedBuffer(r,2,1);return t.setAttribute("instanceDistanceStart",new e.InterleavedBufferAttribute(c,1,0)),t.setAttribute("instanceDistanceEnd",new e.InterleavedBufferAttribute(c,1,1)),this},n.prototype.raycast=function(t,n){null===t.camera&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var i=t.ray,r=t.camera,o=r.projectionMatrix,a=this.geometry,s=this.material,l=s.resolution,u=s.linewidth,c=a.attributes.instanceStart,h=a.attributes.instanceEnd,d=new e.Vector4,p=new e.Vector4,f=new e.Vector4,A=new e.Vector3,v=new e.Matrix4,m=new e.Line3,g=new e.Vector3;i.at(1,f),f.w=1,f.applyMatrix4(r.matrixWorldInverse),f.applyMatrix4(o),f.multiplyScalar(1/f.w),f.x*=l.x/2,f.y*=l.y/2,f.z=0,A.copy(f);var y=this.matrixWorld;v.multiplyMatrices(r.matrixWorldInverse,y);for(var b=0,x=c.count;b<x;b++){d.fromBufferAttribute(c,b),p.fromBufferAttribute(h,b),d.w=1,p.w=1,d.applyMatrix4(v),p.applyMatrix4(v),d.applyMatrix4(o),p.applyMatrix4(o),d.multiplyScalar(1/d.w),p.multiplyScalar(1/p.w);var w=d.z<-1&&p.z<-1,M=d.z>1&&p.z>1;if(!w&&!M){d.x*=l.x/2,d.y*=l.y/2,p.x*=l.x/2,p.y*=l.y/2,m.start.copy(d),m.start.z=0,m.end.copy(p),m.end.z=0;var E=m.closestPointToPointParameter(A,!0);m.at(E,g);var C=e.MathUtils.lerp(d.z,p.z,E),I=C>=-1&&C<=1,S=A.distanceTo(g)<.5*u;if(I&&S){m.start.fromBufferAttribute(c,b),m.end.fromBufferAttribute(h,b),m.start.applyMatrix4(y),m.end.applyMatrix4(y);var B=new e.Vector3,T=new e.Vector3;i.distanceSqToSegment(m.start,m.end,T,B),n.push({point:T,pointOnLine:B,distance:i.origin.distanceTo(T),object:this,faceIndex:b})}}}},n}(e.Mesh);Object.assign(Da.prototype,{isLineSegments2:!0});var Qa=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i.type="Line2",i}return te(t,e),t}(Da);Object.assign(Qa.prototype,{isLine2:!0});var Na=function(t){function n(){var e=t.call(this)||this;return e.type="LineGeometry",e}return te(n,t),n.prototype.setPositions=function(e){for(var n=e.length-3,i=new Float32Array(2*n),r=0;r<n;r+=3)i[2*r]=e[r],i[2*r+1]=e[r+1],i[2*r+2]=e[r+2],i[2*r+3]=e[r+3],i[2*r+4]=e[r+4],i[2*r+5]=e[r+5];return t.prototype.setPositions.call(this,i),this},n.prototype.setColors=function(e){for(var n=e.length-3,i=new Float32Array(2*n),r=0;r<n;r+=3)i[2*r]=e[r],i[2*r+1]=e[r+1],i[2*r+2]=e[r+2],i[2*r+3]=e[r+3],i[2*r+4]=e[r+4],i[2*r+5]=e[r+5];return t.prototype.setColors.call(this,i),this},n.prototype.fromLine=function(t){var n=t.geometry;if(n instanceof e.Geometry){var i=(new e.BufferGeometry).fromGeometry(n);this.setPositions(i.attributes.position.array)}else n instanceof e.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},n.prototype.copy=function(){return this},n}(ka);Object.assign(Na.prototype,{isLineGeometry:!0});var Va=14467195,Ua=null,_a=function(t){function n(n,i){void 0===n&&(n=new e.Vector3),void 0===i&&(i=new e.Vector3);var r=t.call(this)||this;r.type="FiveLine",r.needsRender=!0;var o=new Na,a=new Fa({color:Va,linewidth:2,dashScale:20,dashed:!1});r.line=new Qa(o,a);var s=new e.BufferGeometry,l=new e.PointsMaterial({color:Va,size:8,map:Ua||(Ua=(new e.TextureLoader).load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),sizeAttenuation:!1,transparent:!0});return r.points=new e.Points(s,l),r.points.renderOrder=11,r.points.frustumCulled=!1,r.setPoints(n,i),r.add(r.line,r.points),r}return te(n,t),Object.defineProperty(n,"version",{get:function(){return"5.0.0-alpha.210"},enumerable:!1,configurable:!0}),n.prototype.setPoints=function(t,n){var i=[].concat(t.toArray(),n.toArray());this.points.geometry.setAttribute("position",new e.BufferAttribute(new Float32Array(i),3)),this.line.geometry.setPositions(i),this.line.computeLineDistances(),this.needsRender=!0},n.prototype.getPoints=function(){var t=this.points.geometry.attributes.position.array;return[new e.Vector3(t[0],t[1],t[2]),new e.Vector3(t[3],t[4],t[5])]},n.prototype.setMaterial=function(e){var t=this.line.material;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];"dashed"===n?(t.dashed=i,i?t.defines.USE_DASH="":delete t.defines.USE_DASH,t.needsUpdate=!0):t[n]=e[n]}this.needsRender=!0},n.prototype.setResolution=function(e,t){var n=this.line.material.resolution;n.x===e&&n.y===t||(n.set(e,t),this.needsRender=!0)},n}(e.Object3D);Object.assign(_a.prototype,{isFiveLine:!0});const za={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};async function qa(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}const Ha={xAxis:0,yAxis:0,button:0,state:za.ComponentState.DEFAULT};class ja{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===za.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(Ha)}updateFromComponent({xAxis:e,yAxis:t,button:n,state:i}){const{normalizedXAxis:r,normalizedYAxis:o}=function(e=0,t=0){let n=e,i=t;if(Math.sqrt(e*e+t*t)>1){const r=Math.atan2(t,e);n=Math.cos(r),i=Math.sin(r)}return{normalizedXAxis:.5*n+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case za.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?r:.5;break;case za.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?o:.5;break;case za.ComponentProperty.BUTTON:this.value=this.states.includes(i)?n:0;break;case za.ComponentProperty.STATE:this.valueNodeProperty===za.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class Ka{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const n=new ja(t.visualResponses[e]);this.visualResponses[e]=n})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:za.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=za.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=za.ComponentState.PRESSED:(t.touched||this.values.button>za.ButtonTouchThreshold)&&(this.values.state=za.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===za.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>za.AxisTouchThreshold&&(this.values.state=za.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===za.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>za.AxisTouchThreshold&&(this.values.state=za.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class Ga{constructor(e,t,n){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=n,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new Ka(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Wa extends e.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:n,maxNode:i,value:r,valueNodeProperty:o}=e;t&&(o===za.VisualResponseProperty.VISIBILITY?t.visible=r:o===za.VisualResponseProperty.TRANSFORM&&(t.quaternion.copy(n.quaternion).slerp(i.quaternion,r),t.position.lerpVectors(n.position,i.position,r)))}))})))}}function Xa(t,n){!function(t,n){Object.values(t.components).forEach((t=>{const{type:i,touchPointNodeName:r,visualResponses:o}=t;if(i===za.ComponentType.TOUCHPAD)if(t.touchPointNode=n.getObjectByName(r),t.touchPointNode){const n=new e.SphereGeometry(.001),i=new e.MeshBasicMaterial({color:255}),r=new e.Mesh(n,i);t.touchPointNode.add(r)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(o).forEach((e=>{const{valueNodeName:t,minNodeName:i,maxNodeName:r,valueNodeProperty:o}=e;if(o===za.VisualResponseProperty.TRANSFORM){if(e.minNode=n.getObjectByName(i),e.maxNode=n.getObjectByName(r),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${r} in the model`)}e.valueNode=n.getObjectByName(t),e.valueNode||console.warn(`Could not find ${t} in the model`)}))}))}(t.motionController,n),t.envMap&&n.traverse((e=>{e.isMesh&&(e.material.envMap=t.envMap,e.material.needsUpdate=!0)})),t.add(n)}class Ya{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new Bi)}createControllerModel(e){const t=new Wa;let n=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&async function(e,t,n=null,i=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const r=await async function(e){if(!e)throw new Error("No basePath supplied");return await qa(`${e}/profilesList.json`)}(t);let o;if(e.profiles.some((e=>{const n=r[e];return n&&(o={profileId:e,profilePath:`${t}/${n.path}`,deprecated:!!n.deprecated}),!!o})),!o){if(!n)throw new Error("No matching profile name found");const e=r[n];if(!e)throw new Error(`No matching profile name found and default profile "${n}" missing.`);o={profileId:n,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const a=await qa(o.profilePath);let s;if(i){let t;if(t="any"===e.handedness?a.layouts[Object.keys(a.layouts)[0]]:a.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(s=o.profilePath.replace("profile.json",t.assetPath))}return{profile:a,assetPath:s}}(i,this.path,"generic-trigger").then((({profile:e,assetPath:r})=>{t.motionController=new Ga(i,e,r);const o=this._assetCache[t.motionController.assetUrl];if(o)n=o.scene.clone(),Xa(t,n);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,n=e.scene.clone(),Xa(t,n)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(n),n=null})),t}}var Za=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),Ja=new e.Vector3(-1,1,1),$a=function(t){function n(n){var i=t.call(this,n)||this;i.xrManager=new Ra(i.renderer,i.renderer.getContext()),i.xrControllerRay=[new e.Raycaster,new e.Raycaster],i.pointerLines=[new _a,new _a],i.pointerLines[0].visible=!1,i.pointerLines.forEach((function(t){t.setMaterial({color:new e.Vector3(1,1,1)}),t.points.material.depthTest=!1})),i.scene.add(i.pointerLines[0],i.pointerLines[1]),i.panoResources={},i.panoResources[i.locationMotion.keyframes[0].key=i.locationMotion.keyframes[1].key=Ii()]={panoIndex:i.currentPanoIndex,workCode:i.work.workCode,leftPanoPicture:null,position:i.camera.pose.offset.clone(),effect:"fade"},i.on("webXRSessionEnd",(function(){i.pointerLines.forEach((function(e){i.scene.remove(e)}))})),i.on("webXRMoveToPano",(function(e){e&&i.checkSelectedPano(e)})),i.parallaxCameraMatrixs=[];var r=ke.shared.getContext();if(!r)return console.error("获取session失败,请退出重试"),i;i.xrManager.setSession(r),i.controllerWrappers=[new e.Group,new e.Group],i.scene.add(i.controllerWrappers[0],i.controllerWrappers[1]);var o=i.xrManager.getController(0);i.controllerWrappers[0].add(o);var a=i.xrManager.getController(1);i.controllerWrappers[1].add(a);var s=new Ya,l=i.xrManager.getControllerGrip(0);l.add(s.createControllerModel(l)),i.controllerWrappers[0].add(l);var u=i.xrManager.getControllerGrip(1);u.add(s.createControllerModel(u)),i.controllerWrappers[1].add(u);for(var c=function(e){h.xrManager.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];i.emit.apply(i,ie([e],t,!1))}))},h=this,d=0,p=La;d<p.length;d++)c(p[d]);return i.xrControllerState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},i}return te(n,t),n.parseArgs=function(e){var n=ne(ne({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,n)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.moveToPano=function(t,n,i){var r,o,a,s,l=this;this.userAction=i;var u=this.work.observers[t],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=function(e,t){return Ue(e,d,t)},f=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality"])),A=u.images,v=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,m="pano:"+pn([A,f,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===m)return;var g=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[g])||void 0===a||a.setProgress(0),this.emit("textureAbort",g,u),this.pendingTextureTask.onError(new Error("texture aborted"))}var y,b=this.model.getMaterial()||{},x=b.pano0,w=b.pano1;if((null==x?void 0:x.map.name)===m?y=x:(null==w?void 0:w.map.name)===m&&(y=w),y){var M={panoIndex:t,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fade",leftPanoPicture:{map:y.map,luminanceMap:y.luminanceMap,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Ja)},position:u.position.clone()};this.doMoveToPano(t,M,n)}else{var E="move-to-pano-"+t;this.pending.add(E),this.pendingTextureTask={panoIndex:t,hash:m,onLoad:function(i){var r;if(l.pending.delete(E),l.destroyed)i.body.dispose();else{i.body.name=m;var o={panoIndex:t,workCode:l.work.workCode,effect:null!==(r=n.effect)&&void 0!==r?r:"fade",leftPanoPicture:{map:i.body,luminanceMap:null,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Ja)},position:u.position.clone()};l.doMoveToPano(t,o,n)}},onError:function(e){l.pending.delete(E),n.moveCancelCallback&&n.moveCancelCallback(),l.emit("panoLoadError",e,t),l.emit("moveToPanoCanceled",t)}},Promise.all([this.tileLevelForFov&&v&&v.length?this.textureLoader.loadTiledCubeTexture(A,v,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:f},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(A,{imageURL:{transform:p,options:f},format:e.RGBAFormat},void 0,void 0,(function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e)),l.emit("textureLoading",e,t,u)}),this.renderer)]).then((function(e){var n,i,r=e[0];(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m?(l.pendingTextureTask.onLoad(r),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",t,u,r.meta)):r.body.dispose()})).catch((function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(l.pendingTextureTask.onError(e),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",e,t,u),l.emit("error",e))})),this.emit("textureStartLoad",t,u)}},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s=this;void 0===i&&(i={});var l,u,c,h=ce(),d=Ii();if(this.panoResources[d]=n,this.locationMotion.ended){var p=this.locationMotion.getKeyFrameSegment(h),f=(p[0],p[1]),A=this.locationMotion.value,v=this.panoResourceFromLocationMotionKeyframe(f).position,m=n.position;l=Math.max(v.distanceTo(m),1),u=[{key:f.key,progress:0,value:ne(ne({},A),{count:0})},{key:d,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],c=0}else{var g=this.locationMotion.getKeyFrameSegment(h),y=g[0],b=(f=g[1],A=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(y).position),x=(v=this.panoResourceFromLocationMotionKeyframe(f).position,m=n.position,f.value.count-A.count),w=Math.max(b.distanceTo(v),1)*x;l=w+Math.max(v.distanceTo(m),1),u=[{key:y.key,progress:0,value:ne({},A)},{key:f.key,progress:w/l,value:f.value},{key:d,progress:1,value:{count:f.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var M=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(u);c=this.locationMotion.getProgressVelocity(h)*M/E}var C=this.calculateMovingDuration(i.duration,l),I={longitude:i.longitude,latitude:i.latitude,fov:i.fov},S={longitude:null!==(r=I.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(o=I.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=I.fov)&&void 0!==a?a:this.camera.pose.fov,offset:n.position.clone(),distance:0};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,S),this.emit("panoWillArrive",t,S,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(I,C).catch(le),this.locationMotion.setKeyframes(u,C,c).then((function(){var n,r,o,a={longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0};i.moveEndCallback&&i.moveEndCallback(t,a),s.emit("panoArrived",t,a,s.userAction);var l=s.work.observers[s.currentPanoIndex];if(l&&l.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var u=Za.clone().multiply(null!==(o=null===(r=null===(n=s.model.getMaterial())||void 0===n?void 0:n.pano1)||void 0===r?void 0:r.matrix)&&void 0!==o?o:new e.Matrix4).multiply(l.video.matrix),c={map:s.videoTexture,size:l.video.size,matrix:u,alpha:1},h=Ii(),d=s.videoTexture.image;d.setAttribute("uuid",h),fo().then((function(e){e&&l.video&&d.getAttribute("uuid")===h&&(d.oncanplay=function(){d.oncanplay=le,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=le,s.panoVideo.setMaterial(c))},d.src=l.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),s.emit("moveToPanoCanceled",t)}))},n.prototype.checkSelectedPano=function(t){var n=this;this.interiaMovement=!1;var i=this.camera.getDirection(new e.Vector3).setY(0),r=null,o=this.work.observers[this.currentPanoIndex];if(!o)return r;var a=o.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),s=this.model.intersectRaycaster(t)[0];if(s){var l=Nr(a,(function(e){return n.work.observers[e].standingPosition.clone().distanceTo(s.point)}),!0),u=l[0];l[1]<this.panoTapTriggerRadius&&(r=u)}Qi(r)&&(r=this.getForwardPanoIndexOrNot(t));for(var c=0,h=this.locationMotion.keyframes;c<h.length;c++){var d=h[c],p=this.panoResourceFromLocationMotionKeyframe(d);if(!(d.progress<this.locationMotion.progress)&&p.panoIndex===r){r=null;break}}if(this.emit("panoSelected",r),Qi(r))return!0===this.locationMotion.ended&&this.cameraBounce(),r;var f=this.work.observers[r];if(!f.active)return this.panoMeshes[r]&&(this.panoMeshes[r].setDisabled(!1),this.panoMeshes[r].setLoading(!0)),r;for(var A={effect:"fade"},v=Math.PI/6,m=Math.PI/12,g=new e.Vector3(0,1,0),y=f.position.clone().setY(0).sub(o.position.clone().setY(0)).normalize(),b=y.clone().applyAxisAngle(g,v),x=y.clone().applyAxisAngle(g,-v),w=[],M=[],E=[],C=0,I=f.accessibleNodes;C<I.length;C++)if((u=I[C])!==this.currentPanoIndex&&u!==r){var S=this.work.observers[u].position.clone().sub(f.position).setY(0);y.angleTo(S)<v?E.push(S):b.angleTo(S)<v?w.push(S):x.angleTo(S)<v&&M.push(S)}var B=(E.length>0?E:ie(ie([],w,!0),M,!0)).slice().sort((function(e,t){return e.angleTo(y)-t.angleTo(y)}))[0];return B&&B.angleTo(i)>m&&(A.longitude=Math.atan2(-B.x,-B.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(A.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(A.fov=this.defaultFov),this.emit("wantsMoveToPano",r,A,!0),r},n.prototype.destroy=function(){t.prototype.destroy.call(this)},n.prototype.isReady=function(){return!1},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u,c=this,h=[],d=2;d<arguments.length;d++)h[d-2]=arguments[d];var p=this.currentPanoIndex,f={},A={},v=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var y=this.locationMotion.getKeyFrameSegment(t),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new e.Vector3).copy(w.position),C=(new e.Vector3).copy(M.position),I=this.locationMotion.value.count-x.value.count+1;f.progress=I,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.leftPanoPicture&&(I<1?w.leftPanoPicture&&(f.pano0=w.leftPanoPicture):f.pano0=M.leftPanoPicture,f.pano1=M.leftPanoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.leftPanoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.leftPanoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),A.distance=this.locationMotion.value.distance,A.offset=new e.Vector3(E.x+(C.x-E.x)*I,E.y+(C.y-E.y)*I,E.z+(C.z-E.z)*I);for(var S=[],B=[],T=0,P=this.locationMotion.keyframes;T<P.length;T++){var R=P[T],L=R.key,k=R.progress;void 0!==L&&(S.push(L),k>=this.locationMotion.progress&&B.push(L))}for(var O=0,F=Object.keys(this.panoResources);O<F.length;O++){var D=F[O];if(!(B.indexOf(D)>=0)){var Q=this.panoResources[D];if(Q.leftPanoPicture){var N=Q.leftPanoPicture.map;if(N){if(N===(null===(i=f.pano0)||void 0===i?void 0:i.map))continue;if(N===(null===(r=f.pano1)||void 0===r?void 0:r.map))continue;N instanceof wt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),Q.leftPanoPicture=null}}S.indexOf(D)>=0||delete this.panoResources[D]}}w.workCode===M.workCode?this.currentPanoIndex=I<.5?w.panoIndex:M.panoIndex:this.currentPanoIndex=M.panoIndex,this.emit("movingToPano",m.panoIndex,v.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),A.longitude=this.cameraMotion.value.longitude,A.latitude=this.cameraMotion.value.latitude,A.fov=this.cameraMotion.value.fov),!1===Vr(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof wt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano1)||void 0===a?void 0:a.map)&&f.pano1.map instanceof wt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.model.setMaterial(f)),!1===Vr(A)&&this.setCamera(A),h[0];var V=h[1];if(V)if(this.xrManager.session){var U=this.xrManager.referenceSpace;if(U){var _=this.xrManager.cameraVR,z=[this.xrManager.cameraL,this.xrManager.cameraR],q=V.getViewerPose(U),H=new e.Vector3(0,0,0);if(q){var j;switch(this.xrManager.machineType){case"Pico":j=this.xrManager.session.renderState.baseLayer;break;case"Oculus":var K=this.xrManager.session.renderState.layers;K&&(j=K[0]);break;default:this.xrManager.machineType}var G=q.views;if(j){this.renderer.setFramebuffer(j.framebuffer);var W=!1;G.length!==_.cameras.length&&(_.cameras.length=0,W=!0),this.parallaxCameraMatrixs=[];var X=new e.Vector3,Y=new e.Vector3;(new e.Matrix4).fromArray(G[0].transform.matrix).decompose(X,new e.Quaternion,new e.Vector3),(new e.Matrix4).fromArray(G[1].transform.matrix).decompose(Y,new e.Quaternion,new e.Vector3),Y.clone().sub(X).normalize();var Z=new e.Vector3,J=new e.Quaternion,$=new e.Vector3;this.camera.matrix.decompose(Z,J,$);for(var ee=0;ee<G.length;ee++){var te=G[ee],ne=j.getViewport(te),ie=z[ee];ie.matrix.fromArray(te.transform.matrix);var re=new e.Vector3,oe=new e.Quaternion,ae=new e.Vector3;ie.matrix.decompose(re,oe,ae),H.copy(Z),ie.position.copy(Z),ie.quaternion.copy(oe),ie.scale.copy(ae),ie.updateMatrix(),ie.projectionMatrix.fromArray(te.projectionMatrix),ie.viewport.set(ne.x,ne.y,ne.width,ne.height),!0===W&&_.cameras.push(ie)}var se=q.views[0].transform.position,le=q.views[1].transform.position,ue=(new e.Vector3((se.x+le.x)/2,0,(se.z+le.z)/2),this.xrManager.session.inputSources);for(ee=0;ee<this.xrManager.controllers.length;ee++){var ce=this.xrManager.controllers[ee],he=ue[ee];ce.update(he,V,U);var de=this.xrManager.getController(ee),pe=new e.Vector3(0,1.2,0),fe=de.position.clone().add(H).sub(pe);this.controllerWrappers[ee].position.copy(new e.Vector3(0,0,0).add(H).sub(pe)),this.xrControllerRay[ee].set(fe,new e.Vector3(0,0,-1).applyEuler(de.rotation));var Ae=this.model.intersectRaycaster(this.xrControllerRay[ee]);if(0===Ae.length&&(Ae=this.xrControllerRay[ee].intersectObject(this.boundingMesh,!0)),Ae.length>=1&&Ae[0].face)if(1===ee){var ve=this.xrControllerRay[ee].intersectObject(this.xrCustomObjectsScene,!0),me=Ae[0].face.normal,ge=me.clone().multiplyScalar(.05),ye=Ae[0].point.clone().add(ge);this.intersectMesh.position.copy(ye);var be=ye.clone().add(ge);if(this.intersectMesh.lookAt(be),Math.abs(me.y)>.99){var xe=this.camera.position.clone().sub(ye);this.intersectMesh.rotation.z=-Math.atan2(xe.z,xe.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",Ae[0],this.intersectMesh),ve.length>0?(this.pointerLines[ee].setPoints(fe,ve[0].point),this.pointerLines[ee].points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines[ee].points.visible=!1,this.pointerLines[ee].setPoints(fe,Ae[0].point))}else this.pointerLines[ee].setPoints(fe,Ae[0].point)}if(this.currentPanoIndex!==p&&this.updatePanoMeshesVisible(),this.camera.pose.distance>.1||g){var we=this.work.observers[this.currentPanoIndex];if(we)for(var Me=0,Ee=Be=we.visibleNodes.concat(this.currentPanoIndex);Me<Ee.length;Me++){var Ce=Ee[Me];(ke=this.panoMeshes[Ce])&&ke.setOpacity(0)}}else{var Ie=this.work.observers[this.currentPanoIndex];if(Ie){var Se=Nr(Ie.visibleNodes,(function(e){return Ie.standingPosition.distanceTo(c.work.observers[e].standingPosition)}),!0)[1];Se=Gt(Se,2.5,1/0);for(var Be=Ie.visibleNodes.concat(this.currentPanoIndex),Te=this.getForwardPanoIndexOrNot(),Pe=this.camera.getDirection(new e.Vector3),Re=0,Le=Be;Re<Le.length;Re++){Ce=Le[Re];var ke,Oe=this.work.observers[Ce];if(ke=this.panoMeshes[Ce])if(Oe.loadable||Oe.active){var Fe=ke.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ke.setCurrent(!ke.loading&&0===ke.progress&&Te===Ce),ke.setOpacity(Fe<.01?0:Gt(Se/Fe*1.2,.65,.98));var De=this.camera.position.clone().setY(ke.position.y),Qe=(new e.Vector3).copy(ke.position).sub(De).normalize();if(Ce===this.currentPanoIndex){var Ne=Gt((.5-De.distanceTo(ke.position))/.5,0,1);Qe.multiplyScalar(1-Ne).add(Pe.clone().multiplyScalar(Ne))}Qe.length()>0&&ke.quaternion.setFromEuler(new e.Euler(0,Math.atan2(Qe.x,Qe.z),0)),ke.updateTime&&ke.updateTime(t,n)}else ke.setOpacity(0)}}}var Ve,Ue=((Ve=new e.PerspectiveCamera).applyMatrix4(_.matrix),Ve.position.set(0,0,0),Ve.quaternion.premultiply(c.work.observers[m.panoIndex].quaternion.clone().inverse()),Ve.updateProjectionMatrix(),Ve.updateMatrixWorld(!0),(new e.Frustum).setFromProjectionMatrix((new e.Matrix4).multiplyMatrices(Ve.projectionMatrix,Ve.matrixWorldInverse)));m.panoIndex===this.currentPanoIndex&&(null===(s=m.leftPanoPicture)||void 0===s?void 0:s.map)instanceof wt&&(m.leftPanoPicture.map.update(Ue,3),!0===m.leftPanoPicture.map.needsRender&&(this.needsRender=!0));var _e=this.tiling.object.visible;if(3>this.TILED_CUBE_TEXTURE_LEVEL&&this.initAnimationed){var ze=m.panoIndex,qe=this.work.observers[ze];qe&&Mr(this.camera.position,qe.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==ze&&this.tiling.cleanup(),this.tiling.panoIndex=ze,this.tiling.setResource(null!==(u=null===(l=qe.images)||void 0===l?void 0:l.tiles)&&void 0!==u?u:[],this.enableIOSEDR&&qe.images.luminance?qe.images.luminance:null),this.tiling.setRotation(qe.quaternion),this.tiling.setPosition(qe.position),this.tiling.update(Ue,3,t)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;_e!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(t),this.updateControllerHelper(ue,t,n)}else console.error("no layer found")}}}else console.error("session丢失,请重试");else console.error("xrFrame丢失,请重试")},n.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.scene,e)},n.prototype.onPanGesture=function(){},n.prototype.onTapGesture=function(){},n.prototype.onPinchGesture=function(){},n.prototype.onMouseMove=function(){},n.prototype.onMouseOut=function(){},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.updateControllerHelper=function(e,t,n){if(e&&2===e.length&&e[0].gamepad&&e[1].gamepad){for(var i=0;i<e.length;i++){var r=e[i].handedness,o=e[i].gamepad;switch(r){case"left":this.emit("webXRAxesUpdate","left",{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]},axesState:{up:o.axes[3]<0?Math.abs(o.axes[3]):0,down:o.axes[3]<0?0:Math.abs(o.axes[3]),left:o.axes[2]<0?Math.abs(o.axes[2]):0,right:o.axes[2]<0?0:Math.abs(o.axes[2])},deltaTime:n}),this.bindEventByKey(-1===o.axes[2],"LeftAxesLeft",t),this.bindEventByKey(1===o.axes[2],"LeftAxesRight",t),this.bindEventByKey(-1===o.axes[3],"LeftAxesUp",t),this.bindEventByKey(1===o.axes[3],"LeftAxesDown",t),this.bindEventByKey(null==o?void 0:o.buttons[4].pressed,"X",t),this.bindEventByKey(o.buttons[5].pressed,"Y",t),this.bindEventByKey(null==o?void 0:o.buttons[0].pressed,"LeftTrigger",t),this.bindEventByKey(null==o?void 0:o.buttons[1].pressed,"LeftPinch",t);break;case"right":this.emit("webXRAxesUpdate","right",{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]},axesState:{up:o.axes[3]<0?Math.abs(o.axes[3]):0,down:o.axes[3]<0?0:Math.abs(o.axes[3]),left:o.axes[2]<0?Math.abs(o.axes[2]):0,right:o.axes[2]<0?0:Math.abs(o.axes[2])},deltaTime:n}),this.bindEventByKey(-1===o.axes[2],"RightAxesLeft",t),this.bindEventByKey(1===o.axes[2],"RightAxesRight",t),this.bindEventByKey(-1===o.axes[3],"RightAxesUp",t),this.bindEventByKey(1===o.axes[3],"RightAxesDown",t),this.bindEventByKey(null==o?void 0:o.buttons[4].pressed,"A",t),this.bindEventByKey(o.buttons[5].pressed,"B",t),this.bindEventByKey(null==o?void 0:o.buttons[0].pressed,"RightTrigger",t),this.bindEventByKey(null==o?void 0:o.buttons[1].pressed,"RightPinch",t)}}this.emit("webXRControllerRayUpdate",{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]})}},n.prototype.bindEventByKey=function(e,t,n){e?!1===this.xrControllerState[t].touchStart?(this.xrControllerState[t].touchStartTime=n,this.xrControllerState[t].touchStart=!0,this.emit("webXRControllerEvent","buttonDown",t,{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]}})):n-this.xrControllerState[t].touchStartTime>300&&this.emit("webXRControllerEvent","press",t,{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]}}):!0===this.xrControllerState[t].touchStart&&(this.emit("webXRControllerEvent","buttonUp",t,{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]}}),n-this.xrControllerState[t].touchStartTime<=300&&(this.emit("webXRControllerEvent","tap",t,{raycaster:{leftRay:this.xrControllerRay[0],rightRay:this.xrControllerRay[1]}})||"RightTrigger"===t&&this.checkSelectedPano(this.xrControllerRay[1])),this.xrControllerState[t].touchStart=!1,this.xrControllerState[t].touchStartTime=0)},n}(Vo),es=["Panorama","DepthPanorama","Model"],ts={Floorplan:eo,Topview:ho,Panorama:Vo,VRPanorama:va,Model:ma,DepthPanorama:Ea,Mapview:Ba,XRPanorama:$a};function ns(e){for(var t=0,n=es;t<n.length;t++){var i=n[t];if("string"==typeof e){if(i===e)return!0}else if(e instanceof $r&&e instanceof ts[i])return!0}return!1}var is=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPressGesture","pressGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError","webXRSessionStart","webXRSessionEnd","webXRControllerEvent","webXRControllerRayUpdate","webXRAxesUpdate","webXRMoveToPano"];function rs(e){for(var t,n,i={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var a=o[r].split("="),s=null===(t=a[0])||void 0===t?void 0:t.trim(),l=null===(n=a[1])||void 0===n?void 0:n.trim();s&&l&&(i[s]=l)}return i}function os(){for(var e,t=document.getElementsByTagName("meta"),n=0;n<t.length;n++){var i=t[n];if("viewport"===i.getAttribute("name")){var r=rs(null!==(e=i.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var as=[351,63],ss=[20,20],ls=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),us=new Float32Array([0,0,1,0,0,1,1,1]),cs=new Uint8Array([0,1,2,1,3,2]),hs=new e.BufferGeometry;hs.setAttribute("position",new e.BufferAttribute(ls,3)),hs.setAttribute("uv",new e.BufferAttribute(us,2)),hs.setIndex(new e.BufferAttribute(cs,1));var ds=new e.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),ps=new e.Mesh(hs,ds);ps.matrixAutoUpdate=!1;var fs=new e.Scene;fs.add(ps),fs.matrixAutoUpdate=!1;var As=new e.OrthographicCamera(-.5,.5,.5,-.5,.1,1);As.position.set(0,0,.5),As.lookAt(0,0,0),As.updateMatrixWorld(!0),As.matrixAutoUpdate=!1;var vs=new e.Vector4,ms=new e.Vector4;function gs(t){if(ds.map){var n=t.getViewport(vs),i=t.getScissor(ms),r=t.getScissorTest(),o=t.autoClear,a=i.x+ss[0]/3,s=i.y+ss[1]/3,l=as[0]/3,u=as[1]/3;t.setViewport(a,s,l,u),t.setScissor(a,s,l,u),t.setScissorTest(!0),t.autoClear=!1,t.render(fs,As),t.setViewport(n),t.setScissor(i),t.setScissorTest(r),t.autoClear=o}else{var c=new e.Texture,h=new Image;h.onload=function(){c.image=h,c.wrapS=e.ClampToEdgeWrapping,c.wrapT=e.ClampToEdgeWrapping,c.minFilter=e.LinearFilter,c.needsUpdate=!0,c.generateMipmaps=!1,ds.needsUpdate=!0,h.onload=le},h.src="data:image/png;base64,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",ds.map=c}}var ys=new e.Box3(new e.Vector3(-50,-50,-50),new e.Vector3(50,50,50)),bs=function(e){return e.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},xs=new e.Vector2,ws=new e.Frustum,Ms=new e.Matrix4,Es=new WeakMap,Cs=new WeakMap,Is=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c,h,d,p,f=this;if((f=t.call(this)||this).ident=Ii(),Ss.instances[f.ident]=f,f.renderSwitch01=0,f.panoIndex=0,f.needsRender=!1,f.onlyRenderIfNeeds=null===(i=n.onlyRenderIfNeeds)||void 0===i||i,f.imageOptions=ne({},null!==(r=n.imageOptions)&&void 0!==r?r:{}),f.textureOptions=ne({},null!==(o=n.textureOptions)&&void 0!==o?o:{}),f.modelLodOptions=ne({},null!==(a=n.modelLod)&&void 0!==a?a:{}),f.poweredByRealsee=null===(s=n.poweredByRealsee)||void 0===s||s,f.extraElements=[],f.controllerInits={Panorama:Object.assign({},n.panorama),Model:Object.assign({},n.model),Floorplan:Object.assign({},n.floorplan),Topview:Object.assign({},n.topview),Mapview:Object.assign({},n.mapview),DepthPanorama:Object.assign({},n.depthPanorama),VRPanorama:Object.assign({},n.vrPanorama),XRPanorama:Object.assign({},n.xrPanorama)},f.fps={testCount:0,testTime:ce()},f.modeChangeDuration=null!==(l=n.modeChangeDuration)&&void 0!==l?l:800,f.panoramaLikeSavedPose={},"undefined"!=typeof window)if(n.renderer)n.renderer instanceof Tt&&f.throwError(new Error("cannot render a internal renderer")),f.renderer=n.renderer;else try{f.renderer=new Tt({preserveDrawingBuffer:n.preserveDrawingBuffer,backgroundColor:n.backgroundColor,backgroundAlpha:n.backgroundAlpha,antialias:n.antialias,webgl2:null==n?void 0:n.webgl2});var A=os();f.renderer.setPixelRatio(1===A?window.devicePixelRatio:1),f.renderer.setSize(512,512)}catch(e){e instanceof Error&&f.throwError(e)}f.copyEffect=new Jr(f.renderer),f.getPixelsRenderTarget=new e.WebGLRenderTarget(1,1,{encoding:null!==(c=null===(u=f.renderer)||void 0===u?void 0:u.outputEncoding)&&void 0!==c?c:e.sRGBEncoding}),f.scissor=Object.assign({left:0,bottom:0,width:1,height:1},n.scissor),f.camera=new Vt(80),f.scene=new Pt,f.xrCustomObjectsScene=new Pt,f.scene.add(f.xrCustomObjectsScene),f.lastLoadWorkTask=Promise.resolve(),f.requestProxy=null!==(h=n.requestProxy)&&void 0!==h?h:bs,f.networkSubscribe=new Ie,f.networkSubscribe.on("network",(function(e,t,n,i){var r;f.emit("network",e,t,n,i),null===(r=f.analysis)||void 0===r||r.network(f.work,e,t,n,i)})),f.boundingMesh=Sr(new e.Box3(new e.Vector3(-.5,-.5,-.5),new e.Vector3(.5,.5,.5))),f.boundingMesh.name="bounding",f.scene.add(f.boundingMesh),f.model=new _i({allowHosts:[],requestProxy:f.requestProxy,networkSubscribe:f.networkSubscribe},f.renderer);var v=Sr(ys);v.name="model_empty",f.model.add(v),f.model.visible=!1,f.readyCallbacks=[],f.modelPending=!1,f.syncingState=!1,f.scene.add(f.model),f.helperGroup=new e.Group,f.helperGroup.name="helper",f.scene.add(f.helperGroup),f.videoTexture=new e.VideoTexture(n.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),function(t){(n=new e.DirectionalLight(16777215,.5)).position.copy(new e.Vector3(1,1,1)),t.add(n);var n=new e.DirectionalLight(16777215,.3);t.add(n),n=new e.AmbientLight(16777215,.3),t.add(n)}(f.scene),f.state={mode:null!==(d=f.currentMode)&&void 0!==d?d:zi,panoIndex:null!==(p=f.panoIndex)&&void 0!==p?p:0,longitude:f.camera.pose.longitude,latitude:f.camera.pose.latitude,fov:f.camera.pose.fov,offset:f.camera.pose.offset.clone(),distance:f.camera.pose.distance},f.stateSynced=!1,f._enableIOSEDR=!1,f.destroyed=!1,f.paused=!0,"undefined"!=typeof window&&(!1!==n.play&&f.play(),f.stopAnimationLoop=ke.shared.add((function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];f.updateTime.apply(f,ie([e,t],n,!1))}),!1,0,10));var m=function(){"undefined"!=typeof document&&null===document.fullscreenElement&&"VRPanorama"===f.currentMode&&f.controller.emit("vrWantsToExit")};if("undefined"!=typeof document&&document.addEventListener("fullscreenchange",m,!1),f.removeEventListeners=function(){"undefined"!=typeof document&&document.removeEventListener("fullscreenchange",m,!1)},f.plugins={},n.plugins&&n.plugins.length)for(var g=0,y=n.plugins;g<y.length;g++){var b=y[g];if("function"==typeof b)b(f);else if(Array.isArray(b)){var x=b[0],w=b[1],M=b[2];if("function"==typeof x){var E=x(f,M);"string"==typeof w&&(f.plugins[w]?f.throwError(new Error("plugin name ".concat(w," is exists."))):f.plugins[w]=E)}}}return f.gpuPickingRenderTarget=new e.WebGLRenderTarget(1,1),f.meshReplaceMaterialMap=new Map,f.meshOriginMaterialMap=new Map,f}return te(n,t),Object.defineProperty(n,"version",{get:function(){return"5.0.0-alpha.210"},enumerable:!1,configurable:!0}),n.prototype.getGPUPicking=function(t,n,i,r,o){var a=this;if(void 0===r&&(r=1),void 0===o&&(o=new e.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.model.setMaterial({modelColorInfo:o}),this.scene.traverse((function(t){if(t instanceof e.Mesh&&!(t instanceof Ge)){var n=Object.keys(i).filter((function(e){return e===t.uuid}))[0];if(n)if(a.meshOriginMaterialMap.set(n,t.material),a.meshReplaceMaterialMap.get(n))t.material=a.meshReplaceMaterialMap.get(n);else{var r=new e.ShaderMaterial({uniforms:{color:{value:i[n]}},vertexShader:"\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n ",fragmentShader:"\n uniform vec3 color;\n void main() {\n gl_FragColor = vec4( color, 1.0 );\n }\n "});r.depthTest=t.material.depthTest,r.side=t.material.side,a.meshReplaceMaterialMap.set(n,r),t.material=r}}}));var s=this.renderer.getSize(new e.Vector2);this.camera.setViewOffset(s.width,s.height,t*r,n*r,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var l=new Uint8Array(4);return this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse((function(t){t instanceof e.Mesh&&!(t instanceof Ge)&&a.meshOriginMaterialMap.get(t.uuid)&&(t.material=a.meshOriginMaterialMap.get(t.uuid))})),this.model.setMaterial({modelColorInfo:null}),Object.keys(i).filter((function(t){return i[t].equals((new e.Color).setRGB(l[0]/255,l[1]/255,l[2]/255))}))[0]||!1},n.prototype.dispose=function(){var e,t;if(!0!==this.destroyed){delete Ss.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),null===(e=this.renderer)||void 0===e||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var n=this.getElement();n&&n.parentNode&&n.parentNode.removeChild(n),this.scene.remove(this.model);var i=this.model.getMaterial();i&&(i.pano0&&i.pano0.map.dispose(),i.pano1&&i.pano1.map!==(null===(t=i.pano0)||void 0===t?void 0:t.map)&&i.pano1.map.dispose()),this.model.dispose(),this.diposeGPUPickingMaterial(),this.renderer instanceof Tt&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},n.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(n.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&"Panorama"===this.currentMode&&this.changeMode(this.currentMode,{},0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffers},set:function(t){var n,i,r,o;if(t){if(!this.screenBuffers){var a=this.getDrawingBufferSize(xs);this.screenBuffers=[new e.WebGLRenderTarget(a.x,a.y,{encoding:null!==(i=null===(n=this.renderer)||void 0===n?void 0:n.outputEncoding)&&void 0!==i?i:e.sRGBEncoding}),new e.WebGLRenderTarget(a.x,a.y,{encoding:null!==(o=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==o?o:e.sRGBEncoding})]}}else this.screenBuffers&&(this.screenBuffers[0].dispose(),this.screenBuffers[1].dispose(),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),n.prototype.updateConfiguration=function(e){var t=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),"Panorama"===this.currentMode&&(t=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),"Model"===this.currentMode&&(t=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),"Floorplan"===this.currentMode&&(t=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),"Topview"===this.currentMode&&(t=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.topview),"Mapview"===this.currentMode&&(t=!0)),e.depthPanorama&&(Object.assign(this.controllerInits.DepthPanorama,e.depthPanorama),"DepthPanorama"===this.currentMode&&(t=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),"VRPanorama"===this.currentMode&&(t=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),"Panorama"!==this.currentMode&&"DepthPanorama"!==this.currentMode&&"VRPanorama"!==this.currentMode||(t=!0)),t&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0),e.textureOptions&&(Object.assign(this.textureOptions,e.textureOptions),this.model.updateTexture(this.textureOptions))},n.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Tt){var n=this.getElement();if(n){e.appendChild(n),this.refresh(t);var i=window.getComputedStyle(e).position;"relative"!==i&&"absolute"!==i&&"fixed"!==i&&"sticky"!==i&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},n.prototype.refresh=function(t,n){if(void 0===t&&(t={}),this.renderer){var i=this.getElement();if(i){var r=i.parentNode;if(r&&r.nodeName){var o=t.width,a=void 0===o?r.offsetWidth:o,s=t.height,l=void 0===s?r.offsetHeight:s;this.renderer instanceof Tt&&(n&&this.renderer.setPixelRatio(n),this.renderer.setSize(a,l))}var u=this.renderer.getSize(new e.Vector2);this.camera.aspect=u.x*this.scissor.width/(u.y*this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},n.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},n.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},n.prototype.getPose=function(){var e=this.camera.copyPose(),t=e.longitude,n=e.latitude,i=e.fov,r=e.offset,o=e.distance;return{longitude:t,latitude:n,fov:i,offset:r.clone(),distance:o}},n.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.updateCamera=function(e,t,n){return void 0===n&&(n=!0),this.controller?this.controller.updateCamera(e,t,n):Promise.reject(new Error("controller is not initialized."))},n.prototype.updateCameraWithKeyframes=function(e,t,n){return void 0===n&&(n=!0),this.controller?this.controller.updateCameraWithKeyframes(e,t,n):Promise.reject(new Error("controller is not initialized."))},n.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},n.prototype.getOffset=function(){return this.getPose().offset},n.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var t=this.work.observers[this.panoIndex],n=new e.Object3D;return n.position.copy(t.position),n.quaternion.copy(t.quaternion),n.scale.set(1,1,1),n.updateMatrixWorld(!0),function(t,n){var i=new e.Vector3(0,0,-1);i.applyQuaternion(t.quaternion);var r=n.quaternion.clone().inverse();return i.applyQuaternion(r),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,n)}},Object.defineProperty(n.prototype,"work",{get:function(){var e=Cs.get(this);if(e&&$i.get(e))return e},enumerable:!1,configurable:!0}),n.prototype.load=function(e,t,n,i){var r=this;if(void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?r.load_(e,t,n,i):e.then((function(e){return r.load_(e,t,n,i)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){r.throwError(e)})),o},n.prototype.load_=function(t,i,r,o){var a,s,l,u,c,h,d,p,f,A=this;void 0===o&&(o=!0);var v,m,g,y=rr(t),b=this.work;void 0===i&&(i=b?"inherit":"initial"),"inherit"===i?(v="number"==typeof this.panoIndex&&y.observers[this.panoIndex]?this.panoIndex:y.initial.panoIndex,m=null!==(a=this.currentMode)&&void 0!==a?a:y.initial.mode,g={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===i?(m=null!==(s=this.currentMode)&&void 0!==s?s:y.initial.mode,v=y.initial.panoIndex,g=m===n.Mode.Panorama||m===n.Mode.DepthPanorama||m===n.Mode.Model||m===n.Mode.VRPanorama||m===n.Mode.XRPanorama?{longitude:y.initial.longitude,latitude:y.initial.latitude,fov:y.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(v=null!==(l=i.panoIndex)&&void 0!==l?l:y.initial.panoIndex,m=null!==(c=null!==(u=i.mode)&&void 0!==u?u:this.currentMode)&&void 0!==c?c:zi,g={longitude:null!==(h=i.longitude)&&void 0!==h?h:y.initial.longitude,latitude:null!==(d=i.latitude)&&void 0!==d?d:y.initial.latitude,fov:null!==(p=i.fov)&&void 0!==p?p:y.initial.fov}),this.emit("willLoad",t,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov});var x=function(){var e;A.panoIndex=v,A.panoramaLikeSavedPose.longitude=y.initial.longitude,A.panoramaLikeSavedPose.latitude=y.initial.latitude,A.panoramaLikeSavedPose.fov=y.initial.fov;var n=A.controller?null!=r?r:A.modeChangeDuration:0,i=ne(ne({initial:[v,g,n,o]},A.commonParams()),A.controllerInits[m]);A.controller?!1===A.controller.updateWork(y,v,g,n,o)&&(A.controller.destroy(),A.controller=A.applyController(m,i)):A.controller=A.applyController(m,i),A.emit("load",t,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov}),null===(e=A.analysis)||void 0===e||e.work(y)},w=function(e){var t;void 0===e&&(e=le),y.model&&(A.model.name!==(null===(t=y.model)||void 0===t?void 0:t.file)?(A.emit("modelWillLoad",y.model),A.loadModel(y.workCode,y.model,y.allowHosts,e,!0)):e&&e())};Cs.set(this,y);for(var M=new e.Box3,E=0,C=y.observers;E<C.length;E++){var I=C[E];M.expandByPoint(I.standingPosition),M.expandByPoint((new e.Vector3).fromArray([I.position.x,2*I.position.y-I.standingPosition.y,I.position.z]))}return this.model.bounding.union(M),m===n.Mode.Floorplan||m===n.Mode.Topview||m===n.Mode.Mapview||m===n.Mode.Model?w((function(){x(),A.needsRender=!0})):(this.controller||(this.camera.setFromPose({distance:0,fov:y.initial.fov,longitude:y.initial.longitude,latitude:y.initial.latitude,offset:y.observers[y.initial.panoIndex].position}),this.needsRender=!0),x(),null===(f=this.controller)||void 0===f||f.once("panoLoaded",(function(){A.needsRender=!0,A.emit("cameraUpdate",A.camera.copyPose(),o),w()}))),this.ready().then((function(){A.emit("loaded",t,A.work)}))},n.prototype.changeMode=function(e,t,i,r,o){var a=this;if(void 0===t&&(t={}),void 0===i&&(i=this.modeChangeDuration),void 0===r&&(r=!0),void 0===o&&(o=!1),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(s,l){if(!n.Mode.hasOwnProperty(e)){var u=new Error('mode "'.concat(e,'" is not existed'));return a.throwError(u),void l(u)}if((e===n.Mode.Floorplan||e===n.Mode.Topview||e===n.Mode.Mapview||e===n.Mode.Model)&&(Qi(a.model)||!0!==a.model.loaded))return u=new Error("model is not ready."),a.throwError(u),void l(u);if(Qi(a.controller))return u=new Error("controller is not ready."),a.throwError(u),void l(u);var c=a.controller,h=a.currentMode,d=function(){var u,d,p,f;if(a.emit("wantsChangeMode",e,h))l(new Error("change mode canceled."));else{if(a.controller&&!1===o&&h===e)e===n.Mode.Panorama||e===n.Mode.DepthPanorama||e===n.Mode.Model||e===n.Mode.VRPanorama||e===n.Mode.XRPanorama?"number"==typeof t.panoIndex&&t.panoIndex!==a.panoIndex?a.controller.moveToPano(null!==(d=null!==(u=t.panoIndex)&&void 0!==u?u:a.panoIndex)&&void 0!==d?d:0,ne({duration:i},t),r):a.controller.updateCamera(t,i,r).catch(le):("number"==typeof t.panoIndex&&t.panoIndex!==a.panoIndex&&(a.panoIndex=t.panoIndex),a.controller.updateCamera(t,i,r).catch(le));else{c.destroy();var A=null!==(f=null!==(p=t.panoIndex)&&void 0!==p?p:a.panoIndex)&&void 0!==f?f:0,v=ns(e)?a.panoramaLikeSavedPose:{};e===n.Mode.Mapview&&(v.longitude=a.panoramaLikeSavedPose.longitude),"number"!=typeof t.longitude&&"number"!=typeof t.latitude||(v.longitude=t.longitude,v.latitude=t.latitude),"number"==typeof t.fov&&(v.fov=t.fov),"Mapview"===e&&(v.distance=t.distance,v.offset=t.offset);var m=ne(ne({initial:[A,v,i,r]},a.commonParams()),a.controllerInits[e]);a.saveControllerPose(c),a.controller=a.applyController(e,m);var g=ts[e].initAnimationEndPose(m);a.emit("modeChange",e,h,A,g,r)}s()}};if(e===n.Mode.VRPanorama)a.requestFullscreen(),("undefined"==typeof location||"https:"!==location.protocol?Promise.reject(new Error("Request DeviceOrientation Permission denied.")):"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return d()})).catch((function(e){e instanceof Error&&(a.exitFullscreen(),a.throwError(e),l(e))}));else if(e===n.Mode.XRPanorama){var p=ke.shared.getContext();p?p.end():function(){if("xr"in navigator)return navigator.xr.isSessionSupported("immersive-vr").then((function(e){return e?Promise.resolve():Promise.reject()})).then((function(){return navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then((function(e){return Promise.resolve(e)}))}));var e=new Error("Request XR Permission denied.");return Promise.reject(e)}().then((function(e){ke.shared.setContext(e),d()})).catch((function(e){e instanceof Error&&(a.throwError(e),l(e))}))}else e===n.Mode.Mapview?(a.model&&a.model.originModel&&a.model.tiledModel&&(a.model.originModel.visible=!0,a.model.tiledModel.reset()),d()):d()}))},n.prototype.getPixels=function(t,n,i,r,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new e.Vector2);t=Gt(t,Math.floor(i/2),Math.floor(s.x-i)),n=Gt(n,Math.floor(r/2),Math.floor(s.y-r)),a.setSize(i*o,r*o),this.renderer.setRenderTarget(a),this.camera.setViewOffset(s.width,s.height,t,s.height-n-r,i,r),this.controller?this.controller.render():this.renderer.render(this.scene,this.camera);var l=new Uint8Array(i*o*r*o*4);return this.renderer.readRenderTargetPixels(a,0,0,i*o,r*o,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),l},n.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},n.prototype.render=function(e,t){var n,i=this;if(void 0===t&&(t=!1),!this.renderer)return null;var r=Ke.shared,o=null===(n=this.model.getMaterial())||void 0===n?void 0:n.clippers;if(o&&r.update(o,this.camera),this.model.setMaterial({clipperPlanesArray:o?r.clipperPlanes:null,clipperFloors:o?r.clipperFloors:null}),t){var a=this.renderer.getSize(xs);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(a.x,a.y)}))}if(this.controller&&this.screenBuffers&&null===this.renderer.getRenderTarget()){var s=this.getDrawingBufferSize(xs);return this.screenBuffers[0].setSize(s.x,s.y),this.screenBuffers[1].setSize(s.x,s.y),this.renderer.setRenderTarget(this.screenBuffers[0]),this.controller.render(),"VRPanorama"!==this.currentMode&&"XRPanorama"!==this.currentMode&&this.poweredByRealsee&&gs(this.renderer),this.renderer.setRenderTarget(null),e&&ke.shared.add(e,!0),this.screenBuffers[0]}return this.aroundScissor((function(){i.renderer&&(i.controller?i.controller.render():i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&"VRPanorama"!==i.currentMode&&"XRPanorama"!==i.currentMode&&gs(i.renderer)),e&&ke.shared.add(e,!0)})),null},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s=this,l=[],u=2;u<arguments.length;u++)l[u-2]=arguments[u];if(!this.destroyed){this.syncingState=this.syncState(t,n),this.controller&&(i=this.controller).updateTime.apply(i,ie([t,n],l,!1)),this.syncingState=!1,this.camera.updateTime(t,n);var c=new e.Vector2(512,512),h=new e.Vector2(512,512);this.renderer&&(this.renderer.getSize(c),c.x*=this.scissor.width,c.y*=this.scissor.height,this.renderer.getDrawingBufferSize(h),h.x*=this.scissor.width,h.y*=this.scissor.height),this.renderer&&this.model.update(this.renderer,this.camera);var d=new e.Box3;this.work&&d.union(this.work.boundingBox),this.model.empty||d.union(this.model.bounding),d.max.x+=1,d.max.y+=1,d.max.z+=1,d.min.x-=1,d.min.y-=.001,d.min.z-=1,d.getCenter(this.boundingMesh.position),d.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(d);var p=null!==(r=this.model.getMaterial())&&void 0!==r?r:{},f=1-(null!==(o=p.modelAlpha)&&void 0!==o?o:0);p.opacity=Gt(4*f-3,0,1),delete p.clipperFloors,delete p.clipperPlanesArray,delete p.clippers,this.boundingMesh.setMaterial(p),this.boundingMesh.setTransparent(1!==f);var A=[];Ms.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ws.setFromProjectionMatrix(Ms);for(var v=0,m=this.scene.children;v<m.length;v++){var g=m[v];g!==this.model&&g instanceof e.Object3D&&g.traverseVisible((function(n){if(n.setResolution&&n.setResolution(c.x,c.y),n.setTime&&n.setTime(t),n.mixer instanceof e.AnimationMixer){var i=Es.get(n.mixer);i||(i=new e.Clock,Es.set(n.mixer,i)),n.mixer.update(i.getDelta())}(n instanceof e.Mesh||n instanceof e.Line||n instanceof e.Points)&&(n instanceof e.ImmediateRenderObject||!n.frustumCulled||ws.intersectsObject(n))&&A.push(n)}))}if(h.width*h.height>8388608?this.renderSwitch01=1^this.renderSwitch01:this.renderSwitch01=0,this.renderer&&!1===this.paused&&0===this.renderSwitch01){var y=void 0;if(!0!==this.onlyRenderIfNeeds)y=this.render();else{if(this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!0===this.camera.needsRender&&(this.camera.needsRender=!1,this.needsRender=!0),!0===this.model.needsRender&&(this.model.needsRender=!1,this.needsRender=!0),!0===(null===(a=this.model.tiledModel)||void 0===a?void 0:a.needsRender)&&(this.model.tiledModel.needsRender=!1,this.needsRender=!0),!0!==this.needsRender)for(var b=0,x=A;b<x.length;b++){var w=x[b],M=function(e){!0===e.needsRender?(e.needsRender=!1,s.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(s.needsRender=!0)};M(w),w.traverseAncestors(M)}!1!==this.needsRender&&(y=this.render())}if(this.needsRender=!1,this.controller&&this.screenBuffers){var E=this.controller,C=this.screenBuffers;this.aroundScissor((function(){E.postProcessing(C[0],C[1]),s.copyEffect.render(C[1],void 0)}))}this.hasListener("renderFrame")&&this.emit("renderFrame",void 0!==y)}this.fps.testTime&&t-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=t,this.fps.testCount=0)}},n.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof Tt&&this.renderer.clear(!0,!0,!0)},n.prototype.play=function(){this.needsRender=!0,this.paused=!1},n.prototype.moveToPano=function(e,t,i){var r=this;void 0===t&&(t={}),void 0===i&&(i=!0);var o=this,a=o.controller,s=o.currentMode,l=o.renderer;return a?l?(s===n.Mode.Floorplan||s===n.Mode.Topview||s===n.Mode.Mapview?Qi(e)||(this.panoIndex=e,this.once("initAnimationWillStart",(function(e,i){r.currentMode===n.Mode.Panorama&&t.moveStartCallback&&t.moveStartCallback(e,i)})),this.once("initAnimationEnded",(function(e,i){r.currentMode===n.Mode.Panorama&&t.moveEndCallback&&t.moveEndCallback(e,i)})),this.changeMode(n.Mode.Panorama,t,void 0,i)):a.moveToPano(e,t,i),this.ready()):(this.throwError(new Error("renderer is not initialized.")),Promise.resolve()):(this.throwError(new Error("controller is not initialized.")),Promise.resolve())},n.prototype.moveToPanoByRaycaster=function(e){this.controller&&this.controller instanceof ts.XRPanorama&&this.controller.checkSelectedPano(e)},n.prototype.preloadPano=function(e,t){var n=this;if(void 0===t&&(t=le),!this.work)return Promise.reject(new Error("work never loaded"));var i=this.work.observers[e],r=this.work.allowHosts,o=ce();return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ne({key:"pano.".concat(e,".").concat(t)},hn(n.imageOptions,["size","format","quality","mappings"])),a=i.images[t];return Te(n.imageOptions.transform?n.imageOptions.transform(a,o):Ve(a,o),{allowHosts:r,requestProxy:n.requestProxy,networkSubscribe:n.networkSubscribe})}))).then((function(){var e=ce()-o;return t(e),e}))},n.prototype.project2d=function(t,n){if(void 0===n&&(n=!1),!this.renderer)return null;if(!1===this.model.empty&&n){var i=this.camera.position,r=t.clone().sub(i),o=new e.Raycaster(i,r.clone().normalize()),a=this.model.intersectRaycaster(o)[0];if(a&&a.distance+.01<r.length())return null}var s=t.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var l=this.renderer.getSize(new e.Vector2),u=l.x*this.scissor.width,c=l.y*this.scissor.height,h=l.x*this.scissor.left+(s.x+1)/2*u,d=l.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new e.Vector2(h,d)},n.prototype.getRenderObjects=function(t){Ms.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ws.setFromProjectionMatrix(Ms),t||(t=this.scene);var n=[];return t.traverseVisible((function(t){(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ws.intersectsObject(t))&&n.push(t)})),n},n.prototype.getCurrentState=function(){return ne(ne({},this.getPose()),{mode:this.currentMode||n.Mode.Panorama,panoIndex:this.panoIndex||0})},n.prototype.setState=function(t,i,r){var o,a,s,l,u,c,h,d,p;void 0===i&&(i=!1),void 0===r&&(r=!0),!(t=Object.assign({},t)).offset||t instanceof e.Vector3||(t.offset=new e.Vector3(t.offset.x,t.offset.y,t.offset.z));var f,A,v,m,g,y=null!==(o=t.panoIndex)&&void 0!==o?o:this.state.panoIndex,b=null!==(a=t.mode)&&void 0!==a?a:this.state.mode;if(this.work)if(this.work.observers[y])if(t.mode!==n.Mode.Floorplan&&t.mode!==n.Mode.Topview&&t.mode!==n.Mode.Mapview&&t.mode!==n.Mode.Model||!Qi(this.model)&&!0===this.model.loaded){if(this.state.mode!==b){if("VRPanorama"===b)return void this.changeMode("VRPanorama",void 0,void 0,!0);var x=void 0;x=ns(this.state.mode)&&ns(b)?ne({},this.state):ns(b)?ne({},this.panoramaLikeSavedPose):b===n.Mode.Mapview?{longitude:this.panoramaLikeSavedPose.latitude}:ne({},t),"number"==typeof t.longitude&&(x.longitude=t.longitude),"number"==typeof t.latitude&&(x.latitude=t.latitude),"number"==typeof t.fov&&(x.fov=t.fov),"number"==typeof t.distance&&"Mapview"===t.mode&&(x.distance=t.distance),t.offset instanceof e.Vector3&&"Mapview"===t.mode&&(x.offset=t.offset);var w=ne(ne({initial:[y,x,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[b]),M=ts[b].initAnimationEndPose(w);f=M.longitude,A=M.latitude,v=M.fov,m=M.offset,g=M.distance}else f=null!==(s=t.longitude)&&void 0!==s?s:this.state.longitude,A=null!==(l=t.latitude)&&void 0!==l?l:this.state.latitude,v=null!==(u=t.fov)&&void 0!==u?u:this.state.fov,m=null!==(c=t.offset)&&void 0!==c?c:this.state.offset,g=null!==(h=t.distance)&&void 0!==h?h:this.state.distance;var E={panoIndex:y,mode:b,longitude:f,latitude:A,fov:v,offset:m,distance:g};this.emit("setState",E),Dr(this.state,E)||(this.controller&&"VRPanorama"===E.mode&&E.mode!==this.state.mode?(Fr(this.state,E),this.changeMode("VRPanorama")):this.controller&&"XRPanorama"===E.mode&&E.mode!==this.state.mode?(Fr(this.state,E),this.changeMode("XRPanorama")):(Fr(this.state,E),this.controller&&r&&(this.controller.userAction=!1),i&&this.state.mode===E.mode&&(this.syncingState=this.syncState(ce(),0,i),this.syncingState&&(null===(d=this.controller)||void 0===d||d.updateTime(ce(),0),this.syncingState=!1)),this.emit("stateChange",this.state,r),null===(p=this.analysis)||void 0===p||p.state(this.work,this.state)))}else this.throwError(new Error("model is not ready."));else this.throwError(new Error("panoIndex not found in work"));else this.throwError(new Error("work never load."))},n.prototype.aroundScissor=function(t){if(this.renderer)if("XRPanorama"!==this.state.mode){var n=new e.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||1!==this.scissor.height;if(i){this.renderer.getSize(n);var r=Math.floor(n.x*this.scissor.left),o=Math.floor(n.y*this.scissor.bottom),a=Math.floor(n.x*this.scissor.width),s=Math.floor(n.y*this.scissor.height);this.renderer.setViewport(r,o,a,s),this.renderer.setScissor(r,o,a,s),this.renderer.setScissorTest(!0)}t(),i&&(this.renderer.setViewport(0,0,n.x,n.y),this.renderer.setScissor(0,0,n.x,n.y),this.renderer.setScissorTest(!1))}else t()},n.prototype.syncState=function(t,i,r){void 0===r&&(r=!1);var o=this.stateSynced;if(this.stateSynced=!1,!this.work)return!1;if(!this.controller)return!1;if(this.state.mode!==this.currentMode){var a={mode:this.state.mode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,a,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof ts.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,ne(ne({},s),{duration:r?0:void 0}),!1),!0}}else if(this.state.panoIndex!==this.panoIndex)return s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance},this.controller.moveToPano(this.state.panoIndex,s,!1),!0;if(this.controller instanceof ts.Topview||this.controller instanceof ts.Mapview){var l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l),h=r?this.state.distance:Lr(this.camera.pose.distance,this.state.distance,.2),d=r?new e.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new e.Vector3(Lr(this.camera.pose.offset.x,this.state.offset.x,.2),Lr(this.camera.pose.offset.y,this.state.offset.y,.2),Lr(this.camera.pose.offset.z,this.state.offset.z,.2)),p=r?{longitude:this.state.longitude,latitude:this.state.latitude}:kr({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u),f=p.longitude,A=p.latitude;if(this.controller instanceof ts.Mapview){if(wr(c,this.camera.pose.fov)||Er(d,this.camera.pose.offset)||wr(h,this.camera.pose.distance)||wr(f,this.camera.pose.longitude,2*Math.PI)||wr(A,this.camera.pose.latitude)){var v={x:d.x,y:d.y,z:d.z},m={fov:c};return Object.assign(v,{distance:h}),Object.assign(m,{longitude:f,latitude:A}),this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}}else if(wr(c,this.camera.pose.fov)||Er(d,this.camera.pose.offset))return v={x:d.x,y:d.y,z:d.z},m={fov:c},this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}else{l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l);var g=r?{longitude:this.state.longitude,latitude:this.state.latitude}:kr({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u);if(f=g.longitude,A=g.latitude,wr(f,this.camera.pose.longitude,2*Math.PI)||wr(A,this.camera.pose.latitude)||wr(c,this.camera.pose.fov))return this.controller.cameraMotion.set({longitude:f,latitude:A,fov:c},0).catch(le),!0}if(this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state),this.readyCallbacks.length&&this.stateSynced){var y=this.currentMode;if(y!==n.Mode.Floorplan&&y!==n.Mode.Topview&&y!==n.Mode.Mapview&&y!==n.Mode.Model||!this.modelPending){var b=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var x=0,w=b;x<w.length;x++){var M=w[x];this.controller instanceof ts.Panorama?!0!==M.tile||this.controller.isTileReady()?M():this.readyCallbacks.push(M):M()}}}return!1},n.prototype.ready=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(n){var i;t.readyCallbacks.push(Object.assign(n,{tile:null!==(i=e.tile)&&void 0!==i&&i}))}))},n.prototype.requestFullscreen=function(){var e;if(Or()){var t=null===(e=this.getElement())||void 0===e?void 0:e.parentNode;t&&"requestFullscreen"in t&&"undefined"!=typeof document&&null===document.fullscreenElement&&t.requestFullscreen()}},n.prototype.exitFullscreen=function(){"undefined"!=typeof document&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},n.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},n.prototype.loadModel=function(t,n,i,r,o){var a=this,s=n.file;this.emit("modelWillLoad",n);var l=new _i({allowHosts:i,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},this.renderer);l.workCode=t,l.once("bvhLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelBvhLoaded",l)})),l.once("materialLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelMaterialLoaded",l)})),l.once("geometryLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&(l.bounding.max.y-l.bounding.min.y<1.5&&(l.bounding.max.y=l.bounding.min.y+10),a.emit("modelGeometryLoaded",l))})),l.once("loaded",(function(){var t,n,i,o,u;if(!a.destroyed&&s===(null===(n=null===(t=a.work)||void 0===t?void 0:t.model)||void 0===n?void 0:n.file)){var c,h=a.model;h&&(h.show(),c=h.getMaterial()||{},a.scene.remove(h),h.dispose(),l.setTransparent(h.getTransparent())),c&&l.setMaterial(c),a.model=l,a.scene.add(l),null===(i=a.controller)||void 0===i||i.updateModel(l),null===(o=a.renderer)||void 0===o||o.compile(a.scene,a.camera),a.needsRender=!0,a.modelPending=!1,r();var d=[];null===(u=a.model.originModel)||void 0===u||u.children.forEach((function(t){var n=new e.Box3;t.traverse((function(t){t instanceof e.Mesh&&n.union(t.geometry.boundingBox)})),d.push(new e.Vector3(n.max.y,n.min.y,0))})),a.model.setMaterial({globalFloorInfo:d}),a.model.updateTexture(a.textureOptions),a.emit("modelLoaded",l)}})),l.on("shownFloorChange",(function(e,t){var n,i;a.destroyed||s===(null===(i=null===(n=a.work)||void 0===n?void 0:n.model)||void 0===i?void 0:i.file)&&a.emit("modelShownFloorChange",e,t)})),l.on("error",(function(t){var n,i,o,u;if(!a.destroyed&&s===(null===(i=null===(n=a.work)||void 0===n?void 0:n.model)||void 0===i?void 0:i.file)){l.bounding.makeEmpty();for(var c=0,h=a.work.observers;c<h.length;c++){var d=h[c];l.bounding.expandByPoint(d.standingPosition),l.bounding.expandByPoint((new e.Vector3).fromArray([d.position.x,2*d.position.y-d.standingPosition.y,d.position.z]))}var p=Sr(l.bounding,new e.Vector3(1,0,1));p.visible=!0,p.name="model_empty",l.add(p);var f,A=a.model;A&&(A.show(),f=A.getMaterial()||{},a.scene.remove(A),A.dispose(),l.setTransparent(A.getTransparent())),f&&l.setMaterial(f),a.model=l,a.scene.add(l),null===(o=a.controller)||void 0===o||o.updateModel(l),null===(u=a.renderer)||void 0===u||u.compile(a.scene,a.camera),a.emit("modelLoadError",t,l),a.throwError(t),a.modelPending=!1,r()}})),this.modelPending=!0,l.load(n,this.textureOptions,this.modelLodOptions).catch(le)},n.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy}},n.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&ns(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},n.prototype.applyController=function(e,t){var i=this;if(!this.renderer)throw new Error("renderer is not initialized.");var r=ts[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===n.Mode.Floorplan||e===n.Mode.Topview||e===n.Mode.Model||e===n.Mode.Mapview),this.currentMode=e;for(var o=new r(t),a=function(e){o.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(i.emit.apply(i,ie([e],t,!1)))return!1}))},s=0,l=is;s<l.length;s++)a(l[s]);var u=ts[e].initAnimationEndPose(t),c=t.initial[3],h={panoIndex:t.initial[0],mode:e,longitude:u.longitude,latitude:u.latitude,fov:u.fov,offset:u.offset,distance:u.distance};return Dr(this.state,h)||(Fr(this.state,h),this.emit("stateChange",this.state,c)),this.emit("currentStateChange",this.getCurrentState(),c),o.on("cameraUpdate",(function(t,n){var r;if(i.controller){var o=ne(ne({},i.controller.getTargetPose()),{panoIndex:i.panoIndex,mode:e});!1!==i.syncingState||i.state.mode!==o.mode||Dr(i.state,o)||(Fr(i.state,o),i.emit("stateChange",i.state,n),null===(r=i.analysis)||void 0===r||r.state(i.work,i.state))}i.emit("currentStateChange",i.getCurrentState(),n)})),o.on("initAnimationWillStart",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("initAnimationEnded",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("panoWillArrive",(function(t,n,r){var o;i.panoIndex=t;var a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("panoArrived",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("moveToPano",(function(e,t){i.emit("currentStateChange",i.getCurrentState(),t)})),o.on("wantsMoveToPano",(function(e,t,n){var r=i.emit("wantsMoveToPano",e,t,n);r||(r=i.emit("wantsToMoveToPano",e,t,n)),r||i.moveToPano(e,t,n)})),o.on("vrWantsToExit",(function(){i.currentMode===n.Mode.VRPanorama&&(i.exitFullscreen(),i.changeMode(n.Mode.Panorama))})),o.on("error",(function(e){return i.throwError(e)})),o},n.prototype.removeEventListeners=function(){},n.prototype.diposeGPUPickingMaterial=function(){this.meshReplaceMaterialMap.forEach((function(e){e.dispose()})),this.meshOriginMaterialMap.forEach((function(e){e.dispose()}))},n.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},n.Line=null,n}(se),Ss={instances:{},constructor:Is};"undefined"!=typeof window&&Object.assign(window,{__FIVE_DEBUG__:Ss});var Bs=function(){function e(){}return e.createButton=function(e){var t=document.createElement("button");function n(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return t.id="VRButton",t.style.display="none",n(t),navigator.xr.isSessionSupported("immersive-vr").then((function(n){n?(t.style.display="",t.style.cursor="pointer",t.style.left="calc(50% - 50px)",t.style.width="100px",t.textContent="ENTER VR",t.onmouseenter=function(){t.style.opacity="1.0"},t.onmouseleave=function(){t.style.opacity="0.5"},t.onclick=function(){e&&e()}):(t.style.display="",t.style.cursor="auto",t.style.left="calc(50% - 75px)",t.style.width="150px",t.onmouseenter=null,t.onmouseleave=null,t.onclick=null,t.textContent="VR NOT SUPPORTED")})),t;var i=document.createElement("a");return!1===window.isSecureContext?(i.href=document.location.href.replace(/^http:/,"https:"),i.innerHTML="WEBXR NEEDS HTTPS"):(i.href="https://immersiveweb.dev/",i.innerHTML="WEBXR NOT AVAILABLE"),i.style.left="calc(50% - 90px)",i.style.width="180px",i.style.textDecoration="none",n(i),i},e}()})(),__webpack_exports__})()));
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FiveSDK=t():e.FiveSDK=t()}(self,(()=>(()=>{var __webpack_modules__={438:e=>{if(!("THREE"in window))throw new Error('"THREE" is not available. Please include "three.js" in your HTML.');const t=Number(THREE.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');e.exports=window.THREE},383:e=>{"use strict";e.exports=function(e,t){for(var n=new Array(arguments.length-1),i=0,r=2,o=!0;r<arguments.length;)n[i++]=arguments[r++];return new Promise((function(r,a){n[i]=function(e){if(o)if(o=!1,e)a(e);else{for(var t=new Array(arguments.length-1),n=0;n<t.length;)t[n++]=arguments[n];r.apply(null,t)}};try{e.apply(t||null,n)}catch(e){o&&(o=!1,a(e))}}))}},417:(e,t)=>{"use strict";var n=t;n.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var i=new Array(64),r=new Array(123),o=0;o<64;)r[i[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;n.encode=function(e,t,n){for(var r,o=null,a=[],s=0,l=0;t<n;){var u=e[t++];switch(l){case 0:a[s++]=i[u>>2],r=(3&u)<<4,l=1;break;case 1:a[s++]=i[r|u>>4],r=(15&u)<<2,l=2;break;case 2:a[s++]=i[r|u>>6],a[s++]=i[63&u],l=0}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,a)),s=0)}return l&&(a[s++]=i[r],a[s++]=61,1===l&&(a[s++]=61)),o?(s&&o.push(String.fromCharCode.apply(String,a.slice(0,s))),o.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";n.decode=function(e,t,n){for(var i,o=n,s=0,l=0;l<e.length;){var u=e.charCodeAt(l++);if(61===u&&s>1)break;if(void 0===(u=r[u]))throw Error(a);switch(s){case 0:i=u,s=1;break;case 1:t[n++]=i<<2|(48&u)>>4,i=u,s=2;break;case 2:t[n++]=(15&i)<<4|(60&u)>>2,i=u,s=3;break;case 3:t[n++]=(3&i)<<6|u,s=0}}if(1===s)throw Error(a);return n-o},n.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},516:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i<n.length;)n[i].fn===t?n.splice(i,1):++i;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,n)}return this}},787:e=>{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),n=new Uint8Array(t.buffer),i=128===n[3];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3]}function o(e,i,r){t[0]=e,i[r]=n[3],i[r+1]=n[2],i[r+2]=n[1],i[r+3]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],t[0]}function s(e,i){return n[3]=e[i],n[2]=e[i+1],n[1]=e[i+2],n[0]=e[i+3],t[0]}e.writeFloatLE=i?r:o,e.writeFloatBE=i?o:r,e.readFloatLE=i?a:s,e.readFloatBE=i?s:a}():function(){function t(e,t,n,i){var r=t<0?1:0;if(r&&(t=-t),0===t)e(1/t>0?0:2147483648,n,i);else if(isNaN(t))e(2143289344,n,i);else if(t>34028234663852886e22)e((r<<31|2139095040)>>>0,n,i);else if(t<11754943508222875e-54)e((r<<31|Math.round(t/1401298464324817e-60))>>>0,n,i);else{var o=Math.floor(Math.log(t)/Math.LN2);e((r<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,n,i)}}function a(e,t,n){var i=e(t,n),r=2*(i>>31)+1,o=i>>>23&255,a=8388607&i;return 255===o?a?NaN:r*(1/0):0===o?1401298464324817e-60*r*a:r*Math.pow(2,o-150)*(a+8388608)}e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,i),e.readFloatLE=a.bind(null,r),e.readFloatBE=a.bind(null,o)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),i=128===n[7];function r(e,i,r){t[0]=e,i[r]=n[0],i[r+1]=n[1],i[r+2]=n[2],i[r+3]=n[3],i[r+4]=n[4],i[r+5]=n[5],i[r+6]=n[6],i[r+7]=n[7]}function o(e,i,r){t[0]=e,i[r]=n[7],i[r+1]=n[6],i[r+2]=n[5],i[r+3]=n[4],i[r+4]=n[3],i[r+5]=n[2],i[r+6]=n[1],i[r+7]=n[0]}function a(e,i){return n[0]=e[i],n[1]=e[i+1],n[2]=e[i+2],n[3]=e[i+3],n[4]=e[i+4],n[5]=e[i+5],n[6]=e[i+6],n[7]=e[i+7],t[0]}function s(e,i){return n[7]=e[i],n[6]=e[i+1],n[5]=e[i+2],n[4]=e[i+3],n[3]=e[i+4],n[2]=e[i+5],n[1]=e[i+6],n[0]=e[i+7],t[0]}e.writeDoubleLE=i?r:o,e.writeDoubleBE=i?o:r,e.readDoubleLE=i?a:s,e.readDoubleBE=i?s:a}():function(){function t(e,t,n,i,r,o){var a=i<0?1:0;if(a&&(i=-i),0===i)e(0,r,o+t),e(1/i>0?0:2147483648,r,o+n);else if(isNaN(i))e(0,r,o+t),e(2146959360,r,o+n);else if(i>17976931348623157e292)e(0,r,o+t),e((a<<31|2146435072)>>>0,r,o+n);else{var s;if(i<22250738585072014e-324)e((s=i/5e-324)>>>0,r,o+t),e((a<<31|s/4294967296)>>>0,r,o+n);else{var l=Math.floor(Math.log(i)/Math.LN2);1024===l&&(l=1023),e(4503599627370496*(s=i*Math.pow(2,-l))>>>0,r,o+t),e((a<<31|l+1023<<20|1048576*s&1048575)>>>0,r,o+n)}}}function a(e,t,n,i,r){var o=e(i,r+t),a=e(i,r+n),s=2*(a>>31)+1,l=a>>>20&2047,u=4294967296*(1048575&a)+o;return 2047===l?u?NaN:s*(1/0):0===l?5e-324*s*u:s*Math.pow(2,l-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,n,0,4),e.writeDoubleBE=t.bind(null,i,4,0),e.readDoubleLE=a.bind(null,r,0,4),e.readDoubleBE=a.bind(null,o,4,0)}(),e}function n(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function i(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function r(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function o(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},795:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},476:e=>{"use strict";e.exports=function(e,t,n){var i=n||8192,r=i>>>1,o=null,a=i;return function(n){if(n<1||n>r)return e(n);a+n>i&&(o=e(i),a=0);var s=t.call(o,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},893:(e,t)=>{"use strict";var n=t;n.length=function(e){for(var t=0,n=0,i=0;i<e.length;++i)(n=e.charCodeAt(i))<128?t+=1:n<2048?t+=2:55296==(64512&n)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},n.read=function(e,t,n){if(n-t<1)return"";for(var i,r=null,o=[],a=0;t<n;)(i=e[t++])<128?o[a++]=i:i>191&&i<224?o[a++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[a++]=55296+(i>>10),o[a++]=56320+(1023&i)):o[a++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((r||(r=[])).push(String.fromCharCode.apply(String,o)),a=0);return r?(a&&r.push(String.fromCharCode.apply(String,o.slice(0,a))),r.join("")):String.fromCharCode.apply(String,o.slice(0,a))},n.write=function(e,t,n){for(var i,r,o=n,a=0;a<e.length;++a)(i=e.charCodeAt(a))<128?t[n++]=i:i<2048?(t[n++]=i>>6|192,t[n++]=63&i|128):55296==(64512&i)&&56320==(64512&(r=e.charCodeAt(a+1)))?(i=65536+((1023&i)<<10)+(1023&r),++a,t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128);return n-o}},967:(e,t,n)=>{"use strict";e.exports=n(365)},365:(e,t,n)=>{"use strict";var i=t;function r(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}i.build="minimal",i.Writer=n(147),i.BufferWriter=n(55),i.Reader=n(74),i.BufferReader=n(69),i.util=n(835),i.rpc=n(876),i.roots=n(7),i.configure=r,r()},74:(e,t,n)=>{"use strict";e.exports=l;var i,r=n(835),o=r.LongBits,a=r.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function l(e){this.buf=e,this.pos=0,this.len=e.length}var u,c="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new l(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new l(e);throw Error("illegal buffer")},h=function(){return r.Buffer?function(e){return(l.create=function(e){return r.Buffer.isBuffer(e)?new i(e):c(e)})(e)}:c};function d(){var e=new o(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function p(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function f(){if(this.pos+8>this.len)throw s(this,8);return new o(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}l.create=h(),l.prototype._slice=r.Array.prototype.subarray||r.Array.prototype.slice,l.prototype.uint32=(u=4294967295,function(){if(u=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return u;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return u}),l.prototype.int32=function(){return 0|this.uint32()},l.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},l.prototype.bool=function(){return 0!==this.uint32()},l.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return p(this.buf,this.pos+=4)},l.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|p(this.buf,this.pos+=4)},l.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=r.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},l.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=r.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},l.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},l.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},l.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},l.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},l._configure=function(e){i=e,l.create=h(),i._configure();var t=r.Long?"toLong":"toNumber";r.merge(l.prototype,{int64:function(){return d.call(this)[t](!1)},uint64:function(){return d.call(this)[t](!0)},sint64:function(){return d.call(this).zzDecode()[t](!1)},fixed64:function(){return f.call(this)[t](!0)},sfixed64:function(){return f.call(this)[t](!1)}})}},69:(e,t,n)=>{"use strict";e.exports=o;var i=n(74);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(835);function o(e){i.call(this,e)}o._configure=function(){r.Buffer&&(o.prototype._slice=r.Buffer.prototype.slice)},o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},o._configure()},7:e=>{"use strict";e.exports={}},876:(e,t,n)=>{"use strict";t.Service=n(380)},380:(e,t,n)=>{"use strict";e.exports=r;var i=n(835);function r(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(r.prototype=Object.create(i.EventEmitter.prototype)).constructor=r,r.prototype.rpcCall=function e(t,n,r,o,a){if(!o)throw TypeError("request must be specified");var s=this;if(!a)return i.asPromise(e,s,t,n,r,o);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof r))try{n=r[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},r.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},600:(e,t,n)=>{"use strict";e.exports=r;var i=n(835);function r(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if(i.isString(e)){if(!i.Long)return r.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):o},r.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;r.fromHash=function(e){return e===a?o:new r((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},r.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},r.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},835:function(e,t,n){"use strict";var i=t;function r(e,t,n){for(var i=Object.keys(t),r=0;r<i.length;++r)void 0!==e[i[r]]&&n||(e[i[r]]=t[i[r]]);return e}function o(e){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),n&&r(this,n)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=n(383),i.base64=n(417),i.EventEmitter=n(516),i.float=n(787),i.inquire=n(795),i.utf8=n(893),i.pool=n(476),i.LongBits=n(600),i.isNode=Boolean(void 0!==n.g&&n.g&&n.g.process&&n.g.process.versions&&n.g.process.versions.node),i.global=i.isNode&&n.g||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var n=e[t];return!(null==n||!e.hasOwnProperty(t))&&("object"!=typeof n||(Array.isArray(n)?n.length:Object.keys(n).length)>0)},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var n=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},i.merge=r,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(e){for(var t={},n=0;n<e.length;++n)t[e[n]]=1;return function(){for(var e=Object.keys(this),n=e.length-1;n>-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},i.oneOfSetter=function(e){return function(t){for(var n=0;n<e.length;++n)e[n]!==t&&delete this[e[n]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,n){return new e(t,n)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},147:(e,t,n)=>{"use strict";e.exports=h;var i,r=n(835),o=r.LongBits,a=r.base64,s=r.utf8;function l(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function u(){}function c(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new l(u,0,0),this.tail=this.head,this.states=null}var d=function(){return r.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}};function p(e,t,n){t[n]=255&e}function f(e,t){this.len=e,this.next=void 0,this.val=t}function A(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function v(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}h.create=d(),h.alloc=function(e){return new r.Array(e)},r.Array!==Array&&(h.alloc=r.pool(h.alloc,r.Array.prototype.subarray)),h.prototype._push=function(e,t,n){return this.tail=this.tail.next=new l(e,t,n),this.len+=t,this},f.prototype=Object.create(l.prototype),f.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(A,10,o.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.uint64=function(e){var t=o.from(e);return this._push(A,t.length(),t)},h.prototype.int64=h.prototype.uint64,h.prototype.sint64=function(e){var t=o.from(e).zzEncode();return this._push(A,t.length(),t)},h.prototype.bool=function(e){return this._push(p,1,e?1:0)},h.prototype.fixed32=function(e){return this._push(v,4,e>>>0)},h.prototype.sfixed32=h.prototype.fixed32,h.prototype.fixed64=function(e){var t=o.from(e);return this._push(v,4,t.lo)._push(v,4,t.hi)},h.prototype.sfixed64=h.prototype.fixed64,h.prototype.float=function(e){return this._push(r.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(r.float.writeDoubleLE,8,e)};var m=r.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var i=0;i<e.length;++i)t[n+i]=e[i]};h.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(p,1,0);if(r.isString(e)){var n=h.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},h.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(p,1,0)},h.prototype.fork=function(){return this.states=new c(this),this.head=this.tail=new l(u,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new l(u,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=d(),i._configure()}},55:(e,t,n)=>{"use strict";e.exports=o;var i=n(147);(o.prototype=Object.create(i.prototype)).constructor=o;var r=n(835);function o(){i.call(this)}function a(e,t,n){e.length<40?r.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}o._configure=function(){o.alloc=r._Buffer_allocUnsafe,o.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&"set"===r.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var i=0;i<e.length;)t[n++]=e[i++]}},o.prototype.bytes=function(e){r.isString(e)&&(e=r._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(o.writeBytesBuffer,t,e),this},o.prototype.string=function(e){var t=r.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},o._configure()}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AnimationFrameLoop:()=>ke,BVH:()=>Xt,BVHIntersect:()=>zt,BVHNode:()=>_t,BVHVector3:()=>Ut,Camera:()=>Vt,Clipper:()=>Ke,Five:()=>Is,InternalWebGLRenderer:()=>Tt,IntersectMesh:()=>br,Model:()=>_i,NetworkSubscribe:()=>Ie,PBMContainer:()=>We,PBMGroup:()=>Xe,PBMMaterial:()=>Bt,PBMMesh:()=>Ge,PROXY_CONTROLLER_EVENT_NAMES:()=>is,PanoCircleMesh:()=>hr,PanoCircleMeshCustom:()=>mr,PanoCircleMeshSolid:()=>fr,Scene:()=>Pt,Subscribe:()=>se,TILE_EVENT:()=>Oi,TextureLoader:()=>Mt,Tile3D:()=>bi,Tile3DModel:()=>Di,TileBoundingSphere:()=>ri,TileCacheNode:()=>Gn,TileCubeTextureTarget:()=>wt,TileCullingVolume:()=>ei,TileOrientedBoundingBox:()=>fi,TileRequestScheduler:()=>Kn,Tileset3D:()=>Ei,Tileset3DTraverser:()=>wi,TilesetCache:()=>Xn,Work:()=>er,XRButton:()=>Bs,defaultImageURLTransform:()=>Ve,getViewportScale:()=>os,imageSupport:()=>je,parseWork:()=>rr});var e=__webpack_require__(438),t=Number(e.REVISION);if(t<115||t>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var n,i,r,o,a,s,l,u,c,h,d,p,f={},A=A||(n=Math,r=(i={}).lib={},o=r.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),a=r.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,r=e.sigBytes;if(this.clamp(),i%4)for(var o=0;o<r;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[i+o>>>2]|=a<<24-(i+o)%4*8}else for(o=0;o<r;o+=4)t[i+o>>>2]=n[o>>>2];return this.sigBytes+=r,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=n.ceil(t/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i<e;i+=4)t.push(4294967296*n.random()|0);return new a.init(t,e)}}),s=i.enc={},l=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i+=2)n[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new a.init(n,t/2)}},u=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new a.init(n,t)}},c=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},h=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,i=t.words,r=t.sigBytes,o=this.blockSize,s=r/(4*o),l=(s=e?n.ceil(s):n.max((0|s)-this._minBufferSize,0))*o,u=n.min(4*l,r);if(l){for(var c=0;c<l;c+=o)this._doProcessBlock(i,c);var h=i.splice(0,l);t.sigBytes-=u}return new a.init(h,u)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),r.Hasher=h.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}}),d=i.algo={},i);function v(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function m(){return new v(null)}!function(e){for(var t=A,n=(r=t.lib).WordArray,i=r.Hasher,r=t.algo,o=[],a=[],s=function(e){return 4294967296*(e-(0|e))|0},l=2,u=0;64>u;){var c;e:{c=l;for(var h=e.sqrt(c),d=2;d<=h;d++)if(!(c%d)){c=!1;break e}c=!0}c&&(8>u&&(o[u]=s(e.pow(l,.5))),a[u]=s(e.pow(l,1/3)),u++),l++}var p=[];r=r.SHA256=i.extend({_doReset:function(){this._hash=new n.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],r=n[1],o=n[2],s=n[3],l=n[4],u=n[5],c=n[6],h=n[7],d=0;64>d;d++){if(16>d)p[d]=0|e[t+d];else{var f=p[d-15],A=p[d-2];p[d]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+p[d-7]+((A<<15|A>>>17)^(A<<13|A>>>19)^A>>>10)+p[d-16]}f=h+((l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25))+(l&u^~l&c)+a[d]+p[d],A=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&r^i&o^r&o),h=c,c=u,u=l,l=s+f|0,s=o,o=r,r=i,i=f+A|0}n[0]=n[0]+i|0,n[1]=n[1]+r|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+l|0,n[5]=n[5]+u|0,n[6]=n[6]+c|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[14+(r+64>>>9<<4)]=e.floor(i/4294967296),n[15+(r+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}}),t.SHA256=i._createHelper(r),t.HmacSHA256=i._createHmacHelper(r)}(Math),A.lib.Cipher||function(e){var t=(p=A).lib,n=t.Base,i=t.WordArray,r=t.BufferedBlockAlgorithm,o=p.enc.Base64,a=p.algo.EvpKDF,s=t.Cipher=r.extend({cfg:n.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(t,n,i){return("string"==typeof n?f:d).encrypt(e,t,n,i)},decrypt:function(t,n,i){return("string"==typeof n?f:d).decrypt(e,t,n,i)}}}});t.StreamCipher=s.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=p.mode={},u=function(e,t,n){var i=this._iv;i?this._iv=void 0:i=this._prevBlock;for(var r=0;r<n;r++)e[t+r]^=i[r]},c=(t.BlockCipherMode=n.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();c.Encryptor=c.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize;u.call(this,e,t,i),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),c.Decryptor=c.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,r=e.slice(t,t+i);n.decryptBlock(e,t),u.call(this,e,t,i),this._prevBlock=r}}),l=l.CBC=c,c=(p.pad={}).Pkcs7={pad:function(e,t){for(var n,r=(n=(n=4*t)-e.sigBytes%n)<<24|n<<16|n<<8|n,o=[],a=0;a<n;a+=4)o.push(r);n=i.create(o,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},t.BlockCipher=s.extend({cfg:s.cfg.extend({mode:l,padding:c}),reset:function(){s.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var h=t.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),d=(l=(p.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return h.create({ciphertext:e,salt:n})}},t.SerializableCipher=n.extend({cfg:n.extend({format:l}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var r=e.createEncryptor(n,i);return t=r.finalize(t),r=r.cfg,h.create({ciphertext:t,key:n,iv:r.iv,algorithm:e,mode:r.mode,padding:r.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(n,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),p=(p.kdf={}).OpenSSL={execute:function(e,t,n,r){return r||(r=i.random(8)),e=a.create({keySize:t+n}).compute(e,r),n=i.create(e.words.slice(t),4*n),e.sigBytes=4*t,h.create({key:e,iv:n,salt:r})}},f=t.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:p}),encrypt:function(e,t,n,i){return n=(i=this.cfg.extend(i)).kdf.execute(n,e.keySize,e.ivSize),i.iv=n.iv,(e=d.encrypt.call(this,e,t,n.key,i)).mixIn(n),e},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),n=i.kdf.execute(n,e.keySize,e.ivSize,t.salt),i.iv=n.iv,d.decrypt.call(this,e,t,n.key,i)}})}(),function(){for(var e=A,t=e.lib.BlockCipher,n=e.algo,i=[],r=[],o=[],a=[],s=[],l=[],u=[],c=[],h=[],d=[],p=[],f=0;256>f;f++)p[f]=128>f?f<<1:f<<1^283;var v=0,m=0;for(f=0;256>f;f++){var g=(g=m^m<<1^m<<2^m<<3^m<<4)>>>8^255&g^99;i[v]=g,r[g]=v;var y=p[v],b=p[y],x=p[b],w=257*p[g]^16843008*g;o[v]=w<<24|w>>>8,a[v]=w<<16|w>>>16,s[v]=w<<8|w>>>24,l[v]=w,w=16843009*x^65537*b^257*y^16843008*v,u[g]=w<<24|w>>>8,c[g]=w<<16|w>>>16,h[g]=w<<8|w>>>24,d[g]=w,v?(v=y^p[p[p[x^y]]],m^=p[p[m]]):v=m=1}var M=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],o=0;o<n;o++)if(o<t)r[o]=e[o];else{var a=r[o-1];o%t?6<t&&4==o%t&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a]):(a=i[(a=a<<8|a>>>24)>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a],a^=M[o/t|0]<<24),r[o]=r[o-t]^a}for(e=this._invKeySchedule=[],t=0;t<n;t++)o=n-t,a=t%4?r[o]:r[o-4],e[t]=4>t||4>=o?a:u[i[a>>>24]]^c[i[a>>>16&255]]^h[i[a>>>8&255]]^d[i[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,l,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,c,h,d,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,r,o,a,s){for(var l=this._nRounds,u=e[t]^n[0],c=e[t+1]^n[1],h=e[t+2]^n[2],d=e[t+3]^n[3],p=4,f=1;f<l;f++){var A=i[u>>>24]^r[c>>>16&255]^o[h>>>8&255]^a[255&d]^n[p++],v=i[c>>>24]^r[h>>>16&255]^o[d>>>8&255]^a[255&u]^n[p++],m=i[h>>>24]^r[d>>>16&255]^o[u>>>8&255]^a[255&c]^n[p++];d=i[d>>>24]^r[u>>>16&255]^o[c>>>8&255]^a[255&h]^n[p++],u=A,c=v,h=m}A=(s[u>>>24]<<24|s[c>>>16&255]<<16|s[h>>>8&255]<<8|s[255&d])^n[p++],v=(s[c>>>24]<<24|s[h>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^n[p++],m=(s[h>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&c])^n[p++],d=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[c>>>8&255]<<8|s[255&h])^n[p++],e[t]=A,e[t+1]=v,e[t+2]=m,e[t+3]=d},keySize:8}),e.AES=t._createHelper(n)}(),"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(v.prototype.am=function(e,t,n,i,r,o){for(var a=32767&t,s=t>>15;--o>=0;){var l=32767&this[e],u=this[e++]>>15,c=s*l+u*a;r=((l=a*l+((32767&c)<<15)+n[i]+(1073741823&r))>>>30)+(c>>>15)+s*u+(r>>>30),n[i++]=1073741823&l}return r},p=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(v.prototype.am=function(e,t,n,i,r,o){for(;--o>=0;){var a=t*this[e++]+n[i]+r;r=Math.floor(a/67108864),n[i++]=67108863&a}return r},p=26):(v.prototype.am=function(e,t,n,i,r,o){for(var a=16383&t,s=t>>14;--o>=0;){var l=16383&this[e],u=this[e++]>>14,c=s*l+u*a;r=((l=a*l+((16383&c)<<14)+n[i]+r)>>28)+(c>>14)+s*u,n[i++]=268435455&l}return r},p=28),v.prototype.DB=p,v.prototype.DM=(1<<p)-1,v.prototype.DV=1<<p,v.prototype.FV=Math.pow(2,52),v.prototype.F1=52-p,v.prototype.F2=2*p-52;var g,y,b="0123456789abcdefghijklmnopqrstuvwxyz",x=new Array;for(g="0".charCodeAt(0),y=0;y<=9;++y)x[g++]=y;for(g="a".charCodeAt(0),y=10;y<36;++y)x[g++]=y;for(g="A".charCodeAt(0),y=10;y<36;++y)x[g++]=y;function w(e){return b.charAt(e)}function M(e,t){var n=x[e.charCodeAt(t)];return null==n?-1:n}function E(e){var t=m();return t.fromInt(e),t}function C(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function I(e){this.m=e}function S(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}I.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},I.prototype.revert=function(e){return e},I.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},I.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},I.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},S.prototype.convert=function(e){var t=m();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(v.ZERO)>0&&this.m.subTo(t,t),t},S.prototype.revert=function(e){var t=m();return e.copyTo(t),this.reduce(t),t},S.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[n=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},S.prototype.mulTo=function(e,t,n){e.multiplyTo(t,n),this.reduce(n)},S.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},v.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},v.prototype.fromString=function(e,t){var n;if(16==t)n=4;else if(8==t)n=3;else if(256==t)n=8;else if(2==t)n=1;else if(32==t)n=5;else{if(4!=t)return void this.fromRadix(e,t);n=2}this.t=0,this.s=0;for(var i=e.length,r=!1,o=0;--i>=0;){var a=8==n?255&e[i]:M(e,i);a<0?"-"==e.charAt(i)&&(r=!0):(r=!1,0==o?this[this.t++]=a:o+n>this.DB?(this[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this[this.t++]=a>>this.DB-o):this[this.t-1]|=a<<o,(o+=n)>=this.DB&&(o-=this.DB))}8==n&&0!=(128&e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),r&&v.ZERO.subTo(this,this)},v.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},v.prototype.dlShiftTo=function(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s},v.prototype.drShiftTo=function(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s},v.prototype.lShiftTo=function(e,t){var n,i=e%this.DB,r=this.DB-i,o=(1<<r)-1,a=Math.floor(e/this.DB),s=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+a+1]=this[n]>>r|s,s=(this[n]&o)<<i;for(n=a-1;n>=0;--n)t[n]=0;t[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()},v.prototype.rShiftTo=function(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)t.t=0;else{var i=e%this.DB,r=this.DB-i,o=(1<<i)-1;t[0]=this[n]>>i;for(var a=n+1;a<this.t;++a)t[a-n-1]|=(this[a]&o)<<r,t[a-n]=this[a]>>i;i>0&&(t[this.t-n-1]|=(this.s&o)<<r),t.t=this.t-n,t.clamp()}},v.prototype.subTo=function(e,t){for(var n=0,i=0,r=Math.min(e.t,this.t);n<r;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()},v.prototype.multiplyTo=function(e,t){var n=this.abs(),i=e.abs(),r=n.t;for(t.t=r+i.t;--r>=0;)t[r]=0;for(r=0;r<i.t;++r)t[r+n.t]=n.am(0,i[r],t,r,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&v.ZERO.subTo(t,t)},v.prototype.squareTo=function(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()},v.prototype.divRemTo=function(e,t,n){var i=e.abs();if(!(i.t<=0)){var r=this.abs();if(r.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=m());var o=m(),a=this.s,s=e.s,l=this.DB-C(i[i.t-1]);l>0?(i.lShiftTo(l,o),r.lShiftTo(l,n)):(i.copyTo(o),r.copyTo(n));var u=o.t,c=o[u-1];if(0!=c){var h=c*(1<<this.F1)+(u>1?o[u-2]>>this.F2:0),d=this.FV/h,p=(1<<this.F1)/h,f=1<<this.F2,A=n.t,g=A-u,y=null==t?m():t;for(o.dlShiftTo(g,y),n.compareTo(y)>=0&&(n[n.t++]=1,n.subTo(y,n)),v.ONE.dlShiftTo(u,y),y.subTo(o,o);o.t<u;)o[o.t++]=0;for(;--g>=0;){var b=n[--A]==c?this.DM:Math.floor(n[A]*d+(n[A-1]+f)*p);if((n[A]+=o.am(0,b,n,g,0,u))<b)for(o.dlShiftTo(g,y),n.subTo(y,n);n[A]<--b;)n.subTo(y,n)}null!=t&&(n.drShiftTo(u,t),a!=s&&v.ZERO.subTo(t,t)),n.t=u,n.clamp(),l>0&&n.rShiftTo(l,n),a<0&&v.ZERO.subTo(n,n)}}},v.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},v.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},v.prototype.exp=function(e,t){if(e>4294967295||e<1)return v.ONE;var n=m(),i=m(),r=t.convert(this),o=C(e)-1;for(r.copyTo(n);--o>=0;)if(t.sqrTo(n,i),(e&1<<o)>0)t.mulTo(i,r,n);else{var a=n;n=i,i=a}return t.revert(n)},v.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,i=(1<<t)-1,r=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(n=this[a]>>s)>0&&(r=!0,o=w(n));a>=0;)s<t?(n=(this[a]&(1<<s)-1)<<t-s,n|=this[--a]>>(s+=this.DB-t)):(n=this[a]>>(s-=t)&i,s<=0&&(s+=this.DB,--a)),n>0&&(r=!0),r&&(o+=w(n));return r?o:"0"},v.prototype.negate=function(){var e=m();return v.ZERO.subTo(this,e),e},v.prototype.abs=function(){return this.s<0?this.negate():this},v.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(0!=(t=n-e.t))return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0},v.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+C(this[this.t-1]^this.s&this.DM)},v.prototype.mod=function(e){var t=m();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(v.ZERO)>0&&e.subTo(t,t),t},v.prototype.modPowInt=function(e,t){var n;return n=e<256||t.isEven()?new I(t):new S(t),this.exp(e,n)},v.ZERO=E(0),v.ONE=E(1),v.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},v.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),i=E(n),r=m(),o=m(),a="";for(this.divRemTo(i,r,o);r.signum()>0;)a=(n+o.intValue()).toString(e).substr(1)+a,r.divRemTo(i,r,o);return o.intValue().toString(e)+a},v.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},v.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1};var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",T="=";function P(e){var t,n,i,r="",o=0;for(t=0;t<e.length&&e.charAt(t)!=T;++t)(i=B.indexOf(e.charAt(t)))<0||(0==o?(r+=w(i>>2),n=3&i,o=1):1==o?(r+=w(n<<2|i>>4),n=15&i,o=2):2==o?(r+=w(n),r+=w(i>>2),n=3&i,o=3):(r+=w(n<<2|i>>4),r+=w(15&i),o=0));return 1==o&&(r+=w(n<<2)),r}function R(e,t){return new v(e,t)}function L(e,t,n){for(var i="",r=0;i.length<t;)i+=n(String.fromCharCode.apply(String,e.concat([(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r]))),r+=1;return i}function k(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function O(e,t,n){for(var i="",r=0;i.length<t;)i+=n(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])),r+=1;return i}function F(e){return P(function(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),(e=e.replace(/-/g,"+")).replace(/_/g,"/")}(e))}function D(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function Q(e){for(var t="",n=0;n<e.length-1;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return t}function N(e){for(var t="",n=0;n<e.length;n++)t+=("0"+e.charCodeAt(n).toString(16)).slice(-2);return t}function V(e,t){var n=function(e){var t=function(e){return function(e){var t,n,i="";for(t=0;t+3<=e.length;t+=3)n=parseInt(e.substring(t,t+3),16),i+=B.charAt(n>>6)+B.charAt(63&n);if(t+1==e.length?(n=parseInt(e.substring(t,t+1),16),i+=B.charAt(n<<2)):t+2==e.length&&(n=parseInt(e.substring(t,t+2),16),i+=B.charAt(n>>2)+B.charAt((3&n)<<4)),T)for(;(3&i.length)>0;)i+=T;return i}(e)}(e).replace(/(.{64})/g,"$1\r\n");return t.replace(/\r\n$/,"")}(e);return"-----BEGIN "+t+"-----\r\n"+n+"\r\n-----END "+t+"-----\r\n"}function U(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return P(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function _(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),n=0;n<8;n++)t[n]=t[n].replace(/^0+/,""),""==t[n]&&(t[n]="0");var i=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===i)return e.slice(1,-1);var r="";for(n=0;n<i.length;n++)i[n].length>r.length&&(r=i[n]);return(e=e.replace(r,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function z(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function q(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}k.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},k.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=R(e,16),this.e=parseInt(t,16)}},k.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var n=new Array,i=e.length-1;i>=0&&t>0;){var r=e.charCodeAt(i--);r<128?n[--t]=r:r>127&&r<2048?(n[--t]=63&r|128,n[--t]=r>>6|192):(n[--t]=63&r|128,n[--t]=r>>6&63|128,n[--t]=r>>12|224)}n[--t]=0;for(var o=new SecureRandom,a=new Array;t>2;){for(a[0]=0;0==a[0];)o.nextBytes(a);n[--t]=a[0]}return n[--t]=2,n[--t]=0,new v(n)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var n=this.doPublic(t);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:"0"+i},k.prototype.encryptOAEP=function(e,t,n){var i=function(e,t,n,i){var r=f.crypto.MessageDigest,o=f.crypto.Util,a=null;if(n||(n="sha1"),"string"==typeof n&&(a=r.getCanonicalAlgName(n),i=r.getHashLength(a),n=function(e){return Q(o.hashHex(N(e),a))}),e.length+2*i+2>t)throw"Message too long for RSA";var s,l="";for(s=0;s<t-e.length-2*i-2;s+=1)l+="\0";var u=n("")+l+""+e,c=new Array(i);(new SecureRandom).nextBytes(c);var h=L(c,u.length,n),d=[];for(s=0;s<u.length;s+=1)d[s]=u.charCodeAt(s)^h.charCodeAt(s);var p=L(d,c.length,n),A=[0];for(s=0;s<c.length;s+=1)A[s+1]=c[s]^p.charCodeAt(s);return new v(A.concat(d))}(e,this.n.bitLength()+7>>3,t,n);if(null==i)return null;var r=this.doPublic(i);if(null==r)return null;var o=r.toString(16);return 0==(1&o.length)?o:"0"+o},k.prototype.type="RSA",k.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),n=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(n)<0;)t=t.add(this.p);return t.subtract(n).multiply(this.coeff).mod(this.p).multiply(this.q).add(n)},k.prototype.setPrivate=function(e,t,n){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=n;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=R(e,16),this.e=parseInt(t,16),this.d=R(n,16)}},k.prototype.setPrivateEx=function(e,t,n,i,r,o,a,s){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=R(e,16),this.e=parseInt(t,16),this.d=R(n,16),this.p=R(i,16),this.q=R(r,16),this.dmp1=R(o,16),this.dmq1=R(a,16),this.coeff=R(s,16)},k.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=R(e,16),n=this.doPrivate(t);return null==n?null:function(e,t){for(var n=e.toByteArray(),i=0;i<n.length&&0==n[i];)++i;if(n.length-i!=t-1||2!=n[i])return null;for(++i;0!=n[i];)if(++i>=n.length)return null;for(var r="";++i<n.length;){var o=255&n[i];o<128?r+=String.fromCharCode(o):o>191&&o<224?(r+=String.fromCharCode((31&o)<<6|63&n[i+1]),++i):(r+=String.fromCharCode((15&o)<<12|(63&n[i+1])<<6|63&n[i+2]),i+=2)}return r}(n,this.n.bitLength()+7>>3)},k.prototype.decryptOAEP=function(e,t,n){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var i=R(e,16),r=this.doPrivate(i);return null==r?null:function(e,t,n,i){var r=f.crypto.MessageDigest,o=f.crypto.Util,a=null;for(n||(n="sha1"),"string"==typeof n&&(a=r.getCanonicalAlgName(n),i=r.getHashLength(a),n=function(e){return Q(o.hashHex(N(e),a))}),e=e.toByteArray(),s=0;s<e.length;s+=1)e[s]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*i+2)throw"Cipher too short";var s,l=e.substr(1,i),u=e.substr(i+1),c=O(u,i,n),h=[];for(s=0;s<l.length;s+=1)h[s]=l.charCodeAt(s)^c.charCodeAt(s);var d=O(String.fromCharCode.apply(String,h),e.length-i,n),p=[];for(s=0;s<u.length;s+=1)p[s]=u.charCodeAt(s)^d.charCodeAt(s);if((p=String.fromCharCode.apply(String,p)).substr(0,i)!==n(""))throw"Hash mismatch";var A=(p=p.substr(i)).indexOf("");if((-1!=A?p.substr(0,A).lastIndexOf("\0"):-1)+1!=A)throw"Malformed data";return p.substr(A+1)}(r,this.n.bitLength()+7>>3,t,n)},void 0!==f.lang&&f.lang||(f.lang={}),f.lang.String=function(){},f.lang.String.isHex=function(e){return z(e)},f.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var H=function(e,t,n){return null==n&&(n="0"),e.length>=t?e:new Array(t-e.length+1).join(n)+e};void 0!==f.crypto&&f.crypto||(f.crypto={}),f.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:A.algo.MD5,sha1:A.algo.SHA1,sha224:A.algo.SHA224,sha256:A.algo.SHA256,sha384:A.algo.SHA384,sha512:A.algo.SHA512,ripemd160:A.algo.RIPEMD160},this.hashString=function(e,t){return new f.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new f.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")}},f.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=f.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=f.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=f.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=A.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(A.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},f.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},f.crypto.MessageDigest.getHashLength=function(e){var t=f.crypto.MessageDigest,n=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[n])throw"not supported algorithm: "+e;return t.HASHLENGTH[n]},f.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},f.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var n="",i=t/4-e.length,r=0;r<i;r++)n+="0";return n+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new f.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var n=null;try{n=void 0===t?j.getKey(e):j.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===n.isPrivate)this.prvKey=n,this.state="SIGN";else{if(!0!==n.isPublic)throw"init failed.:"+n;this.pubKey=n,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.verify=function(e){if(this.sHashHex=this.md.digest(),this.pubKey instanceof k&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof k&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=j.getKey(e.prvkeypem),this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},f.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var j=function(){var e=function(e,n,i){return t(A.AES,e,n,i)},t=function(e,t,n,i){var r=A.enc.Hex.parse(t),o=A.enc.Hex.parse(n),a=A.enc.Hex.parse(i),s={};s.key=o,s.iv=a,s.ciphertext=r;var l=e.decrypt(s,o,{iv:a});return A.enc.Hex.stringify(l)},n=function(e,t,n){return i(A.AES,e,t,n)},i=function(e,t,n,i){var r=A.enc.Hex.parse(t),o=A.enc.Hex.parse(n),a=A.enc.Hex.parse(i),s=e.encrypt(r,o,{iv:a}),l=A.enc.Hex.parse(s.toString());return A.enc.Base64.stringify(l)},r={"AES-256-CBC":{proc:e,eproc:n,keylen:32,ivlen:16},"AES-192-CBC":{proc:e,eproc:n,keylen:24,ivlen:16},"AES-128-CBC":{proc:e,eproc:n,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,n,i){return t(A.TripleDES,e,n,i)},eproc:function(e,t,n){return i(A.TripleDES,e,t,n)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,n,i){return t(A.DES,e,n,i)},eproc:function(e,t,n){return i(A.DES,e,t,n)},keylen:8,ivlen:8}},o=function(e){var t={},n=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));n&&(t.cipher=n[1],t.ivsalt=n[2]);var i=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));i&&(t.type=i[1]);var r=-1,o=0;-1!=e.indexOf("\r\n\r\n")&&(r=e.indexOf("\r\n\r\n"),o=2),-1!=e.indexOf("\n\n")&&(r=e.indexOf("\n\n"),o=1);var a=e.indexOf("-----END");if(-1!=r&&-1!=a){var s=e.substring(r+2*o,a-o);s=s.replace(/\s+/g,""),t.data=s}return t},a=function(e,t,n){for(var i=n.substring(0,16),o=A.enc.Hex.parse(i),a=A.enc.Utf8.parse(t),s=r[e].keylen+r[e].ivlen,l="",u=null;;){var c=A.algo.MD5.create();if(null!=u&&c.update(u),c.update(a),c.update(o),u=c.finalize(),(l+=A.enc.Hex.stringify(u)).length>=2*s)break}var h={};return h.keyhex=l.substr(0,2*r[e].keylen),h.ivhex=l.substr(2*r[e].keylen,2*r[e].ivlen),h},s=function(e,t,n,i){var o=A.enc.Base64.parse(e),a=A.enc.Hex.stringify(o);return(0,r[t].proc)(a,n,i)};return{version:"1.0.0",parsePKCS5PEM:function(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,n){return a(e,t,n)},decryptKeyB64:function(e,t,n,i){return s(e,t,n,i)},getDecryptedKeyHex:function(e,t){var n=o(e),i=(n.type,n.cipher),r=n.ivsalt,l=n.data,u=a(i,t,r).keyhex;return s(l,i,u,r)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,n,i,o){var s="";if(void 0!==i&&null!=i||(i="AES-256-CBC"),void 0===r[i])throw"KEYUTIL unsupported algorithm: "+i;if(void 0===o||null==o){var l=function(e){var t=A.lib.WordArray.random(e);return A.enc.Hex.stringify(t)}(r[i].ivlen);o=l.toUpperCase()}var u=function(e,t,n,i){return(0,r[t].eproc)(e,n,i)}(t,i,a(i,n,o).keyhex,o);return s="-----BEGIN "+e+" PRIVATE KEY-----\r\n",s+="Proc-Type: 4,ENCRYPTED\r\n",s+="DEK-Info: "+i+","+o+"\r\n",s+="\r\n",(s+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={},o=n(e,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;r.ciphertext=i(e,o[1]);var a=n(e,o[0]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+a.length;if("2a864886f70d01050d"!=i(e,a[0]))throw"this only supports pkcs5PBES2";var s=n(e,a[1]);if(2!=a.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+s.length;var l=n(e,s[1]);if(2!=l.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+l.length;if("2a864886f70d0307"!=i(e,l[0]))throw"this only supports TripleDES";r.encryptionSchemeAlg="TripleDES",r.encryptionSchemeIV=i(e,l[1]);var u=n(e,s[0]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+u.length;if("2a864886f70d01050c"!=i(e,u[0]))throw"this only supports pkcs5PBKDF2";var c=n(e,u[1]);if(c.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+c.length;r.pbkdf2Salt=i(e,c[0]);var h=i(e,c[1]);try{r.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return r},getPBKDF2KeyHexFromParam:function(e,t){var n=A.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,r=A.PBKDF2(t,n,{keySize:6,iterations:i});return A.enc.Hex.stringify(r)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var n=U(e,"ENCRYPTED PRIVATE KEY"),i=this.parseHexOfEncryptedPKCS8(n),r=j.getPBKDF2KeyHexFromParam(i,t),o={};o.ciphertext=A.enc.Hex.parse(i.ciphertext);var a=A.enc.Hex.parse(r),s=A.enc.Hex.parse(i.encryptionSchemeIV),l=A.TripleDES.decrypt(o,a,{iv:s});return A.enc.Hex.stringify(l)},getKeyFromEncryptedPKCS8PEM:function(e,t){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=n(e,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var a=n(e,o[1]);if(2!=a.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(a[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(r.algoid=i(e,a[0]),"06"==e.substr(a[1],2)&&(r.algparam=i(e,a[1])),"04"!=e.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return r.keyidx=t.getVidx(e,o[2]),r},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=U(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,n=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==n.algoid)t=new k;else if(f.crypto.DSA&&"2a8648ce380401"==n.algoid)t=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!=n.algoid)throw"unsupported private key algorithm";t=new f.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,n=K.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===n)t=new k;else if(f.crypto.DSA&&"2a8648ce380401"===n)t=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!==n)throw"unsupported PKCS#8 public key hex";t=new f.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var o=n(e,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(o[0],2))throw"malformed RSA key(code:003)";if(r.n=i(e,o[0]),"02"!=e.substr(o[1],2))throw"malformed RSA key(code:004)";return r.e=i(e,o[1]),r},parsePublicPKCS8Hex:function(e){var t=K,n=t.getChildIdx,i=t.getV,r={algparam:null},o=n(e,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var a=o[0];if("30"!=e.substr(a,2))throw"malformed PKCS8 public key(code:001)";var s=n(e,a);if(2!=s.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(s[0],2))throw"malformed PKCS8 public key(code:003)";if(r.algoid=i(e,s[0]),"06"==e.substr(s[1],2)?r.algparam=i(e,s[1]):"30"==e.substr(s[1],2)&&(r.algparam={},r.algparam.p=t.getVbyList(e,s[1],[0],"02"),r.algparam.q=t.getVbyList(e,s[1],[1],"02"),r.algparam.g=t.getVbyList(e,s[1],[2],"02")),"03"!=e.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return r.key=i(e,o[1]).substr(2),r}}}();j.getKey=function(e,t,n){var i,r=(y=K).getChildIdx,o=(y.getV,y.getVbyList),a=f.crypto,s=a.ECDSA,l=a.DSA,u=k,c=U,h=j;if(void 0!==u&&e instanceof u)return e;if(void 0!==s&&e instanceof s)return e;if(void 0!==l&&e instanceof l)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new s({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new s({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(P=new u).setPublic(e.n,e.e),P;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(P=new u).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),P;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(P=new u).setPrivate(e.n,e.e,e.d),P;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(P=new l).setPublic(e.p,e.q,e.g,e.y),P;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(P=new l).setPrivate(e.p,e.q,e.g,e.y,e.x),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(P=new u).setPublic(F(e.n),F(e.e)),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(P=new u).setPrivateEx(F(e.n),F(e.e),F(e.d),F(e.p),F(e.q),F(e.dp),F(e.dq),F(e.qi)),P;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(P=new u).setPrivate(F(e.n),F(e.e),F(e.d)),P;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var d=(T=new s({curve:e.crv})).ecparams.keylen/4,p="04"+("0000000000"+F(e.x)).slice(-d)+("0000000000"+F(e.y)).slice(-d);return T.setPublicKeyHex(p),T}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){d=(T=new s({curve:e.crv})).ecparams.keylen/4,p="04"+("0000000000"+F(e.x)).slice(-d)+("0000000000"+F(e.y)).slice(-d);var A=("0000000000"+F(e.d)).slice(-d);return T.setPublicKeyHex(p),T.setPrivateKeyHex(A),T}if("pkcs5prv"===n){var m,g=e,y=K;if(9===(m=r(g,0)).length)(P=new u).readPKCS5PrvKeyHex(g);else if(6===m.length)(P=new l).readPKCS5PrvKeyHex(g);else{if(!(m.length>2&&"04"===g.substr(m[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(P=new s).readPKCS5PrvKeyHex(g)}return P}if("pkcs8prv"===n)return h.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===n)return h._getKeyFromPublicPKCS8Hex(e);if("x509pub"===n)return W.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return W.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var b=U(e,"PUBLIC KEY");return h._getKeyFromPublicPKCS8Hex(b)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var x=c(e,"RSA PRIVATE KEY");return h.getKey(x,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var w=o(i=c(e,"DSA PRIVATE KEY"),0,[1],"02"),M=o(i,0,[2],"02"),E=o(i,0,[3],"02"),C=o(i,0,[4],"02"),I=o(i,0,[5],"02");return(P=new l).setPrivate(new v(w,16),new v(M,16),new v(E,16),new v(C,16),new v(I,16)),P}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED"))return x=c(e,"EC PRIVATE KEY"),h.getKey(x,null,"pkcs5prv");if(-1!=e.indexOf("-END PRIVATE KEY-"))return h.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var S=h.getDecryptedKeyHex(e,t),B=new k;return B.readPKCS5PrvKeyHex(S),B}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var T,P=o(i=h.getDecryptedKeyHex(e,t),0,[1],"04"),R=o(i,0,[2,0],"06"),L=o(i,0,[3,0],"03").substr(2);if(void 0===f.crypto.OID.oidhex2name[R])throw"undefined OID(hex) in KJUR.crypto.OID: "+R;return(T=new s({curve:f.crypto.OID.oidhex2name[R]})).setPublicKeyHex(L),T.setPrivateKeyHex(P),T.isPublic=!1,T}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED"))return w=o(i=h.getDecryptedKeyHex(e,t),0,[1],"02"),M=o(i,0,[2],"02"),E=o(i,0,[3],"02"),C=o(i,0,[4],"02"),I=o(i,0,[5],"02"),(P=new l).setPrivate(new v(w,16),new v(M,16),new v(E,16),new v(C,16),new v(I,16)),P;if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return h.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},void 0!==f.asn1&&f.asn1||(f.asn1={}),f.asn1.ASN1Util={},f.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",n=parseInt(e.substr(0,2),16),i=(t=Math.floor(n/40)+"."+n%40,""),r=2;r<e.length;r+=2){var o=("00000000"+parseInt(e.substr(r,2),16).toString(2)).slice(-8);i+=o.substr(1,7),"0"==o.substr(0,1)&&(t=t+"."+new v(i,2).toString(10),i="")}return t};var K=new function(){};function G(e){for(var t in f.crypto.Util.DIGESTINFOHEAD){var n=f.crypto.Util.DIGESTINFOHEAD[t],i=n.length;if(e.substring(0,i)==n)return[t,e.substring(i)]}return[]}function W(e){var t,n=K,i=n.getChildIdx,r=n.getV,o=n.getTLV,a=n.getVbyList,s=n.getVbyListEx,l=n.getTLVbyList,u=n.getTLVbyListEx,c=n.getIdxbyList,h=n.getIdxbyListEx,d=n.getVidx,p=n.getInt,A=n.oidname,v=n.hextooidstr,m=U;try{t=f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=l(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=l(e,0,[0]),n=p(t,0);if(n<0||2<n)throw new Error("malformed version field");return this.version=n+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return s(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=u(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var n in t)if(e===t[n])return n;return A(s(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return l(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return l(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=a(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getNotAfter=function(){var e=a(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),decodeURIComponent(e)},this.getPublicKeyHex=function(){return n.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return c(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return c(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return j.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=l(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return a(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),n=this.getSignatureValueHex(),i=l(this.hex,0,[0],"30"),r=new f.crypto.Signature({alg:t});return r.init(e),r.updateHex(i),r.verify(n)},this.parseExt=function(e){var t,o,s;if(void 0===e){if(s=this.hex,3!==this.version)return-1;t=c(s,0,[0,7,0],"30"),o=i(s,t)}else{s=U(e);var l=c(s,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=r(s,l))return void(this.aExtInfo=new Array);t=c(s,0,[0,3,0,1,0],"30"),o=i(s,t),this.hex=s}this.aExtInfo=new Array;for(var u=0;u<o.length;u++){var h={critical:!1},p=0;3===i(s,o[u]).length&&(h.critical=!0,p=1),h.oid=n.hextooidstr(a(s,o[u],[0],"06"));var f=c(s,o[u],[1+p]);h.vidx=d(s,f),this.aExtInfo.push(h)}},this.getExtInfo=function(e){var t=this.aExtInfo,n=e;if(e.match(/^[0-9.]+$/)||(n=f.asn1.x509.OID.name2oid(e)),""!==n)for(var i=0;i<t.length;i++)if(t[i].oid===n)return t[i]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("basicConstraints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"basicConstraints"};if(t&&(i.critical=!0),"3000"===e)return i;if("30030101ff"===e)return i.cA=!0,i;if("30060101ff02"===e.substr(0,12)){var a=r(e,10),s=parseInt(a,16);return i.cA=!0,i.pathLen=s,i}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("keyUsage");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"keyUsage"};return t&&(i.critical=!0),i.names=this.getExtKeyUsageString(e).split(","),i},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var n="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(n=n.slice(-8)),10==e.length&&(n=n.slice(-16)),""==(n=n.replace(/0+$/,""))&&(n="0"),n},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),n=new Array,i=0;i<t.length;i++)"1"==t.substr(i,1)&&n.push(W.KEYUSAGE_NAME[i]);return n.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"subjectKeyIdentifier"};t&&(i.critical=!0);var a=r(e,0);return i.kid={hex:a},i},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityKeyIdentifier");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"authorityKeyIdentifier"};t&&(a.critical=!0);for(var s=i(e,0),l=0;l<s.length;l++){var u=e.substr(s[l],2);if("80"===u&&(a.kid={hex:r(e,s[l])}),"a1"===u){var c=o(e,s[l]),h=this.getGeneralNames(c);a.issuer=h[0].dn}"82"===u&&(a.sn={hex:r(e,s[l])})}return a},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("extKeyUsage");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var a={extname:"extKeyUsage",array:[]};t&&(a.critical=!0);for(var s=i(e,0),l=0;l<s.length;l++)a.array.push(A(r(e,s[l])));return a},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,n=o(this.hex,e.vidx);if(""===n)return t;for(var a=i(n,0),s=0;s<a.length;s++)t.push(A(r(n,a[s])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("subjectAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"subjectAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("issuerAltName");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var i={extname:"issuerAltName",array:[]};return t&&(i.critical=!0),i.array=this.getGeneralNames(e),i},this.getGeneralNames=function(e){for(var t=i(e,0),n=[],r=0;r<t.length;r++){var a=this.getGeneralName(o(e,t[r]));void 0!==a&&n.push(a)}return n},this.getGeneralName=function(e){var t=e.substr(0,2),n=r(e,0),i=Q(n);return"81"==t?{rfc822:i}:"82"==t?{dns:i}:"86"==t?{uri:i}:"87"==t?{ip:_(n)}:"a4"==t?{dn:this.getX500Name(n)}:void 0},this.getExtSubjectAltName2=function(){var e,t,n,a=this.getExtInfo("subjectAltName");if(void 0===a)return a;for(var s=new Array,l=o(this.hex,a.vidx),u=i(l,0),c=0;c<u.length;c++)n=l.substr(u[c],2),e=r(l,u[c]),"81"===n&&(t=D(e),s.push(["MAIL",t])),"82"===n&&(t=D(e),s.push(["DNS",t])),"84"===n&&(t=W.hex2dn(e,0),s.push(["DN",t])),"86"===n&&(t=D(e),s.push(["URI",t])),"87"===n&&(t=_(e),s.push(["IP",t]));return s},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("cRLDistributionPoints");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"cRLDistributionPoints",array:[]};t&&(r.critical=!0);for(var a=i(e,0),s=0;s<a.length;s++){var l=o(e,a[s]);r.array.push(this.getDistributionPoint(l))}return r},this.getDistributionPoint=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=e.substr(n[r],2),s=o(e,n[r]);"a0"==a&&(t.dpname=this.getDistributionPointName(s))}return t},this.getDistributionPointName=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=e.substr(n[r],2),s=o(e,n[r]);"a0"==a&&(t.full=this.getGeneralNames(s))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,n=i(this.hex,e.vidx),r=0;r<n.length;r++)try{var o=D(a(this.hex,n[r],[0,0,0],"86"));t.push(o)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},n=i(this.hex,e.vidx),r=0;r<n.length;r++){var o=a(this.hex,n[r],[0],"06"),s=a(this.hex,n[r],[1],"86");"2b06010505073001"===o&&t.ocsp.push(D(s)),"2b06010505073002"===o&&t.caissuer.push(D(s))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("authorityInfoAccess");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"authorityInfoAccess",array:[]};t&&(r.critical=!0);for(var l=i(e,0),u=0;u<l.length;u++){var c=s(e,l[u],[0],"06"),h=D(a(e,l[u],[1],"86"));if("2b06010505073001"==c)r.array.push({ocsp:h});else{if("2b06010505073002"!=c)throw new Error("unknown method: "+c);r.array.push({caissuer:h})}}return r},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("certificatePolicies");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"certificatePolicies",array:[]};t&&(r.critical=!0);for(var a=i(e,0),s=0;s<a.length;s++){var l=o(e,a[s]),u=this.getPolicyInformation(l);r.array.push(u)}return r},this.getPolicyInformation=function(e){var t={},n=a(e,0,[0],"06");t.policyoid=A(n);var r=h(e,0,[1],"30");if(-1!=r){t.array=[];for(var s=i(e,r),l=0;l<s.length;l++){var u=o(e,s[l]),c=this.getPolicyQualifierInfo(u);t.array.push(c)}}return t},this.getPolicyQualifierInfo=function(e){var t={},n=a(e,0,[0],"06");if("2b06010505070201"===n){var i=s(e,0,[1],"16");t.cps=Q(i)}else if("2b06010505070202"===n){var r=l(e,0,[1],"30");t.unotice=this.getUserNotice(r)}return t},this.getUserNotice=function(e){for(var t={},n=i(e,0),r=0;r<n.length;r++){var a=o(e,n[r]);"30"!=a.substr(0,2)&&(t.exptext=this.getDisplayText(a))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=Q(r(e,0)),t},this.getExtCRLNumber=function(e,t){var n={extname:"cRLNumber"};if(t&&(n.critical=!0),"02"==e.substr(0,2))return n.num={hex:r(e,0)},n;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var n={extname:"cRLReason"};if(t&&(n.critical=!0),"0a"==e.substr(0,2))return n.code=parseInt(r(e,0),16),n;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var n={extname:"ocspNonce"};t&&(n.critical=!0);var i=r(e,0);return n.hex=i,n},this.getExtOcspNoCheck=function(e,t){var n={extname:"ocspNoCheck"};return t&&(n.critical=!0),n},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var n=this.getExtInfo("adobeTimeStamp");if(void 0===n)return;e=o(this.hex,n.vidx),t=n.critical}var r={extname:"adobeTimeStamp"};t&&(r.critical=!0);var a=i(e,0);if(a.length>1){var s=o(e,a[1]),l=this.getGeneralName(s);null!=l.uri&&(r.uri=l.uri)}if(a.length>2){var u=o(e,a[2]);"0101ff"==u&&(r.reqauth=!0),"010100"==u&&(r.reqauth=!1)}return r},this.getX500NameRule=function(e){for(var t=null,n=[],i=0;i<e.length;i++)for(var r=e[i],o=0;o<r.length;o++)n.push(r[o]);for(i=0;i<n.length;i++){var a=n[i],s=a.ds,l=a.value,u=a.type;if("prn"!=s&&"utf8"!=s&&"ia5"!=s)return"mixed";if("ia5"==s){if("CN"!=u)return"mixed";if(f.lang.String.isMail(l))continue;return"mixed"}if("C"==u){if("prn"==s)continue;return"mixed"}if(null==t)t=s;else if(t!==s)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],n=i(e,0),r=0;r<n.length;r++)t.push(this.getRDN(o(e,n[r])));return t},this.getRDN=function(e){for(var t=[],n=i(e,0),r=0;r<n.length;r++)t.push(this.getAttrTypeAndValue(o(e,n[r])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},n=i(e,0),r=a(e,n[0],[],"06"),o=a(e,n[1],[]),s=f.asn1.ASN1Util.oidHexToInt(r);return t.type=f.asn1.x509.OID.oid2atype(s),t.ds=this.HEX2STAG[e.substr(n[1],2)],"bmp"!=t.ds?t.value=D(o):t.value=function(e){var t=e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),n=parseInt(e.substr(2),16);if(0==t&n<128)return String.fromCharCode(n);if(t<8){var i=128|63&n;return D((192|(7&t)<<3|(192&n)>>6).toString(16)+i.toString(16))}i=128|(15&t)<<2|(192&n)>>6;var r=128|63&n;return D((224|(240&t)>>4).toString(16)+i.toString(16)+r.toString(16))}));return t.join("")}(o),t},this.readCertPEM=function(e){this.readCertHex(m(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{c(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=V(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&-1!=h(this.hex,0,[0,"[3]"])&&(e=u(this.hex,0,[0,"[3]",0],"30"));for(var t=[],n=i(e,0),r=0;r<n.length;r++){var a=o(e,n[r]),s=this.getExtParam(a);null!=s&&t.push(s)}return t},this.getExtParam=function(e){var t=i(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var n=v(a(e,0,[0],"06")),r=!1;3==t&&"0101ff"==l(e,0,[1])&&(r=!0);var o=l(e,0,[t-1,0]),s=void 0;if("2.5.29.14"==n?s=this.getExtSubjectKeyIdentifier(o,r):"2.5.29.15"==n?s=this.getExtKeyUsage(o,r):"2.5.29.17"==n?s=this.getExtSubjectAltName(o,r):"2.5.29.18"==n?s=this.getExtIssuerAltName(o,r):"2.5.29.19"==n?s=this.getExtBasicConstraints(o,r):"2.5.29.31"==n?s=this.getExtCRLDistributionPoints(o,r):"2.5.29.32"==n?s=this.getExtCertificatePolicies(o,r):"2.5.29.35"==n?s=this.getExtAuthorityKeyIdentifier(o,r):"2.5.29.37"==n?s=this.getExtExtKeyUsage(o,r):"1.3.6.1.5.5.7.1.1"==n?s=this.getExtAuthorityInfoAccess(o,r):"2.5.29.20"==n?s=this.getExtCRLNumber(o,r):"2.5.29.21"==n?s=this.getExtCRLReason(o,r):"1.3.6.1.5.5.7.48.1.2"==n?s=this.getExtOcspNonce(o,r):"1.3.6.1.5.5.7.48.1.5"==n?s=this.getExtOcspNoCheck(o,r):"1.2.840.113583.1.1.9.1"==n&&(s=this.getExtAdobeTimeStamp(o,r)),null!=s)return s;var u={extname:n,extn:o};return r&&(u.critical=!0),u},this.findExt=function(e,t){for(var n=0;n<e.length;n++)if(e[n].extname==t)return e[n];return null},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,n,i,r=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];if(t+=" policy oid: "+r.policyoid+"\n",void 0!==r.array)for(var o=0;o<r.array.length;o++){var a=r.array[o];void 0!==a.cps&&(t+=" cps: "+a.cps+"\n")}}return t},o=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];try{void 0!==r.dpname.full[0].uri&&(t+=" "+r.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==r.dname.full[0].dn.hex&&(t+=" "+W.hex2dn(r.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},a=function(e){for(var t="",n=e.array,i=0;i<n.length;i++){var r=n[i];void 0!==r.caissuer&&(t+=" caissuer: "+r.caissuer+"\n"),void 0!==r.ocsp&&(t+=" ocsp: "+r.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+q(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+q(t.e.toString(16))+"\n"),null!=(n=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var s=0;s<n.length;s++){var l=n[s],u=f.asn1.x509.OID.oid2name(l.oid);""===u&&(u=l.oid);var c="";if(!0===l.critical&&(c="CRITICAL"),e+=" "+u+" "+c+":\n","basicConstraints"===u){var h=this.getExtBasicConstraints();void 0===h.cA?e+=" {}\n":(e+=" cA=true",void 0!==h.pathLen&&(e+=", pathLen="+h.pathLen),e+="\n")}else if("keyUsage"===u)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===u)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===u){var d=this.getExtAuthorityKeyIdentifier();void 0!==d.kid&&(e+=" kid="+d.kid.hex+"\n")}else"extKeyUsage"===u?e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n":"subjectAltName"===u?e+=" "+(i=this.getExtSubjectAltName(),JSON.stringify(i.array).replace(/[\[\]\{\}\"]/g,"")+"\n"):"cRLDistributionPoints"===u?e+=o(this.getExtCRLDistributionPoints()):"authorityInfoAccess"===u?e+=a(this.getExtAuthorityInfoAccess()):"certificatePolicies"===u&&(e+=r(this.getExtCertificatePolicies()))}}return(e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n")+"signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):f.lang.String.isHex(e)&&this.readCertHex(e))}function X(e){return A.SHA256(e).toString()}K.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var n=parseInt(e.substr(t+3,1));return 0==n?-1:0<n&&n<10?n+1:-2},K.getL=function(e,t){var n=K.getLblen(e,t);return n<1?"":e.substr(t+2,2*n)},K.getVblen=function(e,t){var n;return""==(n=K.getL(e,t))?-1:("8"===n.substr(0,1)?new v(n.substr(2),16):new v(n,16)).intValue()},K.getVidx=function(e,t){var n=K.getLblen(e,t);return n<0?n:t+2*(n+1)},K.getV=function(e,t){var n=K.getVidx(e,t),i=K.getVblen(e,t);return e.substr(n,2*i)},K.getTLV=function(e,t){return e.substr(t,2)+K.getL(e,t)+K.getV(e,t)},K.getTLVblen=function(e,t){return 2+2*K.getLblen(e,t)+2*K.getVblen(e,t)},K.getNextSiblingIdx=function(e,t){return K.getVidx(e,t)+2*K.getVblen(e,t)},K.getChildIdx=function(e,t){var n,i,r,o=K,a=[];n=o.getVidx(e,t),i=2*o.getVblen(e,t),"03"==e.substr(t,2)&&(n+=2,i-=2),r=0;for(var s=n;r<=i;){var l=o.getTLVblen(e,s);if((r+=l)<=i&&a.push(s),s+=l,r>=i)break}return a},K.getNthChildIdx=function(e,t,n){return K.getChildIdx(e,t)[n]},K.getIdxbyList=function(e,t,n,i){var r,o,a=K;return 0==n.length?void 0!==i&&e.substr(t,2)!==i?-1:t:(r=n.shift())>=(o=a.getChildIdx(e,t)).length?-1:a.getIdxbyList(e,o[r],n,i)},K.getIdxbyListEx=function(e,t,n,i){var r,o,a=K;if(0==n.length)return void 0!==i&&e.substr(t,2)!==i?-1:t;r=n.shift(),o=a.getChildIdx(e,t);for(var s=0,l=0;l<o.length;l++){var u=e.substr(o[l],2);if("number"==typeof r&&!a.isContextTag(u)&&s==r||"string"==typeof r&&a.isContextTag(u,r))return a.getIdxbyListEx(e,o[l],n,i);a.isContextTag(u)||s++}return-1},K.getTLVbyList=function(e,t,n,i){var r=K,o=r.getIdxbyList(e,t,n,i);return-1==o||o>=e.length?null:r.getTLV(e,o)},K.getTLVbyListEx=function(e,t,n,i){var r=K,o=r.getIdxbyListEx(e,t,n,i);return-1==o?null:r.getTLV(e,o)},K.getVbyList=function(e,t,n,i,r){var o,a,s=K;return-1==(o=s.getIdxbyList(e,t,n,i))||o>=e.length?null:(a=s.getV(e,o),!0===r&&(a=a.substr(2)),a)},K.getVbyListEx=function(e,t,n,i,r){var o,a,s=K;return-1==(o=s.getIdxbyListEx(e,t,n,i))?null:(a=s.getV(e,o),"03"==e.substr(o,2)&&!1!==r&&(a=a.substr(2)),a)},K.getInt=function(e,t,n){null==n&&(n=-1);try{var i=e.substr(t,2);if("02"!=i&&"03"!=i)return n;var r=K.getV(e,t);return"02"==i?parseInt(r,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var n=parseInt(t,16),i=e.substr(2),r=parseInt(i,16).toString(2);return"0"==r&&(r="00000000"),r=r.slice(0,0-n),parseInt(r,2)}catch(e){return-1}}(r)}catch(e){return n}},K.getOID=function(e,t,n){null==n&&(n=null);try{return"06"!=e.substr(t,2)?n:function(e){if(!z(e))return null;try{var t=[],n=e.substr(0,2),i=parseInt(n,16);t[0]=new String(Math.floor(i/40)),t[1]=new String(i%40);for(var r=e.substr(2),o=[],a=0;a<r.length/2;a++)o.push(parseInt(r.substr(2*a,2),16));var s=[],l="";for(a=0;a<o.length;a++)128&o[a]?l+=H((127&o[a]).toString(2),7):(l+=H((127&o[a]).toString(2),7),s.push(new String(parseInt(l,2))),l="");var u=t.join(".");return s.length>0&&(u=u+"."+s.join(".")),u}catch(e){return null}}(K.getV(e,t))}catch(e){return n}},K.getOIDName=function(e,t,n){null==n&&(n=null);try{var i=K.getOID(e,t,n);if(i==n)return n;var r=f.asn1.x509.OID.oid2name(i);return""==r?i:r}catch(e){return n}},K.getString=function(e,t,n){null==n&&(n=null);try{return Q(K.getV(e,t))}catch(e){return n}},K.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},n=[],i=e.substr(0,2),r=parseInt(i,16);n[0]=new String(Math.floor(r/40)),n[1]=new String(r%40);for(var o=e.substr(2),a=[],s=0;s<o.length/2;s++)a.push(parseInt(o.substr(2*s,2),16));var l=[],u="";for(s=0;s<a.length;s++)128&a[s]?u+=t((127&a[s]).toString(2),7):(u+=t((127&a[s]).toString(2),7),l.push(new String(parseInt(u,2))),u="");var c=n.join(".");return l.length>0&&(c=c+"."+l.join(".")),c},K.isContextTag=function(e,t){var n,i;e=e.toLowerCase();try{n=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&n);try{return null!=t.match(/^\[[0-9]+\]$/)&&!((i=parseInt(t.substr(1,t.length-1),10))>31)&&128==(192&n)&&(31&n)==i}catch(e){return!1}},K.isASN1HEX=function(e){var t=K;if(e.length%2==1)return!1;var n=t.getVblen(e,0),i=e.substr(0,2),r=t.getL(e,0);return e.length-i.length-r.length==2*n},K.checkStrictDER=function(e,t,n,i,r){var o=K;if(void 0===n){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!f.lang.String.isHex(e))throw new Error("not hex string");n=e.length,r=(i=e.length/2)<128?1:Math.ceil(i.toString(16))+1}if(o.getL(e,t).length>2*r)throw new Error("L of TLV too long: idx="+t);var a=o.getVblen(e,t);if(a>i)throw new Error("value of L too long than hex: idx="+t);var s=o.getTLV(e,t),l=s.length-2-o.getL(e,t).length;if(l!==2*a)throw new Error("V string length and L's value not the same:"+l+"/"+2*a);if(0===t&&e.length!=s.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+s.length);var u=e.substr(t,2);if("02"===u){var c=o.getVidx(e,t);if("00"==e.substr(c,2)&&e.charCodeAt(c+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(u,16)){for(var h=o.getVblen(e,t),d=0,p=o.getChildIdx(e,t),A=0;A<p.length;A++)d+=o.getTLV(e,p[A]).length,o.checkStrictDER(e,p[A],n,i,r);if(2*h!=d)throw new Error("sum of children's TLV length and L unmatch: "+2*h+"!="+d)}},K.oidname=function(e){var t=f.asn1;f.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var n=t.x509.OID.oid2name(e);return""===n&&(n=e),n},void 0!==f.asn1&&f.asn1||(f.asn1={}),void 0!==f.asn1.x509&&f.asn1.x509||(f.asn1.x509={}),f.asn1.x509.AlgorithmIdentifier={},f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},f.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],n=new f.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=n,n},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var n=new f.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=n,n}},f.asn1.x509.OID.oid2name=function(e){var t=f.asn1.x509.OID.name2oidList;for(var n in t)if(t[n]==e)return n;return""},f.asn1.x509.OID.oid2atype=function(e){var t=f.asn1.x509.OID.atype2oidList;for(var n in t)if(t[n]==e)return n;return e},f.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=f.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},k.getPosArrayOfChildrenFromHex=function(e){return K.getChildIdx(e,0)},k.getHexValueArrayOfChildrenFromHex=function(e){var t,n=K.getV,i=n(e,(t=k.getPosArrayOfChildrenFromHex(e))[0]),r=n(e,t[1]),o=n(e,t[2]),a=n(e,t[3]),s=n(e,t[4]),l=n(e,t[5]),u=n(e,t[6]),c=n(e,t[7]),h=n(e,t[8]);return(t=new Array).push(i,r,o,a,s,l,u,c,h),t},k.prototype.readPrivateKeyFromPEMString=function(e){var t=U(e),n=k.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])},k.prototype.readPKCS5PrvKeyHex=function(e){var t=k.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},k.prototype.readPKCS8PrvKeyHex=function(e){var t,n,i,r,o,a,s,l,u=K,c=u.getVbyListEx;if(!1===u.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=c(e,0,[2,0,1],"02"),n=c(e,0,[2,0,2],"02"),i=c(e,0,[2,0,3],"02"),r=c(e,0,[2,0,4],"02"),o=c(e,0,[2,0,5],"02"),a=c(e,0,[2,0,6],"02"),s=c(e,0,[2,0,7],"02"),l=c(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,n,i,r,o,a,s,l)},k.prototype.readPKCS5PubKeyHex=function(e){var t=K,n=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var i=t.getChildIdx(e,0);if(2!==i.length||"02"!==e.substr(i[0],2)||"02"!==e.substr(i[1],2))throw new Error("wrong hex for PKCS#5 public key");var r=n(e,i[0]),o=n(e,i[1]);this.setPublic(r,o)},k.prototype.readPKCS8PubKeyHex=function(e){var t=K;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var n=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(n)},k.prototype.readCertPubKeyHex=function(e,t){var n,i;(n=new W).readCertHex(e),i=n.getPublicKeyHex(),this.readPKCS8PubKeyHex(i)},k.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var n=R(t,16),i=this.n.bitLength();if(n.bitLength()>i)return!1;var r=this.doPublic(n).toString(16);if(r.length+3!=i/4)return!1;var o=G(r.replace(/^1f+00/,""));if(0==o.length)return!1;var a=o[0],s=o[1],l=function(e){return f.crypto.Util.hashString(e,a)}(e);return s==l},k.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var n=R(t,16);if(n.bitLength()>this.n.bitLength())return 0;var i=G(this.doPublic(n).toString(16).replace(/^1f+00/,""));return 0!=i.length&&(i[0],i[1]==e)},k.prototype.verifyPSS=function(e,t,n,i){var r,o=(r=N(e),f.crypto.Util.hashHex(r,n));return void 0===i&&(i=-1),this.verifyWithMessageHashPSS(o,t,n,i)},k.prototype.verifyWithMessageHashPSS=function(e,t,n,i){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r,o=new v(t,16),a=function(e){return f.crypto.Util.hashHex(e,n)},s=Q(e),l=s.length,u=this.n.bitLength()-1,c=Math.ceil(u/8);if(-1===i||void 0===i)i=l;else if(-2===i)i=c-l-2;else if(i<-2)throw new Error("invalid salt length");if(c<l+i+2)throw new Error("data too long");var h=this.doPublic(o).toByteArray();for(r=0;r<h.length;r+=1)h[r]&=255;for(;h.length<c;)h.unshift(0);if(188!==h[c-1])throw new Error("encoded message does not end in 0xbc");var d=(h=String.fromCharCode.apply(String,h)).substr(0,c-l-1),p=h.substr(d.length,l),A=65280>>8*c-u&255;if(0!=(d.charCodeAt(0)&A))throw new Error("bits beyond keysize not zero");var m=pss_mgf1_str(p,d.length,a),g=[];for(r=0;r<d.length;r+=1)g[r]=d.charCodeAt(r)^m.charCodeAt(r);g[0]&=~A;var y=c-l-i-2;for(r=0;r<y;r+=1)if(0!==g[r])throw new Error("leftmost octets not zero");if(1!==g[y])throw new Error("0x01 marker not found");return p===Q(a(N("\0\0\0\0\0\0\0\0"+s+String.fromCharCode.apply(String,g.slice(-i)))))},k.SALT_LEN_HLEN=-1,k.SALT_LEN_MAX=-2,k.SALT_LEN_RECOVER=-2,W.hex2dn=function(e,t){void 0===t&&(t=0);var n=new W;return K.getTLV(e,t),n.getX500Name(e).str},W.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var n=new Array,i=K.getChildIdx(e,t),r=0;r<i.length;r++)n.push(W.hex2attrTypeValue(e,i[r]));return n=n.map((function(e){return e.replace("+","\\+")})),n.join("+")},W.hex2attrTypeValue=function(e,t){var n=K,i=n.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var r=n.getChildIdx(e,t);2!==r.length||e.substr(r[0],2);var o=i(e,r[0]),a=f.asn1.ASN1Util.oidHexToInt(o);return f.asn1.x509.OID.oid2atype(a)+"="+Q(i(e,r[1]))},W.getPublicKeyFromCertHex=function(e){var t=new W;return t.readCertHex(e),t.getPublicKey()},W.getPublicKeyFromCertPEM=function(e){var t=new W;return t.readCertPEM(e),t.getPublicKey()},W.getPublicKeyInfoPropOfCertPEM=function(e){var t,n,i=K.getVbyList,r={algparam:null};return(t=new W).readCertPEM(e),n=t.getPublicKeyHex(),r.keyhex=i(n,0,[1],"03").substr(2),r.algoid=i(n,0,[0,0],"06"),"2a8648ce3d0201"===r.algoid&&(r.algparam=i(n,0,[0,1],"06")),r},W.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var Y,Z=[(Y=new W,Y.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),Y)];function J(e,t){var n=e.getIssuerHex();if(n===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var i=function(e,t){for(var n=0,i=t;n<i.length;n++){var r=i[n];if(r.getSubjectHex()===e)return r}}(n,t);return!!i&&!1!==e.verifySignature(i.getPublicKey())&&J(i,t)}function $(e){return e.getIssuerHex()!==e.getSubjectHex()&&J(e,Z)}!function(e){var t=new W;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);$(t);Z.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var ee=function(e,t){return ee=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ee(e,t)};function te(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ee(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var ne=function(){return ne=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},ne.apply(this,arguments)};function ie(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}Object.create,Object.create;var re,oe=(re="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<".concat(re,">$"):Symbol(re));function ae(e){return e[oe]||(e[oe]={}),e[oe]}var se=function(){function e(){}return e.prototype.hasListener=function(e){var t=ae(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,n){var i=this,r=ae(this);return r[e]||(r[e]=[]),r[e].push([t,n||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var n=ae(this);if(n[e]||(n[e]=[]),void 0!==t){for(var i=0;i<n[e].length&&n[e][i][0]!==t;i++);i<n[e].length&&n[e].splice(i,1)}else n[e].length=0}else this[oe]||delete this[oe]},e.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var i=!1,r=0,o=(ae(this)[e]||[]).slice();r<o.length;r++){var a=o[r],s=a[0],l=a[1],u=void 0!==l&&l,c=s.apply(void 0,t);u&&this.off(e,s),!1===c&&(i=!0)}return i},e}();function le(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}var ue="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),ce="undefined"!=typeof performance?function(){return ue+performance.now()}:function(){return Date.now()};function he(e){Object.freeze(e);var t="function"==typeof e,n=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(i){!n.call(e,i)||t&&("caller"===i||"callee"===i||"arguments"===i)||null===e[i]||"object"!=typeof e[i]&&"function"!=typeof e[i]||Object.isFrozen(e[i])||he(e[i])})),e}var de=/^([^.]+)(\.([^.]+))*$/;function pe(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function fe(e,t){return de.test(e)&&de.test(t)&&function(e,t){if("*"===e)return!0;var n=e.split(".").reverse(),i=t.split(".").reverse();if(n.length<=1)return e===t;for(var r=0;r<n.length;r++)if(n[r]!==i[r])return!1;return!0}(e,t)}var Ae,ve=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i],me=he(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("h/y|pnyu|/9/xr;p|z/9/yvn{wvn;p|z/9/rnyrr;p|z/9/rnyrr;p{/9/rnyrr;w}/9/uv;p|z/9/uv;p{/9/ywpq{;p|z/9/rnyrr:pq{;p|z/9/rnyrr:pq{;p{/9/rnyrr;nv/9/;p{/9/pq{;p{/9/pnyp{|qr;vr/j"))),ge=function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request proxy error(type: ".concat(n,", reason: ").concat(i,"): ").concat(t))||this}return te(t,e),t}(Error),ye=function(e){function t(t,n,i){var r=e.call(this,"[NETWORK]: response error(type: ".concat(n,", status: ").concat(i,"): ").concat(t))||this;return r.httpStatus=i,r}return te(t,e),t}(Error),be=(te((function(e,t){return Ae.call(this,"[NETWORK]: request abort(type: ".concat(t,"): ").concat(e))||this}),Ae=Error),function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request timeout(type: ".concat(n,", timeout: ").concat(i,"ms): ").concat(t))||this}return te(t,e),t}(Error)),xe=function(e){function t(t,n,i){return e.call(this,"[NETWORK]: request forbidden(type: ".concat(n,", reason: ").concat(i,"): ").concat(t))||this}return te(t,e),t}(Error);function we(e){for(var t=0,n=ve;t<n.length;t++){var i=n[t],r=e.match(i);if(r)return"jsonp_"+r[1]}return null}function Me(e){return null!==we(e)}function Ee(e){var t=e.match(/^([0-9a-z]+\:)\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[1]:location.protocol}function Ce(e){if(/^blob\:/i.test(e))return"blob:";if(/^data\:/i.test(e))return"data:";var t=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/i);return t?t[2]:location.hostname}var Ie=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t}(se);function Se(e,t,n,i,r){void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var o=ce(),a=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var i,r=we(e)?"Script":"XMLHttpRequest",o=new ge(a,r,n&&n.message?String(n.message):String(n));return null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,r,"proxy-error",o.message),Promise.reject(o)})).then((function(e){return new Promise((function(s,l){var u,c=t.allowHosts?me.concat(t.allowHosts):me.slice(),h=Ce(e),d=we(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(h)&&0===c.filter((function(e){return fe(e,h)})).length){var p=d?"Script":"XMLHttpRequest",f=new xe(e,p,"request host(".concat(h,") is not allowed"));return i(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,p,"forbidden",f.message))}if(d){var A=window,v=null,m=!1,g=document.createElement("script");A[d]=function(r){var u,c,h=ce(),p=h-o;if(delete A[d],g.parentNode&&g.parentNode.removeChild(g),null!==v&&(window.clearTimeout(v),v=null),!0!==m){if(0!==r.indexOf("data:")){var f=new ye(e,"Script",500);return i(f),l(f),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Script","error",f.message))}var y=r.split(","),b=(y[0].match(/:(.*?);/)||[])[1],x=y[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var w=atob(y[1]),M=w.length,E=new Uint8Array(M),C=0;C<M;C++)E[C]=w.charCodeAt(C);x="arraybuffer"===t.responseType?E.buffer:new Blob([E],{type:b})}var I={body:x,meta:{origin:a,source:e,requestTime:o,responseTime:h,costs:p,headers:{}}};n(I),s(I),null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Script","ok",JSON.stringify(I.meta)),m=!0}},g.src=e,document.body.appendChild(g),"number"==typeof t.timeout&&(v=window.setTimeout((function(){var n;if(v=null,!0!==m){m=!0;var r=new be(e,"Script",t.timeout||NaN);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Script","timeout",r.message)}}),t.timeout))}else{var y=!1,b=new XMLHttpRequest,x=function(){b&&(b.removeEventListener("timeout",w,!1),b.removeEventListener("progress",M,!1),b.removeEventListener("load",E,!1),b.removeEventListener("error",C,!1)),b=null,x=le},w=function(){var n;if(!0!==y){y=!0,x();var r=new be(e,"XMLHttpRequest",t.timeout||NaN);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"XMLHttpRequest","timeout",r.message)}},M=function(e){!0!==y&&e.lengthComputable&&(e.total<=0||r(e.loaded/e.total))},E=function(i){var r;if(!0!==y){var l=this.status;if(0===l||l>=200&&l<400){y=!0,x();var u=ce(),c=u-o,h=function(e){if(!e)return{};for(var t={},n=e.trim().split("\n"),i=0;i<n.length;i++){var r=n[i],o=r.indexOf(":"),a=r.slice(0,o).trim().toLowerCase(),s=r.slice(o+1).trim();s&&(t[a]?t[a]+=", "+s:t[a]=s)}return t}(this.getAllResponseHeaders()),d=i.total,p={body:this.response,meta:{origin:a,source:e,requestTime:o,responseTime:u,costs:c,headers:h,size:d}};n(p),s(p),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"XMLHttpRequest","ok",JSON.stringify(p.meta))}else C.call(this)}},C=function(){var n;if(!0!==y){y=!0,x();var r=new ye(e,"XMLHttpRequest",this.status);i(r),l(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"XMLHttpRequest","error",r.message)}};b.addEventListener("timeout",w,!1),b.addEventListener("progress",M,!1),b.addEventListener("load",E,!1),b.addEventListener("error",C,!1),t.responseType&&(b.responseType=t.responseType),"number"==typeof t.timeout&&(b.timeout=t.timeout),b.open("GET",e,!0),b.send(null)}}))}))}var Be={};function Te(e,t){void 0===t&&(t={});var n=ce(),i=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var r,o=new ge(i,"Link",n&&n.message?String(n.message):String(n));return null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Link","proxy-error",o.message),Promise.reject(o)})).then((function(e){return e in Be?Be[e]:Be[e]=new Promise((function(r,o){var a,s=t.allowHosts?me.concat(t.allowHosts):me.slice(),l=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(l)&&0===s.filter((function(e){return fe(e,l)})).length){var u=new xe(e,"Link","request host(".concat(l,") is not allowed"));return o(u),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,"Link","forbidden",u.message))}var c=document.createElement("link");c.href=e,c.rel=c.relList&&c.relList.supports("prefetch")?"prefetch":"preload",c.as="fetch",c.crossOrigin="";var h=document.head||document.getElementsByTagName("head")[0];h&&h.appendChild(c);var d=!1;c.onload=function(){var o;if(!0!==d){d=!0,r();var a=ce(),s={origin:i,source:e,requestTime:n,responseTime:a,costs:a-n,headers:{}};null===(o=t.networkSubscribe)||void 0===o||o.emit("network",e,"Link","preload",JSON.stringify(s))}},c.onerror=function(n){var i;if(!0!==d){d=!0;var r=new ye(e,"Link",0);o(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Link","error",r.message)}}}))}))}function Pe(e,t,n,i,r,o){void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var a=ce(),s=e;return Promise.resolve().then((function(){return t.requestProxy?t.requestProxy(e):e})).then((function(e){return/^https\:/.test(location.href)&&/^http\:/.test(e)?(console.warn("The page at '".concat(location.href,"' was loaded over HTTPS, but requested an insecure element '").concat(e,"'. This request was automatically upgraded to HTTPS")),e.replace(/^http\:/,"https:")):e})).catch((function(n){var i,r=new ge(s,"Image",n&&n.message?String(n.message):String(n));return null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","proxy-error",r.message),Promise.reject(r)})).then((function(e){return new Promise((function(l,u){var c,h=t.allowHosts?me.concat(t.allowHosts):me.slice(),d=Ce(e);if(0!==location.hostname.length&&!pe(location.hostname)&&0===me.filter((function(e){return fe(e,location.hostname)})).length&&!pe(d)&&0===h.filter((function(e){return fe(e,d)})).length){var p=new xe(e,"Image","request host(".concat(d,") is not allowed"));return i(p),u(p),void(null===(c=t.networkSubscribe)||void 0===c||c.emit("network",e,"Image","forbidden",p.message))}var f=null!=o?o:new Image,A=!1,v=null;"number"==typeof t.timeout&&(v=window.setTimeout((function(){var n;if(f.onload=le,f.onerror=le,v=null,!0!==A){A=!0;var r=new be(e,"Image",t.timeout);i(r),u(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","timeout",r.message)}}),t.timeout)),f.onload=function(){var i;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){var o=ce();A=!0;var u={body:f,meta:{headers:{},origin:s,source:e,requestTime:a,responseTime:o,costs:o-a}};r(1),n(u),l(u),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","ok",JSON.stringify(u.meta))}},f.onerror=function(){var n;if(f.onload=le,f.onerror=le,null!==v&&(clearTimeout(v),v=null),!0!==A){A=!0;var r=new ye(e,"Image",0);i(r),u(r),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","ok",r.message)}},r(0),f.src=e}))}))}var Re=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}(),Le=16,ke=function(){function e(){this.frames=[],this.stoped=!1,this.time=ce(),this.context=null,this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.getFrameTime=function(){return Le},e.prototype.loop=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!this.stoped){var n=ce(),i=n-this.time;this.time=n;var r=[];Le=i;for(var o=0,a=this.frames;o<a.length;o++){var s=a[o];if(s.delay>0)s.delay=s.delay-1;else{try{s.callback.apply(s,ie([n,i],e,!1))}catch(e){console.error(e)}s.once&&r.push(s)}}r.length>0&&(this.frames=this.frames.filter((function(e){return-1===r.indexOf(e)}))),this.requestAnimationFrame(this.loop)}},e.prototype.setContext=function(e){this.cancelAnimationFrame(this.requestId),this.context=e,this.requestId=this.requestAnimationFrame(this.loop)},e.prototype.getContext=function(){return this.context},e.prototype.requestAnimationFrame=function(e){return this.context?this.context.requestAnimationFrame(e):Re(e)},e.prototype.cancelAnimationFrame=function(e){this.context?this.context.cancelAnimationFrame(e):function(e){var t;if("undefined"!=typeof window){var n=window;t=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame||n.msCancelAnimationFrame||function(e){return window.clearTimeout(e)}}else t=function(e){return window.clearTimeout(e)};t(e)}(this.loop),this.requestId=null},e.prototype.remove=function(e){var t=this.frames.indexOf(e);t>=0&&this.frames.splice(t,1)},e.prototype.add=function(e,t,n,i){var r=this;void 0===t&&(t=!1),void 0===n&&(n=0),void 0===i&&(i=5);var o={callback:e,once:t,delay:n,order:i};return this.frames.push(o),this.frames.sort((function(e,t){return e.order-t.order})),function(){return r.remove(o)}},e.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},e}(),Oe={"vrlab-public.ljcdn.com":{type:"tencentCloud",pano:["vrlab-image1.ljcdn.com","vrlab-image2.ljcdn.com"],texture:["vrlab-image3.ljcdn.com"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-2.realsee-cdn.cn"],model:["vr-model-1.realsee-cdn.cn","vr-model-2.realsee-cdn.cn"],default:["vrlab-image4.ljcdn.com"]},"vr-public.realsee-cdn.cn":{type:"tencentCloud",pano:["vr-image-1.realsee-cdn.cn","vr-image-2.realsee-cdn.cn"],texture:["vr-image-3.realsee-cdn.cn"],tile:["vr-tile-1.realsee-cdn.cn","vr-tile-2.realsee-cdn.cn"],model:["vr-model-1.realsee-cdn.cn","vr-model-2.realsee-cdn.cn"],default:["vr-image-4.realsee-cdn.cn"]},"vr-public.rscdn.cn":{type:"tencentCloud",pano:["vr-image-1.rscdn.cn","vr-image-2.rscdn.cn"],texture:["vr-image-3.rscdn.cn"],tile:["vr-tile-1.rscdn.cn","vr-tile-2.rscdn.cn"],model:["vr-model-1.rscdn.cn","vr-model-2.rscdn.cn"],default:["vr-image-4.rscdn.cn"]},"mars-public.realsee-cdn.cn":{type:"aliyun",pano:["mars-image-1.realsee-cdn.cn","mars-image-2.realsee-cdn.cn"],texture:["mars-image-3.realsee-cdn.cn"],tile:["mars-tile-1.realsee-cdn.cn","mars-tile-2.realsee-cdn.cn"],model:["mars-model-1.realsee-cdn.cn","mars-model-2.realsee-cdn.cn"],default:["mars-image-4.realsee-cdn.cn"]},"global-public.realsee-cdn.com":{type:"tencentCloud",pano:["global-image-1.realsee-cdn.com","global-image-2.realsee-cdn.com"],texture:["global-image-3.realsee-cdn.com"],tile:["global-tile-1.realsee-cdn.com","global-tile-2.realsee-cdn.com"],model:["global-model-1.realsee-cdn.com","global-model-2.realsee-cdn.com"],default:["global-image-4.realsee-cdn.com"]},"earth-ga-public.realsee-cdn.cn":{type:"tencentCloud",pano:["earth-ga-image-1.realsee-cdn.cn","earth-ga-image-2.realsee-cdn.cn"],texture:["earth-ga-image-3.realsee-cdn.cn"],tile:["earth-ga-tile-1.realsee-cdn.cn","earth-ga-tile-2.realsee-cdn.cn"],model:["earth-ga-model-1.realsee-cdn.cn","earth-ga-model-2.realsee-cdn.cn"],default:["earth-ga-image-4.realsee-cdn.cn"]},"test-vr-public.realsee-cdn.com":{type:"tencentCloud",pano:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],texture:["test-vr-image.realsee-cdn.com"],tile:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],model:["test-vr-image.realsee-cdn.com","test-vr-image.realsee-cdn.com"],default:["test-vr-image.realsee-cdn.com"]},"test-vr-public.realsee-cdn.cn":{type:"tencentCloud",pano:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],texture:["test-vr-image.realsee-cdn.cn"],tile:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],model:["test-vr-image.realsee-cdn.cn","test-vr-image.realsee-cdn.cn"],default:["test-vr-image.realsee-cdn.cn"]}},Fe=/^https?\:\/\/?([^\/]+)/;function De(e,t){return e.replace(Fe,(function(e,n){return e.slice(0,e.length-n.length)+t}))}var Qe=function(e,t){var n,i=e.split("?")[0],r=i.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="";if(void 0!==t.format&&t.format!==r&&(o+="/format/".concat(t.format)),void 0!==t.cut&&(o+="/cut/".concat(t.cut[2],"x").concat(t.cut[3],"x").concat(t.cut[0],"x").concat(t.cut[1])),void 0!==t.quality){var a=null!==(n=t.format)&&void 0!==n?n:r;a&&["jpg","webp","tpg","heif","avif"].indexOf(a)>=0&&(o+="/quality/".concat(t.quality))}if(void 0!==t.size){var s=e.match(/\/cube_(\d+)\//);(s?Number(s[1]):NaN)!==Number(t.size)&&(o+="/thumbnail/".concat(t.size,"x"))}return void 0!==t.sharpen&&(o+="/sharpen/".concat(t.sharpen)),o.length&&(o="?imageMogr2"+o),i+o},Ne=function(e,t){var n,i=e.split("?")[0],r=i.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="",a=[],s=t.format,l=t.quality,u=t.size;if(void 0!==s&&s!==r&&a.push("format,".concat("heif"===s?"heic":s)),void 0!==t.cut){var c=t.cut,h=c[0],d=c[1],p=c[2],f=c[3];a.push("crop,x_".concat(h,",y_").concat(d,",w_").concat(p,",h_").concat(f,",g_nw"))}if(void 0!==l&&100!==l){var A=null!==(n=t.format)&&void 0!==n?n:r;A&&["jpg","webp"].indexOf(A)>=0&&a.push("quality,Q_".concat(l))}return u&&2048!==u&&a.push("resize,w_".concat(u)),void 0!==t.sharpen&&a.push("sharpen,".concat(t.sharpen)),a.length&&(o="?x-oss-process=image/"+a.join("/")),i+o};function Ve(e,t){var n=ne(ne({},Oe),t.mappings),i=function(e){var t=e.match(Fe);return null===t?null:t[1]}(e);if(null===i)return e;var r=n[i];return r?(e=function(e,t,n){var i=t.split("."),r=i[0],o=i.slice(1);if("texture"===r)return De(e,n.texture[0]);if("pano"===r||"pano_luminance"===r)switch(o[0],o[1]){case"front":case"left":case"up":return De(e,n.pano[0]);case"down":case"right":case"back":return De(e,n.pano[1])}else if("pano_tile"===r||"pano_tile_luminance"===r){o[0],o[1];var a=o[2],s=o[3],l=o[4],u=Math.pow(2,Number(a))*Number(s)+Number(l);if(!isNaN(u))return De(e,n.tile[u%2])}else if("model"===r){var c=o[0];if(u=Number(c),!isNaN(u))return De(e,n.model[u%2])}return De(e,n.default[0])}(e,t.key,r),/\.basis(\?|$)/.test(e)&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),"tencentCloud"===r.type?Qe(e,t):"aliyun"===r.type?Ne(e,t):e):e}function Ue(e,t,n){void 0===t&&(t=Ve);var i=t(e,n);if(i===e&&n.cut)throw new Error("ImageURL: cut option not applied.");return i}const _e="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",ze="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";function qe(e){return new Promise((function(t){var n=new Image,i=setTimeout((function(){n.onload=n.onerror=function(){},clearTimeout(i),t(!1)}));n.onload=n.onerror=function(){n.onload=n.onerror=function(){},clearTimeout(i),t(2===n.height)},n.src=e}))}var He=null;function je(){return He||(He=Promise.all([qe(_e),qe(ze)]).then((function(e){var t=e[0];return{webp:e[1],avif:t}})).catch((function(){return{webp:!1,avif:!1}})))}var Ke=function(){function t(){this.numPlanes=0,this.clipperPlanes=null,this.clipperFloors=null}return Object.defineProperty(t,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new t),this.sharedInstance},enumerable:!1,configurable:!0}),t.prototype.update=function(t,n){if(this.clipperFloors=[],t instanceof Array){this.clipperPlanes=new Float32Array(24*t.length);for(var i=function(i){var o=[new e.Plane(new e.Vector3(.5,0,0),-1),new e.Plane(new e.Vector3(-.5,0,0),-1),new e.Plane(new e.Vector3(0,.5,0),-1),new e.Plane(new e.Vector3(0,-.5,0),-1),new e.Plane(new e.Vector3(0,0,.5),-1),new e.Plane(new e.Vector3(0,0,-.5),-1)];o.forEach((function(e){e.applyMatrix4(t[i].clippingBoxMatrix)}));for(var a=r.projectPlanes(o,n),s=0;s<24;s++)r.clipperPlanes[24*i+s]=a[s];var l=t[i].hasOwnProperty("floorIndex")?t[i].floorIndex:-1;r.clipperFloors[i]=l},r=this,o=0;o<t.length;o++)i(o)}else{var a=[new e.Plane(new e.Vector3(.5,0,0),-1),new e.Plane(new e.Vector3(-.5,0,0),-1),new e.Plane(new e.Vector3(0,.5,0),-1),new e.Plane(new e.Vector3(0,-.5,0),-1),new e.Plane(new e.Vector3(0,0,.5),-1),new e.Plane(new e.Vector3(0,0,-.5),-1)];a.forEach((function(e){e.applyMatrix4(t.clippingBoxMatrix)})),this.clipperPlanes=this.projectPlanes(a,n),this.clipperFloors[0]=t.hasOwnProperty("floorIndex")?t.floorIndex:-1}},t.prototype.projectPlanes=function(t,n){var i=null!==t?t.length:0,r=4*i,o=n.matrixWorldInverse,a=new e.Matrix3;a.getNormalMatrix(o);for(var s=new Float32Array(r),l=new e.Plane,u=0,c=0;u!==i;++u,c+=4)l.copy(t[u]).applyMatrix4(o,a),l.normal.toArray(s,c),s[c+3]=l.constant;return s},t}(),Ge=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return te(t,e),t}(e.Mesh),We=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t.enableTransparent=!1,t}return te(t,e),t.prototype.getTransparent=function(){return this.enableTransparent},t.prototype.setTransparent=function(e){this.enableTransparent!==e&&(this.enableTransparent=e,this.traverse((function(t){t instanceof Ge&&t.material.forEach((function(t){t.transparent=e}))})))},t.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof Ge){var n=t.material[0];e={pano0:n.pano0,pano1:n.pano1,modelAlpha:n.modelAlpha,progress:n.progress,useBlackTransition:n.useBlackTransition,modelColorInfo:n.modelColorInfo,opacity:n.opacity,floorIndex:n.floorIndex,floorInfo:n.floorInfo,clippers:n.clippers,clipperPlanesArray:n.clipperPlanesArray,clipperFloors:n.clipperFloors,globalFloorInfo:n.globalFloorInfo}}})),e},t.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof Ge&&t.material.forEach((function(t){void 0!==e.pano0&&(t.pano0=e.pano0),void 0!==e.pano1&&(t.pano1=e.pano1),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.modelColorInfo&&(t.modelColorInfo=e.modelColorInfo),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.floorIndex&&(t.floorIndex=e.floorIndex),void 0!==e.floorInfo&&(t.floorInfo=e.floorInfo),void 0!==e.clippers&&(t.clippers=e.clippers),void 0!==e.clipperPlanesArray&&(t.clipperPlanesArray=e.clipperPlanesArray),void 0!==e.clipperFloors&&(t.clipperFloors=e.clipperFloors),void 0!==e.globalFloorInfo&&(t.globalFloorInfo=e.globalFloorInfo)}))}))},t.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof Ge){var t=[];e.material.forEach((function(e){var n=e.uniforms;Object.keys(n).map((function(e){if(/^pano\d\_/.test(e))n[e].value=null;else{var i=n[e].value;i&&"function"==typeof i.dispose&&-1===t.indexOf(i)&&(n[e].value=null,t.push(i))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},t.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof Ge&&e.geometry.dispose()}))},t}(e.Group),Xe=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return te(t,e),t}(We),Ye=["right","left","up","down","front","back"];function Ze(t,n,i,r){var o=new e.Box3;switch(t){case"up":o.min.y=.5,o.max.y=.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.z=.5-i-r,o.max.z=.5-i;break;case"down":o.min.y=-.5,o.max.y=-.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.z=+i-.5,o.max.z=+i-.5+r;break;case"left":o.min.x=-.5,o.max.x=-.5,o.min.z=.5-n-r,o.max.z=.5-n,o.min.y=.5-i-r,o.max.y=.5-i;break;case"right":o.min.x=.5,o.max.x=.5,o.min.z=+n-.5,o.max.z=+n-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"front":o.min.z=-.5,o.max.z=-.5,o.min.x=+n-.5,o.max.x=+n-.5+r,o.min.y=.5-i-r,o.max.y=.5-i;break;case"back":o.min.z=.5,o.max.z=.5,o.min.x=.5-n-r,o.max.x=.5-n,o.min.y=.5-i-r,o.max.y=.5-i}return o.applyMatrix4((new e.Matrix4).makeRotationY(Math.PI))}var Je=function(t,n){if(!(t.level>=n))for(var i=t.level+1,r=t.size/2,o=0,a=[new e.Vector2(t.position.x,t.position.y),new e.Vector2(t.position.x+r,t.position.y),new e.Vector2(t.position.x,t.position.y+r),new e.Vector2(t.position.x+r,t.position.y+r)];o<a.length;o++){var s=a[o],l={face:t.face,level:i,size:r,position:s,box:Ze(t.face,s.x,s.y,r),children:[]};t.children.push(l),Je(l,n)}};function $e(t){var n=Ye.map((function(n){return function(t,n){var i={level:0,face:t,position:new e.Vector2(0,0),size:1,box:Ze(t,0,0,1),children:[]};return Je(i,n),i}(n,t)}));return{children:n}}function et(e,t){for(var n=0,i=e.children;n<i.length;n++){var r=i[n];!1!==t(r)&&et(r,t)}}var tt=new e.BoxBufferGeometry(1,1,1,1,1);tt.deleteAttribute("uv"),tt.deleteAttribute("normal"),tt.groups=[],tt.scale(-1,1,1);var nt=new e.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec3 worldPosition;\nvoid main() {\n vec4 transform = vec4(position, 1.0);\n worldPosition = (modelMatrix * transform).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * transform;\n}\n",fragmentShader:"\nuniform samplerCube map;\nvarying vec3 worldPosition;\nvoid main() {\n gl_FragColor = textureCube(map, worldPosition);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1,fog:!1}),it=new e.Scene;it.matrixAutoUpdate=!1;var rt,ot=new e.Mesh(tt,nt);function at(t,n,i){nt.uniforms.map.value=t;var r=i.autoClear;i.autoClear=!1;var o=new e.CubeCamera(.1,2,n);o.matrixAutoUpdate=!1,o.update(i,it),i.autoClear=r,nt.uniforms.map.value=null}ot.matrixAutoUpdate=!1,it.add(ot);var st=null!==(rt=Math.SQRT1_2)&&void 0!==rt?rt:Math.sqrt(2),lt={up:new e.Quaternion(st,0,0,st),down:new e.Quaternion(-st,0,0,st),left:new e.Quaternion(0,st,0,st),right:new e.Quaternion(0,-st,0,st),front:new e.Quaternion(0,0,0,1),back:new e.Quaternion(0,1,0,0)},ut=function(){var t=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),n=new Float32Array([0,0,1,0,0,1,1,1]),i=new Uint8Array([0,1,2,1,3,2]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),ct=[];function ht(e){e.uniforms.map.value=null,ct.push(e)}var dt=[];function pt(){var e=this.src;this.onerror=this.onload=le,this.removeAttribute("src"),/^blob\:/.test(e)&&URL.revokeObjectURL(e),this.close=le}var ft=[],At=0;function vt(){var e=document.createElementNS("http://www.w3.org/1999/xhtml","img");return Object.assign(e,{crossOrigin:"",close:pt})}function mt(){return new Promise((function(e){At>0?(At--,e(vt())):ft.push((function(){e(vt())}))}))}function gt(){dt.push(this)}function yt(e){return new Promise((function(t,n){var i=vt();i.onload=function(){i.onload=i.onerror=le,setTimeout((function(){t(i)}),0)},i.onerror=function(){var e=i.src;i.onload=i.onerror=le,i.close(),n(new Error("image load error: ".concat(e)))},i.src=URL.createObjectURL(e)}))}function bt(t,n){if(n&&(t.width>n.width||t.height>n.height)){var i=function(e,t){var n=dt.shift();if(n)return n.width=e,n.height=t,n;var i=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return Object.assign(i,{close:gt})}(Math.min(t.width,n.width),Math.min(t.height,n.height)),r=i.getContext("2d");r.clearRect(0,0,i.width,i.height),r.drawImage(t,0,0,i.width,i.height),t.close();var o=new e.Texture(i);o.needsUpdate=!0,o.flipY=!0;var a=o.dispose;return o.dispose=function(){i.close(),a.call(o),o.dispose=a},o}var s=new e.Texture(t);s.needsUpdate=!0,s.flipY=!0;var l=s.dispose;return s.dispose=function(){t.close(),l.call(s),s.dispose=l},s}ke.shared.add((function(){if(At=10,ft.length)for(var e=0,t=ft.splice(0,At);e<t.length;e++){var n=t[e];At--,n()}}));var xt=["right","left","up","down","front","back"],wt=function(){function t(e,t,n,i,r){this.tileTree=t,this.tileSources=n,this.options=i,this.renderer=r,this.name="",this.needsRender=!1,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.textures=[],this.baseCubeTexture=e}return Object.defineProperty(t.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(t){var n,i,r,o,a;if(null===t)throw new Error("cannot set cubeRenderTarget to null.");t.width!==this.options.textureSize&&t.setSize(this.options.textureSize,this.options.textureSize),t.texture.format=null!==(n=this.options.format)&&void 0!==n?n:e.RGBAFormat,t.texture.minFilter=null!==(i=this.options.minFilter)&&void 0!==i?i:e.LinearFilter,t.texture.magFilter=null!==(r=this.options.magFilter)&&void 0!==r?r:e.LinearFilter,t.texture.wrapS=null!==(o=this.options.wrapS)&&void 0!==o?o:e.ClampToEdgeWrapping,t.texture.wrapT=null!==(a=this.options.wrapT)&&void 0!==a?a:e.ClampToEdgeWrapping,this.baseCubeTexture&&(at(this.baseCubeTexture,t,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&at(this._cubeRenderTarget.texture,t,this.renderer),this._cubeRenderTarget=t},enumerable:!1,configurable:!0}),t.prototype.requestTile=function(t){var n,i,r,o,a,s,l=this,u=this.tileSources.filter((function(e){return e.level===t.level}))[0];if(u){var c=u.size,h=Math.pow(2,t.level)*t.position.y,d=Math.pow(2,t.level)*t.position.x,p="".concat((null!==(r=null===(i=null===(n=this.options.imageURL)||void 0===n?void 0:n.options)||void 0===i?void 0:i.key)&&void 0!==r?r:"pano.0").replace(/^pano/,"pano_tile"),".").concat(t.face,".").concat(t.level,".").concat(h,".").concat(d),f=ne(ne({},null!==(a=null===(o=this.options.imageURL)||void 0===o?void 0:o.options)&&void 0!==a?a:{key:"unknown"}),{key:p,size:c*t.size===this.options.tileImageSize?void 0:this.options.tileImageSize,quality:void 0,cut:[c*t.position.x,c*t.position.y,c*t.size,c*t.size]});this.loadingCubeNodes.add(t),this.options.textureLoader.loadTexture(u[t.face],{imageURL:{transform:null===(s=this.options.imageURL)||void 0===s?void 0:s.transform,options:ne({},f)},format:e.RGBAFormat,viaAjax:!1}).then((function(n){l.disposed?n.body.dispose():(l.textures.push({face:t.face,level:t.level,position:t.position,size:new e.Vector2(t.size,t.size),texture:n.body}),l.loadedCubeNodes.add(t))})).catch(le).then((function(){l.disposed||l.loadingCubeNodes.delete(t)}))}else this.loadedCubeNodes.add(t)},t.prototype.update=function(t,n){var i=this;if(!this.disposed){var r=[];et(this.tileTree,(function(e){return!i.loadingCubeNodes.has(e)&&!(e.level>n)&&!!t.intersectsBox(e.box)&&(i.loadedCubeNodes.has(e)?void 0:(r.push(e),!1))}));for(var o=0,a=r;o<a.length;o++){var s=a[o];this.requestTile(s)}if(this.cubeRenderTarget&&this.textures.length){var l=this.textures.splice(0,4);!function(t,n,i){var r=new e.Scene,o=new e.Group;o.scale.set(1,1,-1),r.add(o);for(var a=[],s=0,l=t;s<l.length;s++){var u=l[s],c=ct.pop()||new e.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1,fog:!1});a.push(c),c.uniforms.map.value=u.texture;var h=new e.Group,d=new e.Mesh(ut,c);d.position.set(u.position.x+u.size.x/2-.5,1-(u.position.y+u.size.y/2)-.5,-.5),d.scale.set(u.size.x,u.size.y,1),h.quaternion.copy(lt[u.face]),h.add(d),o.add(h)}var p=i.autoClear;i.autoClear=!1;var f=new e.CubeCamera(.1,2,n);f.matrixAutoUpdate=!1,f.update(i,r),i.autoClear=p;for(var A=0,v=a;A<v.length;A++)ht(c=v[A])}(l,this.cubeRenderTarget,this.renderer),this.needsRender=!0;for(var u=0,c=l;u<c.length;u++)c[u].texture.dispose()}}},Object.defineProperty(t.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var e=0,t=this.textures;e<t.length;e++)t[e].texture.dispose();this.textures.length=0}},t}(),Mt=function(){function t(e){this.timeout=e.timeout,this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return t.prototype.setAllowHosts=function(e){this.allowHosts=e},t.prototype.setRequestProxy=function(e){this.requestProxy=e},t.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e},t.prototype.loadTexture=function(e,t,n,i,r,o){var a,s,l,u;void 0===t&&(t={}),void 0===n&&(n=le),void 0===i&&(i=le),void 0===r&&(r=le);var c={};void 0!==t.flipY&&(c.flipY=t.flipY),void 0!==t.format&&(c.format=t.format),void 0!==t.minFilter&&(c.minFilter=t.minFilter),void 0!==t.magFilter&&(c.magFilter=t.magFilter);var h=null!==(s=null===(a=t.imageURL)||void 0===a?void 0:a.options)&&void 0!==s?s:{key:"unknown"},d=Ee(e=Ue(e,null===(l=t.imageURL)||void 0===l?void 0:l.transform,h)),p={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},f=null!==(u=t.viaAjax)&&void 0!==u&&u,A=Me(e),v=/^https?:/.test(d);if(A?f=!0:v||(f=!1),f)return Se(e,ne(ne({},p),{responseType:"blob"}),void 0,void 0,r).then((function(e){return yt(e.body)})).then((function(e){return bt(e,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){var t={meta:null,body:e};return n(t),t})).catch((function(e){return i(e),Promise.reject(e)}));var m,g=null;return Promise.resolve().then((function(){return mt()})).then((function(t){return m=t,Pe(e,p,void 0,void 0,r,t)})).then((function(e){return g=e.meta,bt(e.body,t.maxSize)})).then((function(e){return Object.assign(e,c),e})).then((function(e){var t={meta:g,body:e};return n(t),t})).catch((function(e){return m&&m.close(),i(e),Promise.reject(e)}))},t.prototype.loadCubeTexture=function(t,n,i,r,o,a){var s,l,u,c;void 0===n&&(n={}),void 0===i&&(i=le),void 0===r&&(r=le),void 0===o&&(o=le);var h={};void 0!==n.format&&(h.format=n.format),void 0!==n.minFilter&&(h.minFilter=n.minFilter),void 0!==n.magFilter&&(h.magFilter=n.magFilter);for(var d=[t[xt[0]],t[xt[1]],t[xt[2]],t[xt[3]],t[xt[4]],t[xt[5]]],p={timeout:this.timeout,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},f=[],A=[0,0,0,0,0,0],v=[],m=function(e){var t=null!==(l=null===(s=n.imageURL)||void 0===s?void 0:s.options)&&void 0!==l?l:{key:"unknown"},i=Ue(d[e],null===(u=n.imageURL)||void 0===u?void 0:u.transform,ne(ne({},t),{key:t.key+"."+xt[e]})),r=Ee(i),a=function(t){A[e]=t,o(A.reduce((function(e,t){return e+t}),0)/6)},h=null!==(c=n.viaAjax)&&void 0!==c&&c,m=/^https?:$/.test(r);if(Me(i)?h=!0:m||(h=!1),h){var g=Se(i,ne(ne({},p),{responseType:"blob"}),void 0,void 0,a).then((function(t){return v[e]=t.meta,yt(t.body)}));f.push(g)}else{var y;g=Promise.resolve().then((function(){return mt()})).then((function(e){return y=e,Pe(i,p,void 0,void 0,a,e)})).then((function(t){return v[e]=t.meta,t.body})).catch((function(e){return y&&y.close(),Promise.reject(e)})),f.push(g)}},g=0;g<6;g++)m(g);return Promise.all(f).then((function(t){return function(t){var n=new e.CubeTexture(t);n.needsUpdate=!0,n.flipY=!1;var i=n.dispose;return n.dispose=function(){for(var e=0,r=t;e<r.length;e++)r[e].close();i.call(n),n.dispose=i},n}(t)})).then((function(t){return Object.assign(t,ne({encoding:e.sRGBEncoding},n)),t})).then((function(e){var t={body:e,meta:v};return i(t),t})).catch((function(e){for(var t=0,n=f;t<n.length;t++)n[t].then((function(e){return e.close()})).catch(le);return r(e),Promise.reject(e)}))},t.prototype.loadTiledCubeTexture=function(t,n,i,r,o,a,s){var l=this;return void 0===i&&(i={}),void 0===r&&(r=le),void 0===o&&(o=le),void 0===a&&(a=le),new Promise((function(u,c){var h,d;l.loadCubeTexture(t,{imageURL:{transform:null===(h=i.imageURL)||void 0===h?void 0:h.transform,options:null===(d=i.imageURL)||void 0===d?void 0:d.options},format:e.RGBAFormat,viaAjax:i.viaAjax},(function(e){var t,o,a=e.meta,c=e.body,h=null!==(t=i.tileImageSize)&&void 0!==t?t:512,d=null!==(o=i.tileMaxLevel)&&void 0!==o?o:2,p=Math.max(1024*d,512),f=$e(d),A={meta:a,body:new wt(c,f,n,{textureSize:p,tileImageSize:h,textureLoader:l,imageURL:i.imageURL},s)};r(A),u(A)}),(function(e){o(e),c(e)}),a,s).catch(le)}))},t}();const Et=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rpA-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK0v{pyqr-Iunq|zn}l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-z|qryZnv-7-n{s|zrqH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--0v{pyqr-Iunq|zn}lrrK\f"),Ct=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-sy|n-sy||V{qrH0vs-qrsv{rq5b`RlNYYlP\\Y\\_6{vs|z-rp@-z|qryP|y|V{s|H0r{qvs0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6--{vs|z-rp?-}n{|cvqr|lv\trH--{vs|z-znA-}n{|cvqr|lznvH--{vs|z-sy|n-}n{|cvqr|lny}unH--{vs|z-nz}yr?Q-}n{|cvqr|lzn}H0r{qvs0vs-qrsv{rq5b`RlPYV]SY\\\\_6--{vs|z-rp@-sy||V{s|H0r{qvsn\bv{t-rpA-|yq]|vv|{H0vs-qrsv{rq5b`RlPbaR_6--0vs-[bZlPYV]]V[TlN__NflYR[TaU-K-=----{vs|z-sy|n-pyv}}rSy||h[bZlPYV]]V[TlO\\ejH----{vs|z-nz}yr?Q-pyv}}r]yn{rarrH--0r{qvs0r{qvs0vs-[bZlSY\\\\_lP\\b[a-K-=--{vs|z-nz}yr?Q-ty|onySy||V{s|arrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--0vs-qrsv{rq5b`RlNYYlP\\Y\\_6----tylSntP|y|-J-rpA5z|qryP|y|V{s|;9z|qryP|y|V{s|;t9z|qryP|y|V{s|;o9>;=6H----r{H--0r{qvsvs-5q|5cvr]|vv|{9-[|zny6-I-=;=6-\n----qvpnqH--\f--<<前置裁切计算------0vs-qrsv{rq5b`RlPbaR_6----rpA-}yn{rH-------s|5-v{-v-J-=H-v-I-[bZlPYV]]V[TlO\\eH-v886\n------o||y-pyv}}rq-J-rH------v{-pr{Sy||V{qr-J-v{5pyv}}rSy||hvj6H------<<内部展开s|循环,让v{q|能用------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8->6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-?6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-@6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-A6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?55sy|n5v-7-C-8-B6-8-=;B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------rp?-sy||bH------sy||b;-J-sy|n5pr{Sy||V{qr6-<-sy|n5[bZlSY\\\\_lP\\b[a6H------sy||b;\b-J-=;BH------rpA-lsy||V{s|H------lsy||V{s|-J-rr?Q5ty|onySy||V{s|arr9-sy||b6H------------o||y-v{antrSy||-J-|yq]|vv|{;\b-I-lsy||V{s|;-33-|yq]|vv|{;\b-K-lsy||V{s|;tH------pyv}}rq-J-5pr{Sy||V{qr-JJ-:>-\v\v-v{antrSy||6-33-pyv}}rqH------vs5pyv}}rq6-\n--------qvpnqH------\f----\f--0r{qvs--<<楼层切割计算--0vs-qrsv{rq5b`RlPYV]SY\\\\_6----vs-5|yq]|vv|{;\b-I-sy||V{s|;-\v\v-|yq]|vv|{;\b-K-sy||V{s|;t6-\n------qvpnqH----\f--0r{qvs--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{;\b\t-:-}n{|=lznvh@j;\b\t6-7-zn@5}n{|=lznv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{;\b\t-:-}n{|>lznvh@j;\b\t6-7-zn@5}n{|>lznv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=lzn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>lzn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{;\b\t-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|lznvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|lzn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|lny}un6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\l\\]NPVaf6----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H----tylSntP|y|;n-J-|}npv\bH--0ryr----tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--0r{qvs\f");var It=new e.WebGLCubeRenderTarget(1).texture;It.name="EMPTY_TEXTURE";var St=Object.assign({modelAlpha:new e.Uniform(0),progress:new e.Uniform(0),pano0_map:new e.Uniform(It),pano0_luminanceMap:new e.Uniform(null),pano0_matrix:new e.Uniform(new e.Matrix4),pano1_map:new e.Uniform(It),pano1_luminanceMap:new e.Uniform(null),pano1_matrix:new e.Uniform(new e.Matrix4),floorIndex:new e.Uniform(-1),floorInfo:new e.Uniform(null),clipperPlanesArray:new e.Uniform(new Float32Array),clipperPlanesTexture:new e.Uniform(null),clipperFloors:new e.Uniform([]),modelColorInfo:new e.Uniform(null),globalFloorInfo:new e.Uniform([]),globalFloorInfoTexture:new e.Uniform(null)},{exposure:new e.Uniform(1),emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsUtils.clone(e.UniformsLib.common),e.UniformsUtils.clone(e.UniformsLib.lights)),Bt=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c,h,d=this;d=t.call(this,{vertexShader:Et,fragmentShader:Ct,uniforms:e.UniformsUtils.clone(St),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_PANO_OPACITY:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1,USE_ALL_COLOR:!1,USE_CLIPFLOOR:!1,USE_CUTER:!1,NUM_FLOOR_COUNT:0,NUM_CLIPPING_ARRAY_LENGTH:0,NUM_CLIPPING_BOX:0},blending:e.NoBlending,lights:!0})||this;var p=null,f=null;return Object.defineProperties(d,{pano0:{get:function(){return p},set:function(e){p=e,null===e?(this.uniforms.pano0_map.value=It,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity()):(this.uniforms.pano0_map.value=e.map instanceof wt?e.map.texture:e.map,this.uniforms.pano0_luminanceMap.value=e.luminanceMap instanceof wt?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano0_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},pano1:{get:function(){return f},set:function(e){f=e,null===e?(this.uniforms.pano1_map.value=It,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity()):(this.uniforms.pano1_map.value=e.map instanceof wt?e.map.texture:e.map,this.uniforms.pano1_luminanceMap.value=e.luminanceMap instanceof wt?e.luminanceMap.texture:e.luminanceMap,this.uniforms.pano1_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},modelColorInfo:{get:function(){return this.uniforms.modelColorInfo.value},set:function(e){this.uniforms.modelColorInfo.value=e;var t=null!==e;this.defines.USE_ALL_COLOR!==t&&(this.defines.USE_ALL_COLOR=t,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t;var n=t<1?e.NormalBlending:e.NoBlending;n!==this.blending&&(this.blending=n,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(e){this.uniforms.floorIndex.value=e}},floorInfo:{get:function(){return this.uniforms.floorInfo.value},set:function(t){var n,i=this.defines.USE_CLIPFLOOR;t&&!t.equals(new e.Vector3(0,0,0))?(n=!0,this.uniforms.floorInfo.value=t):(n=!1,this.uniforms.floorInfo.value=null),i!==n&&(this.defines.USE_CLIPFLOOR=n,this.needsUpdate=!0)}},clippers:{get:function(){return this._clippers},set:function(e){this._clippers=e}},clipperPlanesArray:{get:function(){return this.uniforms.clipperPlanesArray.value},set:function(t){var n=!1;if(t instanceof Float32Array&&t.length>0&&t.length%6==0){var i=t.length/4;!0!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!0,n=!0),this.defines.NUM_CLIPPING_ARRAY_LENGTH!==i&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=i,n=!0),this.defines.NUM_CLIPPING_BOX!==i/6&&(this.defines.NUM_CLIPPING_BOX=i/6,n=!0),this.uniforms.clipperPlanesArray.value=t;var r=new e.DataTexture(t,i,1,e.RGBAFormat,e.FloatType);r.wrapS=e.ClampToEdgeWrapping,r.wrapT=e.ClampToEdgeWrapping,r.minFilter=e.NearestFilter,r.magFilter=e.NearestFilter,this.uniforms.clipperPlanesTexture.value&&this.uniforms.clipperPlanesTexture.value.dispose(),this.uniforms.clipperPlanesTexture.value=r}else!1!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!1,n=!0),0!==this.defines.NUM_CLIPPING_ARRAY_LENGTH&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=0,n=!0),0!==this.defines.NUM_CLIPPING_BOX&&(this.defines.NUM_CLIPPING_BOX=0,n=!0),this.uniforms.clipperPlanesArray.value=new Float32Array,this.uniforms.clipperPlanesTexture.value=null;n&&(this.needsUpdate=!0)}},clipperFloors:{get:function(){return this.uniforms.clipperFloors.value},set:function(e){this.uniforms.clipperFloors.value=e}},globalFloorInfo:{get:function(){return this.uniforms.globalFloorInfo.value},set:function(t){var n=this.defines.NUM_FLOOR_COUNT;if(t&&n!==t.length){this.defines.NUM_FLOOR_COUNT=t.length,this.uniforms.globalFloorInfo.value=t;var i=[];t.forEach((function(e){i.push(e.x),i.push(e.y),i.push(0),i.push(0)}));var r=t.length,o=new e.DataTexture(new Float32Array(i),r,1,e.RGBAFormat,e.FloatType);o.wrapS=e.ClampToEdgeWrapping,o.wrapT=e.ClampToEdgeWrapping,o.minFilter=e.NearestFilter,o.magFilter=e.NearestFilter,this.uniforms.globalFloorInfoTexture.value&&this.uniforms.globalFloorInfoTexture.value.dispose(),this.uniforms.globalFloorInfoTexture.value=o,this.needsUpdate=!0}}}}),d.pano0=null!==(i=n.pano0)&&void 0!==i?i:null,d.pano1=null!==(r=n.pano1)&&void 0!==r?r:null,d.modelAlpha=null!==(o=n.modelAlpha)&&void 0!==o?o:1,d.progress=null!==(a=n.progress)&&void 0!==a?a:0,d.useBlackTransition=null!==(s=n.useBlackTransition)&&void 0!==s&&s,d.modelColorInfo=null!==(l=n.modelColorInfo)&&void 0!==l?l:null,d.opacity=null!==(u=n.opacity)&&void 0!==u?u:1,d.originOpacity=1,d.floorIndex=null!==(c=n.floorIndex)&&void 0!==c?c:-1,d.floorInfo=null!==(h=n.floorInfo)&&void 0!==h?h:null,d.clippers=null,d.clipperPlanesArray=null,d.clipperFloors=null,d.globalFloorInfo=null,d}return te(n,t),n}(e.ShaderMaterial),Tt=function(t){function n(n){var i=n.preserveDrawingBuffer,r=void 0===i||i,o=n.backgroundColor,a=void 0===o?1579548:o,s=n.backgroundAlpha,l=void 0===s?1:s,u=n.pixelRatio,c=void 0===u?1:u,h=n.antialias,d=void 0!==h&&h,p=n.webgl2,f=this;if(void 0!==p&&p){var A=document.createElement("canvas"),v=A.getContext("webgl2");if(null===v)throw new Error("error occurred when getting webgl2 canvas context");f=t.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1,canvas:A,context:v})||this}else f=t.call(this,{antialias:d,preserveDrawingBuffer:r,alpha:l<1})||this;return f.setPixelRatio(c),f.setClearColor(a,l),f.outputEncoding=e.sRGBEncoding,f.autoClear=!0,f}return te(n,t),n}(e.WebGLRenderer),Pt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return te(t,e),t.prototype.add=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.add.apply(this,t)},t.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.prototype.remove.apply(this,t)},t}(e.Scene);function Rt(t,n){var i=Math.abs(Math.cos(t.latitude)),r=-Math.sin(t.longitude)*i,o=-Math.sin(t.latitude),a=-Math.cos(t.longitude)*i;return n?n.set(r,o,a):new e.Vector3(r,o,a)}var Lt=2*Math.PI,kt=Math.PI/2;function Ot(e){return e>0&&e<=Lt?e:(e%Lt+Lt)%Lt}var Ft,Dt,Qt,Nt,Vt=function(t){function n(n,i,r,o,a,s){void 0===i&&(i=1),void 0===r&&(r=.01),void 0===o&&(o=1e3),void 0===a&&(a=new e.Vector2),void 0===s&&(s=1);var l=t.call(this)||this;l.fov=n,l.aspect=i,l.near=r,l.far=o,l.perspToOrtho=a,l.orthoDistance=s,l.needsRender=!0,l.pose={longitude:0,latitude:0,fov:n,distance:0,offset:new e.Vector3},l.computePose(),l.perspectiveCamera=new e.PerspectiveCamera(l.fov,l.aspect,.001,l.far);var u=Math.max(l.orthoDistance,.01)*Math.tan(.5*l.fov/180*Math.PI),c=-.5*l.aspect*2*u;return l.orthographicCamera=new e.OrthographicCamera(c,-c,u,-u,.001,l.far),l.computeProjectionMatrix(),l.lastValues={position:l.position.clone(),quaternion:l.quaternion.clone(),scale:l.scale.clone(),fov:l.fov,aspect:l.aspect,near:l.near,far:l.far,perspToOrtho:l.perspToOrtho.clone(),orthoDistance:l.orthoDistance},l.type=l.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera",l}return te(n,t),n.prototype.getDirection=function(e){return Rt(this.pose,e)},n.prototype.computePose=function(t){void 0===t&&(t=0);var n=this.getDirection(new e.Vector3);this.pose.longitude=Ot(-Math.atan2(n.x,-n.z)),this.pose.latitude=-Math.asin(n.y/1),this.pose.fov=this.fov,this.pose.distance=t;var i=(new e.Vector3).add(this.position).add(n.clone().setLength(this.pose.distance));return this.pose.offset.copy(i),this},n.prototype.setFromPose=function(e){var t,n,i,r,o,a=Ot(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),s=Math.max(1e-4-kt,Math.min(kt-1e-4,null!==(n=e.latitude)&&void 0!==n?n:this.pose.latitude)),l=null!==(i=e.fov)&&void 0!==i?i:this.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.pose.offset,h=Rt({longitude:a,latitude:s}).normalize();return this.position.set(0,0,0),this.lookAt(h),this.position.add(c).sub(h.clone().setLength(u)),this.fov!==l&&(this.fov=l,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=a,this.pose.latitude=s,this.pose.fov=l,this.pose.distance=u,this.pose.offset.copy(c),this.needsRender=!0,this},n.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},n.prototype.computeProjectionMatrix=function(){!function(e,t,n,i){n=Math.pow(n,2);for(var r=0;r<16;r++)i.elements[r]=e.elements[r]+(t.elements[r]-e.elements[r])*n}(this.orthographicCamera.projectionMatrix,this.perspectiveCamera.projectionMatrix,1-this.perspToOrtho.x,this.projectionMatrix),this.projectionMatrixInverse.getInverse(this.projectionMatrix),this.needsRender=!0},n.prototype.setViewOffset=function(e,t,n,i,r,o){this.perspectiveCamera.setViewOffset(e,t,n,i,r,o),this.orthographicCamera.setViewOffset(e,t,n,i,r,o),this.computeProjectionMatrix()},n.prototype.clearViewOffset=function(){this.perspectiveCamera.clearViewOffset(),this.orthographicCamera.clearViewOffset(),this.computeProjectionMatrix()},n.prototype.updateProjectionMatrix=function(){this.perspectiveCamera.updateProjectionMatrix(),this.orthographicCamera.updateProjectionMatrix(),this.computeProjectionMatrix()},Object.defineProperty(n.prototype,"perspectiveProjectionMatrix",{get:function(){return this.perspectiveCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"perspectiveProjectionMatrixInverse",{get:function(){return this.perspectiveCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orthographicProjectionMatrix",{get:function(){return this.orthographicCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"orthographicProjectionMatrixInverse",{get:function(){return this.orthographicCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),n.prototype.updateTime=function(e,t){var n=!1;if(this.lastValues.fov===this.fov&&this.lastValues.near===this.near&&this.lastValues.far===this.far&&this.lastValues.aspect===this.aspect||(this.perspectiveCamera.fov=this.fov,this.perspectiveCamera.near=this.near,this.perspectiveCamera.far=this.far,this.perspectiveCamera.aspect=this.aspect,this.perspectiveCamera.updateProjectionMatrix(),n=!0),!this.lastValues.position.equals(this.position)||!this.lastValues.quaternion.equals(this.quaternion)||!this.lastValues.scale.equals(this.scale)||this.lastValues.orthoDistance!==this.orthoDistance||this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.aspect!==this.aspect){var i=Math.max(this.orthoDistance,.01)*Math.tan(.5*this.fov/180*Math.PI),r=-.5*this.aspect*2*i;this.orthographicCamera.left=r,this.orthographicCamera.right=-r,this.orthographicCamera.top=i,this.orthographicCamera.bottom=-i,this.orthographicCamera.updateProjectionMatrix(),n=!0}this.lastValues.perspToOrtho.equals(this.perspToOrtho)||(n=!0),n&&this.computeProjectionMatrix(),this.lastValues.position.copy(this.position),this.lastValues.quaternion.copy(this.quaternion),this.lastValues.scale.copy(this.scale),this.lastValues.fov=this.fov,this.lastValues.aspect=this.aspect,this.lastValues.near=this.near,this.lastValues.far=this.far,this.lastValues.perspToOrtho.copy(this.perspToOrtho),this.lastValues.orthoDistance=this.orthoDistance,this.type=this.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera"},Object.defineProperty(n.prototype,"isPerspectiveCamera",{get:function(){return this.perspToOrtho.x<1},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isOrthographicCamera",{get:function(){return this.perspToOrtho.x>=1},enumerable:!1,configurable:!0}),n.prototype.copy=function(e,n){return t.prototype.copy.call(this,e,n),this.fov=e.fov,this.aspect=e.aspect,this.near=e.near,this.far=e.far,this.perspToOrtho.copy(e.perspToOrtho),this.orthoDistance=e.orthoDistance,this.updateTime(ce(),0),this},n}(e.Camera),Ut=function(){function e(e,t,n){this.x=e,this.y=t,this.z=n}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},e.prototype.set=function(e,t,n){return this.x=e,this.y=t,this.z=n,this},e.prototype.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},e.prototype.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},e.prototype.cross=function(e){var t=this.x,n=this.y,i=this.z;return this.x=n*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-n*e.x,this},e.prototype.crossVectors=function(e,t){var n=e.x,i=e.y,r=e.z,o=t.x,a=t.y,s=t.z;return this.x=i*s-r*a,this.y=r*o-n*s,this.z=n*a-i*o,this},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e}(),_t=function(e,t,n){this.extents=e,this.startIndex=t,this.endIndex=n},zt=function(e,t){this.triangle=e,this.intersectionPoint=t},qt=(Ft=new Ut(0,0,0),Dt=new Ut(0,0,0),Qt=new Ut(0,0,0),Nt=new Ut(0,0,0),function(e,t,n,i,r,o){Dt.subVectors(t,e),Qt.subVectors(n,e),Nt.crossVectors(Dt,Qt);var a,s=r.dot(Nt);if(s>0){if(o)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Ft.subVectors(i,e);var l=a*r.dot(Qt.crossVectors(Ft,Qt));if(l<0)return null;var u=a*r.dot(Dt.cross(Ft));if(u<0)return null;if(l+u>s)return null;var c=-a*Ft.dot(Nt);if(c<0)return null;var h=c/s;return new Ut(0,0,0).copy(r).multiplyScalar(h).add(i)}),Ht=function(e,t){this.min=e,this.max=t};function jt(e,t,n){var i=new Ht(0,0);t.x>=0?(i.min=(n.extents[0]-e.x)*t.x,i.max=(n.extents[3]-e.x)*t.x):(i.min=(n.extents[3]-e.x)*t.x,i.max=(n.extents[0]-e.x)*t.x);var r=new Ht(0,0);if(t.y>=0?(r.min=(n.extents[1]-e.y)*t.y,r.max=(n.extents[4]-e.y)*t.y):(r.min=(n.extents[4]-e.y)*t.y,r.max=(n.extents[1]-e.y)*t.y),i.min>r.max||r.min>i.max)return!1;r.min>i.min&&(i.min=r.min),r.max<i.max&&(i.max=r.max);var o=new Ht(0,0);return t.z>=0?(o.min=(n.extents[2]-e.z)*t.z,o.max=(n.extents[5]-e.z)*t.z):(o.min=(n.extents[5]-e.z)*t.z,o.max=(n.extents[2]-e.z)*t.z),!(i.min>o.max||o.min>i.max||(o.min>i.min&&(i.min=o.min),o.max<i.max&&(i.max=o.max),i.max<0))}function Kt(e,t,n,i,r){if(n>=i)return[0,0,0,0,0,0];for(var o=1/0,a=1/0,s=1/0,l=-1/0,u=-1/0,c=-1/0,h=n,d=void 0,p=void 0;h<i;h++)(p=t[d=6*e[h]])<o&&(o=p),(p=t[d+1])<a&&(a=p),(p=t[d+2])<s&&(s=p),(p=t[d+3])>l&&(l=p),(p=t[d+4])>u&&(u=p),(p=t[d+5])>c&&(c=p);return[o-r,a-r,s-r,l+r,u+r,c+r]}function Gt(e,t,n){return e<t?t:e>n?n:e}var Wt=1e-6,Xt=function(){function e(){}return e.prototype.create=function(e){return this.trianglesArray=e,this},e.prototype.splitNode=function(e){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");for(var t=this.trianglesArray,n=t.length/9,i=new Uint32Array(n),r=new Float32Array(6*n),o=[],a=0,s=1/0,l=1/0,u=1/0,c=-1/0,h=-1/0,d=-1/0,p=0,f=0,A=0,v=void 0,m=void 0,g=void 0,y=void 0,b=void 0,x=void 0,w=void 0;p<n;p++,f+=6,A+=9)i[p]=p,v=y=t[A],(w=t[A+3])<v&&(v=w),w>y&&(y=w),(w=t[A+6])<v&&(v=w),w>y&&(y=w),m=b=t[A+1],(w=t[A+4])<m&&(m=w),w>b&&(b=w),(w=t[A+7])<m&&(m=w),w>b&&(b=w),g=x=t[A+2],(w=t[A+5])<g&&(g=w),w>x&&(x=w),(w=t[A+8])<g&&(g=w),w>x&&(x=w),v<s&&(s=v),y>c&&(c=y),m<l&&(l=m),b>h&&(h=b),g<u&&(u=g),x>d&&(d=x),r[f]=v,r[f+1]=m,r[f+2]=g,r[f+3]=y,r[f+4]=b,r[f+5]=x;var M=new _t([s,l,u,c,h,d],0,n);function E(t){for(var n=t.startIndex,s=t.endIndex,l=t.extents,u=[l[3]-l[0],l[4]-l[1],l[5]-l[2]],c=[0,1,2].sort((function(e,t){return u[t]-u[e]})),h=0;h<3;h++){for(var d=c[h],p=l[d]+l[d+3],f=n,A=s-1,v=-1,m=void 0;f<=A;)-1===v?(m=i[f],r[6*m+d]+r[6*m+d+3]<p?f++:v=m):(m=i[A],r[6*m+d]+r[6*m+d+3]>=p||(i[f]=m,i[A]=v,v=-1,f++),A--);if(f>n&&f<s){var g=new _t(Kt(i,r,n,f,Wt),n,f);g.endIndex-g.startIndex>e&&(o[a++]=g);var y=new _t(Kt(i,r,f,s,Wt),f,s);y.endIndex-y.startIndex>e&&(o[a++]=y),t.node0=g,t.node1=y,t.startIndex=0,t.endIndex=0;break}}}for(o[a++]=M;a;)E(o[--a]);return this.offsetArray=i,this.rootNode=M,o.length=0,this},e.prototype.intersectRay=function(e,t,n){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");if(!this.rootNode||!this.offsetArray)throw new Error("bvh-tree never perpared. call `splitNode` to perpare.");for(var i,r=this.trianglesArray,o=this.offsetArray,a=this.rootNode,s=[],l=[],u=new Ut(1/t.x,1/t.y,1/t.z),c=[a];i=c.pop();)if(jt(e,u,i)){i.node0&&c.push(i.node0),i.node1&&c.push(i.node1);for(var h=i.startIndex;h<i.endIndex;h++)s.push(o[h])}for(var d=new Ut(0,0,0),p=new Ut(0,0,0),f=new Ut(0,0,0),A=new Ut(e.x,e.y,e.z),v=new Ut(t.x,t.y,t.z),m=void(h=0),g=s.length;h<g;h++){m=9*s[h],d.x=r[m],d.y=r[m+1],d.z=r[m+2],p.x=r[m+3],p.y=r[m+3+1],p.z=r[m+3+2],f.x=r[m+6],f.y=r[m+6+1],f.z=r[m+6+2];var y=qt(d,p,f,A,v,n);y&&l.push(new zt([d.clone(),p.clone(),f.clone()],y))}return l},e.prototype.trianglesInSphere=function(e,t){if(!this.trianglesArray)throw new Error("bvh-tree never perpared. call `create` to initialize.");if(!this.rootNode||!this.offsetArray)throw new Error("bvh-tree never perpared. call `splitNode` to perpare.");for(var n,i=this.trianglesArray,r=this.offsetArray,o=[this.rootNode],a=[];n=o.pop();){var s=Gt(e.x,n.extents[0],n.extents[3])-e.x,l=Gt(e.y,n.extents[1],n.extents[4])-e.y,u=Gt(e.z,n.extents[2],n.extents[5])-e.z;if(s*s+l*l+u*u<=t*t){n.node0&&o.push(n.node0),n.node1&&o.push(n.node1);for(var c=n.startIndex;c<n.endIndex;c++)a.push(r[c])}}var h=a.length,d=new Float32Array(9*h);for(c=0;c<h;c++){var p=9*a[c];d[9*c]=i[p],d[9*c+1]=i[p+1],d[9*c+2]=i[p+2],d[9*c+3]=i[p+3],d[9*c+4]=i[p+4],d[9*c+5]=i[p+5],d[9*c+6]=i[p+6],d[9*c+7]=i[p+7],d[9*c+8]=i[p+8]}return d},e.prototype.dispose=function(){delete this.offsetArray,delete this.rootNode},e}(),Yt=null,Zt=!1,Jt=[];function $t(e){if(void 0===e&&(e=!1),e||!Zt)if(Yt)Zt=!1;else{Zt=!0;var t=Jt.shift();if(t){try{t()}catch(e){}ke.shared.add((function(){return $t(!0)}),!0,2,-100)}else Zt=!1}}function en(e){return new Promise((function(t,n){Jt.push((function(){try{t(e())}catch(e){n(e)}})),ke.shared.add((function(){return $t()}),!0,2,-100)}))}function tn(){var e={OutWindow:function(){this._windowSize=0}};return e.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},e.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},e.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},e.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},e.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},e.OutWindow.prototype.copyBlock=function(e,t){var n=this._pos-e-1;for(n<0&&(n+=this._windowSize);t--;)n>=this._windowSize&&(n=0),this._buffer[this._pos++]=this._buffer[n++],this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},e.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},e.RangeDecoder=function(){},e.RangeDecoder.prototype.setStream=function(e){this._stream=e},e.RangeDecoder.prototype.releaseStream=function(){this._stream=null},e.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},e.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,n=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,n=n<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return n},e.RangeDecoder.prototype.decodeBit=function(e,t){var n=e[t],i=(this._range>>>11)*n;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=n>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},e.initBitModels=function(e,t){for(;t--;)e[t]=1024},e.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},e.BitTreeDecoder.prototype.init=function(){e.initBitModels(this._models,1<<this._numBitLevels)},e.BitTreeDecoder.prototype.decode=function(e){for(var t=1,n=this._numBitLevels;n--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},e.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,n=1,i=0,r=0;r<this._numBitLevels;++r)n=n<<1|(t=e.decodeBit(this._models,n)),i|=t<<r;return i},e.reverseDecode2=function(e,t,n,i){for(var r,o=1,a=0,s=0;s<i;++s)o=o<<1|(r=n.decodeBit(e,t+o)),a|=r<<s;return a},e.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new e.BitTreeDecoder(8),this._numPosStates=0},e.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new e.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new e.BitTreeDecoder(3)},e.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(e.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},e.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},e.Decoder2=function(){this._decoders=[]},e.Decoder2.prototype.init=function(){e.initBitModels(this._decoders,768)},e.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},e.Decoder2.prototype.decodeWithMatchByte=function(e,t){var n,i,r=1;do{if(n=t>>7&1,t<<=1,r=r<<1|(i=e.decodeBit(this._decoders,(1+n<<8)+r)),n!==i){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},e.LiteralDecoder=function(){},e.LiteralDecoder.prototype.create=function(t,n){var i;if(!this._coders||this._numPrevBits!==n||this._numPosBits!==t)for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=n,this._coders=[],i=1<<this._numPrevBits+this._numPosBits;i--;)this._coders[i]=new e.Decoder2},e.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},e.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},e.Decoder=function(){this._outWindow=new e.OutWindow,this._rangeDecoder=new e.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new e.BitTreeDecoder(4),this._lenDecoder=new e.LenDecoder,this._repLenDecoder=new e.LenDecoder,this._literalDecoder=new e.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new e.BitTreeDecoder(6),this._posSlotDecoder[1]=new e.BitTreeDecoder(6),this._posSlotDecoder[2]=new e.BitTreeDecoder(6),this._posSlotDecoder[3]=new e.BitTreeDecoder(6)},e.Decoder.prototype.setDictionarySize=function(e){return!(e<0||(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),0))},e.Decoder.prototype.setLcLpPb=function(e,t,n){var i=1<<n;return!(e>8||t>4||n>4||(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,0))},e.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),e.initBitModels(this._isMatchDecoders,192),e.initBitModels(this._isRep0LongDecoders,192),e.initBitModels(this._isRepDecoders,12),e.initBitModels(this._isRepG0Decoders,12),e.initBitModels(this._isRepG1Decoders,12),e.initBitModels(this._isRepG2Decoders,12),e.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},e.Decoder.prototype.decode=function(t,n,i){var r,o,a,s,l,u,c=0,h=0,d=0,p=0,f=0,A=0,v=0;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(n),this.init();i<0||A<i;)if(r=A&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+r))o=this._literalDecoder.getDecoder(A++,v),v=c>=7?o.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(h)):o.decodeNormal(this._rangeDecoder),this._outWindow.putByte(v),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))a=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+r)&&(c=c<7?9:11,a=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?s=d:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?s=p:(s=f,f=p),p=d),d=h,h=s),0===a&&(a=2+this._repLenDecoder.decode(this._rangeDecoder,r),c=c<7?8:11);else if(f=p,p=d,d=h,a=2+this._lenDecoder.decode(this._rangeDecoder,r),c=c<7?7:10,(l=this._posSlotDecoder[a<=5?a-2:3].decode(this._rangeDecoder))>=4){if(h=(2|1&l)<<(u=(l>>1)-1),l<14)h+=e.reverseDecode2(this._posDecoders,h-l-1,this._rangeDecoder,u);else if(h+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(h+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===h)break;return!1}}else h=l;if(h>=A||h>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(h,a),A+=a,v=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},e.Decoder.prototype.setDecoderProperties=function(e){var t,n,i,r,o;return!(e.size<5)&&(n=(t=e.readByte())%9,i=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(n,i,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},e.decompress=function(t,n,i,r){var o=new e.Decoder;if(!o.setDecoderProperties(t))throw"Incorrect stream properties";if(!o.decode(n,i,r))throw"Error in data stream";return!0},e.decompressFile=function(t,n){var i,r=new e.Decoder;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(i=t.readByte(),i|=t.readByte()<<8,i|=t.readByte()<<16,i+=16777216*t.readByte(),t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,n,i))throw"Error in data stream";return!0},e}var nn=tn(),rn="\nvar decodeLZMA = (function() {\n var LZMA = (".concat(tn.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,n){try{var i={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},r=i.data.length,o={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/r);this.data[t]||(this.data[t]=new Uint8Array(r)),this.data[t][this.offset%r]=e,this.offset++}};e.decompressFile(i,o);for(var a=new Uint8Array(o.offset),s=0;s<o.offset;s++)a[s]=o.data[Math.floor(s/r)][s%r];n(null,a)}catch(e){n(e)}}.toString(),")(LZMA, data, callback);\n }\n})();\n\nvar decodeLZMAWithWASM = (function() {\n var LZMA_WASM = (").concat(function(){return function(e){for(var t=new Uint8Array(256),n=0;n<64;n++)t["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(n)]=n;var i,r,o,a,s,l=11460,u=0;"="===e[15279]&&(l--,"="===e[15278]&&l--);var c=new ArrayBuffer(l),h=new Uint8Array(c);for(i=0;i<15280;i+=4)r=t[e.charCodeAt(i)],o=t[e.charCodeAt(i+1)],a=t[e.charCodeAt(i+2)],s=t[e.charCodeAt(i+3)],h[u++]=r<<2|o>>4,h[u++]=(15&o)<<4|a>>2,h[u++]=(3&a)<<6|63&s;return c}("AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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")}.toString(),")();\n return function(data, callback) {\n return (").concat(function(e,t,n){try{var i=new WebAssembly.Memory({initial:16}),r=new WebAssembly.Module(e),o=new WebAssembly.Instance(r,{env:{memory:i,abort:function(){n(new Error("webAssembly abort"))}}}).exports,a=o.newU8Array(t.length);new Uint8Array(i.buffer,a+24,t.length).set(t);var s=o.decode(a),l=new Uint32Array(i.buffer,s,4),u=l[0],c=l[2],h=l[3];u?n(null,new Uint8Array(i.buffer,h+24,c).slice(0,c)):n(new Error("lzma deocder error"))}catch(e){n(e)}}.toString(),')(LZMA_WASM, data, callback);\n }\n})();\n\nself.onmessage = function(event) {\n var packet = event.data;\n if (!packet.id) {\n postMessage({ id: packet.id, error: "No incoming id." });\n return;\n }\n if (!packet.data) {\n postMessage({ id: packet.id, error: "No input data." });\n return;\n }\n if (packet.type == "decompress") {\n if (packet.data.constructor !== Uint8Array) {\n postMessage({ id: packet.id, error: "Input data is not Uint8Array." });\n }\n const callback = function(error, result) {\n if (error) {\n postMessage({ id: packet.id, error: error.toString() });\n } else {\n postMessage({ id: packet.id, result: result, error: null }, [ result.buffer ]);\n }\n }\n if (typeof WebAssembly !== "undefined" && WebAssembly.instantiate) {\n decodeLZMAWithWASM(packet.data, callback);\n } else {\n decodeLZMA(packet.data, callback);\n }\n return;\n }\n postMessage({ id: packet.id, error: "type never matched." });\n};\n'),on="undefined"!=typeof Worker&&"undefined"!=typeof Blob,an="";if(on)try{var sn=new Blob([rn],{type:"text/javascript"});an=URL.createObjectURL(sn)}catch(e){}var ln=function(){function e(){var e=this;if(!on)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var t=this.worker=new Worker(an);t.onmessage=function(t){var n=t.data,i=n.id,r=n.result,o=n.error,a=e.getKey(i);e.requests[a]&&(o?e.requests[a](new Error(o)):e.requests[a](null,r),delete e.requests[a])},t.onerror=function(e){return console.error(e)}}return e.prototype.getKey=function(e){return"key_"+String(e)},e.prototype.decompress=function(e,t){var n=++this.callCounter;this.requests[this.getKey(n)]=t,this.worker.postMessage({type:"decompress",id:n,data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=on,e}();function un(e){return Array.prototype.reduce.call(e,(function(e,t,n){return e|t<<8*n}),0)}function cn(e){var t=new Uint8Array(e),n=un(t.slice(0,4));if(n>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var i=[],r=[],o=4+4*n,a=0;a<n;a++)r[a]=un(t.slice(4+4*a,8+4*a)),i[a]=a===n-1?t.subarray(o,o+r[a]):t.slice(o,o+r[a]),o+=r[a];return ln.support?function(e){for(var t=[],n=e.length,i=function(n){t.push(new Promise((function(t,i){var r=new ln;r.decompress(e[n],(function(e,n){if(r.terminate(),e)return i(e);t(n)}))})))},r=0;r<n;r++)i(r);return Promise.all(t)}(i):Promise.resolve(function(e){for(var t,n=[],i=e.length,r=function(i){var r={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,a={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};nn.decompressFile(r,a),t=new Uint8Array(a.offset);for(var s=0;s<a.offset;s++)t[s]=a.data[Math.floor(s/o)][s%o];n.push(t)},o=0;o<i;o++)r(o);return n}(i))}function hn(e,t){for(var n={},i=0,r=t;i<r.length;i++){var o=r[i];o in e&&(n[o]=e[o])}return n}function dn(e,t){void 0===t&&(t=!1);var n=typeof e;if("string"===n)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",r=e.length-1,o=0;o<r;o++)i+=dn(e[o],!1)+",";return r>-1&&(i+=dn(e[o],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return dn(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(i="",o=0;o<s;){var l=a[o],u=dn(e[l],!0);void 0!==u&&(o&&""!==i&&(i+=","),i+=JSON.stringify(l)+":"+u),o++}return"{"+i+"}"}switch(n){case"function":return JSON.stringify(e.toString());case"undefined":return t?void 0:null;case"number":return e;default:return isFinite(e)?e:null}}function pn(e){return"hash::".concat(dn(e,!1))}var fn=new e.WebGLRenderTarget(1,1),An=new e.OrthographicCamera(-1,1,1,-1,0,1);An.matrixAutoUpdate=!1;var vn=new e.BufferGeometry;vn.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));var mn=new e.Mesh(vn);mn.matrixAutoUpdate=!1;var gn=new e.Scene;gn.add(mn),gn.matrixAutoUpdate=!1;var yn=new e.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform sampler2D map;\n void main() {\n gl_FragColor = texture2D(map, vec2(0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,colorWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1}),bn=new e.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:e.NoBlending,lights:!1,toneMapped:!1}),xn=Promise.resolve();function wn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=[];e=e.map((function(e){return(null!=e?e:"").trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var i=0;i<e.length;i++){var r=0===i,o=i===e.length-1,a=e[i];r||(a=a.replace(/^\/+/,"")),o||(a=a.replace(/\/+$/,"")),n.push(a)}return n.join("/")}var Mn=__webpack_require__(967);const En=Mn.Reader,Cn=Mn.util,In=Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]||(Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/pbm.proto"]={}),Sn=In.Model=(()=>{function e(e){if(this.chunks=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.chunks=Cn.emptyArray,e.prototype.createAt=Cn.Long?Cn.Long.fromBits(0,0,!0):0,e.prototype.description="",e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Model;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.chunks&&i.chunks.length||(i.chunks=[]),i.chunks.push(In.Chunk.decode(e,e.uint32()));break;case 2:i.createAt=e.uint64();break;case 3:i.description=e.string();break;default:e.skipType(7&t)}}return i},e})();In.Chunk=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.vertices=null,e.prototype.faces=null,e.prototype.name="",e.prototype.texture="",e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Chunk;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.vertices=In.Vertices.decode(e,e.uint32());break;case 2:i.faces=In.Faces.decode(e,e.uint32());break;case 3:i.name=e.string();break;case 4:i.texture=e.string();break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("vertices"))throw Cn.ProtocolError("missing required 'vertices'",{instance:i});if(!i.hasOwnProperty("faces"))throw Cn.ProtocolError("missing required 'faces'",{instance:i});if(!i.hasOwnProperty("name"))throw Cn.ProtocolError("missing required 'name'",{instance:i});return i},e})(),In.Vertices=(()=>{function e(e){if(this.xyz=[],this.uvs=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.xyz=Cn.emptyArray,e.prototype.uvs=Cn.emptyArray,e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Vertices;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:if(i.xyz&&i.xyz.length||(i.xyz=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.xyz.push(e.float())}else i.xyz.push(e.float());break;case 2:if(i.uvs&&i.uvs.length||(i.uvs=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.uvs.push(e.float())}else i.uvs.push(e.float());break;default:e.skipType(7&t)}}return i},e})(),In.Faces=(()=>{function e(e){if(this.indices=[],this.normals=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.indices=Cn.emptyArray,e.prototype.normals=Cn.emptyArray,e.decode=function(e,t){e instanceof En||(e=En.create(e));let n=void 0===t?e.len:e.pos+t,i=new In.Faces;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:if(i.indices&&i.indices.length||(i.indices=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.indices.push(e.uint32())}else i.indices.push(e.uint32());break;case 2:if(i.normals&&i.normals.length||(i.normals=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.normals.push(e.float())}else i.normals.push(e.float());break;default:e.skipType(7&t)}}return i},e})();var Bn=(new e.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1).elements;function Tn(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function Pn(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function Rn(e){var t=Tn(e.name),n=Pn(e.name),i=function(e){var t=e.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}(e.name);return 1e6*t+1e3*n+i}function Ln(t,n,i,r,o,a){var s=ne({key:"texture.pbm"},hn(n,["format","quality","size","sharpen","mappings"])),l=new Mt({allowHosts:i,requestProxy:r,networkSubscribe:o}).loadTexture(t,{imageURL:{transform:n.transform,options:s},wrapS:e.ClampToEdgeWrapping,wrapT:e.ClampToEdgeWrapping,minFilter:e.LinearFilter,maxSize:"number"==typeof s.size?new e.Vector2(s.size,s.size):void 0}).then((function(t){var n=t.body;return n.needsUpdate=!0,function(t,n){if(!n)return Promise.resolve(t);var i=n.getRenderTarget();n.setRenderTarget(fn),t instanceof e.CubeTexture?(mn.material=bn,bn.uniforms.map.value=t,n.render(gn,An),bn.uniforms.map.value=null):(mn.material=yn,yn.uniforms.map.value=t,n.render(gn,An),bn.uniforms.map.value=null),n.setRenderTarget(i);var r=xn.then((function(){return new Promise((function(e){ke.shared.add((function(){e(t)}),!0)}))}));return xn=r.catch((function(){})),r}(n,a)}));return Object.assign(l,{url:t,textureOptions:n})}function kn(t,n,i,r,o,a,s,l,u){void 0===o&&(o={});for(var c=function(e){for(var t,n,i,r="number"==typeof e.createAt?e.createAt:null===e.createAt||void 0===e.createAt?0:e.createAt.toNumber(),o=null!==(t=e.description)&&void 0!==t?t:"",a=[],s=!0,l=0,u=e.chunks;l<u.length;l++)if(!(ne=u[l]).faces.normals||0===ne.faces.normals.length){s=!1;break}for(var c=e.chunks.sort((function(e,t){return Rn(e)-Rn(t)})),h=[],d=0,p=c;d<p.length;d++){var f=Tn((ne=p[d]).name);h[f]||(h[f]=[]),h[f].push(ne)}for(var A=0;A<h.length;A++){var v=h[A];if(v)if(s){for(var m=0,g=0;g<v.length;g++)m+=(ne=v[g]).faces.indices.length;for(var y=3*m,b=2*m,x=3*m,w=new ArrayBuffer(4*y+4*b+4*x),M=new Float32Array(w,0,y),E=new Float32Array(w,4*y,b),C=new Float32Array(w,4*y+4*b,x),I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],B=0,T=0;T<v.length;T++){var P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ne=v[T]).vertices.xyz,L=ne.vertices.uvs,k=ne.faces.indices,O=ne.faces.normals,F=k.length;for(g=0;g<F;g++){var D=k[g],Q=R[3*D],N=R[3*D+1],V=R[3*D+2],U=1/(Bn[3]*Q+Bn[7]*N+Bn[11]*V+Bn[15]),_=(Bn[0]*Q+Bn[4]*N+Bn[8]*V+Bn[12])*U,z=(Bn[1]*Q+Bn[5]*N+Bn[9]*V+Bn[13])*U,q=(Bn[2]*Q+Bn[6]*N+Bn[10]*V+Bn[14])*U;M[3*B+3*g]=_,M[3*B+3*g+1]=z,M[3*B+3*g+2]=q,E[2*B+2*g]=L[2*D],E[2*B+2*g+1]=L[2*D+1];var H=3*Math.floor(g/3),j=O[H],K=O[H+1],G=O[H+2],W=1/(Bn[3]*j+Bn[7]*K+Bn[11]*G+Bn[15]),X=(Bn[0]*j+Bn[4]*K+Bn[8]*G+Bn[12])*W,Y=(Bn[1]*j+Bn[5]*K+Bn[9]*G+Bn[13])*W,Z=(Bn[2]*j+Bn[6]*K+Bn[10]*G+Bn[14])*W;C[3*B+3*g]=X,C[3*B+3*g+1]=Y,C[3*B+3*g+2]=Z,_<P[0]&&(P[0]=_),z<P[1]&&(P[1]=z),q<P[2]&&(P[2]=q),_>P[3]&&(P[3]=_),z>P[4]&&(P[4]=z),q>P[5]&&(P[5]=q)}P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),I.push({materialIndex:T,name:ne.name,chunkName:Pn(ne.name),start:B,count:ne.faces.indices.length,texture:null!==(n=ne.texture)&&void 0!==n?n:void 0}),B+=F}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:E,indices:null,normals:C,groups:I,extents:S})}else{m=0;var J=0;for(g=0;g<v.length;g++)J+=(ne=v[g]).vertices.xyz.length/3,m+=ne.faces.indices.length;y=3*J,b=2*J,x=3*J;var $=m,ee=(w=new ArrayBuffer(4*y+4*b+4*x+4*$),M=new Float32Array(w,0,y),E=new Float32Array(w,4*y,b),C=new Float32Array(w,4*y+4*b,x),new Uint32Array(w,4*y+4*b+4*x,$)),te=(I=[],S=[1/0,1/0,1/0,-1/0,-1/0,-1/0],0);for(B=0,T=0;T<v.length;T++){P=[1/0,1/0,1/0,-1/0,-1/0,-1/0],R=(ne=v[T]).vertices.xyz,L=ne.vertices.uvs,k=ne.faces.indices;var ne,ie=R.length/3;for(F=k.length,g=0;g<ie;g++)Q=R[3*g],N=R[3*g+1],V=R[3*g+2],U=1/(Bn[3]*Q+Bn[7]*N+Bn[11]*V+Bn[15]),_=(Bn[0]*Q+Bn[4]*N+Bn[8]*V+Bn[12])*U,z=(Bn[1]*Q+Bn[5]*N+Bn[9]*V+Bn[13])*U,q=(Bn[2]*Q+Bn[6]*N+Bn[10]*V+Bn[14])*U,M[3*B+3*g]=_,M[3*B+3*g+1]=z,M[3*B+3*g+2]=q,E[2*B+2*g]=L[2*g],E[2*B+2*g+1]=L[2*g+1],_<P[0]&&(P[0]=_),z<P[1]&&(P[1]=z),q<P[2]&&(P[2]=q),_>P[3]&&(P[3]=_),z>P[4]&&(P[4]=z),q>P[5]&&(P[5]=q);for(P[0]<S[0]&&(S[0]=P[0]),P[1]<S[1]&&(S[1]=P[1]),P[2]<S[2]&&(S[2]=P[2]),P[3]>S[3]&&(S[3]=P[3]),P[4]>S[4]&&(S[4]=P[4]),P[5]>S[5]&&(S[5]=P[5]),g=0;g<F;g++)ee[te+g]=B+k[g];I.push({materialIndex:T,name:ne.name,chunkName:Pn(ne.name),start:te,count:ne.faces.indices.length,texture:null!==(i=ne.texture)&&void 0!==i?i:void 0}),B+=ie,te+=F}for(g=0;g<m;g+=3){var re,oe,ae,se,le,ue,ce,he,de,pe,fe,Ae,ve,me,ge,ye;j=void 0,K=void 0,G=void 0,re=3*ee[g],oe=3*ee[g+1],ae=3*ee[g+2],se=M[re],le=M[re+1],ue=M[re+2],ce=M[oe],he=M[oe+1],de=M[oe+2],pe=M[ae],j=(Ae=M[ae+1]-he)*(ye=ue-de)-(ve=M[ae+2]-de)*(ge=le-he),K=ve*(me=se-ce)-(fe=pe-ce)*ye,G=fe*ge-Ae*me,C[re]+=j,C[re+1]+=K,C[re+2]+=G,C[oe]+=j,C[oe+1]+=K,C[oe+2]+=G,C[ae]+=j,C[ae+1]+=K,C[ae+2]+=G}a.push({createAt:r,description:o,floorIndex:A,vertices:M,uvs:E,indices:ee,normals:C,groups:I,extents:S})}}return a}(t),h=0,d="",p=[],f={},A=0,v=c;A<v.length;A++){var m=v[A],g=m.createAt,y=m.description,b=m.floorIndex,x=m.vertices,w=m.uvs,M=m.indices,E=m.normals,C=m.groups,I=m.extents,S=new e.Box3;S.min.x=I[0],S.min.y=I[1],S.min.z=I[2],S.max.x=I[3],S.max.y=I[4],S.max.z=I[5];var B=new e.BufferGeometry;B.setAttribute("position",new e.BufferAttribute(x,3)),B.setAttribute("uv",new e.BufferAttribute(w,2)),B.setAttribute("normal",new e.BufferAttribute(E,3)),M&&B.setIndex(new e.BufferAttribute(M,1)),B.boundingBox=S,B.boundingSphere=S.getBoundingSphere(new e.Sphere);for(var T=0,P=C;T<P.length;T++){var R=P[T];B.addGroup(R.start,R.count,R.materialIndex)}for(var L=[],k=0,O=C;k<O.length;k++){R=O[k];var F=i[R.chunkName]||(R.texture?wn(n,R.texture):void 0),D=new Bt;L.push(D),F?f[F]?f[F].push(D):f[F]=[D]:(D.defines.USE_MAP=!1,D.uniforms.diffuse.value=new e.Color(16777215)),D.uniforms.floorIndex.value=b}var Q=new Ge(B,L);Q.name="model_floor_"+b,Q.floorIndex=b,Q.userData.createAt=g,Q.userData.description=y,h=g,d=y,p.push(Q)}var N="",V=function(t){t=On(t,i.length);var n=[],r=pn(t);if(N===r)return Promise.resolve();N=r;for(var c=function(i){var c=null;i in o&&(pn(o[i].textureOptions)===pn(t)?c=o[i]:o[i].then((function(e){return e.dispose()}))),c||(c=Ln(i,t,a,s,l,u)),n.push(c.then((function(e){if(N===r)for(var t=0,n=f[i];t<n.length;t++){var o=n[t];o.uniforms.map.value&&o.uniforms.map.value.dispose(),o.uniforms.map.value=e,o.uniforms.exposure.value=3.3}else e.dispose()})).catch((function(){if(N===r)for(var t=0,n=f[i];t<n.length;t++){var o=n[t];o.uniforms.map.value&&o.uniforms.map.value.dispose(),o.uniforms.map.value=null,o.defines.USE_MAP=!1,o.uniforms.diffuse.value=new e.Color(16777215)}})))},h=0,d=Object.keys(f);h<d.length;h++)c(p=d[h]);for(var p in o)delete o[p];return Promise.all(n).then((function(){}))};return{createAt:h,description:d,objects:p,texturePromise:V(r),updateTexture:V}}function On(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(t>96?e.size=Math.min(e.size||1/0,100):t>48?e.size=Math.min(e.size||1/0,200):t>24?e.size=Math.min(e.size||1/0,400):t>22?e.size=Math.min(e.size||1/0,800):t>5&&(e.size=Math.min(e.size||1/0,1024))),e}function Fn(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:/i.test(e)}const Dn=Mn.Reader,Qn=Mn.util,Nn=Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]||(Mn.roots["@REALSEE/FIVE:five/loaders/model/proto/dome.proto"]={}),Vn=Nn.Model=(()=>{function e(e){if(this.meshes=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.meshes=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Model;for(;e.pos<n;){let t=e.uint32();t>>>3==1?(i.meshes&&i.meshes.length||(i.meshes=[]),i.meshes.push(Nn.Mesh.decode(e,e.uint32()))):e.skipType(7&t)}return i},e})();function Un(e){for(var t=[0,0,0],n=0;n<e.attributes.normal.array.length/9;n++)t[0]=e.attributes.normal.array[9*n],t[1]=e.attributes.normal.array[9*n+1],t[2]=e.attributes.normal.array[9*n+2],e.attributes.normal.array[9*n]=e.attributes.normal.array[9*n+6],e.attributes.normal.array[9*n+1]=e.attributes.normal.array[9*n+7],e.attributes.normal.array[9*n+2]=e.attributes.normal.array[9*n+8],e.attributes.normal.array[9*n+6]=t[0],e.attributes.normal.array[9*n+7]=t[1],e.attributes.normal.array[9*n+8]=t[2];for(n=0;n<e.attributes.position.array.length/9;n++)t[0]=e.attributes.position.array[9*n],t[1]=e.attributes.position.array[9*n+1],t[2]=e.attributes.position.array[9*n+2],e.attributes.position.array[9*n]=e.attributes.position.array[9*n+6],e.attributes.position.array[9*n+1]=e.attributes.position.array[9*n+7],e.attributes.position.array[9*n+2]=e.attributes.position.array[9*n+8],e.attributes.position.array[9*n+6]=t[0],e.attributes.position.array[9*n+7]=t[1],e.attributes.position.array[9*n+8]=t[2];for(n=0;n<e.attributes.uv.array.length/6;n++)t[0]=e.attributes.uv.array[6*n],t[1]=e.attributes.uv.array[6*n+1],e.attributes.uv.array[6*n]=e.attributes.uv.array[6*n+4],e.attributes.uv.array[6*n+1]=e.attributes.uv.array[6*n+5],e.attributes.uv.array[6*n+4]=t[0],e.attributes.uv.array[6*n+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}function _n(t){var n=t.position,i=t.normal,r=t.uv,o=t.uv2,a=t.groups,s=new e.BufferGeometry;s.setAttribute("position",new e.BufferAttribute(new Float32Array(n.array),3)),i&&s.setAttribute("normal",new e.BufferAttribute(new Float32Array(i.array),3)),r&&s.setAttribute("uv",new e.BufferAttribute(new Float32Array(r.array),2)),o&&s.setAttribute("uv2",new e.BufferAttribute(new Float32Array(o.array),2));for(var l=0,u=a;l<u.length;l++){var c=u[l];s.addGroup(c.start,c.count,c.materialIndex)}return s}function zn(t,n,i,r,o,a){if(a.hasOwnProperty(t))return a[t];Fn(t=t.split("?")[0])||(t=wn(n,t)),0===(t=t.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).indexOf("//")&&(t="https:"+t);var s=ne({key:"texture.dome",size:64},hn(i,["quality","format","sharpen","mappings"]));return a[t]=o.loadTexture(t,{imageURL:{transform:i.transform,options:s},wrapS:e.RepeatWrapping,wrapT:e.RepeatWrapping}).then((function(e){var t=e.body;return r&&t.repeat.copy(r),t.needsUpdate=!0,t.updateMatrix(),t}))}function qn(t,n,i,r,o){var a=[],s=new Bt,l=s.uniforms;l.exposure.value=4.3;var u=s.defines;if(u.USE_MAP=!1,u.USE_UV=!1,t.kd&&(l.diffuse.value=(new e.Color).fromArray(t.kd.rgb)),t.mapkd){var c=null;if(t.mapkdrepeat){var h=t.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),d=h[0],p=h[1];c=new e.Vector2(d,p)}a.push(zn(t.mapkd,n,i,c,r,o).then((function(e){u.USE_MAP=!0,u.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix,s.needsUpdate=!0})).catch(le))}if(t.ks&&(l.specular.value=(new e.Color).fromArray(t.ks.rgb)),t.mapks&&a.push(zn(t.mapks,n,i,null,r,o).then((function(e){l.specularMap.value=e})).catch(le)),t.ke&&(l.emissive.value=(new e.Color).fromArray(t.ke.rgb)),t.mapke&&a.push(zn(t.mapke,n,i,null,r,o).then((function(e){l.emissiveMap.value=e})).catch(le)),t.norm&&a.push(zn(t.norm,n,i,null,r,o).then((function(e){l.normalMap.value=e})).catch(le)),t.mapbump&&a.push(zn(t.mapbump,n,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),t.bump&&a.push(zn(t.bump,n,i,null,r,o).then((function(e){l.bumpMap.value=e})).catch(le)),"number"==typeof t.ns&&(l.shininess.value=t.ns),"number"==typeof t.d){var f=t.d;f>0&&f<1&&(s.originOpacity=f,s.opacity=f)}return{material:s,textureReady:Promise.all(a).then(le)}}function Hn(t,n,i,r,o,a){for(var s,l=[],u=[],c=(s=t,Vn.decode(s).meshes),h=new Mt({allowHosts:r,requestProxy:o,networkSubscribe:a}),d=new e.Matrix4,p=new e.Vector3,f=new e.Quaternion,A=new e.Vector3,v={},m=0,g=c;m<g.length;m++){var y=g[m],b=y.name,x=y.chunks,w=y.matrix;if("Ceiling"!==b&&"CeilingDrop"!==b)for(var M=0,E=w;M<E.length;M++){var C=E[M];d.elements=C.elements;var I=new Xe;I.renderOrder=-4;for(var S=0;S<x.length;S++){var B=_n(x[S].geometry);B.applyMatrix4(d),d.decompose(p,f,A),A.x*A.y*A.z<0&&B.attributes.normal&&B.attributes.position&&B.attributes.uv&&Un(B);for(var T=[],P=0,R=x[S].material;P<R.length;P++){var L=qn(R[P],n,i,h,v),k=L.material,O=L.textureReady;u.push(O),T.push(k)}var F=new Ge(B,T);F.name="chunk_"+S,I.add(F)}I.floorIndex=0,I.name=b,l.push(I)}}return{createAt:0,description:"",objects:l,texturePromise:Promise.all(u).catch(le),updateTexture:function(e){return Promise.resolve()}}}Nn.Mesh=(()=>{function e(e){if(this.chunks=[],this.matrix=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.name="",e.prototype.chunks=Qn.emptyArray,e.prototype.matrix=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Mesh;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.name=e.string();break;case 2:i.chunks&&i.chunks.length||(i.chunks=[]),i.chunks.push(Nn.Chunk.decode(e,e.uint32()));break;case 3:i.matrix&&i.matrix.length||(i.matrix=[]),i.matrix.push(Nn.Matrix.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("name"))throw Qn.ProtocolError("missing required 'name'",{instance:i});return i},e})(),Nn.Matrix=(()=>{function e(e){if(this.elements=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.elements=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Matrix;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.elements&&i.elements.length||(i.elements=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.elements.push(e.float())}else i.elements.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Chunk=(()=>{function e(e){if(this.material=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.geometry=null,e.prototype.material=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Chunk;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 2:i.geometry=Nn.Geometry.decode(e,e.uint32());break;case 3:i.material&&i.material.length||(i.material=[]),i.material.push(Nn.Material.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("geometry"))throw Qn.ProtocolError("missing required 'geometry'",{instance:i});return i},e})(),Nn.Geometry=(()=>{function e(e){if(this.groups=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.position=null,e.prototype.uv=null,e.prototype.uv2=null,e.prototype.normal=null,e.prototype.groups=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Geometry;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.position=Nn.Position.decode(e,e.uint32());break;case 2:i.uv=Nn.UV.decode(e,e.uint32());break;case 3:i.uv2=Nn.UV.decode(e,e.uint32());break;case 4:i.normal=Nn.Normal.decode(e,e.uint32());break;case 5:i.groups&&i.groups.length||(i.groups=[]),i.groups.push(Nn.Group.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("position"))throw Qn.ProtocolError("missing required 'position'",{instance:i});if(!i.hasOwnProperty("normal"))throw Qn.ProtocolError("missing required 'normal'",{instance:i});return i},e})(),Nn.Position=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Position;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.UV=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.UV;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Normal=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.array=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Normal;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.array&&i.array.length||(i.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.array.push(e.float())}else i.array.push(e.float());else e.skipType(7&t)}return i},e})(),Nn.Group=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.start=0,e.prototype.count=0,e.prototype.materialIndex=0,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Group;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.start=e.uint32();break;case 2:i.count=e.uint32();break;case 3:i.materialIndex=e.uint32();break;default:e.skipType(7&t)}}if(!i.hasOwnProperty("start"))throw Qn.ProtocolError("missing required 'start'",{instance:i});if(!i.hasOwnProperty("count"))throw Qn.ProtocolError("missing required 'count'",{instance:i});if(!i.hasOwnProperty("materialIndex"))throw Qn.ProtocolError("missing required 'materialIndex'",{instance:i});return i},e})(),Nn.Material=(()=>{function e(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.kd=null,e.prototype.ks=null,e.prototype.ke=null,e.prototype.mapkd="",e.prototype.mapks="",e.prototype.mapke="",e.prototype.norm="",e.prototype.mapbump="",e.prototype.bump="",e.prototype.mapd="",e.prototype.ns=0,e.prototype.d=0,e.prototype.tr=0,e.prototype.mapkdrepeat="",e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Material;for(;e.pos<n;){let t=e.uint32();switch(t>>>3){case 1:i.kd=Nn.Color.decode(e,e.uint32());break;case 2:i.ks=Nn.Color.decode(e,e.uint32());break;case 3:i.ke=Nn.Color.decode(e,e.uint32());break;case 4:i.mapkd=e.string();break;case 5:i.mapks=e.string();break;case 6:i.mapke=e.string();break;case 7:i.norm=e.string();break;case 8:i.mapbump=e.string();break;case 9:i.bump=e.string();break;case 10:i.mapd=e.string();break;case 11:i.ns=e.float();break;case 12:i.d=e.float();break;case 13:i.tr=e.float();break;case 14:i.mapkdrepeat=e.string();break;default:e.skipType(7&t)}}return i},e})(),Nn.Color=(()=>{function e(e){if(this.rgb=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)null!=e[t[n]]&&(this[t[n]]=e[t[n]])}return e.prototype.rgb=Qn.emptyArray,e.decode=function(e,t){e instanceof Dn||(e=Dn.create(e));let n=void 0===t?e.len:e.pos+t,i=new Nn.Color;for(;e.pos<n;){let t=e.uint32();if(t>>>3==1)if(i.rgb&&i.rgb.length||(i.rgb=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)i.rgb.push(e.float())}else i.rgb.push(e.float());else e.skipType(7&t)}return i},e})();var jn={throttleRequests:!0,maxRequests:5},Kn=function(){function e(e){void 0===e&&(e={}),this.props=ne(ne({},jn),e),this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.deferred=null}return e.prototype.scheduleRequest=function(e,t){if(void 0===t&&(t=function(){return 0}),!this.props.throttleRequests)return Promise.resolve({done:function(){}});if(this.requestMap.has(e))return this.requestMap.get(e);var n={identiy:e,priority:0,getPriority:t,resolve:function(){}},i=new Promise((function(e){return n.resolve=e}));return this.requestQueue.push(n),this.requestMap.set(e,i),this.issueNewRequests(),i},e.prototype.issueRequest=function(e){var t=this,n=e.identiy,i=e.resolve,r=!1;this.activeRequestCount++,i({done:function(){r||(r=!0,t.requestMap.delete(n),t.activeRequestCount--,t.issueNewRequests())}})},e.prototype.issueNewRequests=function(){var e=this;this.deferred||(this.deferred=setTimeout((function(){return e.issueNewRequestsAsync()}),0))},e.prototype.issueNewRequestsAsync=function(){this.deferred=null;var e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(0!==e){this.updateAllRequests();for(var t=0;t<e;t++){var n=this.requestQueue.shift();n&&this.issueRequest(n)}}},e.prototype.updateAllRequests=function(){for(var e=this.requestQueue,t=0;t<e.length;t++){var n=e[t];this.updateRequest(n)||(e.splice(t,1),this.requestMap.delete(n.identiy),t--)}e.sort((function(e,t){return e.priority-t.priority}))},e.prototype.updateRequest=function(e){return e.priority=e.getPriority(e.identiy),!(e.priority<0&&(e.resolve(null),1))},e}(),Gn=function(e,t,n){this.item=e,this.previous=t,this.next=n},Wn=function(){function e(){this.head=null,this.tail=null,this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.add=function(e){var t=new Gn(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),this._length++,t},e.prototype.remove=function(e){e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,this._length--},e.prototype.splice=function(e,t){e!==t&&(this.remove(t),this.insert(e,t))},e.prototype.insert=function(e,t){var n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e,this._length++},e.prototype.toArray=function(){for(var e=[],t=this.head;t;)e.push(t),t=t.next;return e},e}(),Xn=function(){function e(){this.list=new Wn,this.sentinel=this.list.add("sentinel")}return e.prototype.reset=function(){this.list.splice(this.list.tail,this.sentinel)},e.prototype.touch=function(e){var t=e.cacheNode;t&&this.list.splice(this.sentinel,t)},e.prototype.add=function(e,t){e.cacheNode||(e.cacheNode=this.list.add(e),t&&t(e))},e.prototype.unloadTile=function(e,t){var n=e.cacheNode;n&&(this.list.remove(n),e.cacheNode=void 0,t&&t(e))},e.prototype.unloadTiles=function(e,t){for(var n=this.list.head;n!==this.sentinel&&e();){var i=n.item;n=n.next,this.unloadTile(i,t)}},e.prototype.toArray=function(){for(var e=[],t=0,n=this.list.toArray();t<n.length;t++){var i=n[t];"sentinel"!==i.item&&e.push(i.item)}return e},e}(),Yn=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),Zn=[new e.Vector3(1,0,0),new e.Vector3(0,1,0),new e.Vector3(0,0,1)],Jn=new e.Vector3,$n=new e.Vector3,ei=function(){function t(e){void 0===e&&(e=[]),this.planes=e}return Object.defineProperty(t,"MASK_OUTSIDE",{get:function(){return 4294967295},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INSIDE",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(t,"MASK_INDETERMINATE",{get:function(){return 2147483647},enumerable:!1,configurable:!0}),t.prototype.fromBoundingSphere=function(t){this.planes.length=2*Zn.length;for(var n=t.center,i=t.radius,r=0,o=0,a=Zn;o<a.length;o++){var s=a[o],l=this.planes[r],u=this.planes[r+1];l||(l=this.planes[r]=new e.Plane),u||(u=this.planes[r+1]=new e.Plane);var c=Jn.copy(s).multiplyScalar(-i).add(n);l.setFromNormalAndCoplanarPoint(s,c);var h=Jn.copy(s).multiplyScalar(i).add(n),d=$n.copy(s).negate();u.setFromNormalAndCoplanarPoint(d,h),r+=2}return this},t.prototype.computeVisibilityWithPlaneMask=function(e,n){if(n===t.MASK_OUTSIDE||n===t.MASK_INSIDE)return n;for(var i=t.MASK_INSIDE,r=this.planes,o=0;o<this.planes.length;++o){var a=o<31?1<<o:0;if(!(o<31&&0==(n&a))){var s=r[o],l=e.intersectPlane(s);if(l===Yn.OUTSIDE)return t.MASK_OUTSIDE;l===Yn.INTERSECTING&&(i|=a)}}return i},t}(),ti=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),ni=new e.Vector3,ii=new e.Vector3,ri=function(){function t(t,n){void 0===t&&(t=[0,0,0]),void 0===n&&(n=0),this.radius=-0,this.center=new e.Vector3,this.fromCenterRadius(t,n)}return t.prototype.fromCenterRadius=function(e,t){return this.center.fromArray(e),this.radius=t,this},t.prototype.fromCornerPoints=function(t,n){var i=ni.fromArray(n);return this.center=(new e.Vector3).fromArray(t).add((new e.Vector3).fromArray(n)).multiplyScalar(.5),this.radius=this.center.distanceTo(i),this},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius},t.prototype.clone=function(){return new t(this.center.toArray(),this.radius)},t.prototype.union=function(e){var t=this.center,n=this.radius,i=e.center,r=e.radius,o=ni.copy(i).sub(t),a=o.length();if(n>=a+r)return this.clone();if(r>=a+n)return e.clone();var s=.5*(n+a+r);return ii.copy(o).multiplyScalar((-n+s)/a).add(t),this.center.copy(ii),this.radius=s,this},t.prototype.expand=function(e){var t=ni.fromArray(e).sub(this.center).length();return t>this.radius&&(this.radius=t),this},t.prototype.transform=function(e){this.center.applyMatrix4(e);var t,n,i,r,o,a,s,l,u,c,h,d=(t=ni.toArray(),i=(n=e.toArray())[0],r=n[1],o=n[2],a=n[4],s=n[5],l=n[6],u=n[8],c=n[9],h=n[10],t[0]=Math.hypot(i,r,o),t[1]=Math.hypot(a,s,l),t[2]=Math.hypot(u,c,h),t);return this.radius=Math.max(d[0],Math.max(d[1],d[2]))*this.radius,this},t.prototype.distanceSquaredTo=function(e){var t=this.distanceTo(e);return t*t},t.prototype.distanceTo=function(e){var t=ni.fromArray(e).sub(this.center);return Math.max(0,t.length()-this.radius)},t.prototype.intersectPlane=function(e){var t=this.center,n=this.radius,i=e.normal.dot(t)+e.constant;return i<-n?ti.OUTSIDE:i<n?ti.INTERSECTING:ti.INSIDE},t}(),oi=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),ai=new e.Vector3,si=new e.Vector3,li=new e.Vector3,ui=new e.Vector3,ci=new e.Vector3,hi=new e.Vector3,di=new e.Vector3;function pi(t,n,i){void 0===i&&(i=new e.Vector3);for(var r=3*n,o=new Array(3),a=0;a<3;++a)o[a]=t.toArray()[r+a];return i.fromArray(o)}var fi=function(){function t(t,n){this.center=(new e.Vector3).fromArray(t),this.halfAxes=(new e.Matrix3).fromArray(n)}return t.prototype.clone=function(){return new t(this.center.toArray(),this.halfAxes.toArray())},t.prototype.equals=function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)},t.prototype.getBoundingSphere=function(e){void 0===e&&(e=new ri);var t=this.halfAxes,n=pi(t,0,li),i=pi(t,1,ui),r=pi(t,2,ci),o=ai.copy(n).add(i).add(r);return e.center.copy(this.center),e.radius=o.length(),e},t.prototype.intersectPlane=function(e){var t=this.center,n=e.normal,i=this.halfAxes.toArray(),r=n.x,o=n.y,a=n.z,s=Math.abs(r*i[0]+o*i[1]+a*i[2])+Math.abs(r*i[3]+o*i[4]+a*i[5])+Math.abs(r*i[6]+o*i[7]+a*i[8]),l=n.dot(t)+e.constant;return l<=-s?oi.OUTSIDE:l>=s?oi.INSIDE:oi.INTERSECTING},t.prototype.distanceTo=function(e){return Math.sqrt(this.distanceSquaredTo(e))},t.prototype.distanceSquaredTo=function(e){var t=si.fromArray(e).sub(this.center),n=this.halfAxes,i=pi(n,0,li),r=pi(n,1,ui),o=pi(n,2,ci),a=i.length(),s=r.length(),l=o.length();i.normalize(),r.normalize(),o.normalize();var u,c=0;return(u=Math.abs(t.dot(i))-a)>0&&(c+=u*u),(u=Math.abs(t.dot(r))-s)>0&&(c+=u*u),(u=Math.abs(t.dot(o))-l)>0&&(c+=u*u),c},t.prototype.computePlaneDistances=function(e,t,n){void 0===n&&(n=[-0,-0]);var i=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=this.center,a=this.halfAxes,s=pi(a,0,li),l=pi(a,1,ui),u=pi(a,2,ci),c=hi.copy(s).add(l).add(u).add(o),h=di.copy(c).sub(e),d=t.dot(h);return i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),c.copy(o).add(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).add(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).add(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).sub(l).add(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),o.copy(c).sub(s).sub(l).sub(u),h.copy(c).sub(e),d=t.dot(h),i=Math.min(d,i),r=Math.max(d,r),n[0]=i,n[1]=r,n},t.prototype.transform=function(t){var n=(new e.Matrix4).fromArray(t);this.center.applyMatrix4(n);var i=pi(this.halfAxes,0,li);i.applyMatrix4(n);var r=pi(this.halfAxes,1,ui);r.applyMatrix4(n);var o=pi(this.halfAxes,2,ci);return o.applyMatrix4(n),this.halfAxes=(new e.Matrix3).fromArray(ie(ie(ie([],i.toArray(),!0),r.toArray(),!0),o.toArray(),!0)),this},t}();function Ai(e,t){var n=e[0],i=e[1],r=e[2],o=t[3]*n+t[7]*i+t[11]*r||1;return e[0]=(t[0]*n+t[4]*i+t[8]*r)/o,e[1]=(t[1]*n+t[5]*i+t[9]*r)/o,e[2]=(t[2]*n+t[6]*i+t[10]*r)/o,e}function vi(e,t,n){var i=t[0],r=t[1],o=t[2],a=t[3],s=e[0],l=e[1],u=e[2],c=r*u-o*l,h=o*s-i*u,d=i*l-r*s,p=r*d-o*h,f=o*c-i*d,A=i*h-r*c,v=2*a;return c*=v,h*=v,d*=v,p*=2,f*=2,A*=2,e[0]=(s+c+p)*n,e[1]=(l+h+f)*n,e[2]=(u+d+A)*n,e}function mi(e,t){var n=e.box;if(n){var i=t.elements,r=[n[0],n[1],n[2]];Ai(r,i);var o=void 0,a=void 0,s=void 0;if(10===n.length){var l=[n[6],n[7],n[8]];o=vi([1,0,0],l,n[3]),a=vi([0,1,0],l,n[4]),s=vi([0,0,1],l,n[5])}else o=[n[3],n[4],n[5]],a=[n[6],n[7],n[8]],s=[n[9],n[10],n[11]];Ai(o,i),Ai(a,i),Ai(s,i);var u=[o[0],o[1],o[2],a[0],a[1],a[2],s[0],s[1],s[2]];return new fi(r,u)}throw new Error("3D Tile: boundingVolume must only can be box")}var gi="undefined"!=typeof Worker,yi=function(){function e(){if(!gi)throw new Error("B3dmWorker cannot work in this browser");var e=URL.createObjectURL(new Blob(['\n var SIZEOF_UINT32 = 4\n\n var getStringFromArrayBuffer = function(arrayBuffer, byteOffset, byteLength) {\n const textDecoder = new TextDecoder("utf8");\n const typedArray = new Uint8Array(arrayBuffer, byteOffset, byteLength);\n const string = textDecoder.decode(typedArray);\n return string;\n }\n\n var sliceArrayBuffer = function(arrayBuffer, byteOffset, byteLength) {\n const subArray =\n byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n }\n\n var parse3DTileHeaderSync = function(tile, arrayBuffer, byteOffset=0){\n const view = new DataView(arrayBuffer);\n tile.magic = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n tile.version = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n tile.byteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n \n if (tile.version !== 1) {\n throw new Error("3D Tile Version ".concat(tile.version, " not supported"));\n }\n return byteOffset;\n }\n\n var parse3DTileTablesHeaderSync = function(tile, arrayBuffer, byteOffset=0) {\n const view = new DataView(arrayBuffer);\n let batchLength;\n tile.header = tile.header || {};\n let featureTableJsonByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let featureTableBinaryByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let batchTableJsonByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n let batchTableBinaryByteLength = view.getUint32(byteOffset, true);\n byteOffset += SIZEOF_UINT32;\n\n if (batchTableJsonByteLength >= 570425344) {\n byteOffset -= SIZEOF_UINT32 * 2;\n batchLength = featureTableJsonByteLength;\n batchTableJsonByteLength = featureTableBinaryByteLength;\n batchTableBinaryByteLength = 0;\n featureTableJsonByteLength = 0;\n featureTableBinaryByteLength = 0;\n console.warn(\'b3dm tile in legacy format.\');\n } else if (batchTableBinaryByteLength >= 570425344) {\n byteOffset -= SIZEOF_UINT32;\n batchLength = batchTableJsonByteLength;\n batchTableJsonByteLength = featureTableJsonByteLength;\n batchTableBinaryByteLength = featureTableBinaryByteLength;\n featureTableJsonByteLength = 0;\n featureTableBinaryByteLength = 0;\n console.warn(\'b3dm tile in legacy format.\');\n }\n\n tile.header.featureTableJsonByteLength = featureTableJsonByteLength;\n tile.header.featureTableBinaryByteLength = featureTableBinaryByteLength;\n tile.header.batchTableJsonByteLength = batchTableJsonByteLength;\n tile.header.batchTableBinaryByteLength = batchTableBinaryByteLength;\n tile.header.batchLength = batchLength;\n return byteOffset;\n }\n\n var parse3DTileTablesSync = function(tile, arrayBuffer, byteOffset = 0) {\n byteOffset = parse3DTileFeatureTable(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileBatchTable(tile, arrayBuffer, byteOffset);\n return byteOffset;\n }\n\n var parse3DTileFeatureTable = function (tile, arrayBuffer, byteOffset = 0) {\n const {\n featureTableJsonByteLength,\n featureTableBinaryByteLength,\n batchLength\n } = tile.header;\n tile.featureTableJson = {\n BATCH_LENGTH: batchLength || 0\n };\n \n if (featureTableJsonByteLength > 0) {\n const featureTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, featureTableJsonByteLength);\n tile.featureTableJson = JSON.parse(featureTableString);\n }\n \n byteOffset += featureTableJsonByteLength;\n tile.featureTableBinary = new Uint8Array(arrayBuffer, byteOffset, featureTableBinaryByteLength);\n byteOffset += featureTableBinaryByteLength;\n return byteOffset;\n }\n\n var parse3DTileBatchTable = function(tile, arrayBuffer, byteOffset = 0) {\n const {\n batchTableJsonByteLength,\n batchTableBinaryByteLength\n } = tile.header;\n \n if (batchTableJsonByteLength > 0) {\n const batchTableString = getStringFromArrayBuffer(arrayBuffer, byteOffset, batchTableJsonByteLength);\n tile.batchTableJson = JSON.parse(batchTableString);\n byteOffset += batchTableJsonByteLength;\n \n if (batchTableBinaryByteLength > 0) {\n tile.batchTableBinary = new Uint8Array(arrayBuffer, byteOffset, batchTableBinaryByteLength);\n tile.batchTableBinary = new Uint8Array(tile.batchTableBinary);\n byteOffset += batchTableBinaryByteLength;\n }\n }\n \n return byteOffset;\n }\n\n var parse3DTileGLTFViewSync = function(tile, arrayBuffer, byteOffset = 0) {\n const gltfByteLength = tile.byteOffset + tile.byteLength - byteOffset;\n\n if (gltfByteLength === 0) {\n throw new Error("glTF byte length must be greater than 0.");\n }\n tile.rotateYtoZ = true;\n tile.gltfUpAxis = "Y";\n tile.gltfArrayBuffer = sliceArrayBuffer(arrayBuffer, byteOffset, gltfByteLength);\n tile.gltfByteOffset = 0;\n tile.gltfByteLength = gltfByteLength;\n\n if (byteOffset % 4 === 0) {\n\n } else {\n console.warn("".concat(tile.type, ": embedded glb is not aligned to a 4-byte boundary."));\n }\n\n return tile.byteOffset + tile.byteLength;\n }\n\n var parseBatchedModel3DTile = function(tile, arrayBuffer, byteOffset) {\n byteOffset = parse3DTileHeaderSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileTablesHeaderSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileTablesSync(tile, arrayBuffer, byteOffset);\n byteOffset = parse3DTileGLTFViewSync(tile, arrayBuffer, byteOffset);\n \n const rctCenterJsonValue = tile.featureTableJson["RTC_CENTER"];\n if (rctCenterJsonValue && Number.isFinite(rctCenterJsonValue.byteOffset)) {\n tile.rtcCenter = new Float32Array(tile.featureTableBinary.buffer, tile.featureTableBinary.buffer.byteOffset + rctCenterJsonValue.byteOffset, 3);\n }\n \n return byteOffset;\n }\n\n self.onmessage = function(event) {\n const {id, buffer} = event.data\n try{\n const tile = { byteOffset: 0, type: "b3dm" };\n parseBatchedModel3DTile(tile, buffer, tile.byteOffset);\n self.postMessage({id, tile})\n }catch(err){\n console.error(err)\n }\n }\n \n'],{type:"text/javascript"}));this.worker=new Worker(e),this.worker.addEventListener("message",(function(e){Promise.resolve(e)}))}return Object.defineProperty(e,"shared",{get:function(){return this.instance||(this.instance=new e),this.instance},enumerable:!1,configurable:!0}),e.prototype.terminate=function(){this.worker.terminate()},e}(),bi=function(){function t(t,n,i){this.header=n,this.tileset=t,this.parent=i,this.children=[],this.contentState="UNLOADED",this.transform=this.header.transform?(new e.Matrix4).fromArray(this.header.transform):new e.Matrix4;var r=this.parent&&this.parent.computedTransform?this.parent.computedTransform.clone():t.modelMatrix.clone();this.computedTransform=r.multiply(this.transform),this.boundingVolume=mi(this.header.boundingVolume,this.computedTransform),this.depth=this.parent?this.parent.depth+1:0,this.distanceToCamera=0,this.centerZDepth=0,this.screenSpaceError=0,this.shouldRefine=!1,this.visibilityPlaneMask=ei.MASK_INDETERMINATE,this.visible=!1,this.selectionDepth=0,this.frameNumber=0,this.touchedFrameNumber=0,this.selectedFrameNumber=0,this.requestedFrameNumber=0}return Object.defineProperty(t.prototype,"id",{get:function(){return this.header.id},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.header.refine||this.parent&&this.parent.refine||"REPLACE"},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.header.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUrl",{get:function(){if(this.header.content.uri){var e=this.tileset.b3dmMapping.b3dm_url[this.header.content.uri];if(!/^https?\:\/\//.test(e)){e=/^\//.test(e)?e.slice(1):e;var t=this.tileset.b3dmMapping.b3dm_base_url;e=(t=/\/$/.test(t)?t:t+"/")+e}return Ve(e,{key:"model-".concat(this.siblingIndex)})}return this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"siblingIndex",{get:function(){var e;return null===(e=this.parent)||void 0===e?void 0:e.children.indexOf(this)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.header.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.header.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasEmptyContent",{get:function(){return!this.header.contentUrl},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this.selectedFrameNumber===this.tileset.frameNumber},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasRenderContent",{get:function(){return!this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasChildren",{get:function(){return this.children.length>0||this.header.children&&this.header.children.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentReady",{get:function(){return"READY"===this.contentState||this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentAvailable",{get:function(){return Boolean(this.contentReady&&this.hasRenderContent||!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasUnloadedContent",{get:function(){return this.hasRenderContent&&this.contentUnloaded},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentUnloaded",{get:function(){return"UNLOADED"===this.contentState},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentFailed",{get:function(){return"FAILED"===this.contentState},enumerable:!1,configurable:!0}),t.prototype.getScreenSpaceError=function(e,t){if("TILES3D"===this.tileset.type)return function(e,t,n){var i=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,o=n?r:e.lodMetricValue;if(0===o)return 0;var a=Math.max(e.distanceToCamera,1e-7),s=i.options.viewDistanceScale;return o*t.height*s/(a*t.sseDenominator)-function(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){var n=e.dynamicScreenSpaceErrorComputedDensity,i=e.dynamicScreenSpaceErrorFactor,r=function(e,t){var n=e*t;return 1-Math.exp(-n*n)}(t,n)*i;return r}return 0}(i,a)}(this,e,t);throw new Error("Unsupported tileset type")},t.prototype.getPriority=function(){var e=this.tileset.traverser,t=e.options.skipLevelOfDetail,n="ADD"===this.refine||t;if(n&&!this.visible)return-1;if(this.tileset.frameNumber-this.touchedFrameNumber>=1)return-1;if("UNLOADED"===this.contentState)return-1;var i=this.parent,r=!i||n&&0!==this.screenSpaceError?this.screenSpaceError:i.screenSpaceError,o=e.root?e.root.screenSpaceError:0;return Math.max(o-r,0)},t.prototype.loadContent=function(){var e=this;return this.hasEmptyContent||!this.contentUrl?Promise.resolve(!1):this.content?Promise.resolve(!0):(this.contentState="LOADING",this.tileset.requestScheduler.scheduleRequest(this.id,(function(){return e.getPriority()})).then((function(t){return t?Se(e.contentUrl,{responseType:"arraybuffer",allowHosts:e.tileset.options.allowHosts,networkSubscribe:e.tileset.options.networkSubscribe,requestProxy:e.tileset.options.requestProxy}).then((function(e){return e.body})).then((function(t){return new Promise((function(n,i){var r=function(t){var i=t.data,o=i.id,a=i.tile;o===e.id&&(n(a),yi.shared.worker.removeEventListener("message",r))};yi.shared.worker.addEventListener("message",r);var o={id:e.id,buffer:t};yi.shared.worker.postMessage(o,[t])}))})).then((function(n){return e.content=n,e.tileset.options.contentLoader(e).then((function(){return e.contentState="READY",t.done(),!0}))})).catch((function(n){return e.contentState="FAILED",t.done(),Promise.reject(n)})):(e.contentState="UNLOADED",Promise.resolve(!1))})))},t.prototype.unloadContent=function(){this.content=void 0,this.contentState="UNLOADED"},t.prototype.updateVisibility=function(e){if(this.frameNumber!==e.frameNumber){var t=this.parent,n=t?t.visibilityPlaneMask:ei.MASK_INDETERMINATE,i=t?t.computedTransform:this.tileset.modelMatrix;this.updateTransform(i),this.distanceToCamera=this.distanceToTile(e),this.screenSpaceError=this.getScreenSpaceError(e,!1),this.visibilityPlaneMask=this.visibility(e,n),this.visible=this.visibilityPlaneMask!==ei.MASK_OUTSIDE,this.frameNumber=e.frameNumber}},t.prototype.visibility=function(e,t){return e.cullingVolume.computeVisibilityWithPlaneMask(this.boundingVolume,t)},t.prototype.distanceToTile=function(e){return Math.sqrt(Math.max(this.boundingVolume.distanceSquaredTo(e.camera.position),0))},t.prototype.updateTransform=function(t){void 0===t&&(t=new e.Matrix4);var n=t.clone().multiply(this.transform);!n.equals(this.computedTransform)&&(this.computedTransform.copy(n),this.boundingVolume=mi(this.header.boundingVolume,this.computedTransform))},t}(),xi=function(){function e(){this.map=new Map,this.array=[],this._length=0}return Object.defineProperty(e.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),e.prototype.get=function(e){return this.array[e]},e.prototype.set=function(e,t){e>=this.length&&(this._length=e+1),this.map.has(this.array[e])&&this.map.delete(this.array[e]),this.array[e]=t,this.map.set(t,e)},e.prototype.delete=function(e){var t=this.map.get(e);void 0!==t&&t>=0&&(this.array.splice(t,1),this.map.delete(e),this._length--)},e.prototype.push=function(e){if(!this.map.has(e)){var t=this._length++;this.array[t]=e,this.map.set(e,t)}},e.prototype.pop=function(){var e=this.array[--this._length];return this.map.delete(e),e},e.prototype.reset=function(){this.array=[],this.map=new Map,this._length=0},e.prototype.find=function(e){return this.map.has(e)},e}(),wi=function(){function e(e){var t;this.options=e,this._traversalStack=new xi,this._emptyTraversalStack=new xi,this._frameNumber=null,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.maxDepth=null!==(t=e.maxDepth)&&void 0!==t?t:100}return e.prototype.traverse=function(e,t){this.root=e,this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)},e.prototype.reset=function(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()},e.prototype.executeTraversal=function(e,t){var n=this._traversalStack;for(e.selectionDepth=1,n.push(e);n.length>0;){var i=n.pop(),r=!1;if(this.canTraverse(i,t)){this.updateChildTiles(i,t);var o=i.hasRenderContent?i.selectionDepth+1:i.selectionDepth;r=this.updateAndPushChildren(i,t,n,o)}var a=i.parent,s=Boolean(!a||a.shouldRefine),l=!r;i.hasRenderContent?"ADD"===i.refine?(this.loadTile(i,t.frameNumber),this.selectTile(i,t)):"REPLACE"===i.refine&&(this.loadTile(i,t.frameNumber),l&&this.selectTile(i,t)):(this.emptyTiles[i.id]=i,this.loadTile(i,t.frameNumber),l&&this.selectTile(i,t)),this.touchTile(i,t),i.shouldRefine=r&&s}this.options.onTraversalEnd(t)},e.prototype.updateChildTiles=function(e,t){for(var n=0,i=e.children;n<i.length;n++){var r=i[n];this.updateTile(r,t)}return!0},e.prototype.updateAndPushChildren=function(e,t,n,i){var r=this.options,o=r.loadSiblings,a=r.skipLevelOfDetail,s=e.children;s.sort(this.compareDistanceToCamera.bind(this));for(var l="REPLACE"===e.refine&&e.hasRenderContent&&!a,u=!1,c=!0,h=0,d=s;h<d.length;h++){var p=d[h];if(p.selectionDepth=i,p.visible?(n.find(p)&&n.delete(p),n.push(p),u=!0):(l||o)&&(this.loadTile(p,t.frameNumber),this.touchTile(p,t)),l){var f;if(f=p.hasRenderContent?p.contentAvailable:this.executeEmptyTraversal(p,t),!(c=c&&f))return!1}}return u||(c=!1),c},e.prototype.updateTile=function(e,t){this.updateTileVisibility(e,t)},e.prototype.selectTile=function(e,t){this.shouldSelectTile(e)&&(e.selectedFrameNumber=t.frameNumber,this.selectedTiles[e.id]=e)},e.prototype.loadTile=function(e,t){this.shouldLoadTile(e)&&(e.requestedFrameNumber=t,this.requestedTiles[e.id]=e)},e.prototype.touchTile=function(e,t){e.tileset.cache.touch(e),e.touchedFrameNumber=t.frameNumber},e.prototype.canTraverse=function(e,t,n,i){return void 0===n&&(n=!1),void 0===i&&(i=!1),!!e.hasChildren&&!(!i&&!e.visible)&&this.shouldRefine(e,t,n)},e.prototype.shouldLoadTile=function(e){return e.hasUnloadedContent},e.prototype.shouldSelectTile=function(e){return e.contentAvailable&&!this.options.skipLevelOfDetail},e.prototype.shouldRefine=function(e,t,n){if(e.hasEmptyContent)return!0;var i=e.screenSpaceError;return n&&(i=e.getScreenSpaceError(t,!0)),i>this.options.maxScreenSpaceError},e.prototype.updateTileVisibility=function(e,t){e.updateVisibility(t),1===e.depth&&(e.visible=!0)},e.prototype.meetsScreenSpaceErrorEarly=function(e,t){var n=e.parent;return!(!n||"ADD"!==n.refine||this.shouldRefine(e,t,!0))},e.prototype.compareDistanceToCamera=function(e,t){return 0===t.distanceToCamera&&0===e.distanceToCamera?t.centerZDepth-e.centerZDepth:t.distanceToCamera-e.distanceToCamera},e.prototype.anyChildrenVisible=function(e,t){for(var n=!1,i=0,r=e.children;i<r.length;i++){var o=r[i];o.updateVisibility(t),n=n||o.visible}return n},e.prototype.executeEmptyTraversal=function(e,t){var n=!0,i=this._emptyTraversalStack;for(i.push(e);i.length>0&&n;){var r=i.pop();if(this.updateTile(r,t),r.visible||this.loadTile(r,t.frameNumber),this.touchTile(r,t),!r.hasRenderContent&&this.canTraverse(r,t,!1,!0))for(var o=0,a=r.children;o<a.length;o++){var s=a[o];i.find(s)&&i.delete(s),i.push(s)}else r.contentAvailable||(n=!1)}return n},e}();function Mi(e){for(var t=[],n=0,i=Object.keys(e);n<i.length;n++){var r=i[n];t.push(e[r])}return t}var Ei=function(){function t(e,t){var n=this;this.rawJson=e,this.b3dmMapping=e.b3dmMapping,this.options=t,this.traverser=new wi({loadSiblings:!1,maxScreenSpaceError:this.options.maxScreenSpaceError,skipLevelOfDetail:!1,maxDepth:this.options.maxDepth,onTraversalEnd:function(e){return n.onTraversalEnd(e)}}),this.cache=new Xn,this.requestScheduler=new Kn({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.frameNumber=0,this.pendingCount=0,this._tiles={},this.selectedTiles=[],this.requestedTiles=[],this.memoryUsageInBytes=0,this.root=new bi(this,e.root);for(var i=[this.root],r=1;r;)for(var o=i[--r],a=o.header.children,s=a.length,l=0;l<s;l++){var u=a[l],c=new bi(this,u,o);o.children[l]=c,c.header.children&&c.header.children.length&&(i[r++]=c)}}return Object.defineProperty(t.prototype,"maxMemoryUsage",{get:function(){return this.options.maxMemoryUsage},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"asset",{get:function(){return this.rawJson.asset},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this.rawJson.type},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"basePath",{get:function(){return this.rawJson.basePath},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"modelMatrix",{get:function(){return this.options.modelMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"geometricError",{get:function(){return this.rawJson.geometricError},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricType",{get:function(){return this.rawJson.lodMetricType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lodMetricValue",{get:function(){return this.rawJson.lodMetricValue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refine",{get:function(){return this.rawJson.root.refine},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tiles",{get:function(){return Mi(this._tiles)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"floorInfo",{get:function(){return this.rawJson.floorInfo||this.rawJson.floor_info||[]},enumerable:!1,configurable:!0}),t.prototype.reset=function(){for(var e=this,t=[this.root];t.length>0;){for(var n=t.pop(),i=0,r=n.children;i<r.length;i++){var o=r[i];t.push(o)}this.cache.unloadTile(n,(function(t){return e.unloadTile(t)}))}this.cache.reset(),this.traverser.reset(),this.selectedTiles=[],this.requestedTiles=[],this._tiles={}},t.prototype.isLoaded=function(){return 0===this.pendingCount&&0!==this.frameNumber},t.prototype.onTraversalEnd=function(t){var n=this,i=(new e.Vector3).fromArray(t.camera.position);this.selectedTiles=this.options.onTraversalComplete(Mi(this.traverser.selectedTiles)),this.requestedTiles=Mi(this.traverser.requestedTiles).slice().sort((function(e,t){return e.boundingVolume.center.distanceTo(i)-t.boundingVolume.center.distanceTo(i)}));for(var r=0,o=this.selectedTiles;r<o.length;r++){var a=o[r];this._tiles[a.id]=a}for(var s=0,l=this.requestedTiles;s<l.length;s++)(a=l[s]).contentUnloaded&&this.loadTile(a);this.cache.unloadTiles((function(){return n.memoryUsageInBytes>1024*n.maxMemoryUsage*1024}),(function(e){n.unloadTile(e)}))},t.prototype.loadTile=function(e){var t=this;e.depth>this.options.maxDepth||(this.pendingCount++,e.loadContent().catch((function(n){var i=n.message||n.toString();return console.error("A 3D tile failed to load: ".concat(e.id," ").concat(i)),t.options.onTileError(e,i),!1})).then((function(n){t.pendingCount--,n&&(t.cache.add(e,(function(){e.content&&(t.memoryUsageInBytes+=e.content.byteLength||0)})),t.options.onTileLoad(e))})))},t.prototype.unloadTile=function(e){this.memoryUsageInBytes-=e.content&&e.content.byteLength||0,this.options.onTileUnload(e),e.unloadContent()},t}();function Ci(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Ii(){return(Ci()+Ci()+"-"+Ci()+"-4"+Ci().substr(0,3)+"-"+Ci()+"-"+Ci()+Ci()+Ci()).toLowerCase()}function Si(e,t){var n;return e.content&&(e.contentUrl="".concat(t,"/").concat(e.content.uri||e.content.url)),e.id=null!==(n=e.contentUrl)&&void 0!==n?n:"empty:"+Ii(),e.lodMetricType="geometricError",e.lodMetricValue=e.geometricError,e.transformMatrix=e.transform,e.type=e.contentUrl?"SCENEGRAPH":"EMPTY",e.refine=function(e){switch(e){case"REPLACE":case"replace":return"REPLACE";case"ADD":case"add":return"ADD";default:throw new Error("refine ".concat(e," is not supported."))}}(e.refine),e}var Bi=function(){function t(t){e.Loader.call(this,t),this.dracoLoader=null,this.ddsLoader=null}function n(){var e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}t.prototype=Object.assign(Object.create(e.Loader.prototype),{constructor:t,load:function(t,n,i,r){var o,a=this;o=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:e.LoaderUtils.extractUrlBase(t),a.manager.itemStart(t);var s=function(e){r?r(e):console.error(e),a.manager.itemError(t),a.manager.itemEnd(t)},l=new e.FileLoader(a.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),"use-credentials"===a.crossOrigin&&l.setWithCredentials(!0),l.load(t,(function(e){try{a.parse(e,o,(function(e){n(e),a.manager.itemEnd(t)}),s)}catch(e){s(e)}}),i,s)},setDRACOLoader:function(e){return this.dracoLoader=e,this},setDDSLoader:function(e){return this.ddsLoader=e,this},parse:function(t,n,u,c){var f,m={};if("string"==typeof t)f=t;else if(e.LoaderUtils.decodeText(new Uint8Array(t,0,4))===l){try{m[i.KHR_BINARY_GLTF]=new h(t)}catch(e){return void(c&&c(e))}f=m[i.KHR_BINARY_GLTF].content}else f=e.LoaderUtils.decodeText(new Uint8Array(t));var g=JSON.parse(f);if(void 0===g.asset||g.asset.version[0]<2)c&&c(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));else{if(g.extensionsUsed)for(var y=0;y<g.extensionsUsed.length;++y){var b=g.extensionsUsed[y],x=g.extensionsRequired||[];switch(b){case i.KHR_LIGHTS_PUNCTUAL:m[b]=new o(g);break;case i.KHR_MATERIALS_CLEARCOAT:m[b]=new s;break;case i.KHR_MATERIALS_UNLIT:m[b]=new a;break;case i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:m[b]=new A;break;case i.KHR_DRACO_MESH_COMPRESSION:m[b]=new d(g,this.dracoLoader);break;case i.MSFT_TEXTURE_DDS:m[b]=new r(this.ddsLoader);break;case i.KHR_TEXTURE_TRANSFORM:m[b]=new p;break;case i.KHR_MESH_QUANTIZATION:m[b]=new v;break;default:x.indexOf(b)>=0&&console.warn('THREE.GLTFLoader: Unknown extension "'+b+'".')}}var w=new R(g,m,{path:n||this.resourcePath||"",crossOrigin:this.crossOrigin,manager:this.manager});w.fileLoader.setRequestHeader(this.requestHeader),w.parse(u,c)}}});var i={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};function r(e){if(!e)throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader");this.name=i.MSFT_TEXTURE_DDS,this.ddsLoader=e}function o(e){this.name=i.KHR_LIGHTS_PUNCTUAL;var t=e.extensions&&e.extensions[i.KHR_LIGHTS_PUNCTUAL]||{};this.lightDefs=t.lights||[]}function a(){this.name=i.KHR_MATERIALS_UNLIT}function s(){this.name=i.KHR_MATERIALS_CLEARCOAT}o.prototype.loadLight=function(t){var n,i=this.lightDefs[t],r=new e.Color(16777215);void 0!==i.color&&r.fromArray(i.color);var o=void 0!==i.range?i.range:0;switch(i.type){case"directional":(n=new e.DirectionalLight(r)).target.position.set(0,0,-1),n.add(n.target);break;case"point":(n=new e.PointLight(r)).distance=o;break;case"spot":(n=new e.SpotLight(r)).distance=o,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,n.angle=i.spot.outerConeAngle,n.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,n.target.position.set(0,0,-1),n.add(n.target);break;default:throw new Error('THREE.GLTFLoader: Unexpected light type, "'+i.type+'".')}return n.position.set(0,0,0),n.decay=2,void 0!==i.intensity&&(n.intensity=i.intensity),n.name=i.name||"light_"+t,Promise.resolve(n)},a.prototype.getMaterialType=function(){return e.MeshBasicMaterial},a.prototype.extendParams=function(t,n,i){var r=[];t.color=new e.Color(1,1,1),t.opacity=1;var o=n.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){var a=o.baseColorFactor;t.color.fromArray(a),t.opacity=a[3]}void 0!==o.baseColorTexture&&r.push(i.assignTexture(t,"map",o.baseColorTexture))}return Promise.all(r)},s.prototype.getMaterialType=function(){return e.MeshPhysicalMaterial},s.prototype.extendParams=function(t,n,i){var r=[],o=n.extensions[this.name];if(void 0!==o.clearcoatFactor&&(t.clearcoat=o.clearcoatFactor),void 0!==o.clearcoatTexture&&r.push(i.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),void 0!==o.clearcoatRoughnessFactor&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),void 0!==o.clearcoatRoughnessTexture&&r.push(i.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),void 0!==o.clearcoatNormalTexture&&(r.push(i.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),void 0!==o.clearcoatNormalTexture.scale)){var a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new e.Vector2(a,a)}return Promise.all(r)};var l="glTF",u=12,c={JSON:1313821514,BIN:5130562};function h(t){this.name=i.KHR_BINARY_GLTF,this.content=null,this.body=null;var n=new DataView(t,0,u);if(this.header={magic:e.LoaderUtils.decodeText(new Uint8Array(t.slice(0,4))),version:n.getUint32(4,!0),length:n.getUint32(8,!0)},this.header.magic!==l)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");for(var r=new DataView(t,u),o=0;o<r.byteLength;){var a=r.getUint32(o,!0);o+=4;var s=r.getUint32(o,!0);if(o+=4,s===c.JSON){var h=new Uint8Array(t,u+o,a);this.content=e.LoaderUtils.decodeText(h)}else if(s===c.BIN){var d=u+o;this.body=t.slice(d,d+a)}o+=a}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function d(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=i.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}function p(){this.name=i.KHR_TEXTURE_TRANSFORM}function f(t){e.MeshStandardMaterial.call(this),this.isGLTFSpecularGlossinessMaterial=!0;var n=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),i=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),o=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),a=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor.rgb;"].join("\n"),s={specular:{value:(new e.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=s,this.onBeforeCompile=function(e){for(var t in s)e.uniforms[t]=s[t];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;"),e.fragmentShader=e.fragmentShader.replace("uniform float metalness;","uniform float glossiness;"),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_pars_fragment>",n),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_pars_fragment>",i),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_fragment>",r),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_fragment>",o),e.fragmentShader=e.fragmentShader.replace("#include <lights_physical_fragment>",a)},Object.defineProperties(this,{specular:{get:function(){return s.specular.value},set:function(e){s.specular.value=e}},specularMap:{get:function(){return s.specularMap.value},set:function(e){s.specularMap.value=e}},glossiness:{get:function(){return s.glossiness.value},set:function(e){s.glossiness.value=e}},glossinessMap:{get:function(){return s.glossinessMap.value},set:function(e){s.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_ROUGHNESSMAP=""):(delete this.defines.USE_ROUGHNESSMAP,delete this.defines.USE_GLOSSINESSMAP)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(t)}function A(){return{name:i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return f},extendParams:function(t,n,i){var r=n.extensions[this.name];t.color=new e.Color(1,1,1),t.opacity=1;var o=[];if(Array.isArray(r.diffuseFactor)){var a=r.diffuseFactor;t.color.fromArray(a),t.opacity=a[3]}if(void 0!==r.diffuseTexture&&o.push(i.assignTexture(t,"map",r.diffuseTexture)),t.emissive=new e.Color(0,0,0),t.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,t.specular=new e.Color(1,1,1),Array.isArray(r.specularFactor)&&t.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var s=r.specularGlossinessTexture;o.push(i.assignTexture(t,"glossinessMap",s)),o.push(i.assignTexture(t,"specularMap",s))}return Promise.all(o)},createMaterial:function(t){var n=new f(t);return n.fog=!0,n.color=t.color,n.map=void 0===t.map?null:t.map,n.lightMap=null,n.lightMapIntensity=1,n.aoMap=void 0===t.aoMap?null:t.aoMap,n.aoMapIntensity=1,n.emissive=t.emissive,n.emissiveIntensity=1,n.emissiveMap=void 0===t.emissiveMap?null:t.emissiveMap,n.bumpMap=void 0===t.bumpMap?null:t.bumpMap,n.bumpScale=1,n.normalMap=void 0===t.normalMap?null:t.normalMap,n.normalMapType=e.TangentSpaceNormalMap,t.normalScale&&(n.normalScale=t.normalScale),n.displacementMap=null,n.displacementScale=1,n.displacementBias=0,n.specularMap=void 0===t.specularMap?null:t.specularMap,n.specular=t.specular,n.glossinessMap=void 0===t.glossinessMap?null:t.glossinessMap,n.glossiness=t.glossiness,n.alphaMap=null,n.envMap=void 0===t.envMap?null:t.envMap,n.envMapIntensity=1,n.refractionRatio=.98,n}}}function v(){this.name=i.KHR_MESH_QUANTIZATION}function m(t,n,i,r){e.Interpolant.call(this,t,n,i,r)}d.prototype.decodePrimitive=function(e,t){var n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},s={},l={};for(var u in o){var c=w[u]||u.toLowerCase();a[c]=o[u]}for(u in e.attributes)if(c=w[u]||u.toLowerCase(),void 0!==o[u]){var h=n.accessors[e.attributes[u]],d=g[h.componentType];l[c]=d,s[c]=!0===h.normalized}return t.getDependency("bufferView",r).then((function(e){return new Promise((function(t){i.decodeDracoFile(e,(function(e){for(var n in e.attributes){var i=e.attributes[n],r=s[n];void 0!==r&&(i.normalized=r)}t(e)}),a,l)}))}))},p.prototype.extendTexture=function(e,t){return e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.needsUpdate=!0,e},f.prototype=Object.create(e.MeshStandardMaterial.prototype),f.prototype.constructor=f,f.prototype.copy=function(t){return e.MeshStandardMaterial.prototype.copy.call(this,t),this.specularMap=t.specularMap,this.specular.copy(t.specular),this.glossinessMap=t.glossinessMap,this.glossiness=t.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this},m.prototype=Object.create(e.Interpolant.prototype),m.prototype.constructor=m,m.prototype.copySampleValue_=function(e){for(var t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i,o=0;o!==i;o++)t[o]=n[r+o];return t},m.prototype.beforeStart_=m.prototype.copySampleValue_,m.prototype.afterEnd_=m.prototype.copySampleValue_,m.prototype.interpolate_=function(e,t,n,i){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=2*a,l=3*a,u=i-t,c=(n-t)/u,h=c*c,d=h*c,p=e*l,f=p-l,A=-2*d+3*h,v=d-h,m=1-A,g=v-h+c,y=0;y!==a;y++){var b=o[f+y+a],x=o[f+y+s]*u,w=o[p+y+a],M=o[p+y]*u;r[y]=m*b+g*x+A*w+v*M}return r};var g={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},y={9728:e.NearestFilter,9729:e.LinearFilter,9984:e.NearestMipmapNearestFilter,9985:e.LinearMipmapNearestFilter,9986:e.NearestMipmapLinearFilter,9987:e.LinearMipmapLinearFilter},b={33071:e.ClampToEdgeWrapping,33648:e.MirroredRepeatWrapping,10497:e.RepeatWrapping},x={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},w={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},M={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},E={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear,STEP:e.InterpolateDiscrete},C={"image/png":e.RGBAFormat,"image/jpeg":e.RGBFormat};function I(e,t){return"string"!=typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}function S(e,t,n){for(var i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function B(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function T(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){var r=t.extras.targetNames;if(e.morphTargetInfluences.length===r.length)for(e.morphTargetDictionary={},n=0,i=r.length;n<i;n++)e.morphTargetDictionary[r[n]]=n;else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function P(e){for(var t="",n=Object.keys(e).sort(),i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function R(t,i,r){this.json=t||{},this.extensions=i||{},this.options=r||{},this.cache=new n,this.associations=new Map,this.primitiveCache={},this.textureLoader=new e.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new e.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}function L(t,n,i){var r=n.attributes,o=[];function a(e,n){return i.getDependency("accessor",e).then((function(e){t.setAttribute(n,e)}))}for(var s in r){var l=w[s]||s.toLowerCase();l in t.attributes||o.push(a(r[s],l))}if(void 0!==n.indices&&!t.index){var u=i.getDependency("accessor",n.indices).then((function(e){t.setIndex(e)}));o.push(u)}return B(t,n),function(t,n,i){var r=n.attributes,o=new e.Box3;if(void 0!==r.POSITION){var a=(p=i.json.accessors[r.POSITION]).min,s=p.max;if(void 0!==a&&void 0!==s){o.set(new e.Vector3(a[0],a[1],a[2]),new e.Vector3(s[0],s[1],s[2]));var l=n.targets;if(void 0!==l){for(var u=new e.Vector3,c=new e.Vector3,h=0,d=l.length;h<d;h++){var p,f=l[h];void 0!==f.POSITION&&(a=(p=i.json.accessors[f.POSITION]).min,s=p.max,void 0!==a&&void 0!==s?(c.setX(Math.max(Math.abs(a[0]),Math.abs(s[0]))),c.setY(Math.max(Math.abs(a[1]),Math.abs(s[1]))),c.setZ(Math.max(Math.abs(a[2]),Math.abs(s[2]))),u.max(c)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION."))}o.expandByVector(u)}t.boundingBox=o;var A=new e.Sphere;o.getCenter(A.center),A.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=A}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}(t,n,i),Promise.all(o).then((function(){return void 0!==n.targets?function(e,t,n){for(var i=!1,r=!1,o=0,a=t.length;o<a&&(void 0!==(u=t[o]).POSITION&&(i=!0),void 0!==u.NORMAL&&(r=!0),!i||!r);o++);if(!i&&!r)return Promise.resolve(e);var s=[],l=[];for(o=0,a=t.length;o<a;o++){var u=t[o];if(i){var c=void 0!==u.POSITION?n.getDependency("accessor",u.POSITION):e.attributes.position;s.push(c)}r&&(c=void 0!==u.NORMAL?n.getDependency("accessor",u.NORMAL):e.attributes.normal,l.push(c))}return Promise.all([Promise.all(s),Promise.all(l)]).then((function(t){var n=t[0],o=t[1];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}(t,n.targets,i):t}))}function k(t,n){var i=t.getIndex();if(null===i){var r=[],o=t.getAttribute("position");if(void 0===o)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(var a=0;a<o.count;a++)r.push(a);t.setIndex(r),i=t.getIndex()}var s=i.count-2,l=[];if(n===e.TriangleFanDrawMode)for(a=1;a<=s;a++)l.push(i.getX(0)),l.push(i.getX(a)),l.push(i.getX(a+1));else for(a=0;a<s;a++)a%2==0?(l.push(i.getX(a)),l.push(i.getX(a+1)),l.push(i.getX(a+2))):(l.push(i.getX(a+2)),l.push(i.getX(a+1)),l.push(i.getX(a)));l.length/3!==s&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var u=t.clone();return u.setIndex(l),u}return R.prototype.parse=function(e,t){var n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.markDefs(),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then((function(t){var o={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};S(r,o,i),B(o,i),e(o)})).catch(t)},R.prototype.markDefs=function(){for(var e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[],i={},r={},o=0,a=t.length;o<a;o++)for(var s=t[o].joints,l=0,u=s.length;l<u;l++)e[s[l]].isBone=!0;for(var c=0,h=e.length;c<h;c++){var d=e[c];void 0!==d.mesh&&(void 0===i[d.mesh]&&(i[d.mesh]=r[d.mesh]=0),i[d.mesh]++,void 0!==d.skin&&(n[d.mesh].isSkinnedMesh=!0))}this.json.meshReferences=i,this.json.meshUses=r},R.prototype.getDependency=function(e,t){var n=e+":"+t,r=this.cache.get(n);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this.loadNode(t);break;case"mesh":r=this.loadMesh(t);break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this.loadBufferView(t);break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this.loadMaterial(t);break;case"texture":r=this.loadTexture(t);break;case"skin":r=this.loadSkin(t);break;case"animation":r=this.loadAnimation(t);break;case"camera":r=this.loadCamera(t);break;case"light":r=this.extensions[i.KHR_LIGHTS_PUNCTUAL].loadLight(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(n,r)}return r},R.prototype.getDependencies=function(e){var t=this.cache.get(e);if(!t){var n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map((function(t,i){return n.getDependency(e,i)}))),this.cache.add(e,t)}return t},R.prototype.loadBuffer=function(e){var t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[i.KHR_BINARY_GLTF].body);var r=this.options;return new Promise((function(e,i){n.load(I(t.uri,r.path),e,void 0,(function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))},R.prototype.loadBufferView=function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){var n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)}))},R.prototype.loadAccessor=function(t){var n=this,i=this.json,r=this.json.accessors[t];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);var o=[];return void 0!==r.bufferView?o.push(this.getDependency("bufferView",r.bufferView)):o.push(null),void 0!==r.sparse&&(o.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(o).then((function(t){var o,a,s=t[0],l=x[r.type],u=g[r.componentType],c=u.BYTES_PER_ELEMENT,h=c*l,d=r.byteOffset||0,p=void 0!==r.bufferView?i.bufferViews[r.bufferView].byteStride:void 0,f=!0===r.normalized;if(p&&p!==h){var A=Math.floor(d/p),v="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+A+":"+r.count,m=n.cache.get(v);m||(o=new u(s,A*p,r.count*p/c),m=new e.InterleavedBuffer(o,p/c),n.cache.add(v,m)),a=new e.InterleavedBufferAttribute(m,l,d%p/c,f)}else o=null===s?new u(r.count*l):new u(s,d,r.count*l),a=new e.BufferAttribute(o,l,f);if(void 0!==r.sparse){var y=x.SCALAR,b=g[r.sparse.indices.componentType],w=r.sparse.indices.byteOffset||0,M=r.sparse.values.byteOffset||0,E=new b(t[1],w,r.sparse.count*y),C=new u(t[2],M,r.sparse.count*l);null!==s&&(a=new e.BufferAttribute(a.array.slice(),a.itemSize,a.normalized));for(var I=0,S=E.length;I<S;I++){var B=E[I];if(a.setX(B,C[I*l]),l>=2&&a.setY(B,C[I*l+1]),l>=3&&a.setZ(B,C[I*l+2]),l>=4&&a.setW(B,C[I*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))},R.prototype.loadTexture=function(t){var n,r=this,o=this.json,a=this.options,s=this.textureLoader,l=self.URL||self.webkitURL,u=o.textures[t],c=u.extensions||{},h=(n=c[i.MSFT_TEXTURE_DDS]?o.images[c[i.MSFT_TEXTURE_DDS].source]:o.images[u.source]).uri,d=!1;return void 0!==n.bufferView&&(h=r.getDependency("bufferView",n.bufferView).then((function(e){d=!0;var t=new Blob([e],{type:n.mimeType});return h=l.createObjectURL(t)}))),Promise.resolve(h).then((function(e){var t=a.manager.getHandler(e);return t||(t=c[i.MSFT_TEXTURE_DDS]?r.extensions[i.MSFT_TEXTURE_DDS].ddsLoader:s),new Promise((function(n,i){t.load(I(e,a.path),n,void 0,i)}))})).then((function(i){!0===d&&l.revokeObjectURL(h),i.flipY=!1,u.name&&(i.name=u.name),n.mimeType in C&&(i.format=C[n.mimeType]);var a=(o.samplers||{})[u.sampler]||{};return i.magFilter=y[a.magFilter]||e.LinearFilter,i.minFilter=y[a.minFilter]||e.LinearMipmapLinearFilter,i.wrapS=b[a.wrapS]||e.RepeatWrapping,i.wrapT=b[a.wrapT]||e.RepeatWrapping,r.associations.set(i,{type:"textures",index:t}),i}))},R.prototype.assignTexture=function(t,n,r){var o=this;return this.getDependency("texture",r.index).then((function(a){if(!a.isCompressedTexture)switch(n){case"aoMap":case"emissiveMap":case"metalnessMap":case"normalMap":case"roughnessMap":a.format=e.RGBFormat}if(void 0===r.texCoord||0==r.texCoord||"aoMap"===n&&1==r.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+r.texCoord+" for texture "+n+" not yet supported."),o.extensions[i.KHR_TEXTURE_TRANSFORM]){var s=void 0!==r.extensions?r.extensions[i.KHR_TEXTURE_TRANSFORM]:void 0;if(s){var l=this.associations.get(a);a=o.extensions[i.KHR_TEXTURE_TRANSFORM].extendTexture(a,s),this.associations.set(a,l)}}t[n]=a}))},R.prototype.assignFinalMaterial=function(t){var n=t.geometry,i=t.material,r=void 0!==n.attributes.tangent,o=void 0!==n.attributes.color,a=void 0===n.attributes.normal,s=!0===t.isSkinnedMesh,l=Object.keys(n.morphAttributes).length>0,u=l&&void 0!==n.morphAttributes.normal;if(t.isPoints){var c="PointsMaterial:"+i.uuid,h=this.cache.get(c);h||(h=new e.PointsMaterial,e.Material.prototype.copy.call(h,i),h.color.copy(i.color),h.map=i.map,h.sizeAttenuation=!1,this.cache.add(c,h)),i=h}else if(t.isLine){c="LineBasicMaterial:"+i.uuid;var d=this.cache.get(c);d||(d=new e.LineBasicMaterial,e.Material.prototype.copy.call(d,i),d.color.copy(i.color),this.cache.add(c,d)),i=d}if(r||o||a||s||l){c="ClonedMaterial:"+i.uuid+":",i.isGLTFSpecularGlossinessMaterial&&(c+="specular-glossiness:"),s&&(c+="skinning:"),r&&(c+="vertex-tangents:"),o&&(c+="vertex-colors:"),a&&(c+="flat-shading:"),l&&(c+="morph-targets:"),u&&(c+="morph-normals:");var p=this.cache.get(c);p||(p=i.clone(),s&&(p.skinning=!0),r&&(p.vertexTangents=!0),o&&(p.vertexColors=!0),a&&(p.flatShading=!0),l&&(p.morphTargets=!0),u&&(p.morphNormals=!0),this.cache.add(c,p),this.associations.set(p,this.associations.get(i))),i=p}i.aoMap&&void 0===n.attributes.uv2&&void 0!==n.attributes.uv&&n.setAttribute("uv2",n.attributes.uv),i.normalScale&&!r&&(i.normalScale.y=-i.normalScale.y),i.clearcoatNormalScale&&!r&&(i.clearcoatNormalScale.y=-i.clearcoatNormalScale.y),t.material=i},R.prototype.loadMaterial=function(t){var n,r=this,o=this.json,a=this.extensions,s=o.materials[t],l={},u=s.extensions||{},c=[];if(u[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var h=a[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];n=h.getMaterialType(),c.push(h.extendParams(l,s,r))}else if(u[i.KHR_MATERIALS_UNLIT]){var d=a[i.KHR_MATERIALS_UNLIT];n=d.getMaterialType(),c.push(d.extendParams(l,s,r))}else{n=e.MeshStandardMaterial;var p=s.pbrMetallicRoughness||{};if(l.color=new e.Color(1,1,1),l.opacity=1,Array.isArray(p.baseColorFactor)){var A=p.baseColorFactor;l.color.fromArray(A),l.opacity=A[3]}void 0!==p.baseColorTexture&&c.push(r.assignTexture(l,"map",p.baseColorTexture)),l.metalness=void 0!==p.metallicFactor?p.metallicFactor:1,l.roughness=void 0!==p.roughnessFactor?p.roughnessFactor:1,void 0!==p.metallicRoughnessTexture&&(c.push(r.assignTexture(l,"metalnessMap",p.metallicRoughnessTexture)),c.push(r.assignTexture(l,"roughnessMap",p.metallicRoughnessTexture)))}!0===s.doubleSided&&(l.side=e.DoubleSide);var v=s.alphaMode||"OPAQUE";if("BLEND"===v?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,"MASK"===v&&(l.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&n!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new e.Vector2(1,1),void 0!==s.normalTexture.scale&&l.normalScale.set(s.normalTexture.scale,s.normalTexture.scale)),void 0!==s.occlusionTexture&&n!==e.MeshBasicMaterial&&(c.push(r.assignTexture(l,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(l.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&n!==e.MeshBasicMaterial&&(l.emissive=(new e.Color).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&n!==e.MeshBasicMaterial&&c.push(r.assignTexture(l,"emissiveMap",s.emissiveTexture)),u[i.KHR_MATERIALS_CLEARCOAT]){var m=a[i.KHR_MATERIALS_CLEARCOAT];n=m.getMaterialType(),c.push(m.extendParams(l,{extensions:u},r))}return Promise.all(c).then((function(){var o;return o=n===f?a[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(l):new n(l),s.name&&(o.name=s.name),o.map&&(o.map.encoding=e.sRGBEncoding),o.emissiveMap&&(o.emissiveMap.encoding=e.sRGBEncoding),B(o,s),r.associations.set(o,{type:"materials",index:t}),s.extensions&&S(a,o,s),o}))},R.prototype.loadGeometries=function(t){var n=this,r=this.extensions,o=this.primitiveCache;function a(e){return r[i.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,n).then((function(t){return L(t,e,n)}))}for(var s,l,u=[],c=0,h=t.length;c<h;c++){var d,p=t[c],f=(void 0,(l=(s=p).extensions&&s.extensions[i.KHR_DRACO_MESH_COMPRESSION])?"draco:"+l.bufferView+":"+l.indices+":"+P(l.attributes):s.indices+":"+P(s.attributes)+":"+s.mode),A=o[f];A?u.push(A.promise):(d=p.extensions&&p.extensions[i.KHR_DRACO_MESH_COMPRESSION]?a(p):L(new e.BufferGeometry,p,n),o[f]={primitive:p,promise:d},u.push(d))}return Promise.all(u)},R.prototype.loadMesh=function(t){for(var n,i=this,r=this.json.meshes[t],o=r.primitives,a=[],s=0,l=o.length;s<l;s++){var u=void 0===o[s].material?(void 0===(n=this.cache).DefaultMaterial&&(n.DefaultMaterial=new e.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:e.FrontSide})),n.DefaultMaterial):this.getDependency("material",o[s].material);a.push(u)}return a.push(i.loadGeometries(o)),Promise.all(a).then((function(n){for(var a=n.slice(0,n.length-1),s=n[n.length-1],l=[],u=0,c=s.length;u<c;u++){var h,d=s[u],p=o[u],f=a[u];if(4===p.mode||5===p.mode||6===p.mode||void 0===p.mode)!0!==(h=!0===r.isSkinnedMesh?new e.SkinnedMesh(d,f):new e.Mesh(d,f)).isSkinnedMesh||h.geometry.attributes.skinWeight.normalized||h.normalizeSkinWeights(),5===p.mode?h.geometry=k(h.geometry,e.TriangleStripDrawMode):6===p.mode&&(h.geometry=k(h.geometry,e.TriangleFanDrawMode));else if(1===p.mode)h=new e.LineSegments(d,f);else if(3===p.mode)h=new e.Line(d,f);else if(2===p.mode)h=new e.LineLoop(d,f);else{if(0!==p.mode)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);h=new e.Points(d,f)}Object.keys(h.geometry.morphAttributes).length>0&&T(h,r),h.name=r.name||"mesh_"+t,s.length>1&&(h.name+="_"+u),B(h,r),i.assignFinalMaterial(h),l.push(h)}if(1===l.length)return l[0];var A=new e.Group;for(u=0,c=l.length;u<c;u++)A.add(l[u]);return A}))},R.prototype.loadCamera=function(t){var n,i=this.json.cameras[t],r=i[i.type];if(r)return"perspective"===i.type?n=new e.PerspectiveCamera(e.MathUtils.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===i.type&&(n=new e.OrthographicCamera(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),i.name&&(n.name=i.name),B(n,i),Promise.resolve(n);console.warn("THREE.GLTFLoader: Missing camera parameters.")},R.prototype.loadSkin=function(e){var t=this.json.skins[e],n={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(n):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return n.inverseBindMatrices=e,n}))},R.prototype.loadAnimation=function(t){for(var n=this.json.animations[t],i=[],r=[],o=[],a=[],s=[],l=0,u=n.channels.length;l<u;l++){var c=n.channels[l],h=n.samplers[c.sampler],d=c.target,p=void 0!==d.node?d.node:d.id,f=void 0!==n.parameters?n.parameters[h.input]:h.input,A=void 0!==n.parameters?n.parameters[h.output]:h.output;i.push(this.getDependency("node",p)),r.push(this.getDependency("accessor",f)),o.push(this.getDependency("accessor",A)),a.push(h),s.push(d)}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o),Promise.all(a),Promise.all(s)]).then((function(i){for(var r=i[0],o=i[1],a=i[2],s=i[3],l=i[4],u=[],c=0,h=r.length;c<h;c++){var d=r[c],p=o[c],f=a[c],A=s[c],v=l[c];if(void 0!==d){var g;switch(d.updateMatrix(),d.matrixAutoUpdate=!0,M[v.path]){case M.weights:g=e.NumberKeyframeTrack;break;case M.rotation:g=e.QuaternionKeyframeTrack;break;default:g=e.VectorKeyframeTrack}var y=d.name?d.name:d.uuid,b=void 0!==A.interpolation?E[A.interpolation]:e.InterpolateLinear,x=[];M[v.path]===M.weights?d.traverse((function(e){!0===e.isMesh&&e.morphTargetInfluences&&x.push(e.name?e.name:e.uuid)})):x.push(y);var w=f.array;if(f.normalized){var C;if(w.constructor===Int8Array)C=1/127;else if(w.constructor===Uint8Array)C=1/255;else if(w.constructor==Int16Array)C=1/32767;else{if(w.constructor!==Uint16Array)throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");C=1/65535}for(var I=new Float32Array(w.length),S=0,B=w.length;S<B;S++)I[S]=w[S]*C;w=I}for(S=0,B=x.length;S<B;S++){var T=new g(x[S]+"."+M[v.path],p.array,w,b);"CUBICSPLINE"===A.interpolation&&(T.createInterpolant=function(e){return new m(this.times,this.values,this.getValueSize()/3,e)},T.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),u.push(T)}}}var P=n.name?n.name:"animation_"+t;return new e.AnimationClip(P,void 0,u)}))},R.prototype.loadNode=function(t){var n,r=this.json,o=this.extensions,a=this,s=r.meshReferences,l=r.meshUses,u=r.nodes[t];return(n=[],void 0!==u.mesh&&n.push(a.getDependency("mesh",u.mesh).then((function(e){var t;if(s[u.mesh]>1){var n=l[u.mesh]++;(t=e.clone()).name+="_instance_"+n}else t=e;return void 0!==u.weights&&t.traverse((function(e){if(e.isMesh)for(var t=0,n=u.weights.length;t<n;t++)e.morphTargetInfluences[t]=u.weights[t]})),t}))),void 0!==u.camera&&n.push(a.getDependency("camera",u.camera)),u.extensions&&u.extensions[i.KHR_LIGHTS_PUNCTUAL]&&void 0!==u.extensions[i.KHR_LIGHTS_PUNCTUAL].light&&n.push(a.getDependency("light",u.extensions[i.KHR_LIGHTS_PUNCTUAL].light)),Promise.all(n)).then((function(n){var i;if((i=!0===u.isBone?new e.Bone:n.length>1?new e.Group:1===n.length?n[0]:new e.Object3D)!==n[0])for(var r=0,s=n.length;r<s;r++)i.add(n[r]);if(u.name&&(i.userData.name=u.name,i.name=e.PropertyBinding.sanitizeNodeName(u.name)),B(i,u),u.extensions&&S(o,i,u),void 0!==u.matrix){var l=new e.Matrix4;l.fromArray(u.matrix),i.applyMatrix4(l)}else void 0!==u.translation&&i.position.fromArray(u.translation),void 0!==u.rotation&&i.quaternion.fromArray(u.rotation),void 0!==u.scale&&i.scale.fromArray(u.scale);return a.associations.set(i,{type:"nodes",index:t}),i}))},R.prototype.loadScene=function(){function t(n,i,r,o){var a=r.nodes[n];return o.getDependency("node",n).then((function(t){return void 0===a.skin?t:o.getDependency("skin",a.skin).then((function(e){for(var t=[],i=0,r=(n=e).joints.length;i<r;i++)t.push(o.getDependency("node",n.joints[i]));return Promise.all(t)})).then((function(i){return t.traverse((function(t){if(t.isMesh){for(var r=[],o=[],a=0,s=i.length;a<s;a++){var l=i[a];if(l){r.push(l);var u=new e.Matrix4;void 0!==n.inverseBindMatrices&&u.fromArray(n.inverseBindMatrices.array,16*a),o.push(u)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',n.joints[a])}t.bind(new e.Skeleton(r,o),t.matrixWorld)}})),t}));var n})).then((function(e){i.add(e);var n=[];if(a.children)for(var s=a.children,l=0,u=s.length;l<u;l++){var c=s[l];n.push(t(c,e,r,o))}return Promise.all(n)}))}return function(n){var i=this.json,r=this.extensions,o=this.json.scenes[n],a=new e.Group;o.name&&(a.name=o.name),B(a,o),o.extensions&&S(r,a,o);for(var s=o.nodes||[],l=[],u=0,c=s.length;u<c;u++)l.push(t(s[u],a,i,this));return Promise.all(l).then((function(){return a}))}}(),t}(),Ti=new Bi,Pi=(new e.Matrix4).makeRotationAxis(new e.Vector3(1,0,0),Math.PI/2);function Ri(t){function n(t){if(t.isMesh)return function(t){var n=new Ge;n.geometry=t.geometry,n.geometry.computeVertexNormals(),n.geometry.computeBoundingBox(),n.geometry.computeBoundingSphere(),n.geometry.addGroup(0,t.geometry.index.count,0);var i=new Bt;return i.uniforms.map.value=t.material.map,i.uniforms.map.value&&(i.uniforms.map.value.magFilter=e.LinearFilter,i.uniforms.map.value.minFilter=e.LinearFilter,i.uniforms.map.value.generateMipmaps=!1),i.uniforms.exposure.value=3.3,i.opacity=1,t.material.dispose(),t.geometry=null,t.material=null,n.material=[i],n.position.copy(t.position),n.quaternion.copy(t.quaternion),n.scale.copy(t.scale),n.matrix.compose(n.position,n.quaternion,n.scale),n}(t);if(t.isGroup){for(var i=function(e){var t=new Xe;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.copy(e.scale),t.matrix.compose(t.position,t.quaternion,t.scale),t}(t),r=0;r<t.children.length;r++){var o=n(t.children[r]);i.add(o)}return i}return new Xe}return new Promise((function(i,r){var o,a=(new e.Matrix4).copy(t.computedTransform);if("Z"!==(null===(o=t.tileset.asset)||void 0===o?void 0:o.gltfUpAxis)&&a.multiply(Pi),t.content){var s=t.content.gltfArrayBuffer;delete t.content.gltfArrayBuffer;var l=t.contentUrl?t.contentUrl.slice(0,t.contentUrl.lastIndexOf("/")+1):"";Ti.parse(s,l,(function(e){var r=e.scene,o=new Xe,s=n(r);s.applyMatrix4(a),o.add(s),t.contentUrl&&(o.name=t.contentUrl),i(o)}),(function(e){r(new Error("error parsing gltf in tile ".concat(t.id,": ").concat(e.message)))}))}else i(new Xe)}))}function Li(e){e.traverse((function(e){if(e instanceof Ge){e.geometry.dispose();for(var t=0,n=e.material;t<n.length;t++){var i=n[t];i.uniforms.map&&i.uniforms.map.value&&(i.uniforms.map.value.dispose(),i.uniforms.map.value=null),i.dispose()}}}))}function ki(t){t.updateMatrix(),t.updateMatrixWorld();var n=(new e.Matrix4).multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse);return(new e.Frustum).setFromProjectionMatrix(n)}new e.EdgesGeometry(new e.BoxBufferGeometry(1,1,1)),new e.LineBasicMaterial({color:new e.Color(1,1,0),transparent:!0});var Oi=["tileTextureUpload","basicTileLoaded"],Fi={throttleRequests:!0,maxRequests:64,updateInterval:.1,maxScreenSpaceError:8,maxMemoryUsage:24,viewDistanceScale:.2,onNodeCreated:function(){},maxDepth:100},Di=function(t){function n(n,i,r){var o,a=this;return(a=t.call(this)||this).options=ne(ne({},Fi),n),a.options.maxDepth=null!==(o=a.options.maxDepth)&&void 0!==o?o:100,a.clock=new e.Clock,a.timer=0,a.unloadTileQueue=[],a.nodes={},a.boundings={},a.nodeGroup=new e.Group,a.boundingGroup=new e.Group,a.add(a.nodeGroup),a.sseDenominator=null,a.lastCameraTransform=new e.Matrix4,a.lastCameraAspect=1,a.lastCameraFov=null,a.lastCamera=null,a.lastRenderer=null,a.enabled=!1,a.listener=new se,a.basicTiles=[],a.parseTask=[],a.originModel=i,a.renderer=r,a}return te(n,t),Object.defineProperty(n.prototype,"enable",{get:function(){return this.enabled},set:function(e){this.enabled!==e&&(this.enabled=e,!1===this.enabled?this.reset():(this.timer=0,this.clock.getDelta()))},enumerable:!1,configurable:!0}),n.prototype.load=function(t){var n=this,i=t.tileset_url,r=(t.tileset_url_md5,t.b3md_mappings_url),o=(t.b3md_mappings_url_md5,{modelMatrix:(new e.Matrix4).fromArray([1,0,0,0,0,-1,0,1e9,0,0,-1,0,0,0,0,1]),maxMemoryUsage:this.options.maxMemoryUsage,maxScreenSpaceError:this.options.maxScreenSpaceError,viewDistanceScale:this.options.viewDistanceScale,throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests,maxDepth:this.options.maxDepth,contentLoader:function(e){if("SCENEGRAPH"===e.type||"MESH"===e.type)return Ri(e).then((function(t){return new Promise((function(i,r){void 0===n.tileset?Li(t):(t.visible=!1,n.nodes[e.id]=t,n.nodeGroup.add(t),n.options.onNodeCreated(t),t.updateMatrixWorld(!0)),i()}))}))},onTileLoad:function(){n.enabled&&n.tileset&&n.lastRenderer&&n.lastCamera&&(n.tileset.frameNumber++,n.tilesetUpdate(n.tileset,n.lastRenderer,n.lastCamera)),n.enabled||n.reset()},onTileUnload:function(e){n.unloadTileQueue.push(e)},onTileError:function(e,t){console.error("Tile error",e.id,t)},onTraversalComplete:function(e){return e},allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}),a=i.split("/").slice(0,-1).join("/"),s=Se(i,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return function(e,t){var n,i=e;return i.basePath=t,i.root=function(e,t){e=Si(e,t);var n=[];for(n.push(e);n.length>0;)for(var i=0,r=(n.pop()||{}).children||[];i<r.length;i++){var o=r[i];Si(o,t),n.push(o)}return e}(i.root,t),i.type="TILES3D",i.lodMetricType="geometricError",i.lodMetricValue=(null===(n=i.root)||void 0===n?void 0:n.lodMetricValue)||0,i}(JSON.parse(e.body),a)})),l=Se(r,{allowHosts:this.options.allowHosts,networkSubscribe:this.options.networkSubscribe,requestProxy:this.options.requestProxy}).then((function(e){return JSON.parse(e.body)}));Promise.all([s,l]).then((function(t){var i=t[0],r=t[1];i.b3dmMapping=r;var a=n.tileset=new Ei(i,o),s=new e.Matrix4;if(a.root&&a.root.boundingVolume){var l=a.root.boundingVolume,u=l.halfAxes,c=l.center;s.extractRotation(function(t){var n=t.toArray();return(new e.Matrix4).fromArray([2*n[0],2*n[1],2*n[2],0,2*n[3],2*n[4],2*n[5],0,2*n[6],2*n[7],2*n[8],0,0,0,0,1])}(u)),s.setPosition(c.x,c.y,c.z)}a.modelMatrix.copy((new e.Matrix4).getInverse(s))}))},n.prototype.update=function(e,t){this.lastCamera=t,this.lastRenderer=e,!1!==this.enabled&&(this.timer+=this.clock.getDelta(),this.tileset&&this.timer>=this.options.updateInterval&&(t.matrixWorld.equals(this.lastCameraTransform)&&t.aspect===this.lastCameraAspect&&t.fov===this.lastCameraFov||(this.timer=0,this.tileset.frameNumber++,this.lastCameraTransform.copy(t.matrixWorld),this.tilesetUpdate(this.tileset,e,t))))},n.prototype.tilesetUpdate=function(t,n,i){var r,o;this.sseDenominator&&i.aspect===this.lastCameraAspect&&i.fov===this.lastCameraFov||(this.sseDenominator=function(e){var t=e.aspect,n=e.fov/180*Math.PI,i=e.aspect<=1?n:2*Math.atan(Math.tan(.5*n)/t);return 2*Math.tan(.5*i)}(i),this.lastCameraAspect=i.aspect,this.lastCameraFov=i.fov);var a,s,l,u={camera:{position:i.position.toArray(),direction:i.getDirection(new e.Vector3).toArray(),up:i.up.toArray()},height:n.getSize(new e.Vector2).height,frameNumber:t.frameNumber,sseDenominator:this.sseDenominator,cullingVolume:(a=ki(i),s=a.planes.map((function(t){return new e.Plane(t.normal,t.constant)})),new ei(s))};if(t.cache.reset(),t.traverser.traverse(t.root,u),this.basicTiles=t.tiles.filter((function(e){return 1===e.depth})),this.basicTiles.length===(null===(r=this.tileset)||void 0===r?void 0:r.root.children.length))for(var c=0,h=t.tiles;c<h.length;c++){var d=h[c],p=d.selected,f=d.id;this.nodes[f]&&this.nodes[f].visible!==p&&(this.nodes[f].visible=p,p&&(this.needsRender=!0))}for(this.basicTiles.length===(null===(o=this.tileset)||void 0===o?void 0:o.root.children.length)&&(this.originModel.visible=!1,this.needsRender=!0);l=this.unloadTileQueue.pop();)if(f=l.id,this.nodes[f]){var A=this.nodes[f];this.nodeGroup.remove(A),Li(A),delete this.nodes[f]}},n.prototype.reset=function(){if(this.tileset){this.tileset.reset();var e=void 0;for(this.basicTiles.length=0;e=this.unloadTileQueue.pop();)if("UNLOADED"!==e.contentState){var t=e.id;if(this.nodes[t]){var n=this.nodes[t];this.nodeGroup.remove(n),Li(n),delete this.nodes[t]}this.boundings[t]&&(n=this.boundings[t],this.boundingGroup.remove(n),delete this.boundings[t])}for(var i=0,r=Object.keys(this.nodes);i<r.length;i++){t=r[i];var o=this.nodes[t];this.nodeGroup.remove(o),Li(o),delete this.nodes[t]}for(var a=0,s=Object.keys(this.boundings);a<s.length;a++)t=s[a],o=this.boundings[t],this.boundingGroup.remove(o),delete this.boundings[t]}},n}(We);function Qi(e){return null==e}var Ni=function(t,n){void 0===n&&(n=1e-4),n=Math.max(n,Number.EPSILON);for(var i={},r=t.getIndex(),o=t.getAttribute("position"),a=r?r.count:o.count,s=0,l=Object.keys(t.attributes),u={},c={},h=[],d=["getX","getY","getZ","getW"],p=0,f=l.length;p<f;p++)u[b=l[p]]=[],(E=t.morphAttributes[b])&&(c[b]=new Array(E.length).fill().map((function(){return[]})));var A=Math.log10(1/n),v=Math.pow(10,A);for(p=0;p<a;p++){var m=r?r.getX(p):p,g="",y=0;for(f=l.length;y<f;y++)for(var b=l[y],x=(M=t.getAttribute(b)).itemSize,w=0;w<x;w++)g+="".concat(~~(M[d[w]](m)*v),",");if(g in i)h.push(i[g]);else{for(y=0,f=l.length;y<f;y++){b=l[y];var M=t.getAttribute(b),E=t.morphAttributes[b],C=(x=M.itemSize,u[b]),I=c[b];for(w=0;w<x;w++){var S=d[w];if(C.push(M[S](m)),E)for(var B=0,T=E.length;B<T;B++)I[B].push(E[B][S](m))}}i[g]=s,h.push(s),s++}}var P=t.clone();for(p=0,f=l.length;p<f;p++){b=l[p];var R=t.getAttribute(b),L=new R.array.constructor(u[b]);if(M=new e.BufferAttribute(L,R.itemSize,R.normalized),P.setAttribute(b,M),b in c)for(y=0;y<c[b].length;y++){var k=t.morphAttributes[b][y],O=(L=new k.array.constructor(c[b][y]),new e.BufferAttribute(L,k.itemSize,k.normalized));P.morphAttributes[b][y]=O}}return P.setIndex(h),P};function Vi(t){var n;return new((n=e.Triangle).bind.apply(n,ie([void 0],t.map((function(t){return new e.Vector3(t.x,t.y,t.z)})),!1)))}var Ui={at3d:function(e,t){for(var n=On(t.textureOptions,e.textures.length),i={},r=0,o=e.textures;r<o.length;r++){var a=o[r];i[a]=Ln(a,n,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return cn(e.body)})).then((function(e){return en((function(){for(var t,n={chunks:[],createAt:void 0,description:void 0},i=0,r=e;i<r.length;i++){var o=r[i],a=Sn.decode(o);a.chunks.length&&((t=n.chunks).push.apply(t,a.chunks),n.createAt=a.createAt,n.description=a.description)}return n}))})).then((function(r){return en((function(){return kn(r,e.textureBase,e.textures.slice(),n,i,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}))}))},pbm:function(e,t){for(var n=On(t.textureOptions,e.textures.length),i={},r=0,o=e.textures;r<o.length;r++){var a=o[r];i[a]=Ln(a,n,t.allowHosts,t.requestProxy,t.networkSubscribe)}return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return en((function(){var t=new Uint8Array(e.body);return Sn.decode(t)}))})).then((function(r){return en((function(){return kn(r,e.textureBase,e.textures.slice(),n,i,t.allowHosts,t.requestProxy,t.networkSubscribe,t.renderer)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(n){return Hn(new Uint8Array(n.body),e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))},domez:function(e,t){return Promise.resolve().then((function(){return Se(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,requestProxy:t.requestProxy,networkSubscribe:t.networkSubscribe})})).then((function(e){return cn(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),n=new Uint8Array(t),i=0;return e.forEach((function(e){n.set(e,i),i+=e.length})),n})).then((function(n){return Hn(n,e.textureBase,t.textureOptions,t.allowHosts,t.requestProxy,t.networkSubscribe)}))}},_i=function(t){function n(n,i){var r=t.call(this)||this;return r.empty=!0,r.name="model",r.workCode="",r.loaded=!1,r.bvhs=Object.assign([],{loaded:!1}),r.bounding=new e.Box3,r.shownFloor=null,r.floorLength=0,r.textureOptions={},r.requestProxy=n.requestProxy,r.networkSubscribe=n.networkSubscribe,r.allowHosts=n.allowHosts,r.renderOrder=-4,r.renderer=i,r}return te(n,t),Object.defineProperty(n.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasTiles",{get:function(){return void 0!==this.tiledModel},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enableTiles",{get:function(){return!!this.tiledModel&&this.tiledModel.enable},set:function(e){this.tiledModel&&(this.tiledModel.enable=e)},enumerable:!1,configurable:!0}),n.prototype.updateTexture=function(e){return this.textureOptions=e,Promise.resolve()},n.prototype.getEdges=function(t){var n;if(void 0===t&&(t=30/180*Math.PI),!this.originModel)return[];for(var i=Math.cos(t),r=[],o=0,a=this.originModel.children;o<a.length;o++){var s=a[o];if(s instanceof Ge){var l={},u=["a","b","c"],c=Ni(s.geometry),h=c.getAttribute("position").array,d=(null===(n=c.getIndex())||void 0===n?void 0:n.array)||[];c.dispose();for(var p=[],f=[],A=0,v=h.length;A<v;A+=3)p.push(new e.Vector3(h[A],h[A+1],h[A+2]));for(A=0,v=d.length;A<v;A+=3){var m=d[A],g=d[A+1],y=d[A+2],b=(new e.Vector3).crossVectors(p[g].clone().sub(p[m]),p[y].clone().sub(p[m])).normalize();f.push({a:m,b:g,c:y,normal:b})}for(A=0,v=f.length;A<v;A++)for(var x=f[A],w=0;w<3;w++){var M=x[u[w]],E=x[u[(w+1)%3]],C=[Math.min(M,E),Math.max(M,E)];void 0===l[I=C[0]+"-"+C[1]]?l[I]={index1:C[0],index2:C[1],face1:A}:l[I].face2=A}for(var I in l){var S=l[I];if(void 0===S.face2||f[S.face1].normal.dot(f[S.face2].normal)<=i){var B=p[S.index1],T=p[S.index2];r.push(new e.Line3(B,T))}}p.length=0,f.length=0}}return r},n.prototype.getEdgesBySphere=function(t,n){var i;if(void 0===n&&(n=30/180*Math.PI),!this.bvhs)return[];for(var r=Math.cos(n),o=[],a=0,s=this.bvhs;a<s.length;a++){var l={},u=["a","b","c"],c=s[a].trianglesInSphere(t.center,t.radius),h=new e.BufferGeometry;h.setAttribute("position",new e.BufferAttribute(c,3));var d=Ni(h),p=d.getAttribute("position").array,f=(null===(i=d.getIndex())||void 0===i?void 0:i.array)||[];h.dispose(),d.dispose();for(var A=[],v=[],m=0,g=p.length;m<g;m+=3)A.push(new e.Vector3(p[m],p[m+1],p[m+2]));for(m=0,g=f.length;m<g;m+=3){var y=f[m],b=f[m+1],x=f[m+2],w=(new e.Vector3).crossVectors(A[b].clone().sub(A[y]),A[x].clone().sub(A[y])).normalize();v.push({a:y,b,c:x,normal:w})}for(m=0,g=v.length;m<g;m++)for(var M=v[m],E=0;E<3;E++){var C=M[u[E]],I=M[u[(E+1)%3]],S=[Math.min(C,I),Math.max(C,I)];void 0===l[B=S[0]+"-"+S[1]]?l[B]={index1:S[0],index2:S[1],face1:m}:l[B].face2=m}for(var B in l){var T=l[B];if(void 0===T.face2||v[T.face1].normal.dot(v[T.face2].normal)<=r){var P=A[T.index1],R=A[T.index2];o.push(new e.Line3(P,R))}}A.length=0,v.length=0}return o},n.prototype.hasFloors=function(){return this.hasFloors_()},n.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof Ge&&(e[t.floorIndex]=!0)})),e.length},n.prototype.show=function(){for(var t,n,i=[],r=0;r<arguments.length;r++)i[r]=arguments[r];var o,a=this.shownFloor,s=null!==(t=i[1])&&void 0!==t?t:.1,l=0!==i.length;this.shownFloor=o=l?i[0]:null,this.setMaterial({opacity:1,floorInfo:new e.Vector3(0,0,0)}),(null===(n=this.tiledModel)||void 0===n?void 0:n.enable)?this.b3dmShow(a,o):this.at3dShow(a,o,s)},n.prototype.at3dShow=function(e,t,n){var i;null===(i=this.originModel)||void 0===i||i.traverse((function(e){e instanceof Ge&&e.material.forEach((function(i){null===t||t===e.floorIndex?i.opacity=1*i.originOpacity:i.opacity=i.originOpacity*n}))})),e!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},n.prototype.b3dmShow=function(t,n){var i,r;if(null===(r=null===(i=this.tiledModel)||void 0===i?void 0:i.tileset)||void 0===r?void 0:r.floorInfo){if("number"==typeof n&&n>=0&&n<this.tiledModel.tileset.floorInfo.length){var o=this.tiledModel.tileset.floorInfo,a=-o[n].ground,s=o[n].height+a;this.setMaterial({opacity:1,floorInfo:new e.Vector3(a,s,0)})}else this.setMaterial({opacity:1,floorInfo:new e.Vector3(0,0,0)});t!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0}},n.prototype.intersectRaycaster=function(t,n){var i=t.ray,r=i.origin,o=i.direction;if(Qi(n))if(Qi(this.shownFloor)){var a=this.floorLength;n=[];for(var s=-1;s<a;s++)n.push(s)}else n=[this.shownFloor];var l=[],u=[];Array.isArray(n)?u.push.apply(u,n):u.push(n);for(var c=function(n){var i=h.bvhs&&h.bvhs[n];if(i){var a=new Ut(r.x,r.y,r.z),s=new Ut(o.x,o.y,o.z),u=i.intersectRay(a,s,!0).map((function(t){var n=t.intersectionPoint,i=t.triangle,o=new e.Vector3(n.x,n.y,n.z);return{point:o,face:{normal:Vi(i).getNormal(new e.Vector3)},distance:r.distanceTo(o)}}));u.length&&l.push.apply(l,u)}else if(h.originModel){var c=[];h.originModel.traverse((function(e){e instanceof Ge&&e.floorIndex===n&&c.push(e)})),(u=t.intersectObjects(c).map((function(e){return{face:e.face?{normal:e.face.normal}:void 0,point:e.point,distance:e.distance}}))).length&&l.push.apply(l,u)}},h=this,d=0,p=u;d<p.length;d++)c(p[d]);return l.filter((function(e){var n=e.distance;return n<=t.far&&n>=t.near})).sort((function(e,t){return e.distance-t.distance}))},n.prototype.buildBVH=function(){if(!this.bvhs.loaded&&this.originModel){var e=[];this.originModel.traverse((function(t){t instanceof Ge&&(e[t.floorIndex]=e[t.floorIndex]||[],e[t.floorIndex].push(t.geometry))})),this.bvhs.length=0;for(var t=0,n=e;t<n.length;t++){var i=n[t],r=0;if(i){for(var o=0,a=i;o<a.length;o++){var s;s=(d=a[o]).index?d.index.array.length:d.attributes.position.array.length/3,r+=3*Math.floor(s/3)}for(var l=new Float32Array(3*r),u=0,c=0,h=i;c<h.length;c++){var d,p=(d=h[c]).attributes.position.array,f=d.index?d.index.array:null;if(f){for(var A=3*Math.floor(f.length/3),v=0,m=void 0,g=void 0;v<A;v++)m=3*(u+v),g=3*f[v],l[m]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}else{for(A=3*Math.floor(p.length/3/3),v=0,m=void 0,g=void 0;v<A;v++)g=3*v,l[m=3*(u+v)]=p[g],l[m+1]=p[g+1],l[m+2]=p[g+2];u+=A}}var y=(new Xt).create(l).splitNode(200);this.bvhs.push(y)}}this.bvhs.loaded=!0,this.emit("bvhLoaded")}},n.prototype.load=function(e,t,n){var i=this;if(void 0===t&&(t={}),void 0===n&&(n={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var r=function(e,t){void 0===t&&(t=[]);var n=/([0-9a-z\.\_\-]+)([\?].*)?$/i.exec(e);if(!n)return"";for(var i=0,r=String(n[1]).trim().split(".").slice(1).reverse();i<r.length;i++){var o=r[i],a=t.indexOf(o);if(a>=0)return t[a]}return""}(e.file,Object.keys(Ui))||"at3d",o=Ui[r];if(!o)throw new Error("[MODEL LOAD ERROR]: file type(".concat(r,") does not support."));return this.name=e.file,this.textureOptions=t,o(e,{textureOptions:t,allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe,renderer:this.renderer}).then((function(t){var r=t.createAt,o=t.description,a=t.objects,s=t.texturePromise,l=t.updateTexture;i.userData.createAt=r,i.userData.description=o,i.updateTexture=function(e){var t=this;return this.textureOptions=e,l(this.textureOptions).then((function(){t.needsRender=!0}))},i.bounding.makeEmpty();var u=i.originModel=new We;u.renderOrder=-4;for(var c=0,h=a;c<h.length;c++){var d=h[c];d.traverse((function(e){if(e instanceof Ge){var t=e.geometry;t.boundingBox||t.computeBoundingBox(),t.boundingSphere||t.computeBoundingSphere(),i.bounding.union(t.boundingBox)}})),u.add(d)}if(i.add(u),i.floorLength=i.hasFloors_(),i.empty=!1,i.loaded=!0,e.tiles&&e.tiles.tileset_url&&e.tiles.b3md_mappings_url){var p=i.tiledModel=new Di({onNodeCreated:function(e){var t=u.getMaterial();t&&(e.setMaterial(t),e.renderOrder=-4)},allowHosts:i.allowHosts,networkSubscribe:i.networkSubscribe,requestProxy:i.requestProxy,maxDepth:n.maxDepth},i.originModel,i.renderer);p.renderOrder=-4,i.add(p),p.load(e.tiles);for(var f=function(e){i.tiledModel.listener.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];i.emit.apply(i,ie([e],t,!1))}))},A=0,v=Oi;A<v.length;A++)f(v[A])}e.bvh&&i.buildBVH(),en((function(){i.emit("geometryLoaded"),s.then((function(){i.emit("materialLoaded"),i.emit("loaded")}))}))})).catch((function(e){return i.name="",i.emit("error",e),Promise.reject(e)}))},n.prototype.update=function(e,t){if(this.originModel){var n=this.originModel.visible;if(this.tiledModel&&this.tiledModel.enable&&this.tiledModel.tileset){this.tiledModel.update(e,t);var i=this.tiledModel.tileset.root;i.content&&"READY"===i.contentState&&!1!==n&&(this.setTransparent(!1),this.shownFloor&&this.show(this.shownFloor),this.originModel.visible=!1,this.originModel.needsRender=!0)}else!0!==n&&(this.originModel.visible=!0,this.originModel.needsRender=!0)}},n.prototype.dispose=function(){this.off();var e=this.originModel,t=this.tiledModel;if(t&&(t.enable=!1,t.reset()),e)for(e.disposeGeometry(),e.disposeMaterial();e.children.length;)e.remove(e.children[0]);this.bvhs.length=0,this.bvhs.loaded=!1},n}(We);Object.assign(_i.prototype,{on:se.prototype.on,once:se.prototype.once,off:se.prototype.off,emit:se.prototype.emit,hasListener:se.prototype.hasListener});var zi="Panorama";function qi(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,i,r;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(i=n;0!=i--;)if(!qi(e[i],t[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(r=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){var o=r[i];if(!qi(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function Hi(e){return"number"==typeof e}var ji=function(){return new Error("Invalid input.")},Ki=function(){return new Error("Invalid certificate.")},Gi=function(){return new Error("Invalid signature.")},Wi=function(e){return new Error("date(".concat(e.toString(),") expired."))},Xi=function(e){return new Error("host(".concat(JSON.stringify(e),") is not allowed."))};function Yi(e,t){void 0===t&&(t=!1);var n=typeof e;if("string"===n)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var i="[",r=e.length-1,o=0;o<r;o++)i+=Yi(e[o],!1)+",";return r>-1&&(i+=Yi(e[o],!1)),i+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return Yi(e.toJSON(),t);var a=Object.keys(e).sort(),s=a.length;for(i="",o=0;o<s;){var l=a[o],u=Yi(e[l],!0);void 0!==u&&(o&&""!==i&&(i+=","),i+=JSON.stringify(l)+":"+u),o++}return"{"+i+"}"}switch(n){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function Zi(e){return String(Yi(e,!1))}function Ji(e){var t,n,i;if(Array.isArray(e)){var r,o,a=void 0;if(e.length<=0)return ji();for(var s=function(t){var n=Ji(e[t]);if(n instanceof Error)return{value:n};if(a){if(a!==n.issuer)return{value:Ki()}}else a=n.issuer;r?n.expire.getTime()<r.getTime()&&(r=n.expire):r=n.expire,o=o?o.filter((function(e){return-1!==n.allowHosts.indexOf(e)})):n.allowHosts},l=0;l<e.length;l++){var u=s(l);if("object"==typeof u)return u.value}return he({issuer:a,expire:r,allowHosts:o})}var c=JSON.parse(e),h="undefined"!=typeof location?location.hostname:"",d=Date.now();if("object"!=typeof c)return ji();var p=new Date("string"==typeof c.expire_at&&/^\d+$/.test(c.expire_at)?Number(c.expire_at):c.expire_at),f=Array.isArray(c.allow_hosts)?c.allow_hosts:[];if(0===h.length||pe(h)||me.filter((function(e){return fe(e,h)})).length>0){var A=String(null!==(t=c.certificate)&&void 0!==t?t:"");if(A){var v=new W;return v.readCertPEM(A),he({issuer:v.getSubjectString(),expire:p,allowHosts:f})}return he({issuer:"none",expire:p,allowHosts:f})}var m=String(null!==(n=c.certificate)&&void 0!==n?n:"");if(!m)return Ki();var g=new W;g.readCertPEM(m);var y=String(null!==(i=c._signature)&&void 0!==i?i:"");if(!y)return Gi();var b=Zi(function(e,t){for(var n={},i=0,r=Object.keys(e);i<r.length;i++){var o=r[i];-1===t.indexOf(o)&&(n[o]=e[o])}return n}(c,["_signature"]));return!1===function(e,t,n){var i=new W;if("string"==typeof n?i.readCertPEM(n):i.readCertHex(n.hex),!1===$(i))return!1;var r=new k;return r.readCertPubKeyHex(i.hex,6),!!r.verify(e,P(t))}(b,y,g)?Gi():d<p.getTime()?0===f.filter((function(e){return fe(e,h)})).length?Xi(h):he({issuer:g.getSubjectString(),expire:p,allowHosts:f}):Wi(p)}var $i=new WeakMap,er=function(){function t(){this.name="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={mode:zi,latitude:0,longitude:0,panoIndex:0,fov:80},this.observers=[],this.boundingBox=new e.Box3,this.issuer="none",this.raw={works:[""],options:""}}return t.prototype.toJSON=function(){return this.raw.works},t.parse=rr,t}();function tr(e){return null==e?"null":Array.isArray(e)?"array":"object"==typeof e?"dict":"value"}function nr(e,t){var n=tr(e),i=tr(t);if("null"===i)return e;if("value"===i)return t;if(i!==n)return JSON.parse(JSON.stringify(t));if("array"===i)for(var r=0;r<t.length;r++)e[r]=nr(e[r],t[r]);else if("dict"===i)for(var o in t)e[o]=nr(e[o],t[o]);return e}function ir(t,n,i){for(var r,o=JSON.stringify(n),a=[],s=0,l=[].concat(t);s<l.length;s++){var u=l[s];u instanceof er?a.push.apply(a,u.raw.works):"string"==typeof u?a.push(u):a.push(JSON.stringify(u))}var c=Ji(a);if(c instanceof Error)return c;n=JSON.parse(o),t=a.map((function(e){return JSON.parse(e)})).reduce((function(e,t){return nr(e,t)}));var h=new er;if(c instanceof Error)return c;h.issuer=c.issuer,h.expire=c.expire,h.allowHosts=c.allowHosts,h.raw={works:a,options:o};var d=null!==(r=t.base_url)&&void 0!==r?r:"";d&&"/"!==d[d.length-1]&&(d+="/");var p=function(e,t){return 0===e.indexOf(t)},f=function(e,t){var r,o=e;if(!0===n.jsonp){o=e.replace(/([\?\#].*)?$/i,"");var a=X("".concat(o)).slice(0,7);o="".concat(o,".").concat(a,".jsonp")}if(!0===n.shortPath){var s=o.replace(d,"").split("."),l=null!==(r=s.shift())&&void 0!==r?r:"",u=s.join(".");o=wn(d,X(l))+(u?"."+u:"")}var c=o.replace(d,"");return n.baseURL&&(o=wn(n.baseURL,c)),i&&i(e,o,c,t),o},A=function(e,n){var i,r,o,a,s,l,u=e;if(!Fn(e)){var c=null!==(l=null!==(a=null!==(r=null===(i=t.panorama)||void 0===i?void 0:i.pano_high_cube_base_url)&&void 0!==r?r:null===(o=t.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==a?a:null===(s=t.panorama)||void 0===s?void 0:s.base_url)&&void 0!==l?l:"";c&&(c=wn(c,String(n))),u=wn(c,u)}return Fn(u)||(u=wn(d,u)),p(u,d)||console.warn("".concat(u," is not start with base_url(").concat(d,").")),f(u,"panorama")},v=function(e){var t=e;return Fn(t)||(t=wn(d,e)),p(t,d)||console.warn("".concat(t," is not start with base_url(").concat(d,").")),f(t,"model")},m=function(e,t){void 0===t&&(t="");var n=e;return Fn(n)||(n=wn(t,n)),Fn(n)||(n=wn(d,n)),p(n,d)||console.warn("".concat(n," is not start with base_url(").concat(d,").")),f(n,"texture")};if(c instanceof Error)return c;if(h.workCode=String(t.work_code||t.code||t.vr_code||t.workCode),h.name=String(t.name),c instanceof Error)return c;if(t.model){var g={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof n.modelBvh?g.bvh=n.modelBvh:"boolean"==typeof t.model.bvh?g.bvh=t.model.bvh:"boolean"==typeof t.bvh&&(g.bvh=t.bvh),t.model.file?g.file=v(t.model.file):t.model.file_url&&(g.file=v(t.model.file_url)),t.model.textureBase?g.textureBase=m("",t.model.textureBase):t.model.material_base_url?g.textureBase=m("",t.model.material_base_url):g.file&&(g.textureBase=g.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Array.isArray(t.model.textures)?g.textures=t.model.textures.map((function(e){var n,i;return m(e,null!==(i=null!==(n=t.model.textureBase)&&void 0!==n?n:t.model.material_base_url)&&void 0!==i?i:"")})):Array.isArray(t.model.material_textures)&&(g.textures=t.model.material_textures.map((function(e){var n,i;return m(e,null!==(i=null!==(n=t.model.textureBase)&&void 0!==n?n:t.model.material_base_url)&&void 0!==i?i:"")}))),t.model.tiles&&(g.tiles=t.model.tiles),g.file&&(h.model=g)}if(c instanceof Error)return c;if(t.observers&&Array.isArray(t.observers)){var y=[];t.panorama&&(Array.isArray(t.panorama)?y=t.panorama:Array.isArray(t.panorama.list)?y=t.panorama.list:Array.isArray(t.panorama.info)&&(y=t.panorama.info));for(var b=0;b<t.observers.length;b++){var x={},w=t.observers[b];if(!w)break;var M=y[b];if(!M)break;w=Object.assign({},w,M,{active:!1!==w.active&&!1!==M.active}),x.panoIndex=b,x.active=!1!==w.active,x.loadable=!0===w.loadable,x.derivedId=w.derived_id,x.images={up:A(w.images?w.images.up:w.up,b),down:A(w.images?w.images.down:w.down,b),right:A(w.images?w.images.right:w.right,b),left:A(w.images?w.images.left:w.left,b),front:A(w.images?w.images.front:w.front,b),back:A(w.images?w.images.back:w.back,b)};var E=w.images?w.images.depth:w.depth;E&&(x.images.depth=A(E,b));var C=w.images?w.images.luminance:w.luminance;C&&(x.images.luminance={up:A(C.up,b),down:A(C.down,b),right:A(C.right,b),left:A(C.left,b),front:A(C.front,b),back:A(C.back,b)});var I=w.images?w.images.tiles:w.tiles;if(I){for(var S=[],B=function(e){var t,n=e.match(/\/cube_(\d+)\//);if(n){var i=Number(n[1]);if(0==((t=i)&t-1)&&0!==t)return i}return!1},T=function(e,t){return e.replace(/\/cube_(\d+)\//,(function(){return"/cube_".concat(t,"/")}))},P=0,R=I;P<R.length;P++){var L=R[P];if("number"==typeof L){var k=L,O=B(x.images.front);if(!1===O)continue;if((_=Math.max(O,512*Math.pow(2,k)))>2048){var F=T(x.images.up,_),D=T(x.images.down,_),Q=T(x.images.right,_),N=T(x.images.left,_),V=T(x.images.front,_),U=T(x.images.back,_);S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}else F=x.images.up,D=x.images.down,Q=x.images.right,N=x.images.left,V=x.images.front,U=x.images.back,S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}else{var _;if("number"!=typeof(k=L.level))continue;if("number"!=typeof(_=L.size))continue;F=A(L.up,b),D=A(L.down,b),Q=A(L.right,b),N=A(L.left,b),V=A(L.front,b),U=A(L.back,b),S.push({level:k,size:_,up:F,down:D,right:Q,left:N,front:V,back:U})}}S.sort((function(e,t){return e.level-t.level})),x.images.tiles=S}if(w.position instanceof e.Vector3)x.position=w.position.clone();else{if(!Array.isArray(w.position))break;x.position=(new e.Vector3).fromArray(w.position)}if(w.standingPosition instanceof e.Vector3)x.standingPosition=w.standingPosition.clone();else if(Array.isArray(w.standingPosition))x.standingPosition=(new e.Vector3).fromArray(w.standingPosition);else if(w.standing_position instanceof e.Vector3)x.standingPosition=w.standing_position.clone();else{if(!Array.isArray(w.standing_position))break;x.standingPosition=(new e.Vector3).fromArray(w.standing_position)}if(w.quaternion instanceof e.Quaternion)x.quaternion=w.quaternion.clone();else if(Array.isArray(w.quaternion))x.quaternion=(new e.Quaternion).fromArray(w.quaternion);else{if(!w.quaternion)break;var z=w.quaternion,q=z.x,H=z.y,j=z.z,K=z.w;x.quaternion=new e.Quaternion(q,H,j,K)}if(Array.isArray(w.accessibleNodes)?x.accessibleNodes=w.accessibleNodes.slice():Array.isArray(w.accessible_nodes)&&(x.accessibleNodes=w.accessible_nodes.slice()),Array.isArray(w.visibleNodes)?x.visibleNodes=w.visibleNodes.slice():Array.isArray(w.visible_nodes)&&(x.visibleNodes=w.visible_nodes.slice()),Hi(w.floorIndex)?x.floorIndex=w.floorIndex:Hi(w.floor_index)?x.floorIndex=w.floor_index:x.floorIndex=0,w.video){var G={};"string"==typeof w.video.source&&(G.source=w.video.source),w.video.matrix instanceof e.Matrix4?G.matrix=w.video.matrix.clone():Array.isArray(w.video.matrix)&&(G.matrix=(new e.Matrix4).fromArray(w.video.matrix)),w.video.size instanceof e.Vector2?G.size=w.video.size.clone():Array.isArray(w.video.size)&&(G.size=(new e.Vector2).fromArray(w.video.size)),G.source&&G.matrix&&G.size&&(x.video=G)}h.observers[b]=x}}if(c instanceof Error)return c;for(var W=0,Y=h.observers;W<Y.length;W++){if((x=Y[W]).accessibleNodes)x.accessibleNodes=x.accessibleNodes.filter((function(e){return e<h.observers.length}));else{x.accessibleNodes=[];for(var Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.accessibleNodes.push(Z)}if(x.visibleNodes)x.visibleNodes=x.visibleNodes.filter((function(e){return e<h.observers.length}));else for(x.visibleNodes=[],Z=0;Z<h.observers.length;Z++)h.observers[Z]!==x&&x.visibleNodes.push(Z)}if(c instanceof Error)return c;if(t.initial)if("Floorplan"!==t.initial.mode&&"Topview"!==t.initial.mode&&"Panorama"!==t.initial.mode&&"VRPanorama"!==t.initial.mode&&"Model"!==t.initial.mode&&"DepthPanorama"!==t.initial.mode||(h.initial.mode=t.initial.mode),Hi(t.initial.latitude)&&(h.initial.latitude=t.initial.latitude),Hi(t.initial.longitude)?h.initial.longitude=t.initial.longitude:Hi(t.initial.heading)&&(h.initial.longitude=-(360*(t.initial.heading-.25)+90)/180*Math.PI),Hi(t.initial.fov)&&(h.initial.fov=t.initial.fov),Hi(t.initial.panoIndex)){var J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=Gt(t.initial.panoIndex,0,J)}else Hi(t.initial.pano_index)?(J=h.observers.length>0?h.observers.length-1:0,h.initial.panoIndex=Gt(t.initial.pano_index,0,J)):Hi(t.initial.pano)&&(J=h.observers.length>0?h.observers.length-1:0,h.initial.panoIndex=Gt(t.initial.pano,0,J));if(c instanceof Error)return c;h.boundingBox.makeEmpty();for(var $=0,ee=h.observers;$<ee.length;$++)x=ee[$],h.boundingBox.expandByPoint(x.standingPosition),h.boundingBox.expandByPoint((new e.Vector3).fromArray([x.position.x,2*x.position.y-x.standingPosition.y,x.position.z]));if(c instanceof Error)return c;var te=he(h);return $i.set(te,{works:a,options:o}),te}function rr(e,t,n){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var i=$i.get(e);if(i){if(t&&!qi(JSON.parse(i.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var r=ir(e,null!=t?t:{},n);if(r instanceof Error)throw new Error("[PARSE FAILED]: "+r.message+"\nError work input:\n"+JSON.stringify(e));return r}function or(e,t,n){return e+(t-e)*n}function ar(e,t){var n=t[1]-t[0];return e<t[0]?ar(e+n,t):e>=t[1]?ar(e-n,t):e}function sr(e,t,n,i){return i?function(e,t,n,i){var r=i[1]-i[0];return e=ar(e,i),or((t=ar(t,i))-e>r/2?e+r:e-t>r/2?e-r:e,t,n)}(e,t,n,i):or(e,t,n)}var lr=function(){function e(e){for(var t in this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=ce(),this.startVelocity=0,this.duration=0,this.keyframes=[],e){var n=e[t];"number"==typeof n?(this.value[t]=n,this.config[t]={circle:!1}):(this.value[t]=n.value,this.config[t]={circle:n.circle})}this.keyframes=[{progress:0,value:ne({},this.value)},{progress:1,value:ne({},this.value)}]}return e.prototype.getProgress=function(e){var t=e-this.startTime;return t<0?0:t>=this.duration?1:1-function(e,t,n,i){var r=(t*n+2)/Math.pow(n,3),o=-(2*t*n+3)/Math.pow(n,2),a=t;return r*Math.pow(i,3)+o*Math.pow(i,2)+a*i+1}(0,this.startVelocity,this.duration,t)},e.prototype.getValue=function(e){for(var t=1;t<this.keyframes.length;t++)if(this.keyframes[t].progress>e){var n=this.keyframes[t-1],i=this.keyframes[t],r={};for(var o in this.config){var a=(e-n.progress)/(i.progress-n.progress);r[o]=sr(n.value[o],i.value[o],a,this.config[o].circle)}return r}return ne({},this.keyframes[this.keyframes.length-1].value)},e.prototype.getProgressVelocity=function(e){var t=e-this.startTime;return t>=this.duration?0:function(e,t,n,i){var r=(t*n+2)/Math.pow(n,3),o=-(2*t*n+3)/Math.pow(n,2),a=t;return 3*r*Math.pow(i,2)+2*o*i+a}(0,this.startVelocity,this.duration,t)},e.prototype.update=function(e){return!!this.ended||(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(e))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},e.prototype.getKeyFrameSegment=function(e){for(var t=this.getProgress(e),n=1;n<this.keyframes.length;n++)if(this.keyframes[n].progress>t)return[this.keyframes[n-1],this.keyframes[n]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},e.prototype.getTargetKeyframe=function(){return this.keyframes[this.keyframes.length-1]},e.prototype.set=function(e,t,n,i){var r;void 0===n&&(n=0),isNaN(t)&&(t=0),isNaN(n)&&(n=0),i=null!=i?i:ce();var o=this.getProgress(i),a=this.getValue(o),s={};for(var l in this.config)s[l]=null!==(r=e[l])&&void 0!==r?r:a[l];var u=[{progress:0,value:a},{progress:1,value:s}];return this.setKeyframes(u,t,n,i)},e.prototype.setKeyframes=function(e,t,n,i){var r=this;if(void 0===n&&(n=0),e.length<2)throw new Error("keyframes invalid.");return isNaN(t)&&(t=0),isNaN(n)&&(n=0),this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise((function(o,a){i=null!=i?i:ce(),r.progress=0,r.ended=!1,r.startTime=i,r.startVelocity=n,r.keyframes=e,r.duration=t,0===t?(r.progress=1,r.value=ne({},e[e.length-1].value)):r.value=ne({},e[0].value),r.callbacks=[o,a]}))},e.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},e}(),ur=function(e){return e*(2-e)},cr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),hr=function(t){function n(n){void 0===n&&(n={});var i,r,o=this;o=t.call(this)||this;var a=null!==(i=n.color)&&void 0!==i?i:16777215,s=null!==(r=n.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new lr({progress:0}),o.ringMotion=new lr({scale:1,opacity:1}),o.tapMotion=new lr({scale:1,opacity:1}),o.loadingOpacityMotion=new lr({opacity:0}),o.progressMotion=new lr({progress:0}),o.progressOpacityMotion=new lr({opacity:0}),o.opacityMotion=new lr({opacity:0}),o.disableMotion=new lr({progress:0}),o.panoMesh=new e.Mesh(cr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float ringScale;\nuniform float ringOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.8 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 1.5, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * inside(0.15 * circleScale * tapScale) * outside(0.234 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_ring() {\n float gradient = clamp(0.5 + abs(dot(normalize(vec2(1.0, 1.0)), vUv - CENTER)), 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * ringOpacity * inside(0.27 * ringScale * tapScale) * outside(0.32 * ringScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.4 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.5;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.208 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.2 + (0.43 - 0.2) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 ringColor = create_ring();\n gl_FragColor = mix(gl_FragColor, ringColor, ringColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new e.Color(a)},circleScale:{value:1},ringScale:{value:1},ringOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=ur(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;l%5<2&&(s=l%1,this.panoMesh.material.uniforms.expand1.value=ur(s)*this.currentMotion.value.progress,this.needsRender=!0)}if(this.currentMotion.value.progress>.2&&0===this.progress&&!1===this.loading&&(e-this.currentStartTime-1e3)/2e3%5<2?.8!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:.8,opacity:0},600).catch(le):1!==this.ringMotion.getTargetKeyframe().value.scale&&this.ringMotion.set({scale:1,opacity:1},600).catch(le),!this.ringMotion.ended){var u=this.ringMotion.value;o=u.scale,i=u.opacity,this.ringMotion.update(e),this.panoMesh.material.uniforms.ringScale.value=o,this.panoMesh.material.uniforms.ringOpacity.value=i,this.needsRender=!0}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.ringMotion.dispose(),this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),dr=function(e){return e*(2-e)},pr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),fr=function(t){function n(n){void 0===n&&(n={});var i,r,o=this;o=t.call(this)||this;var a=null!==(i=n.color)&&void 0!==i?i:16777215,s=null!==(r=n.scale)&&void 0!==r?r:1;return o.progress=0,o.opacity=0,o.loading=!1,o.current=!1,o.disabled=!1,o.currentMotion=new lr({progress:0}),o.tapMotion=new lr({scale:1,opacity:1}),o.loadingOpacityMotion=new lr({opacity:0}),o.progressMotion=new lr({progress:0}),o.progressOpacityMotion=new lr({opacity:0}),o.opacityMotion=new lr({opacity:0}),o.disableMotion=new lr({progress:0}),o.panoMesh=new e.Mesh(pr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.8 * circleOpacity * tapOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * tapOpacity * loadingOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n return vec4(1.0, 1.0, 1.0, bar * tapOpacity * progressOpacity * inside(0.2 * circleScale * tapScale) * outside(0.3 * circleScale * tapScale));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(1.0, 1.0, 1.0, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb * baseColor, gl_FragColor.a * opacity * opacity);\n}\n",uniforms:{baseColor:{value:new e.Color(a)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0}}})),o.renderOrder=-2,o.panoMesh.renderOrder=-2,o.panoMesh.position.y=.004,o.panoMesh.scale.set(s,1,s),o.add(o.panoMesh),o.currentStartTime=ce(),o.needsRender=!0,o}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=1+Math.sin(Math.PI*r)/25*this.currentMotion.value.progress;this.panoMesh.material.uniforms.circleScale.value=o,this.needsRender=!0}var a=(e-this.currentStartTime-1500)/2e3;if(a%5<2){var s=a%1;this.panoMesh.material.uniforms.expand0.value=dr(s)*this.currentMotion.value.progress,this.needsRender=!0}var l=(e-this.currentStartTime-1e3)/2e3;l%5<2&&(s=l%1,this.panoMesh.material.uniforms.expand1.value=dr(s)*this.currentMotion.value.progress,this.needsRender=!0)}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),Ar=function(e){return e*(2-e)},vr=function(){var t=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),n=new Float32Array([1,0,0,0,1,1,0,1]),i=new Uint8Array([0,2,1,2,3,1]),r=new e.BufferGeometry;return r.setAttribute("position",new e.BufferAttribute(t,3)),r.setAttribute("uv",new e.BufferAttribute(n,2)),r.setIndex(new e.BufferAttribute(i,1)),r}(),mr=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c=this;c=t.call(this)||this;var h=null!==(i=n.color)&&void 0!==i?i:16777215,d=null!==(r=n.scale)&&void 0!==r?r:1,p=n.map,f=null!==(o=n.mapAlpha)&&void 0!==o?o:1,A=null!==(a=n.mapUseColor)&&void 0!==a&&a,v=null!==(s=n.mapUseReverse)&&void 0!==s&&s,m=null!==(l=n.borderWidth)&&void 0!==l?l:.1,g=null!==(u=n.borderColor)&&void 0!==u?u:16777215;return c.progress=0,c.opacity=0,c.loading=!1,c.current=!1,c.disabled=!1,c.currentMotion=new lr({progress:0}),c.tapMotion=new lr({scale:1,opacity:1}),c.loadingOpacityMotion=new lr({opacity:0}),c.progressMotion=new lr({progress:0}),c.progressOpacityMotion=new lr({opacity:0}),c.opacityMotion=new lr({opacity:0}),c.disableMotion=new lr({progress:0}),c.panoMesh=new e.Mesh(vr,new e.ShaderMaterial({blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_MAP)\nuniform sampler2D map;\nuniform float mapAlpha;\n#endif\n#if defined(USE_BORDER)\nuniform float borderWidth;\nuniform vec3 borderColor;\n#endif\nuniform vec3 baseColor;\nuniform float circleScale;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float progress;\nuniform float progressOpacity;\nuniform float expand0;\nuniform float expand1;\nuniform float expandOpacity;\nuniform float opacity;\nuniform float tapScale;\nuniform float tapOpacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float radius = 0.3 * circleScale * tapScale;\n #if defined(USE_MAP)\n float delta = radius / 0.5;\n vec2 deltaUv = (vUv - CENTER) / delta + CENTER;\n vec4 image = texture2D(map, deltaUv);\n image.a = image.a * mapAlpha;\n #if defined(USE_COLOR)\n image = vec4(baseColor, 1.0) * image;\n #endif\n #endif\n #if defined(USE_REVERSE)\n image = vec4(baseColor, 1.0 - image.a);\n #else\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n float clipAlpha = inside(radius - borderDist * radius);\n float gradient = clamp(borderWidth * 2.0 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)), 0.0, 1.0);\n vec4 borderColor = vec4(borderColor, clipAlpha * gradient);\n image = mix(borderColor, image, image.a);\n #endif\n #endif\n return vec4(image.rgb, image.a * circleOpacity * tapOpacity * outside(radius));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(baseColor, 0.5 * tapOpacity * outside(0.32 * circleScale * tapScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, gradient * tapOpacity * loadingOpacity * inner * outside(radius));\n}\n\nvec4 create_progress() {\n float angle = PI + atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n float bar = (1.0 - step(progress * TAU, angle)) * 0.7;\n float radius = 0.3 * circleScale * tapScale;\n float inner = inside(radius - 0.2 * radius);\n #if defined(USE_BORDER)\n float borderDist = clamp(borderWidth, 0.0, 1.0);\n inner = inside(radius - borderDist * radius);\n #endif\n return vec4(baseColor, bar * tapOpacity * progressOpacity * inner * outside(radius));\n}\n\nvec4 create_expand0() {\n float width = 0.2;\n float radius = 0.25 + (0.5 - 0.25) * expand0;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand0 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvec4 create_expand1() {\n float width = 0.2;\n float radius = 0.25 + (0.48 - 0.25) * expand1;\n float dist = length(CENTER - vUv);\n float gradient = (1.0 - clamp((radius - dist) / width, 0.0, 1.0)) * 0.8 * clamp((1.0 - abs(expand1 - 0.5) * 2.0) * 1.2, 0.0, 1.0);\n return vec4(baseColor, gradient * expandOpacity * outside(radius));\n}\n\nvoid main() {\n gl_FragColor = vec4(baseColor, 0);\n\n vec4 expand1Color = create_expand1();\n gl_FragColor = mix(gl_FragColor, expand1Color, expand1Color.a);\n\n vec4 expand0Color = create_expand0();\n gl_FragColor = mix(gl_FragColor, expand0Color, expand0Color.a);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 progressColor = create_progress();\n gl_FragColor = mix(gl_FragColor, progressColor, progressColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",defines:{USE_COLOR:A,USE_MAP:void 0!==p,USE_BORDER:m>0,USE_REVERSE:v},uniforms:{baseColor:{value:new e.Color(h)},circleScale:{value:1},circleOpacity:{value:1},loadingAngle:{value:0},loadingOpacity:{value:0},progress:{value:0},progressOpacity:{value:0},expand0:{value:0},expand1:{value:0},expandOpacity:{value:0},opacity:{value:0},tapScale:{value:1},tapOpacity:{value:1},disable:{value:0},map:{value:p},mapAlpha:{value:f},borderWidth:{value:m},borderColor:{value:new e.Color(g)}}})),c.renderOrder=-2,c.panoMesh.renderOrder=-2,c.panoMesh.position.y=.004,c.panoMesh.scale.set(d,1,d),c.add(c.panoMesh),c.currentStartTime=ce(),c.needsRender=!0,c}return te(n,t),n.prototype.setProgress=function(e){var t=this;this.setDisabled(!1),this.setLoading(!1),this.progress!==e&&(e=Gt(e,0,1),this.tapMotion.ended&&(0===this.progress&&this.progressOpacityMotion.set({opacity:1},500).catch(le),0===e?this.progressOpacityMotion.set({opacity:0},500).catch(le).then((function(){t.progressMotion.set({progress:0},0).catch(le)})):this.progressMotion.set({progress:Gt(1.2*e,0,1)},100).catch(le)),this.progress=e)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},200).catch(le))},n.prototype.setCurrent=function(e){this.current!==e&&(this.currentMotion.set({progress:e?1:0},2e3).catch(le),this.current=e,!0===this.current&&(this.currentStartTime=ce()))},n.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.loadingOpacityMotion.set({opacity:e?1:0},500).catch(le))},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({progress:e?1:0},500).catch(le))},n.prototype.tap=function(){var e=this;return this.tapMotion.ended?(this.progressOpacityMotion.set({opacity:0},0).catch(le),this.progressMotion.set({progress:0},0).catch(le),this.tapMotion.setKeyframes([{progress:0,value:{scale:1,opacity:1}},{progress:.3,value:{scale:.85,opacity:.5}},{progress:.8,value:{scale:1.05,opacity:.6}},{progress:1,value:{scale:1,opacity:1}}],600).then((function(){e.progressOpacityMotion.set({opacity:e.progress>0?1:0},300).catch(le),e.progressMotion.set({progress:e.progress},120).catch(le)})).catch(le)):Promise.resolve()},n.prototype.updateTime=function(e,t){if(!this.progressMotion.ended){this.progressMotion.update(e);var n=this.progressMotion.value.progress;this.panoMesh.material.uniforms.progress.value=n,this.needsRender=!0}if(!this.progressOpacityMotion.ended){this.progressOpacityMotion.update(e);var i=this.progressOpacityMotion.value.opacity;this.panoMesh.material.uniforms.progressOpacity.value=i,this.needsRender=!0}if(this.opacityMotion.ended||(this.opacityMotion.update(e),i=this.opacityMotion.value.opacity,this.panoMesh.material.uniforms.opacity.value=i,this.needsRender=!0),(!this.loadingOpacityMotion.ended||this.loadingOpacityMotion.value.opacity>0)&&(this.loadingOpacityMotion.update(e),this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingOpacityMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0),this.tapMotion.ended||(this.tapMotion.update(e),this.panoMesh.material.uniforms.tapOpacity.value=this.tapMotion.value.opacity,this.panoMesh.material.uniforms.tapScale.value=this.tapMotion.value.scale,this.needsRender=!0),this.panoMesh.material.uniforms.circleOpacity.value=Math.max(.6,1-Math.max(this.loadingOpacityMotion.value.opacity,this.progressOpacityMotion.value.opacity)),this.current||!this.currentMotion.ended){this.currentMotion.update(e),this.panoMesh.material.uniforms.expandOpacity.value=this.currentMotion.value.progress;var r=(e-this.currentStartTime-1500)/2e3;if(r%5<2){var o=r%1;this.panoMesh.material.uniforms.expand0.value=Ar(o)*this.currentMotion.value.progress,this.needsRender=!0}var a=(e-this.currentStartTime-1e3)/2e3;a%5<2&&(o=a%1,this.panoMesh.material.uniforms.expand1.value=Ar(o)*this.currentMotion.value.progress,this.needsRender=!0)}this.disableMotion.ended||(n=this.disableMotion.value.progress,this.disableMotion.update(e),this.panoMesh.material.uniforms.disable.value=n,this.needsRender=!0)},n.prototype.dispose=function(){this.tapMotion.dispose(),this.progressMotion.dispose(),this.progressOpacityMotion.dispose(),this.opacityMotion.dispose(),this.currentMotion.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),gr=new e.CircleBufferGeometry(.1,16),yr=new e.ShaderMaterial({vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * outside * inside);\n}\n",transparent:!0}),br=function(t){function n(){var n=t.call(this)||this;return n.ringMesh=new e.Mesh(gr,yr),n.ringMesh.renderOrder=-2,n.add(n.ringMesh),n}return te(n,t),n.prototype.dispose=function(){this.remove(this.ringMesh)},n}(e.Object3D);function xr(e,t,n){var i=Math.abs(e-t);return i<.001||void 0!==n&&Math.abs(n-i)<.001}function wr(e,t,n){return!xr(e,t,n)}function Mr(e,t){return e.distanceTo(t)<.001}function Er(e,t){return!Mr(e,t)}var Cr=new e.Vector3(0,0,0),Ir=function(t){function n(n,i){void 0===i&&(i=Cr);var r=t.call(this)||this,o=new e.BoxBufferGeometry(n.max.x-n.min.x+2*i.x,n.max.y-n.min.y+2*i.y,n.max.z-n.min.z+2*i.z,1,1);o.groups.length=0,o.groups.push({start:0,count:36,materialIndex:0}),o.applyMatrix4((new e.Matrix4).makeScale(-1,1,1)),o.computeVertexNormals();var a=new Bt;a.defines.USE_MAP=!1,a.defines.USE_UV=!1,a.defines.USE_PANO_OPACITY=!0,a.uniforms.diffuse.value=new e.Color(10066329),a.depthWrite=!1;var s=new Ge(o,[a]);return s.floorIndex=-1,s.position.copy(n.getCenter(new e.Vector3)),s.frustumCulled=!1,r.renderOrder=-4,r.add(s),r.boundingBox=new e.Box3,r.boundingBox.setFromObject(r),r}return te(n,t),n.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},n}(Xe);function Sr(e,t){return void 0===t&&(t=Cr),new Ir(e,t)}var Br=2*Math.PI;function Tr(e){return e>=0&&e<Br?e:(e%Br+Br)%Br}var Pr=Math.PI,Rr=2*Pr;function Lr(e,t,n){if(e===t)return t;var i=t-e;return Math.abs(i)<=n?t:e+(i>0?1:-1)*n}function kr(e,t,n){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var i=Tr(e.longitude),r=e.latitude,o=Tr(t.longitude),a=t.latitude;o-i>Pr?i+=Rr:i-o>Pr&&(i-=Rr);var s=n/Math.sqrt(Math.pow(o-i,2)+Math.pow(a-r,2));return s>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:i+(o-i)*s,latitude:r+(a-r)*s}}(function(){try{var e=document.createElement("canvas");return!(!window.WebGLRenderingContext||!e.getContext("webgl")&&!e.getContext("experimental-webgl"))}catch(e){return!1}})(),"undefined"!=typeof history&&"pushState"in history&&"replaceState"in history&&history;var Or=function(){var e="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node";return/android/i.test(e)||/webos/i.test(e)||/ipad|iphone|ipod/i.test(e)||/iemobile/i.test(e)||/opera mini/i.test(e)||/blackberry/i.test(e)||/windows phone/i.test(e)};function Fr(e,t){e.mode=t.mode,e.panoIndex=t.panoIndex,e.longitude=t.longitude,e.latitude=t.latitude,e.fov=t.fov,e.offset.copy(t.offset),e.distance=t.distance}function Dr(e,t){return e.panoIndex===t.panoIndex&&e.mode===t.mode&&xr(e.longitude,t.longitude,2*Math.PI)&&xr(e.latitude,t.latitude)&&xr(e.fov,t.fov)&&Mr(e.offset,t.offset)&&xr(e.distance,t.distance)}var Qr=function(e){return Number(e)};function Nr(e,t,n){var i;void 0===t&&(t=Qr),void 0===n&&(n=!1);for(var r,o=1/0,a=0,s=e;a<s.length;a++){var l=s[a],u=t(l);u<=o&&(r=(i=[l,u])[0],o=i[1])}return isFinite(o)||(o=0),n?[r,o]:r}function Vr(e){for(var t in e)return!1;return!0}function Ur(e){return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset.clone(),distance:e.distance}}var _r=function(e,t,n,i){var r,o=["","webkit","Moz","MS","ms","o"],a=t.createElement?t.createElement("div"):i,s="function",l=Math.round,u=Math.abs,c=Date.now;function h(e,t,n){return setTimeout(g(e,n),t)}function d(e,t,n){return!!Array.isArray(e)&&(p(e,n[t],n),!0)}function p(e,t,n){var r;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==i)for(r=0;r<e.length;)t.call(n,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e)}function f(t,n,i){var r="DEPRECATED METHOD: "+n+"\n"+i+" AT \n";return function(){var n=new Error("get-stack-trace"),i=n&&n.stack?n.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,i),t.apply(this,arguments)}}r="function"!=typeof Object.assign?function(e){if(e===i||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(r!==i&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var A=f((function(e,t,n){for(var r=Object.keys(t),o=0;o<r.length;)(!n||n&&e[r[o]]===i)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),v=f((function(e,t){return A(e,t,!0)}),"merge","Use `assign`.");function m(e,t,n){var i,o=t.prototype;(i=e.prototype=Object.create(o)).constructor=e,i._super=o,n&&r(i,n)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return typeof e==s?e.apply(t&&t[0]||i,t):e}function b(e,t){return e===i?t:e}function x(e,t,n){p(C(t),(function(t){e.addEventListener(t,n,!1)}))}function w(e,t,n){p(C(t),(function(t){e.removeEventListener(t,n,!1)}))}function M(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function E(e,t){return e.indexOf(t)>-1}function C(e){return e.trim().split(/\s+/g)}function I(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var i=0;i<e.length;){if(n&&e[i][n]==t||!n&&e[i]===t)return i;i++}return-1}function S(e){return Array.prototype.slice.call(e,0)}function B(e,t,n){for(var i=[],r=[],o=0;o<e.length;){var a=t?e[o][t]:e[o];I(r,a)<0&&i.push(e[o]),r[o]=a,o++}return n&&(i=t?i.sort((function(e,n){return e[t]>n[t]})):i.sort()),i}function T(e,t){for(var n,r,a=t[0].toUpperCase()+t.slice(1),s=0;s<o.length;){if((r=(n=o[s])?n+a:t)in e)return r;s++}return i}var P=1;function R(t){var n=t.ownerDocument||t;return n.defaultView||n.parentWindow||e}var L="ontouchstart"in e,k=T(e,"PointerEvent")!==i,O=L&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),F="touch",D="mouse",Q=25,N=1,V=2,U=4,_=8,z=1,q=2,H=4,j=8,K=16,G=q|H,W=j|K,X=G|W,Y=["x","y"],Z=["clientX","clientY"];function J(e,t){var n=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&n.handler(t)},this.init()}function $(e,t,n){var r=n.pointers.length,o=n.changedPointers.length,a=t&N&&r-o==0,s=t&(U|_)&&r-o==0;n.isFirst=!!a,n.isFinal=!!s,a&&(e.session={}),n.eventType=t,function(e,t){var n=e.session,r=t.pointers,o=r.length;n.firstInput||(n.firstInput=ee(t)),o>1&&!n.firstMultiple?n.firstMultiple=ee(t):1===o&&(n.firstMultiple=!1);var a=n.firstInput,s=n.firstMultiple,l=s?s.center:a.center,h=t.center=te(r);t.timeStamp=c(),t.deltaTime=t.timeStamp-a.timeStamp,t.angle=oe(l,h),t.distance=re(l,h),function(e,t){var n=t.center,i=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};t.eventType!==N&&o.eventType!==U||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=e.offsetDelta={x:n.x,y:n.y}),t.deltaX=r.x+(n.x-i.x),t.deltaY=r.y+(n.y-i.y)}(n,t),t.offsetDirection=ie(t.deltaX,t.deltaY);var d=ne(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=s?function(e,t){return re(t[0],t[1],Z)/re(e[0],e[1],Z)}(s.pointers,r):1,t.rotation=s?function(e,t){return oe(t[1],t[0],Z)+oe(e[1],e[0],Z)}(s.pointers,r):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,r,o,a,s=e.lastInterval||t,l=t.timeStamp-s.timeStamp;if(t.eventType!=_&&(l>Q||s.velocity===i)){var c=t.deltaX-s.deltaX,h=t.deltaY-s.deltaY,d=ne(l,c,h);r=d.x,o=d.y,n=u(d.x)>u(d.y)?d.x:d.y,a=ie(c,h),e.lastInterval=t}else n=s.velocity,r=s.velocityX,o=s.velocityY,a=s.direction;t.velocity=n,t.velocityX=r,t.velocityY=o,t.direction=a}(n,t);var p=e.element;M(t.srcEvent.target,p)&&(p=t.srcEvent.target),t.target=p}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function ee(e){for(var t=[],n=0;n<e.pointers.length;)t[n]={clientX:l(e.pointers[n].clientX),clientY:l(e.pointers[n].clientY)},n++;return{timeStamp:c(),pointers:t,center:te(t),deltaX:e.deltaX,deltaY:e.deltaY}}function te(e){var t=e.length;if(1===t)return{x:l(e[0].clientX),y:l(e[0].clientY)};for(var n=0,i=0,r=0;r<t;)n+=e[r].clientX,i+=e[r].clientY,r++;return{x:l(n/t),y:l(i/t)}}function ne(e,t,n){return{x:t/e||0,y:n/e||0}}function ie(e,t){return e===t?z:u(e)>=u(t)?e<0?q:H:t<0?j:K}function re(e,t,n){n||(n=Y);var i=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return Math.sqrt(i*i+r*r)}function oe(e,t,n){n||(n=Y);var i=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return 180*Math.atan2(r,i)/Math.PI}J.prototype={handler:function(){},init:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(R(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&w(this.element,this.evEl,this.domHandler),this.evTarget&&w(this.target,this.evTarget,this.domHandler),this.evWin&&w(R(this.element),this.evWin,this.domHandler)}};var ae={mousedown:N,mousemove:V,mouseup:U},se="mousedown",le="mousemove mouseup";function ue(){this.evEl=se,this.evWin=le,this.pressed=!1,J.apply(this,arguments)}m(ue,J,{handler:function(e){var t=ae[e.type];t&N&&(0===e.button||2===e.button)&&(this.pressed=!0),t&V&&1!==e.which&&(t=U),this.pressed&&(t&U&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:D,srcEvent:e}))}});var ce={pointerdown:N,pointermove:V,pointerup:U,pointercancel:_,pointerout:_},he={2:F,3:"pen",4:D,5:"kinect"},de="pointerdown",pe="pointermove pointerup pointercancel";function fe(){this.evEl=de,this.evWin=pe,J.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(de="MSPointerDown",pe="MSPointerMove MSPointerUp MSPointerCancel"),m(fe,J,{handler:function(e){var t=this.store,n=!1,i=!1,r=e.type.toLowerCase().replace("ms",""),o=ce[r],a=he[e.pointerType]||e.pointerType,s=a==F,l=I(t,e.pointerId,"pointerId");o&N&&(0===e.button||2===e.button||s)?l<0&&(t.push(e),l=t.length-1):o&(U|_)?n=!0:s||0!==e.buttons||(n=!0,i=!0,o=ce.pointerup),l<0||(i||(t[l]=e),this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:a,srcEvent:t[l]}),n&&t.splice(l,1))}});var Ae={touchstart:N,touchmove:V,touchend:U,touchcancel:_};function ve(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,J.apply(this,arguments)}function me(e,t){var n=S(e.touches),i=S(e.changedTouches);return t&(U|_)&&(n=B(n.concat(i),"identifier",!0)),[n,i]}m(ve,J,{handler:function(e){var t=Ae[e.type];if(t===N&&(this.started=!0),this.started){var n=me.call(this,e,t);t&(U|_)&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:F,srcEvent:e})}}});var ge={touchstart:N,touchmove:V,touchend:U,touchcancel:_},ye="touchstart touchmove touchend touchcancel";function be(){this.evTarget=ye,this.targetIds={},J.apply(this,arguments)}function xe(e,t){var n=S(e.touches),i=this.targetIds;if(t&(N|V)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,a=S(e.changedTouches),s=[],l=this.target;if(o=n.filter((function(e){return M(e.target,l)})),t===N)for(r=0;r<o.length;)i[o[r].identifier]=!0,r++;for(r=0;r<a.length;)i[a[r].identifier]&&s.push(a[r]),t&(U|_)&&delete i[a[r].identifier],r++;return s.length?[B(o.concat(s),"identifier",!0),s]:void 0}m(be,J,{handler:function(e){var t=ge[e.type],n=xe.call(this,e,t);n&&this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:F,srcEvent:e})}});var we=2500;function Me(){J.apply(this,arguments);var e=g(this.handler,this);this.touch=new be(this.manager,e),this.mouse=new ue(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function Ee(e,t){e&N?(this.primaryTouch=t.changedPointers[0].identifier,Ce.call(this,t)):e&(U|_)&&Ce.call(this,t)}function Ce(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var n={x:t.clientX,y:t.clientY};this.lastTouches.push(n);var i=this.lastTouches;setTimeout((function(){var e=i.indexOf(n);e>-1&&i.splice(e,1)}),we)}}function Ie(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var r=this.lastTouches[i],o=Math.abs(t-r.x),a=Math.abs(n-r.y);if(o<=25&&a<=25)return!0}return!1}m(Me,J,{handler:function(e,t,n){var i=n.pointerType==F,r=n.pointerType==D;if(!(r&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(i)Ee.call(this,t,n);else if(r&&Ie.call(this,n))return;this.callback(e,t,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Se=a?T(a.style,"touchAction"):i,Be=Se!==i,Te="compute",Pe="auto",Re="manipulation",Le="none",ke="pan-x",Oe="pan-y",Fe=function(){if(!Be)return!1;var t={},n=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(i){t[i]=!n||e.CSS.supports("touch-action",i)})),t}();function De(e,t){this.manager=e,this.set(t)}De.prototype={set:function(e){e==Te&&(e=this.compute()),Be&&this.manager.element.style&&Fe[e]&&(this.manager.element.style[Se]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return p(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(E(e,Le))return Le;var t=E(e,ke),n=E(e,Oe);return t&&n?Le:t||n?t?ke:Oe:E(e,Re)?Re:Pe}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,n=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var i=this.actions,r=E(i,Le)&&!Fe[Le],o=E(i,Oe)&&!Fe[Oe],a=E(i,ke)&&!Fe[ke];if(r){var s=1===e.pointers.length,l=e.distance<2,u=e.deltaTime<250;if(s&&l&&u)return}if(!a||!o)return r||o&&n&G||a&&n&W?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Qe=1,Ne=2,Ve=4,Ue=8,_e=Ue,ze=16,qe=32;function He(e){this.options=r({},this.defaults,e||{}),this.id=P++,this.manager=null,this.options.enable=b(this.options.enable,!0),this.state=Qe,this.simultaneous={},this.requireFail=[]}function je(e){return e&ze?"cancel":e&Ue?"end":e&Ve?"move":e&Ne?"start":""}function Ke(e){return e==K?"down":e==j?"up":e==q?"left":e==H?"right":""}function Ge(e,t){var n=t.manager;return n?n.get(e):e}function We(){He.apply(this,arguments)}function Xe(){We.apply(this,arguments),this.pX=null,this.pY=null}function Ye(){We.apply(this,arguments)}function Ze(){He.apply(this,arguments),this._timer=null,this._input=null}function Je(){We.apply(this,arguments)}function $e(){We.apply(this,arguments)}function et(){He.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function tt(e,t){return(t=t||{}).recognizers=b(t.recognizers,tt.defaults.preset),new nt(e,t)}function nt(e,t){this.options=r({},tt.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new(this.options.inputClass||(k?fe:O?be:L?Me:ue))(this,$),this.touchAction=new De(this,this.options.touchAction),it(this,!0),p(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function it(e,t){var n,i=e.element;i.style&&(p(e.options.cssProps,(function(r,o){n=T(i.style,o),t?(e.oldCssProps[n]=i.style[n],i.style[n]=r):i.style[n]=e.oldCssProps[n]||""})),t||(e.oldCssProps={}))}return He.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(d(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ge(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return d(e,"dropRecognizeWith",this)||(e=Ge(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(d(e,"requireFailure",this))return this;var t=this.requireFail;return-1===I(t,e=Ge(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(d(e,"dropRequireFailure",this))return this;e=Ge(e,this);var t=I(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function i(n){t.manager.emit(n,e)}n<Ue&&i(t.options.event+je(n)),i(t.options.event),e.additionalEvent&&i(e.additionalEvent),n>=Ue&&i(t.options.event+je(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=qe},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(qe|Qe)))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=qe);this.state&(_e|ze|qe)&&(this.state=Qe),this.state=this.process(t),this.state&(Ne|Ve|Ue|ze)&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},m(We,He,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,n=e.eventType,i=t&(Ne|Ve),r=this.attrTest(e);return i&&(n&_||!r)?t|ze:i||r?n&U?t|Ue:t&Ne?t|Ve:Ne:qe}}),m(Xe,We,{defaults:{event:"pan",threshold:10,pointers:1,direction:X},getTouchAction:function(){var e=this.options.direction,t=[];return e&G&&t.push(Oe),e&W&&t.push(ke),t},directionTest:function(e){var t=this.options,n=!0,i=e.distance,r=e.direction,o=e.deltaX,a=e.deltaY;return r&t.direction||(t.direction&G?(r=0===o?z:o<0?q:H,n=o!=this.pX,i=Math.abs(e.deltaX)):(r=0===a?z:a<0?j:K,n=a!=this.pY,i=Math.abs(e.deltaY))),e.direction=r,n&&i>t.threshold&&r&t.direction},attrTest:function(e){return We.prototype.attrTest.call(this,e)&&(this.state&Ne||!(this.state&Ne)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Ke(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),m(Ye,We,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Le]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Ne)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),m(Ze,He,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Pe]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!i||!n||e.eventType&(U|_)&&!r)this.reset();else if(e.eventType&N)this.reset(),this._timer=h((function(){this.state=_e,this.tryEmit()}),t.time,this);else if(e.eventType&U)return _e;return qe},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===_e&&(e&&e.eventType&U?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),m(Je,We,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Le]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Ne)}}),m($e,We,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|W,pointers:1},getTouchAction:function(){return Xe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return n&(G|W)?t=e.overallVelocity:n&G?t=e.overallVelocityX:n&W&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&e.eventType&U},emit:function(e){var t=Ke(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),m(et,He,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Re]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,i=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),e.eventType&N&&0===this.count)return this.failTimeout();if(i&&r&&n){if(e.eventType!=U)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||re(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&o?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=h((function(){this.state=_e,this.tryEmit()}),t.interval,this),Ne):_e}return qe},failTimeout:function(){return this._timer=h((function(){this.state=qe}),this.options.interval,this),qe},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==_e&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),tt.VERSION="2.0.7",tt.defaults={domEvents:!1,touchAction:Te,enable:!0,inputTarget:null,inputClass:null,preset:[[Je,{enable:!1}],[Ye,{enable:!1},["rotate"]],[$e,{direction:G}],[Xe,{direction:G},["swipe"]],[et],[et,{event:"doubletap",taps:2},["tap"]],[Ze]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},nt.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var n;this.touchAction.preventDefaults(e);var i=this.recognizers,r=t.curRecognizer;(!r||r&&r.state&_e)&&(r=t.curRecognizer=null);for(var o=0;o<i.length;)n=i[o],2===t.stopped||r&&n!=r&&!n.canRecognizeWith(r)?n.reset():n.recognize(e),!r&&n.state&(Ne|Ve|Ue)&&(r=t.curRecognizer=n),o++}},get:function(e){if(e instanceof He)return e;for(var t=this.recognizers,n=0;n<t.length;n++)if(t[n].options.event==e)return t[n];return null},add:function(e){if(d(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(d(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,n=I(t,e);-1!==n&&(t.splice(n,1),this.touchAction.update())}return this},on:function(e,t){if(e!==i&&t!==i){var n=this.handlers;return p(C(e),(function(e){n[e]=n[e]||[],n[e].push(t)})),this}},off:function(e,t){if(e!==i){var n=this.handlers;return p(C(e),(function(e){t?n[e]&&n[e].splice(I(n[e],t),1):delete n[e]})),this}},emit:function(e,n){this.options.domEvents&&function(e,n){var i=t.createEvent("Event");i.initEvent(e,!0,!0),i.gesture=n,n.target.dispatchEvent(i)}(e,n);var i=this.handlers[e]&&this.handlers[e].slice();if(i&&i.length){n.type=e,n.preventDefault=function(){n.srcEvent.preventDefault()};for(var r=0;r<i.length;)i[r](n),r++}},destroy:function(){this.element&&it(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(tt,{INPUT_START:N,INPUT_MOVE:V,INPUT_END:U,INPUT_CANCEL:_,STATE_POSSIBLE:Qe,STATE_BEGAN:Ne,STATE_CHANGED:Ve,STATE_ENDED:Ue,STATE_RECOGNIZED:_e,STATE_CANCELLED:ze,STATE_FAILED:qe,DIRECTION_NONE:z,DIRECTION_LEFT:q,DIRECTION_RIGHT:H,DIRECTION_UP:j,DIRECTION_DOWN:K,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:W,DIRECTION_ALL:X,Manager:nt,Input:J,TouchAction:De,TouchInput:be,MouseInput:ue,PointerEventInput:fe,TouchMouseInput:Me,SingleTouchInput:ve,Recognizer:He,AttrRecognizer:We,Tap:et,Pan:Xe,Swipe:$e,Pinch:Ye,Rotate:Je,Press:Ze,on:x,off:w,each:p,merge:v,extend:A,assign:r,inherit:m,bindFn:g,prefixed:T}),tt}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});const zr=_r;function qr(t,n,i){var r=n.getBoundingClientRect(),o=r.top,a=r.left,s=r.width,l=r.height;return i&&(a+=s*i.left,o+=l*(1-i.bottom-i.height),s*=i.width,l*=i.height),new e.Vector2((t.x-a)/s*2-1,-(t.y-o)/l*2+1)}var Hr=new e.OrthographicCamera(-1,1,1,-1,0,1),jr=new e.BufferGeometry;jr.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),jr.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));var Kr=new e.Mesh(jr),Gr=new e.Scene;Gr.add(Kr);var Wr,Xr=function(){function t(t,n){var i;this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:null!==(i=n.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:n.fragment,uniforms:Object.assign({inputBuffer:new e.Uniform(null)},n.uniforms),defines:Object.assign({},n.defines),blending:e.NoBlending,depthWrite:!1,depthTest:!1})}return t.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Kr.material;this.material.uniforms.inputBuffer.value=e.texture,Kr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Gr,Hr),this.renderer.setRenderTarget(n),Kr.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),Yr=function(){function t(t){this.renderer=t,this.material=new e.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new e.Uniform(new e.Vector3)}),blending:e.NoBlending,depthWrite:!1,depthTest:!1})}return t.prototype.render=function(e,t){var n=this.renderer.getRenderTarget(),i=Kr.material;this.material.uniforms.inputValue.value.copy(e),Kr.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(Gr,Hr),this.renderer.setRenderTarget(n),Kr.material=i},t.prototype.dispose=function(){this.material.dispose()},t}(),Zr=function(e){function t(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return te(t,e),t}(Xr),Jr=function(){function e(e){this.enable=!0,this.renderer=e,this.copyPass=new Zr(this.renderer)}return e.prototype.render=function(e,t){this.copyPass.render(e,t)},e.prototype.dispose=function(){this.copyPass.dispose()},e}(),$r=function(e){function t(n){var i,r=this;r=e.call(this)||this;var o=t.parseArgs(n);return r.pending=new Set,r.userAction=o.initial[3],r.destroyed=!1,r.ident=o.ident,r.scene=o.scene,r.xrCustomObjectsScene=o.xrCustomObjectsScene,r.helper=o.helper,r.boundingMesh=o.boundingMesh,r.camera=o.camera,r.renderer=o.renderer,r.scissor=o.scissor,r.element=o.element,r.model=o.model,r.enableIOSEDR=null!==(i=o.enableIOSEDR)&&void 0!==i&&i,r.work=o.work,r.imageOptions=o.imageOptions,r.videoTexture=o.videoTexture,r.networkSubscribe=o.networkSubscribe,r.requestProxy=o.requestProxy,r.needsRender=!0,r.maxFov=120,r.minFov=40,r.maxLatitude=+Math.PI/2,r.minLatitude=-Math.PI/2,r.cameraMotion=new lr({longitude:{value:r.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:r.camera.pose.latitude,fov:r.camera.pose.fov}),r.eventUnbinds=[o.element].concat(o.extraElements||[]).map((function(e){return r.bindEvents(e)})),r.pending.add("init-animation"),ke.shared.add((function(){r.initAnimation.apply(r,o.initial).then((function(){r.pending.delete("init-animation")}))}),!0),r}return te(t,e),t.parseArgs=function(e){return ne({},e)},t.initAnimationEndState=function(e){var t=this.parseArgs(e);return{longitude:t.camera.pose.longitude,latitude:t.camera.pose.latitude,fov:t.camera.pose.fov,offset:t.camera.pose.offset.clone(),distance:t.camera.pose.distance}},t.prototype.destroy=function(){var e;this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var t=0,n=this.eventUnbinds;t<n.length;t++)(0,n[t])();this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,null===(e=this.pressState)||void 0===e||e.stop(),delete this.pressState},t.prototype.isReady=function(){return 0===this.pending.size&&!0===this.cameraMotion.ended},t.prototype.bindExtraElement=function(e){for(var t=0,n=this.eventUnbinds;t<n.length;t++)if(n[t].element===e)return;this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=[],n=0,i=this.eventUnbinds;n<i.length;n++){var r=i[n];r.element===e?r():t.push(r)}this.eventUnbinds=t},t.prototype.updateRenderSize=function(){this.needsRender=!0},t.prototype.updateModel=function(e){this.model=e,this.needsRender=!0},t.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.userAction=r,!1},t.prototype.updateTime=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];if(!this.destroyed){var r={};this.cameraMotion.ended&&(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Vr(r)&&this.setCamera(r)}},t.prototype.render=function(){this.renderer.render(this.scene,this.camera)},t.prototype.postProcessing=function(e,t){this.destroyed||(this.copyEffect||(this.copyEffect=new Jr(this.renderer)),this.copyEffect.render(e,t))},t.prototype.updateCamera=function(e,t,n){return this.userAction=n,this.cameraMotion.set(e,t).catch(le)},t.prototype.updateCameraWithKeyframes=function(e,t,n){return this.userAction=n,this.cameraMotion.setKeyframes(e,t)},t.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}},t.prototype.moveToPano=function(e,t,n){void 0===t&&(t={}),this.userAction=n;var i={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};t.moveStartCallback&&t.moveStartCallback(e,i),this.emit("moveToPano",e,this.userAction),this.emit("panoWillArrive",e,i,this.userAction),this.emit("panoArrived",e,i,this.userAction),t.moveEndCallback&&t.moveEndCallback(e,i)},t.prototype.initAnimation=function(e,t,n,i){return this.userAction=i,Promise.resolve()},t.prototype.setCamera=function(e){var t,n,i,r,o;void 0===e&&(e={});var a=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,s=null!==(n=e.latitude)&&void 0!==n?n:this.camera.pose.latitude,l=null!==(i=e.fov)&&void 0!==i?i:this.camera.pose.fov,u=null!==(r=e.distance)&&void 0!==r?r:this.camera.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=this.camera.position.clone(),d=wr(a,this.camera.pose.longitude,2*Math.PI)||wr(s,this.camera.pose.latitude),p=wr(l,this.camera.pose.fov),f=wr(u,this.camera.pose.distance),A=Er(c,this.camera.pose.offset);this.camera.setFromPose({longitude:a,latitude:s,fov:l,distance:u,offset:c});var v=Er(h,this.camera.position);p&&this.emit("cameraFovUpdate",l,this.userAction),d&&this.emit("cameraDirectionUpdate",{longitude:a,latitude:s},this.userAction),v&&this.emit("cameraPositionUpdate",this.camera.position.clone(),this.userAction),(p||d||A||f)&&this.emit("cameraUpdate",{longitude:a,latitude:s,fov:l,offset:c,distance:u},this.userAction),this.needsRender=!0},t.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","pan",i,e.isFinal)||this.emit("gesture","pan",i,e.isFinal)}},t.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","tap",t,!0)||this.emit("gesture","tap",t,!0)},t.prototype.onPressGesture=function(e,t){var n,i=[e];if(this.emit("wantsGesture","press",i,t))return null===(n=this.pressState)||void 0===n||n.stop(),void delete this.pressState;this.emit("gesture","press",i,t)},t.prototype.onPinchGesture=function(e){var t=e.pointers.map((function(e){return hn(e,["x","y"])}));this.emit("wantsGesture","pinch",t,e.isFinal)||this.emit("gesture","pinch",t,e.isFinal)},t.prototype.onMouseWheel=function(e){var t=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,n=[{x:e.clientX,y:e.clientY,delta:t}];this.emit("wantsGesture","mouseWheel",n,!1)||this.emit("gesture","mouseWheel",n,!1)},t.prototype.onMouseMove=function(e){},t.prototype.onMouseOut=function(){},t.prototype.relativeClientPosition=function(e){return qr(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,n=function(e){var n=qr(e,t.element,t.scissor);return!(Math.abs(n.x)>1||Math.abs(n.y)>1)},i=new zr.Manager(e),r=function(e){return e.session.firstInput||null};i.add(new zr.Pan({threshold:10,pointers:0})),i.add(new zr.Tap({interval:410})),i.add(new zr.Pinch({threshold:0,pointers:2})),i.on("panstart pan",(function(e){var o=r(i);o&&!n(o.center)||(t.onPanGesture(e),f())})),i.on("tap",(function(e){if("mouse"!==e.pointerType||0===e.srcEvent.button){var o=r(i);o&&!n(o.center)||(t.onTapGesture(e),f())}})),i.on("pinchstart pinch pinchend",(function(e){var o=r(i);o&&!n(o.center)||(t.onPinchGesture(e),f())}));var o=null,a=null,s=function(e,t,n){var i="pinchend"===e?t:t-n.deltaY/280;return{type:e,target:n.target,pointerType:"mouse",srcEvent:n,pointers:[{x:n.clientX,y:n.clientY}],isFirst:"pinchstart"===e,isFinal:"pinchend"===e,scale:Gt(i,.1,10),center:{x:n.clientX,y:n.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},l=function(e){var i,r={x:e.clientX,y:e.clientY};if(n(r)){if(e.preventDefault(),e.ctrlKey){var l=null!==(i=null==o?void 0:o.prevInput.scale)&&void 0!==i?i:1,u=s(o?"pinch":"pinchstart",l,e);null===o?o={firstInput:u,prevInput:u}:o.prevInput=u,t.onPinchGesture(u),null!==a&&window.clearTimeout(a),a=window.setTimeout((function(){var n;a=null;var i=null!==(n=null==o?void 0:o.prevInput.scale)&&void 0!==n?n:1,r=s("pinchend",i,e);o=null,t.onPinchGesture(r)}),200)}else t.onMouseWheel(e);f()}},u=function(e){if(!Or()){var i={x:e.clientX,y:e.clientY};n(i)?(t.onMouseMove(e),t.pressState&&Math.abs(e.clientX-t.pressState.x)>10&&Math.abs(e.clientY-t.pressState.y)>10&&f()):t.onMouseOut()}},c=function(){t.onMouseOut(),f()},h=function(e,i){if(n(e)){t.pressState={x:e.x,y:e.y,time:t.pressState?t.pressState.time:i,stop:le};var r=i-t.pressState.time;t.onPressGesture({x:e.x,y:e.y,delta:r},!1),t.pressState&&(t.pressState.stop=ke.shared.add((function(t){return h({x:e.x,y:e.y},t)}),!0,1))}else f()},d=function(e){f(),e.touches.length>1||e.changedTouches.length<=0||h({x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY},ce())},p=function(e){f(),h({x:e.clientX,y:e.clientY},ce())},f=function(){var e;if(t.pressState){var n=ce()-t.pressState.time;t.onPressGesture({x:t.pressState.x,y:t.pressState.y,delta:n},!0),null===(e=t.pressState)||void 0===e||e.stop(),delete t.pressState}},A=null,v=function(e){var t,n="pinch",i=!1,r=!1;switch(e.type){case"gesturestart":n="pinchstart",i=!0;break;case"gestureend":n="pinchend",r=!0}return{type:n,target:e.target,pointerType:"mouse",srcEvent:e,pointers:[{x:e.clientX,y:e.clientY}],isFirst:i,isFinal:r,scale:null!==(t=e.scale)&&void 0!==t?t:1,center:{x:e.clientX,y:e.clientY},velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0}},m=function(e){if(e.preventDefault(),!Or()){var i=v(e),r=(A={firstInput:i}).firstInput;r&&!n(r.center)||t.onPinchGesture(i)}},g=function(e){if(e.preventDefault(),!Or()&&A){var i=v(e),r=A.firstInput;r&&!n(r.center)||t.onPinchGesture(i)}},y=function(e){if(e.preventDefault(),!Or()&&A){var i=v(e),r=A.firstInput;A=null,r&&!n(r.center)||t.onPinchGesture(i)}},b=function(t){if(t&&"function"==typeof t.preventDefault&&t.currentTarget===e&&t.preventDefault(),"function"==typeof getSelection){var n=getSelection();n&&n.focusNode&&(n.removeAllRanges&&n.removeAllRanges(),n.empty&&n.empty())}};return e.addEventListener("wheel",l,{passive:!1}),e.addEventListener("mousemove",u,!1),e.addEventListener("mouseout",c,!1),e.addEventListener("touchstart",d,{passive:!0}),e.addEventListener("touchend",f,!1),e.addEventListener("touchcancel",f,!1),e.addEventListener("mousedown",p,!1),e.addEventListener("mouseup",f,!1),e.addEventListener("gesturestart",m,{passive:!1}),e.addEventListener("gesturechange",g,{passive:!1}),e.addEventListener("gestureend",y,{passive:!1}),e.addEventListener("touchstart",b,{passive:!1}),e.addEventListener("contextmenu",b,!1),Object.assign((function(){i.destroy(),e.removeEventListener("wheel",l,!1),e.removeEventListener("mousemove",u,!1),e.removeEventListener("mouseout",c,!1),e.removeEventListener("touchstart",d,!1),e.removeEventListener("touchend",f,!1),e.removeEventListener("touchcancel",f,!1),e.removeEventListener("mousedown",p,!1),e.removeEventListener("mouseup",f,!1),e.removeEventListener("gesturestart",m,!1),e.removeEventListener("gesturechange",g,!1),e.removeEventListener("gestureend",y,!1),e.removeEventListener("touchstart",b,!1),e.removeEventListener("contextmenu",b,!1)}),{element:e})},t}(se),eo=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultFov=a.defaultFov,o.maxFov=a.maxFov,o.minFov=a.minFov,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o.currentTapPanoIndex=-1,o.intersectMeshCreator=a.intersectMeshCreator,o.intersectMesh=o.intersectMeshCreator(),o.intersectMesh.name="intersect",o.intersectMesh.visible=!1,o.helper.add(o.intersectMesh),o}return te(n,t),n.distanceFromModel=function(e,t,n){var i=e.bounding,r=Math.pow(Math.pow(i.max.x-i.min.x+1,2)+Math.pow(i.max.y-i.min.y+1,2)+Math.pow(i.max.z-i.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return n<1&&(o/=n),isNaN(o)?r:o},n.parseArgs=function(e){var n,i,r,o,a,s,l,u,c=t.parseArgs.call(this,e);return ne(ne({},c),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultFov:null!==(r=e.defaultFov)&&void 0!==r?r:80,maxFov:null!==(o=e.maxFov)&&void 0!==o?o:120,minFov:null!==(a=e.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=e.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=e.minLatitude)&&void 0!==l?l:-Math.PI/2,intersectMeshCreator:null!==(u=e.intersectMeshCreator)&&void 0!==u?u:function(){return new br}})},n.initAnimationEndPose=function(t){var i,r,o,a=this.parseArgs(t),s=t.initial[1];return{longitude:null!==(i=s.longitude)&&void 0!==i?i:a.defaultLongitude,latitude:Gt(null!==(r=s.latitude)&&void 0!==r?r:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:null!==(o=s.fov)&&void 0!==o?o:a.defaultFov,offset:t.model.bounding.getCenter(new e.Vector3),distance:n.distanceFromModel(a.model,a.defaultFov,a.camera.aspect)}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},n.prototype.isReady=function(){return!1!==this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.updateCamera(n,null!=i?i:0,r),!0},n.prototype.updateModel=function(i){t.prototype.updateModel.call(this,i);var r=i.bounding.getCenter(new e.Vector3),o=n.distanceFromModel(i,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:o},0).catch(le)},n.prototype.updateTime=function(t,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(!this.destroyed){var o={},a={};this.locationMotion.ended||(this.locationMotion.update(t),o.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,a.distance=this.locationMotion.value.distance,a.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(t),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),Vr(o)||this.model.setMaterial(o),Vr(a)||this.setCamera(a)}},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,offset:new e.Vector3(n.value.x,n.value.y,n.value.z),distance:n.value.distance}},n.prototype.initAnimation=function(t,i,r,o){var a=this;return this.destroyed?Promise.resolve():new Promise((function(s){var l,u,c;a.userAction=o;var h={longitude:null!==(l=i.longitude)&&void 0!==l?l:a.defaultLongitude,latitude:Gt(null!==(u=i.latitude)&&void 0!==u?u:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:Gt(null!==(c=i.fov)&&void 0!==c?c:a.defaultFov,a.minFov,a.maxFov),offset:a.model.bounding.getCenter(new e.Vector3),distance:n.distanceFromModel(a.model,a.defaultFov,a.camera.aspect)},d=hn(h,["longitude","latitude","fov"]),p={x:h.offset.x,y:h.offset.y,z:h.offset.z,distance:h.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:h.distance};a.emit("initAnimationWillStart",t,h,a.userAction),a.cameraMotion.set(d,r).catch(le),a.locationMotion.set(p,r).then((function(){a.emit("initAnimationEnded",t,h,a.userAction)}),(function(e){var n=Ur(a.camera.pose);a.emit("initAnimationEnded",t,n,a.userAction)})).then((function(){s()}))}))},n.prototype.updateRenderSize=function(){this.locationMotion.set({distance:n.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),n=this.model.intersectRaycaster(e)[0];if(!n)return null;var i=Nr(t,(function(e){return e.standingPosition.distanceTo(n.point)}),!0),r=i[0];return i[1]<10?r.panoIndex:null},n.prototype.coordinatesForOffset=function(t){var n=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(n.x*this.scissor.width),latitude:2*t.y/(n.y*this.scissor.height)}},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.994008,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",i,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.relativeClientPosition(e.center),a=this.camera.pose.latitude<Math.PI/6||o.y<0?-1:1;r.x*=a;var s=this.coordinatesForOffset(r),l=Tr(this.cameraMotion.value.longitude+s.longitude),u=Gt(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(u=this.cameraMotion.value.latitude);var c={longitude:l,latitude:u,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",c,e.isFinal)&&(this.emit("gesture","pan",i,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh(),this.cameraMotion.set({longitude:c.longitude,latitude:c.latitude},0).catch(le),e.isFinal&&!this.emit("wantsInteriaPan",c))){this.interiaMovement=!0;var h=e.velocityX*a,d=e.velocityY;this.requestInteriaMovement(this.coordinatesForOffset({x:h,y:d}),0)}}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(i=!0,delete this.panState,delete this.pinchState),void 0!==n){var r=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,i)){var o=Gt(n/e.scale,this.minFov,this.maxFov);this.emit("wantsPinchGesture",e.scale,o,i)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,i),this.emit("pinchGesture",e.scale,o,i),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseMove=function(t){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var n=this.relativeClientPosition({x:t.clientX,y:t.clientY}),i=new e.Raycaster;if(i.setFromCamera(n,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:t.clientX,clientY:t.clientY}}}},n.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=this.minFov,o=this.maxFov,a=Gt(this.camera.fov-n,r,o);this.emit("wantsMouseWheel",n,a,!1)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,a,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,a,!0)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,a,!0))}),200)})}},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.getForwardPanoIndexOrNot(o);if(!Qi(a)){this.emit("panoSelected",a);var s={longitude:this.camera.pose.longitude,latitude:0};this.currentTapPanoIndex=a,this.preloadPano(a).then((function(e){n.currentTapPanoIndex===e&&n.emit("wantsMoveToPano",e,s,!0)}))}}}},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n.prototype.preloadPano=function(e,t){var n=this;void 0===t&&(t=le);var i=this.work.observers[e],r=this.work.allowHosts;return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ne({key:"pano.".concat(e,".").concat(t)},hn(n.imageOptions,["size","format","quality","mappings"])),a=i.images[t];return Te(n.imageOptions.transform?n.imageOptions.transform(a,o):Ve(a,o),{allowHosts:r,requestProxy:n.requestProxy,networkSubscribe:n.networkSubscribe})}))).then((function(){return t(e),e}))},n.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},n}($r),to=0,no=Math.PI/2,io=0,ro=0,oo=Math.PI/2,ao=0,so=Math.PI,lo=0,uo=1.5*Math.PI,co=0,ho=function(t){function n(e){var i=n.parseArgs(e);return t.call(this,i)||this}return te(n,t),n.parseArgs=function(e){var n=[e.initial[0],ne(ne({},e.initial[1]),{longitude:0,latitude:Math.PI/2}),e.initial[2],e.initial[3]],i=ne(ne({},e),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return t.parseArgs.call(this,i)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.updateModel=function(t){this.model=t,this.needsRender=!0;var n=t.bounding.getCenter(new e.Vector3);this.locationMotion.set({x:n.x,y:n.y,z:n.z,distance:eo.distanceFromModel(this.model,this.defaultFov,this.camera.aspect)},0).catch(le)},n.prototype.initAnimation=function(t,n,i,r){var o=this;return this.destroyed?Promise.resolve():new Promise((function(a){var s;o.userAction=r;var l={longitude:0,latitude:Math.PI/2,fov:Gt(null!==(s=n.fov)&&void 0!==s?s:o.defaultFov,o.minFov,o.maxFov),offset:o.model.bounding.getCenter(new e.Vector3),distance:eo.distanceFromModel(o.model,o.defaultFov,o.camera.aspect)},u=hn(l,["longitude","latitude","fov"]),c={x:l.offset.x,y:l.offset.y,z:l.offset.z,distance:l.distance,modelAlpha:1,perspToOrtho:1,orthoDistance:l.distance};o.cameraMotion.set(u,i).catch(le),o.locationMotion.set(c,i).then((function(){o.emit("initAnimationEnded",t,l,o.userAction)}),(function(e){var n=Ur(o.camera.pose);o.emit("initAnimationEnded",t,n,o.userAction)})).then((function(){a()}))}))},n.prototype.getZoomOffsetFromFov=function(t,n,i){var r=this.camera.getDirection(new e.Vector3),o=Math.tan(i/2*Math.PI/180),a=Math.tan(n.fov/2*Math.PI/180),s=(a-o)/a,l=new e.Raycaster;l.setFromCamera(t,n);var u=l.ray.direction,c=u.angleTo(r),h=eo.distanceFromModel(this.model,this.defaultFov,this.camera.aspect),d=h*Math.tan(c),p=u.clone().setLength(h*Math.cos(c)).projectOnPlane(r),f=p.length(),A=s/f*p.x*d,v=s/f*p.z*d,m=s/f*p.y*d;return new e.Vector3(A,m,v)},n.prototype.requestInteriaMovement=function(e,t){},n.prototype.onPanGesture=function(t){var n=this.panState,i=t.pointers.length;if(t.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:i,x:t.center.x,y:t.center.y},void 0!==n&&n.pointerLength===i){var r=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,t.isFinal)){var o=t.center.x-n.x,a=t.center.y-n.y,s=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=this.model.bounding,u=l.getCenter(new e.Vector3),c=(l.max.x-l.min.x)/this.defaultFov*this.cameraMotion.value.fov,h=(l.max.y-l.min.y)/this.defaultFov*this.cameraMotion.value.fov,d=(l.max.z-l.min.z)/this.defaultFov*this.cameraMotion.value.fov,p={left:new e.Vector3,up:new e.Vector3,cameraDirection:"y"};this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?(p.left.set(1,0,0),p.up.set(0,0,-1),p.cameraDirection="y"):this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro?(p.left.set(1,0,0),p.up.set(0,1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?(p.left.set(1,0,0),p.up.set(0,-1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co?(p.left.set(0,0,-1),p.up.set(0,-1,0),p.cameraDirection="x"):this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao&&(p.left.set(0,0,-1),p.up.set(0,1,0),p.cameraDirection="x");var f=(this.camera.position[p.cameraDirection]-l.min[p.cameraDirection])*Math.tan(this.camera.fov/2*Math.PI/180),A=this.renderer.getSize(new e.Vector2);s.add(function(t,n){var i=(new e.Vector3).copy(n);return i.multiplyScalar(-t),i}(2*o*f/A.y,p.left)),s.add(function(t,n){var i=(new e.Vector3).copy(n);return i.multiplyScalar(t),i}(2*a*f/A.y,p.up)),s.x=Gt(s.x,u.x-c,u.x+c),s.y=Gt(s.y,u.y-h,u.y+h),s.z=Gt(s.z,u.z-d,u.z+d);var v={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:s,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",v,t.isFinal)||(this.emit("gesture","pan",r,t.isFinal),this.emit("panGesture",v,t.isFinal),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le))}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(i=!0,delete this.pinchState),void 0!==n){var r=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",r,i)){var o=Gt(n/e.scale,this.minFov,this.maxFov),a=this.relativeClientPosition({x:e.center.x,y:e.center.y}),s=this.getZoomOffsetFromFov(a,this.camera,o);this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?s.y=0:this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro||this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?s.z=0:(this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co||this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao)&&(s.x=0);var l=this.camera.pose.offset.clone().add(s);this.emit("wantsPinchGesture",e.scale,o,i)||this.emit("wantsChangeCameraFov",o)||(this.emit("gesture","pinch",r,i),this.emit("pinchGesture",e.scale,o,i),this.userAction=!0,this.locationMotion.set({x:l.x,y:l.y,z:l.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:o},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.cameraMotion.value.fov-n,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.clientX,y:e.clientY}),a=this.getZoomOffsetFromFov(o,this.camera,r);this.cameraMotion.value.longitude===to&&this.cameraMotion.value.latitude===no?a.y=0:this.cameraMotion.value.longitude===io&&this.cameraMotion.value.latitude===ro||this.cameraMotion.value.longitude===so&&this.cameraMotion.value.latitude===lo?a.z=0:(this.cameraMotion.value.longitude===uo&&this.cameraMotion.value.latitude===co||this.cameraMotion.value.longitude===oo&&this.cameraMotion.value.latitude===ao)&&(a.x=0);var s=this.camera.pose.offset.clone().add(a);this.emit("wantsMouseWheel",n,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,r,!1),this.userAction=!0,this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(le),this.cameraMotion.set({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},n}(eo),po=function(t){function n(e){var i=this,r=n.parseArgs(e);return(i=t.call(this,r)||this).defaultLongitude=r.defaultLongitude,i.defaultLatitude=r.defaultLongitude,i.defaultFov=r.defaultFov,i.maxFov=r.maxFov,i.minFov=r.minFov,i.maxLatitude=r.maxLatitude,i.minLatitude=r.minLatitude,i.moveSpeed=r.moveSpeed,i.intersectMeshCreator=r.intersectMeshCreator,i.interiaMovement=!1,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s,l,u,c,h=t.parseArgs.call(this,e);return ne(ne({},h),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:0,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:0,defaultFov:null!==(r=e.defaultFov)&&void 0!==r?r:90,maxFov:null!==(o=e.maxFov)&&void 0!==o?o:120,minFov:null!==(a=e.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=e.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=e.minLatitude)&&void 0!==l?l:-Math.PI/2,moveSpeed:null!==(u=e.moveSpeed)&&void 0!==u?u:3.2,intersectMeshCreator:null!==(c=e.intersectMeshCreator)&&void 0!==c?c:function(){return new br}})},n.initAnimationEndPose=function(e){var t,n,i,r=this.parseArgs(e),o=e.initial,a=o[0],s=o[1];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:Gt(null!==(n=s.latitude)&&void 0!==n?n:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(i=s.fov)&&void 0!==i?i:r.defaultFov,r.minFov,r.maxFov),offset:r.work.observers[a].position.clone(),distance:0}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.interiaMovement=!1,this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose()),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.mouseMoveState,delete this.panState},n.prototype.isReady=function(){return!this.interiaMovement&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&t.prototype.isReady.call(this)},n.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Gt(t,2,5)/this.moveSpeed*1e3}},n.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},n.prototype.coordinatesForOffset=function(t){var n=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(r.x*this.scissor.width)*n/95*i,latitude:-2*t.y/(r.y*this.scissor.height)*n/95}},n.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,n=e.latitude,i=e.fov,r=[{progress:0,value:{longitude:t,latitude:n,fov:i}},{progress:.5,value:{longitude:t,latitude:n,fov:.98*i}},{progress:1,value:{longitude:t,latitude:n,fov:i}}];this.cameraMotion.setKeyframes(r,500).catch(le)},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.98604,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n.prototype.onPanGesture=function(e){var t=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:n,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===n){var i=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",i,e.isFinal)){var r={x:e.center.x-t.x,y:e.center.y-t.y},o=this.coordinatesForOffset(r),a=Tr(this.cameraMotion.value.longitude+o.longitude),s=Gt(this.cameraMotion.value.latitude+o.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(s=this.cameraMotion.value.latitude);var l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};if(!this.emit("wantsPanGesture",l,e.isFinal)){this.emit("gesture","pan",i,e.isFinal),this.emit("panGesture",l,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh();var u={longitude:l.longitude,latitude:l.latitude,fov:l.fov};if(this.cameraMotion.set(u,0).catch(le),e.isFinal&&!this.emit("wantsInteriaPan",l)){this.interiaMovement=!0;var c=e.velocityX,h=.6*e.velocityY;Math.abs(h)>.5&&Math.abs(c)<.5&&(c=0),this.requestInteriaMovement(this.coordinatesForOffset({x:c,y:h}),0)}}}}},n.prototype.onPinchGesture=function(e){var t,n=null===(t=this.pinchState)||void 0===t?void 0:t.fov,i=e.scale,r=!1;if("pinchstart"!==e.type){if("pinchend"===e.type&&(r=!0,delete this.pinchState),void 0!==n){var o=e.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",o,r)){var a=Gt(n/i,this.minFov,this.maxFov);this.emit("wantsPinchGesture",i,a,r)||this.emit("wantsChangeCameraFov",a)||(this.emit("gesture","pinch",o,r),this.emit("pinchGesture",i,a,r),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:a},0).catch(le),this.onPanGesture(e))}}}else this.pinchState={fov:this.cameraMotion.value.fov}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.cameraMotion.value.fov-n,this.minFov,this.maxFov);this.emit("wantsMouseWheel",n,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,r,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},n.prototype.onMouseMove=function(t){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var n=this.relativeClientPosition({x:t.clientX,y:t.clientY}),i=new e.Raycaster;if(i.setFromCamera(n,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var r=this.model.intersectRaycaster(i)[0];if(r&&r.face){var o=r.face.normal,a=o.clone().multiplyScalar(.05),s=r.point.clone().add(a);this.intersectMesh.position.copy(s);var l=s.clone().add(a);if(this.intersectMesh.lookAt(l),Math.abs(o.y)>.99){var u=this.camera.position.clone().sub(s);this.intersectMesh.rotation.z=-Math.atan2(u.z,u.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",r,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:t.clientX,clientY:t.clientY}}}},n.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n}($r);function fo(){return Wr||(Wr=new Promise((function(e){var t,n=document.createElement("video");n.muted=!0,n.src="data:video/mp4;base64,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",n.addEventListener("timeupdate",(function i(){n.removeEventListener("timeupdate",i,!1),clearTimeout(t);var r=document.createElement("canvas");r.width=r.height=1;var o=r.getContext("2d");o?(o.drawImage(n,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),n.addEventListener("canplay",(function e(){n.removeEventListener("canplay",e,!1),n.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))}var Ao,vo=function(t){function n(n,i){return void 0===i&&(i=.5),t.call(this,n,{uniforms:{inputBuffer:new e.Uniform(null),scale:new e.Uniform(i)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return te(n,t),n}(Xr),mo=function(t){function n(n,i){void 0===i&&(i=.002);var r=t.call(this,n,{uniforms:{targetBuffer:new e.Uniform(null),inputBuffer:new e.Uniform(null),step:new e.Uniform(i)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return r.material.extensions.shaderTextureLOD=!0,r}return te(n,t),Object.defineProperty(n.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),n}(Xr),go=function(t){function n(n){var i=t.call(this,n,{uniforms:{inputBuffer:new e.Uniform(null),luminanceAdaptiveBuffer:new e.Uniform(null),progress:new e.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 1.5;\n float whitePoint = 13.0;\n float exposure = 1.4;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return i.material.transparent=!0,i}return te(n,t),Object.defineProperty(n.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),n}(Xr),yo=function(t){function n(e){var n=t.call(this,e)||this;return n.enableTime=ce(),n.renderer=e,n.valuePass=new Yr(n.renderer),n.luminancePass=new vo(n.renderer,Math.sqrt(1/3)),n.nextStepPass=new mo(n.renderer,.01),n.luminanceAdaptivePass=new go(n.renderer),n}return te(n,t),n.prototype.render=function(t,n){if(!this.enable)return this.enableTime=null,void this.copyPass.render(t,n);null===this.enableTime&&(this.enableTime=ce()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new e.WebGLRenderTarget(128,128,{minFilter:e.LinearMipmapLinearFilter,magFilter:e.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:e.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(t,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new e.WebGLRenderTarget(1,1,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,type:e.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new e.WebGLRenderTarget(1,1,{minFilter:e.NearestFilter,magFilter:e.NearestFilter,type:e.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new e.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((ce()-this.enableTime)/100,1),this.luminanceAdaptivePass.render(t,n)},n.prototype.dispose=function(){var e,t,n;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(n=this.luminanceNextBuffer)||void 0===n||n.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},n}(Jr),bo=null!==(Ao=Math.SQRT1_2)&&void 0!==Ao?Ao:Math.sqrt(2),xo={up:new e.Quaternion(bo,0,0,bo),down:new e.Quaternion(-bo,0,0,bo),left:new e.Quaternion(0,bo,0,bo),right:new e.Quaternion(0,-bo,0,bo),front:new e.Quaternion(0,0,0,1),back:new e.Quaternion(0,1,0,0)},wo=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Mo=new Float32Array([0,0,1,0,0,1,1,1]),Eo=new Uint8Array([0,1,2,1,3,2]),Co=new e.BufferGeometry;Co.setAttribute("position",new e.BufferAttribute(wo,3)),Co.setAttribute("uv",new e.BufferAttribute(Mo,2)),Co.setIndex(new e.BufferAttribute(Eo,1));var Io=function(t){function n(){var n=t.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return n.depthTest=!1,n.depthWrite=!1,n.blending=e.NoBlending,n.map=n.uniforms.map.value,n.luminanceMap=n.uniforms.luminanceMap.value,Object.defineProperties(n,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e,this.needsUpdate=!0}}}),n}return te(n,t),n}(e.ShaderMaterial),So=function(t){function n(n,i){var r=t.call(this,Co,new Io)||this;return n.box.getCenter(r.position),r.quaternion.multiplyQuaternions((new e.Quaternion).setFromAxisAngle(new e.Vector3(0,1,0),-Math.PI),xo[n.face]),r.scale.setScalar(n.size),r.node=n,r.name="tiling:tile",r.material.visible=!1,r.activeTime=-1,r.disposed=!1,r.needsRender=!1,r.frustumCulled=!1,i.then((function(e){var t=e[0],n=e[1];r.disposed?(t.dispose(),null==n||n.dispose()):(r.material.map=t,r.material.luminanceMap=n,r.material.needsUpdate=!0,r.material.visible=!0,r.needsRender=!0)})).catch(le),r}return te(n,t),n.prototype.updateTime=function(e){},n.prototype.dispose=function(){var e;this.disposed=!0,this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},n}(e.Mesh),Bo=function(e){function t(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return te(t,e),t}(e.Group),To=function(){function t(e,t,n){this.disposed=!1,this.textureLoader=new Mt(e),this.minLevel=t,this.level=0,this.panoIndex=0,this.pedding=0,this.tileTree=$e(this.minLevel),this.tileMeshes=new Map,this.resource=[],this.luminance=null,this.imageOptions=n,this.object=new Bo,this.object.renderOrder=-3}return t.prototype.setAllowHosts=function(e){this.textureLoader.setAllowHosts(e)},t.prototype.setRequestProxy=function(e){this.textureLoader.setRequestProxy(e)},t.prototype.setNetworkSubscribe=function(e){this.textureLoader.setNetworkSubscribe(e)},t.prototype.cleanup=function(){var e=this;this.tileMeshes.forEach((function(t){t.dispose(),e.object.remove(t),e.object.needsRender=!0})),this.tileMeshes.clear()},t.prototype.setRotation=function(e){this.disposed||this.object.quaternion.equals(e)||(this.object.quaternion.copy(e),this.object.needsRender=!0)},t.prototype.setPosition=function(e){this.disposed||this.object.position.equals(e)||(this.object.position.copy(e),this.object.needsRender=!0)},t.prototype.setResource=function(e,t){var n,i;if(!this.disposed&&(this.resource!==e||this.luminance!==t)){this.cleanup(),this.resource=e;var r=null!==(i=null===(n=e.slice().sort((function(e,t){return t.level-e.level}))[0])||void 0===n?void 0:n.level)&&void 0!==i?i:0;this.tileTree=$e(r),this.luminance=t,this.object.needsRender=!0}},t.prototype.update=function(t,n,i){var r=this;if(!this.disposed){this.level=n;var o=t.planes[5].normal,a=[];n>=this.minLevel&&et(this.tileTree,(function(e){if(!(e.level<r.minLevel))return!(e.level>n)&&!!t.intersectsBox(e.box)&&void a.push(e)}));var s=new e.Vector3;a.sort((function(e,t){return e.level!==t.level?e.level-t.level:e.box.getCenter(s).angleTo(o)-t.box.getCenter(s).angleTo(o)}));for(var l=new Set,u=function(e){var t=c.resource.filter((function(t){return t.level===e.level}))[0];if(!t)return"continue";if(l.add(e),c.tileMeshes.has(e))return c.tileMeshes.get(e).activeTime=i,"continue";var n=t.size,o=c.imageOptions.transform,a=Math.pow(2,e.level)*e.position.y,s=Math.pow(2,e.level)*e.position.x,u="".concat(c.panoIndex,".").concat(e.face,".").concat(e.level,".").concat(a,".").concat(s),h=ne(ne({key:"pano_tile.".concat(u)},hn(c.imageOptions,["format","size","quality","sharpen","mappings"])),{size:n*e.size==512?void 0:512,cut:[n*e.position.x,n*e.position.y,n*e.size,n*e.size]}),d=c.textureLoader.loadTexture(t[e.face],{imageURL:{transform:o,options:h}}).then((function(e){return e.body})),p=null;if(c.luminance){var f=c.luminance[e.face],A=f.match(/\/cube_(\d+)\//),v=!!A&&Number(A[1]);if(!1!==v){var m=ne(ne({},h),{size:v*e.size==256?void 0:256,cut:[v*e.position.x,v*e.position.y,v*e.size,v*e.size],key:"pano_tile_luminance.".concat(u)});p=c.textureLoader.loadTexture(f,{imageURL:{transform:c.imageOptions.transform,options:m}}).then((function(e){return e.body})).catch((function(){return null}))}}c.pedding++;var g=Promise.all([d,p]).then((function(e){return r.pedding--,e}),(function(e){return r.pedding--,Promise.reject(e)})),y=new So(e,g);y.name="tiling:tile-".concat(u),y.activeTime=i,y.renderOrder=e.level,c.tileMeshes.set(e,y),c.object.needsRender=!0,c.object.add(y)},c=this,h=0,d=a;h<d.length;h++)u(m=d[h]);var p=[];this.tileMeshes.forEach((function(e,t){l.has(t)||p.push(t),e.visible=t.level<=n}));for(var f=p.sort((function(e,t){var n,i,o,a;return(null!==(i=null===(n=r.tileMeshes.get(t))||void 0===n?void 0:n.activeTime)&&void 0!==i?i:0)-(null!==(a=null===(o=r.tileMeshes.get(e))||void 0===o?void 0:o.activeTime)&&void 0!==a?a:0)})).slice(Math.max(0,32-l.size)),A=0,v=f;A<v.length;A++){var m=v[A],g=this.tileMeshes.get(m);g&&(g.dispose(),this.object.remove(g),this.object.needsRender=!0),this.tileMeshes.delete(m)}}},t.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},t}(),Po=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),Ro=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),Lo=new e.BufferGeometry;Lo.setAttribute("position",new e.BufferAttribute(Po,3)),Lo.setIndex(new e.BufferAttribute(Ro,1));var ko,Oo,Fo=function(){function t(){this.material=new e.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new e.Uniform(null),matrix:new e.Uniform(null),alpha:new e.Uniform(null),map:new e.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor}),this.object=new e.Mesh(Lo,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new lr({alpha:0})}return t.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.map.value=e.map,this.alphaMotion.set({alpha:e.alpha},500).catch(le),this.material.uniforms.alpha.value=e.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(le));var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},t.prototype.updateTime=function(e){this.alphaMotion.ended||(this.alphaMotion.update(e),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},t.prototype.dispose=function(){this.material.dispose()},t}(),Do=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),Qo=new e.Vector3(-1,1,1),No=function(){function t(e){void 0===e&&(e=0),this.width=e,this.pool=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),t.prototype.create=function(){return new e.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},t.prototype.pop=function(){return this.pool.pop()||this.create()},t.prototype.push=function(e){-1===this.pool.indexOf(e)&&this.pool.push(e)},t.prototype.clear=function(){for(var e=0,t=this.pool;e<t.length;e++)t[e].dispose();this.pool.length=0},t}(),Vo=function(t){function n(e){var i,r,o,a,s=this,l=n.parseArgs(e);(s=t.call(this,l)||this).TILED_CUBE_TEXTURE_LEVEL=2,s.tileLevel=0,s.initAnimationed=!1,s.forwardPanoIndex=null,s.currentPanoIndex=l.initial[0],s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.tileLevelForFov=l.tileLevelForFov,s.luminanceAdaptiveEffectEnable=l.luminanceAdaptiveEffectEnable,s.colorCubeRenderTargetPool=new No,s.luminanceCubeRenderTargetPool=new No;var u=s.model.getMaterial()||{},c=u.pano0,h=u.pano1;c&&(null==h?void 0:h.map)!==c.map&&(s.model.setMaterial({pano0:h}),c.map.dispose(),c.map instanceof wt&&c.map.cubeRenderTarget&&s.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof wt&&c.luminanceMap.cubeRenderTarget&&s.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var d=s.colorCubeRenderTargetPool.size;d<2;d++){var p=Math.max(1024*s.TILED_CUBE_TEXTURE_LEVEL,512),f=s.colorCubeRenderTargetPool.create();f.setSize(p,p),at(null,f,s.renderer),s.colorCubeRenderTargetPool.push(f)}s.panoMeshes=[],s.panoMeshHitTested={},s.updatePanoMeshes(),s.locationMotion=new lr({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(r=null===(i=s.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Ii()]={panoIndex:s.currentPanoIndex,workCode:s.work.workCode,panoPicture:null!==(a=null===(o=s.model.getMaterial())||void 0===o?void 0:o.pano1)&&void 0!==a?a:null,position:s.camera.pose.offset.clone(),effect:"fly"};var A={allowHosts:s.work.allowHosts,requestProxy:s.requestProxy,networkSubscribe:s.networkSubscribe};return s.textureLoader=new Mt(A),s.tiling=new To(A,s.TILED_CUBE_TEXTURE_LEVEL+1,s.imageOptions),s.scene.add(s.tiling.object),s.panoVideo=new Fo,s.scene.add(s.panoVideo.object),s}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s=t.parseArgs.call(this,e);return ne(ne({},s),{maxAccessibleDistance:null!==(n=e.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=e.panoTapTriggerRadius)&&void 0!==i?i:.5,panoCircleMeshCreator:null!==(r=e.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new hr},tileLevelForFov:null!==(o=e.tileLevelForFov)&&void 0!==o?o:function(e,t){var n=2*Math.atan(Math.tan(e/180*Math.PI/2)*(t.width/t.height))/Math.PI*180,i=Math.max(t.width/n,t.height/e);return i>60?4:i>30?3:i>18?2:i>12?1:0},luminanceAdaptiveEffectEnable:null===(a=e.luminanceAdaptiveEffectEnable)||void 0===a||a})},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){var e,n,i=this;t.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes&&(this.panoMeshes.forEach((function(e){i.helper.remove(e),e.dispose()})),this.panoMeshes.length=0),this.interiaMovement=!1;var r=this.videoTexture.image;r.pause(),r.oncanplay=function(){},r.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var o=null!==(e=this.model.getMaterial())&&void 0!==e?e:{},a=o.pano0,s=o.pano1,l=0,u=Object.keys(this.panoResources);l<u.length;l++){var c=u[l],h=this.panoResources[c];if(h.panoPicture){var d=h.panoPicture.map;d&&d!==(null==a?void 0:a.map)&&d!==(null==s?void 0:s.map)&&(d.dispose(),null===(n=h.panoPicture.luminanceMap)||void 0===n||n.dispose(),h.panoPicture=null)}delete this.panoResources[c]}this.luminanceAdaptiveEffect&&(this.luminanceAdaptiveEffect.dispose(),delete this.luminanceAdaptiveEffect)},n.prototype.isReady=function(){return!0===this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.isTileReady=function(){var e,t,n,i=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),r=(null===(e=i.panoPicture)||void 0===e?void 0:e.map)instanceof wt&&null!==(n=null===(t=i.panoPicture)||void 0===t?void 0:t.map.tilePending)&&void 0!==n?n:0,o=this.tiling.pedding;return this.initAnimationed&&r<=0&&o<=0},n.prototype.updateWork=function(e,t,n,i,r){var o=this;return this.userAction=r,this.work=e,this.currentPanoIndex=t,this.textureLoader.setAllowHosts(this.work.allowHosts),this.tiling.setAllowHosts(this.work.allowHosts),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:i,longitude:n.longitude,latitude:n.latitude,fov:n.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},r),!0},n.prototype.updateModel=function(e){this.model=e,this.updatePanoMeshes(!0)},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u,c,h,d,p=this,f=[],A=2;A<arguments.length;A++)f[A-2]=arguments[A];if(!this.destroyed){var v=this.currentPanoIndex,m={},g={},y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),x=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var w=this.locationMotion.getKeyFrameSegment(t),M=w[0],E=w[1],C=this.panoResourceFromLocationMotionKeyframe(M),I=this.panoResourceFromLocationMotionKeyframe(E),S=(new e.Vector3).copy(C.position),B=(new e.Vector3).copy(I.position),T=this.locationMotion.value.count-E.value.count+1;m.progress=T,m.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,I.panoPicture&&(T<1?C.panoPicture&&(m.pano0=C.panoPicture):m.pano0=I.panoPicture,m.pano1=I.panoPicture),x=m.useBlackTransition="instant"===I.effect||"montage"===I.effect,"fade"!==I.effect&&"montage"!==I.effect||(m.pano0&&C.panoPicture&&(m.pano0={map:m.pano0.map,luminanceMap:m.pano0.luminanceMap,matrix:C.panoPicture.matrix.clone().setPosition(I.position)}),S.copy(B)),g.distance=this.locationMotion.value.distance,g.offset=new e.Vector3(S.x+(B.x-S.x)*T,S.y+(B.y-S.y)*T,S.z+(B.z-S.z)*T);for(var P=[],R=[],L=0,k=this.locationMotion.keyframes;L<k.length;L++){var O=k[L],F=O.key,D=O.progress;void 0!==F&&(P.push(F),D>=this.locationMotion.progress&&R.push(F))}for(var Q=0,N=Object.keys(this.panoResources);Q<N.length;Q++){var V=N[Q];if(!(R.indexOf(V)>=0)){var U=this.panoResources[V];if(U.panoPicture){var _=U.panoPicture.map,z=U.panoPicture.luminanceMap;if(_){if(_===(null===(i=m.pano0)||void 0===i?void 0:i.map))continue;if(_===(null===(r=m.pano1)||void 0===r?void 0:r.map))continue;_ instanceof wt&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),z&&(z instanceof wt&&z.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(z.cubeRenderTarget),z.dispose()),U.panoPicture=null}}P.indexOf(V)>=0||delete this.panoResources[V]}}C.workCode===I.workCode?this.currentPanoIndex=T<.5?C.panoIndex:I.panoIndex:this.currentPanoIndex=I.panoIndex,this.emit("movingToPano",b.panoIndex,y.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),!1===Vr(m)&&((null===(o=m.pano0)||void 0===o?void 0:o.map)&&m.pano0.map instanceof wt&&!m.pano0.map.cubeRenderTarget&&(m.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=m.pano0)||void 0===a?void 0:a.luminanceMap)&&m.pano0.luminanceMap instanceof wt&&!m.pano0.luminanceMap.cubeRenderTarget&&(m.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=m.pano1)||void 0===s?void 0:s.map)&&m.pano1.map instanceof wt&&!m.pano1.map.cubeRenderTarget&&(m.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=m.pano1)||void 0===l?void 0:l.luminanceMap)&&m.pano1.luminanceMap instanceof wt&&!m.pano1.luminanceMap.cubeRenderTarget&&(m.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(m));var q=!1;if(!1===Vr(g)&&(this.setCamera(g),q=!0),this.currentPanoIndex!==v&&(this.updatePanoMeshesVisible(),q=!0),q&&(ie=this.work.observers[this.currentPanoIndex])){var H=Rt(this.camera.pose).normalize(),j=new e.Raycaster(ie.position,H);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(j)}if(this.camera.pose.distance>.1||x){var K=this.work.observers[this.currentPanoIndex];if(K)for(var G=0,W=J=K.visibleNodes.concat(this.currentPanoIndex);G<W.length;G++){var X=W[G];(ne=this.panoMeshes[X])&&ne.setOpacity(0)}}else{var Y=this.work.observers[this.currentPanoIndex];if(Y){var Z=Nr(Y.visibleNodes,(function(e){return Y.standingPosition.distanceTo(p.work.observers[e].standingPosition)}),!0)[1];Z=Gt(Z,2.5,1/0);for(var J=Y.visibleNodes.concat(this.currentPanoIndex),$=this.camera.getDirection(new e.Vector3),ee=0,te=J;ee<te.length;ee++){X=te[ee];var ne,ie=this.work.observers[X];if(ne=this.panoMeshes[X])if(ie.loadable||ie.active){var re=ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ne.setCurrent(!ne.loading&&0===ne.progress&&this.forwardPanoIndex===X),ne.setOpacity(re<.01?0:Gt(Z/re*1.2,.4,.85));var oe=this.camera.position.clone().setY(ne.position.y);if(H=(new e.Vector3).copy(ne.position).sub(oe).normalize(),X===this.currentPanoIndex){var ae=Gt((.5-oe.distanceTo(ne.position))/.5,0,1);H.multiplyScalar(1-ae).add($.clone().multiplyScalar(ae))}H.length()>0&&ne.quaternion.setFromEuler(new e.Euler(0,Math.atan2(H.x,H.z),0)),ne.updateTime&&ne.updateTime(t,n)}else ne.setOpacity(0)}}}var se=this.tileLevel=function(){if(!1===p.tileLevelForFov)return 0;var t=p.renderer.getDrawingBufferSize(new e.Vector2);t.width*=p.scissor.width,t.height*=p.scissor.height;var n=b.panoIndex,i=p.work.observers[n],r=p.imageOptions.size;if(void 0===r&&i){var o=i.images.up.match(/\/cube_(\d+)\//);o&&(r=Number(o[1]))}void 0===r&&(r=2048);var a=0;r>=1024&&(a=1),r>=2048&&(a=2),r>=4096&&(a=3),r>=8192&&(a=4);var s=p.tileLevelForFov(p.camera.fov,t);return s>a?s:0}(),le=function(){var t,n=p.camera.quaternion.clone();n.premultiply((null!==(t=p.work.observers[b.panoIndex])&&void 0!==t?t:p.work.observers[p.currentPanoIndex]).quaternion.clone().inverse());var i=(new e.Matrix4).makeRotationFromQuaternion(n),r=(new e.Matrix4).getInverse(i);return(new e.Frustum).setFromProjectionMatrix((new e.Matrix4).multiplyMatrices(p.camera.projectionMatrix,r))}();b.panoIndex===this.currentPanoIndex&&((null===(u=b.panoPicture)||void 0===u?void 0:u.map)instanceof wt&&(b.panoPicture.map.update(le,se),!0===b.panoPicture.map.needsRender&&(b.panoPicture.map.needsRender=!1,this.needsRender=!0)),(null===(c=b.panoPicture)||void 0===c?void 0:c.luminanceMap)instanceof wt&&(b.panoPicture.luminanceMap.update(le,se),!0===b.panoPicture.luminanceMap.needsRender&&(b.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0)));var ue=this.tiling.object.visible;if(this.initAnimationed){var ce=b.panoIndex,he=this.work.observers[ce];he&&Mr(this.camera.position,he.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==ce&&this.tiling.cleanup(),this.tiling.panoIndex=ce,this.tiling.setResource(null!==(d=null===(h=he.images)||void 0===h?void 0:h.tiles)&&void 0!==d?d:[],this.enableIOSEDR&&he.images.luminance?he.images.luminance:null),this.tiling.setRotation(he.quaternion),this.tiling.setPosition(he.position),se>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(le,se,t):this.tiling.update(le,0,t)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;ue!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(t)}},n.prototype.render=function(){var e=this.work.observers[this.currentPanoIndex];e&&e.video&&(this.needsRender=!0),t.prototype.render.call(this)},n.prototype.postProcessing=function(e,t){if(!this.destroyed)return this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new yo(this.renderer),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e,t)},n.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],n=this.panoResourceFromLocationMotionKeyframe(t),i=this.work.observers[n.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:i?i.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},n.prototype.moveToPano=function(t,n,i){var r,o,a,s,l=this;this.userAction=i;var u=this.work.observers[t],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality","sharpen","mappings"])),f=u.images,A=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,v=d,m={key:"pano_luminance.".concat(t),size:p.size?p.size/2:1024},g=this.enableIOSEDR&&u.images.luminance?u.images.luminance:null,y=function(){if(!u.images.tiles)return null;if(!g)return null;var e=g.up.match(/\/cube_(\d+)\//),t=!!e&&Number(e[1]);return!1===t?null:null==A?void 0:A.map((function(e){return{level:e.level,size:t,back:g.back,front:g.front,left:g.left,right:g.right,up:g.up,down:g.down}}))}(),b="pano:"+pn([f,p,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[x])||void 0===a||a.setProgress(0),this.emit("textureAbort",x,u),this.pendingTextureTask.onError(new Error("texture aborted"))}var w="move-to-pano-"+t;this.pending.add(w);var M,E=this.model.getMaterial()||{},C=E.pano0,I=E.pano1;if(C&&C.map.name===b&&null!==C.luminanceMap===this.enableIOSEDR?M=C:(null==I?void 0:I.map.name)===b&&null!==I.luminanceMap===this.enableIOSEDR&&(M=I),M){var S={panoIndex:t,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fly",panoPicture:{map:M.map,luminanceMap:M.luminanceMap,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};ke.shared.add((function(){l.pending.delete(w),l.emit("panoLoaded",t),l.doMoveToPano(t,S,n)}),!0,1)}else{this.pendingTextureTask={panoIndex:t,hash:b,onLoad:function(i,r){var o,a;if(l.pending.delete(w),l.destroyed)i.body.dispose();else{i.body.name=b,l.emit("panoLoaded",t);var s={panoIndex:t,workCode:l.work.workCode,effect:null!==(o=n.effect)&&void 0!==o?o:"fly",panoPicture:{map:i.body,luminanceMap:null!==(a=null==r?void 0:r.body)&&void 0!==a?a:null,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Qo)},position:u.position.clone()};l.doMoveToPano(t,s,n)}},onError:function(e){l.pending.delete(w),n.moveCancelCallback&&n.moveCancelCallback(),l.emit("panoLoadError",e,t),l.emit("moveToPanoCanceled",t)}};var B=this.panoMeshes[t];B&&B.tap&&B.tap(),Promise.all([this.tileLevelForFov&&A&&A.length?this.textureLoader.loadTiledCubeTexture(f,A,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:d,options:p},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(f,{imageURL:{transform:d,options:p},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer),g?this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(g,y,{tileImageSize:256,tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:v,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):Promise.resolve(null)]).then((function(e){var n,i,r=e[0],o=e[1];(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b?(l.pendingTextureTask.onLoad(r,o),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",t,u,r.meta)):(r.body.dispose(),null==o||o.body.dispose())})).catch((function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===b&&(l.pendingTextureTask.onError(e),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",e,t,u),l.emit("error",e))})),this.emit("textureStartLoad",t,u)}},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l,u=!1;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){u=!0,r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),r.initAnimationed=!0,o()},moveCancelCallback:function(){var e={longitude:r.camera.pose.longitude,latitude:r.camera.pose.latitude,fov:r.camera.pose.fov,offset:r.camera.pose.offset.clone(),distance:r.camera.pose.distance};!1===u&&r.emit("initAnimationWillStart",r.currentPanoIndex,e,r.userAction),r.emit("initAnimationEnded",r.currentPanoIndex,e,r.userAction),r.initAnimationed=!0,o()}},i)}))},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.locationMotionKeyframesLength=function(e){for(var t=0,n=1;n<e.length;n++){var i=this.panoResourceFromLocationMotionKeyframe(e[n-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[n]).position;t+=i.distanceTo(r)*(e[n].value.count-e[n-1].value.count)}return t},n.prototype.updatePanoMeshesVisible=function(t){var n=this;void 0===t&&(t=!1);for(var i=this.work.observers[this.currentPanoIndex],r=(i?i.visibleNodes:[]).concat(this.currentPanoIndex),o=[],a=0,s=this.work.observers;a<s.length;a++){var l=s[a],u=this.panoMeshes[l.panoIndex];u&&(r.indexOf(l.panoIndex)>=0?u.parent!==this.helper&&(this.helper.add(u),!0!==this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(l.panoIndex)]&&o.push(l)):u.parent===this.helper&&(this.helper.remove(u),u.setOpacity(0)))}t&&(o=r.map((function(e){return n.work.observers[e]})));for(var c=0,h=o;c<h.length;c++){var d=h[c];if(this.model.loaded&&this.model.bvhs.loaded&&this.model.workCode===this.work.workCode&&r.length<=10){this.panoMeshHitTested["".concat(this.work.workCode,"_").concat(d.panoIndex)]=!0;var p=new e.Vector3(0,-1,0),f=new e.Vector3(0,.1,0).add(d.standingPosition),A=new e.Raycaster(f,p,0,.2),v=this.model.intersectRaycaster(A)[0];if(!v)continue;if(d.standingPosition.y>=v.point.y&&d.standingPosition.y-v.point.y<.1)continue;this.panoMeshes[d.panoIndex]&&this.panoMeshes[d.panoIndex].position.copy(v.point)}}},n.prototype.updatePanoMeshes=function(e){var t=this;void 0===e&&(e=!1);for(var n={},i=0,r=this.panoMeshes;i<r.length;i++)n[(f=r[i]).name]=f;this.panoMeshes.length=0,this.panoMeshHitTested={};for(var o=1,a={},s=function(e){if(e.accessibleNodes.length){var n=Nr(e.accessibleNodes,(function(n){return Gt(t.work.observers[n].standingPosition.distanceTo(e.standingPosition),1,1/0)}),!0),i=n[1];void 0===a[e.panoIndex]&&(a[e.panoIndex]=i)}},l=0,u=this.work.observers;l<u.length;l++)s(p=u[l]);var c=Object.keys(a).map((function(e){return a[e]}));c.length&&(o=Gt(c.reduce((function(e,t){return e+t}),0)/c.length*.6,1,3));for(var h=0;h<this.work.observers.length;h++){var d="panoCircle_".concat(this.work.workCode,"_").concat(h),p=this.work.observers[h],f=void 0;n[d]?(!0===(f=n[d]).loading&&!1===p.loadable&&f.setLoading(!1),delete n[d]):(f=this.panoCircleMeshCreator(h)).name=d,f.scale.set(o,1,o),f.position.copy(p.standingPosition),this.panoMeshes[h]=f}for(var A=0,v=Object.keys(n);A<v.length;A++){var m=v[A];this.helper.remove(n[m]),n[m].dispose(),delete n[m]}this.updatePanoMeshesVisible(e)},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s,l=this;void 0===i&&(i={});var u,c,h,d=ce(),p=Ii();if(this.tiling.cleanup(),this.panoResources[p]=n,this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(d),A=(f[0],f[1]),v=this.locationMotion.value,m=(null!==(r=this.panoResourceFromLocationMotionKeyframe(A))&&void 0!==r?r:this.camera).position,g=n.position;u=Math.max(m.distanceTo(g),1),c=[{key:A.key,progress:0,value:ne(ne({},v),{count:0})},{key:p,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],h=0}else{var y=this.locationMotion.getKeyFrameSegment(d),b=y[0],x=(A=y[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(b).position),w=(m=this.panoResourceFromLocationMotionKeyframe(A).position,g=n.position,A.value.count-v.count),M=Math.max(x.distanceTo(m),1)*w;u=M+Math.max(m.distanceTo(g),1),c=[{key:b.key,progress:0,value:ne({},v)},{key:A.key,progress:M/u,value:A.value},{key:p,progress:1,value:{count:A.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var E=this.locationMotionKeyframesLength(this.locationMotion.keyframes),C=this.locationMotionKeyframesLength(c);h=0===E||0===E?0:this.locationMotion.getProgressVelocity(d)*E/C}var I=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:u),S={longitude:i.longitude,latitude:i.latitude,fov:i.fov},B={longitude:null!==(o=S.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=S.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=S.fov)&&void 0!==s?s:this.camera.pose.fov,offset:n.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,B),this.emit("panoWillArrive",t,B,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(S,I).catch(le),this.locationMotion.setKeyframes(c,I,h).then((function(){var n,r,o,a={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(t,a),l.emit("panoArrived",t,a,l.userAction);var s=l.work.observers[l.currentPanoIndex];if(s&&s.video&&l.videoTexture&&l.videoTexture.image instanceof HTMLVideoElement){var u=Do.clone().multiply(null!==(o=null===(r=null===(n=l.model.getMaterial())||void 0===n?void 0:n.pano1)||void 0===r?void 0:r.matrix)&&void 0!==o?o:new e.Matrix4).multiply(s.video.matrix),c={map:l.videoTexture,size:s.video.size,matrix:u,alpha:1},h=Ii(),d=l.videoTexture.image;d.setAttribute("uuid",h),fo().then((function(e){e&&s.video&&d.getAttribute("uuid")===h&&(d.oncanplay=function(){d.oncanplay=le,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=le,l.panoVideo.setMaterial(c))},d.src=s.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),l.emit("moveToPanoCanceled",t)}))},n.prototype.getForwardPanoIndexOrNot=function(t){var n=this,i=this.work.observers[this.currentPanoIndex];if(!i)return null;var r=null!=t?t:new e.Raycaster(this.camera.position.clone(),this.camera.getDirection(new e.Vector3)),o=i.standingPosition.clone();if(i.position.distanceTo(r.ray.origin)>1){var a=this.model.intersectRaycaster(new e.Raycaster(r.ray.origin,new e.Vector3(0,-1,0)))[0];a&&a.distance<=2?o.copy(a.point):o.copy(r.ray.origin).add(new e.Vector3(0,-1.5,0))}var s=this.model.intersectRaycaster(r)[0],l=(s?s.point:r.ray.origin.clone().add(r.ray.direction.clone().normalize().multiplyScalar(3))).clone().sub(o).normalize();if(0===l.length())return null;for(var u=i.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e],i=t.standingPosition.clone().project(n.camera);return!(Math.abs(i.z)>1)&&!(Math.abs(i.x)>1)&&!(Math.abs(i.y)>1)&&(t.loadable||t.active)})),c=u.slice().sort((function(e,t){return n.work.observers[e].standingPosition.clone().distanceTo(o)-n.work.observers[t].standingPosition.clone().distanceTo(o)})),h=0,d=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];h<d.length;h++)for(var p=d[h],f=0,A=c;f<A.length;f++){var v=A[f],m=this.work.observers[v].standingPosition.clone().sub(o);if(0!==m.length()&&l.angleTo(m)<p)return v}return null},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new e.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),c=this.model.intersectRaycaster(o)[0];if(c){var h=Nr(u,(function(e){return n.work.observers[e].standingPosition.clone().distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}Qi(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),Qi(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),w=[],M=0,E=m.accessibleNodes;M<E.length;M++)if((d=E[M])!==this.currentPanoIndex&&d!==s){var C=this.work.observers[d].position.clone().sub(m.position).setY(0);x.angleTo(C)<y&&w.push(C)}var I=(w.length>0?w:ie(ie([],[],!0),[],!0)).slice().sort((function(e,t){return e.angleTo(x)-t.angleTo(x)}))[0];I&&I.angleTo(a)>b&&(g.longitude=Math.atan2(-I.x,-I.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},n}(po),Uo=Math.PI/180,_o=180/Math.PI,zo=function(){var e="undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),qo=function(){var e="undefined"!=typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),Ho=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),jo=(ko="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,Oo=ko?parseInt(ko[1],10):null,function(){return Oo}),Ko=function(){var e=!1;if(65===jo()){var t="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var n=t[1].split("."),i=(n[0],n[1],n[2]),r=n[3];e=3325===parseInt(i,10)&&parseInt(r,10)<148}}return function(){return e}}(),Go=function(){var e=zo()&&qo()&&"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("13_4");return function(){return e}}(),Wo=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}();function Xo(){var e="undefined"!=typeof window&&(90==window.orientation||-90==window.orientation);return Wo()?!e:e}var Yo,Zo=(Yo={},function(e,t){void 0===Yo[e]&&(console.warn("cardboard: "+t),Yo[e]=!0)});function Jo(e){var t,n=e.indexOf("://");t=-1!==n?n+3:0;var i=e.indexOf("/",t);return-1===i&&(i=e.length),e.substring(0,i)}var $o,ea=function(e,t,n){var i,r,o,a,s,l,u,c,h,d,p,f,A,v,m,g,y,b;i=e,d=(o=(r=t)?r[0]:0)*(u=o+o),p=o*(c=(a=r?r[1]:0)+a),f=o*(h=(s=r?r[2]:0)+s),A=a*c,v=a*h,m=s*h,g=(l=r?r[3]:1)*u,y=l*c,b=l*h,i[0]=1-(A+m),i[1]=p+b,i[2]=f-y,i[3]=0,i[4]=p-b,i[5]=1-(d+m),i[6]=v+g,i[7]=0,i[8]=f+y,i[9]=v-g,i[10]=1-(d+A),i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,n&&function(e,t,n){var i,r,o,a,s,l,u,c,h,d,p,f,A=n[0],v=n[1],m=n[2];t===e?(e[12]=t[0]*A+t[4]*v+t[8]*m+t[12],e[13]=t[1]*A+t[5]*v+t[9]*m+t[13],e[14]=t[2]*A+t[6]*v+t[10]*m+t[14],e[15]=t[3]*A+t[7]*v+t[11]*m+t[15]):(i=t[0],r=t[1],o=t[2],a=t[3],s=t[4],l=t[5],u=t[6],c=t[7],h=t[8],d=t[9],p=t[10],f=t[11],e[0]=i,e[1]=r,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=u,e[7]=c,e[8]=h,e[9]=d,e[10]=p,e[11]=f,e[12]=i*A+s*v+h*m+t[12],e[13]=r*A+l*v+d*m+t[13],e[14]=o*A+u*v+p*m+t[14],e[15]=a*A+c*v+f*m+t[15])}(e,e,n),function(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],h=t[9],d=t[10],p=t[11],f=t[12],A=t[13],v=t[14],m=t[15],g=n*s-i*a,y=n*l-r*a,b=n*u-o*a,x=i*l-r*s,w=i*u-o*s,M=r*u-o*l,E=c*A-h*f,C=c*v-d*f,I=c*m-p*f,S=h*v-d*A,B=h*m-p*A,T=d*m-p*v,P=g*T-y*B+b*S+x*I-w*C+M*E;P&&(P=1/P,e[0]=(s*T-l*B+u*S)*P,e[1]=(r*B-i*T-o*S)*P,e[2]=(A*M-v*w+m*x)*P,e[3]=(d*w-h*M-p*x)*P,e[4]=(l*I-a*T-u*C)*P,e[5]=(n*T-r*I+o*C)*P,e[6]=(v*b-f*M-m*y)*P,e[7]=(c*M-d*b+p*y)*P,e[8]=(a*B-s*I+u*E)*P,e[9]=(i*I-n*B-o*E)*P,e[10]=(f*w-A*b+m*g)*P,e[11]=(h*b-c*w-p*g)*P,e[12]=(s*C-a*S-l*E)*P,e[13]=(n*S-i*C+r*E)*P,e[14]=(A*y-f*x-v*g)*P,e[15]=(c*x-h*y+d*g)*P)}(e,e)},ta=function(){function t(t,n){void 0===t&&(t=new e.Vector3),void 0===n&&(n=0),this.sample=t,this.timestampS=n}return t.prototype.set=function(e,t){this.sample=e,this.timestampS=t},t.prototype.copy=function(e){this.set(e.sample,e.timestampS)},t}(),na=function(){function t(t,n){this.kFilter=t,this.isDebug=n,this.currentAccelMeasurement=new ta,this.currentGyroMeasurement=new ta,this.previousGyroMeasurement=new ta,zo()?this.filterQ=new e.Quaternion(-1,0,0,1):this.filterQ=new e.Quaternion(1,0,0,1),this.previousFilterQ=new e.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new e.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new e.Vector3,this.measuredGravity=new e.Vector3,this.gyroIntegralQ=new e.Quaternion}return t.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},t.prototype.addGyroMeasurement=function(e,t){var n;this.currentGyroMeasurement.set(e,t),n=t-this.previousGyroMeasurement.timestampS,isNaN(n)||n<=.001||n>1||this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},t.prototype.getOrientation=function(){return this.filterQ},t.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var t=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,n=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,t);this.gyroIntegralQ.multiply(n),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(n);var i=new e.Quaternion;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r,o=new e.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",_o*((r=o).w>1?0:2*Math.acos(r.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var a=new e.Quaternion;a.copy(this.filterQ),a.multiply(o),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},t.prototype.accelToQuaternion_=function(t){var n=new e.Vector3;n.copy(t),n.normalize();var i=new e.Quaternion;return i.setFromUnitVectors(new e.Vector3(0,0,-1),n),i.inverse(),i},t.prototype.gyroToQuaternionDelta_=function(t,n){var i=new e.Quaternion,r=new e.Vector3;return r.copy(t),r.normalize(),i.setFromAxisAngle(r,t.length()*n),i},t}(),ia=function(){function t(t,n){this.predictionTimeS=t,this.isDebug=n,this.previousQ=new e.Quaternion,this.previousTimestampS=null,this.deltaQ=new e.Quaternion,this.outQ=new e.Quaternion}return t.prototype.getPrediction=function(t,n,i){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=i,t;var r=new e.Vector3;r.copy(n),r.normalize();var o=n.length();if(o<20*Uo)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(_o*o).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var a=o*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,a),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=i,this.outQ},t}(),ra=function(){function e(e){this.coefficients=e}return e.prototype.distortInverse=function(e){for(var t=0,n=1,i=e-this.distort(t);Math.abs(n-t)>1e-4;){var r=e-this.distort(n),o=n-r*((n-t)/(r-i));t=n,n=o,i=r}return n},e.prototype.distort=function(e){for(var t=e*e,n=0,i=0;i<this.coefficients.length;i++)n=t*(n+this.coefficients[i]);return(n+1)*e},e}(),oa=function(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null},aa=function(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0},sa=function(){function t(t,n,i,r){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=i,this.accelerometer=new e.Vector3,this.gyroscope=new e.Vector3,this.filter=new na(t,r),this.posePredictor=new ia(n,r),this.isFirefoxAndroid=Ho(),this.isIOS=zo();var o=jo();this.isDeviceMotionInRadians=!this.isIOS&&null!==o&&o<66,this.isWithoutDeviceMotion=Ko()||Go(),this.filterToWorldQ=new e.Quaternion,zo()?this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new e.Quaternion,this.worldToScreenQ=new e.Quaternion,this.originalPoseAdjustQ=new e.Quaternion;var a="undefined"!=typeof window?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0,0,1),a),this.setScreenTransform_(),Xo()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new e.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return t.prototype.getPosition=function(){return null},t.prototype.getOrientation=function(){var t;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(r=(new e.Quaternion).setFromAxisAngle(new e.Vector3(0,0,-1),0),o=new e.Quaternion,"undefined"!=typeof window&&-90===window.orientation?o.setFromAxisAngle(new e.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new e.Vector3(0,1,0),Math.PI/2),r.multiply(o)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new e.Quaternion).setFromAxisAngle(new e.Vector3(1,0,0),-Math.PI/2),i),t=this._deviceOrientationQ;var n=new e.Quaternion;return n.copy(t),n.multiply(this.deviceOrientationFilterToWorldQ),n.multiply(this.resetQ),n.multiply(this.worldToScreenQ),n.multiplyQuaternions(this.deviceOrientationFixQ,n),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_}var i,r,o,a=this.filter.getOrientation();t=this.posePredictor.getPrediction(a,this.gyroscope,this.previousTimestampS);var s=new e.Quaternion;return s.copy(this.filterToWorldQ),s.multiply(this.resetQ),s.multiply(t),s.multiply(this.worldToScreenQ),this.yawOnly&&(s.x=0,s.z=0,s.normalize()),this.orientationOut_[0]=s.x,this.orientationOut_[1]=s.y,this.orientationOut_[2]=s.z,this.orientationOut_[3]=s.w,this.orientationOut_},t.prototype.getPose=function(){var e=new oa;return e.orientation=this.getOrientation(),e},t.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),Xo()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},t.prototype.getFrameData=function(e){var t=this.getOrientation(),n=this.getEyeOffset(),i=this.getEyeProjectionMatrix();return e.pose.angularAcceleration=null,e.pose.angularVelocity=null,e.pose.linearAcceleration=null,e.pose.linearVelocity=null,e.pose.orientation=t,e.pose.position=null,e.timestamp=this.previousTimestampS,e.leftProjectionMatrix.set(i.left),e.rightProjectionMatrix.set(i.right),ea(e.leftViewMatrix,t,n.left),ea(e.rightViewMatrix,t,n.right),e},t.prototype.start=function(){if("undefined"==typeof window)return function(){};var e=this.onDeviceMotion_.bind(this),t=this.onOrientationChange_.bind(this),n=this.onMessage_.bind(this),i=this.onDeviceOrientation_.bind(this);return zo()&&function(){if("undefined"==typeof window)return!1;if("undefined"==typeof document)return!1;var e=window.self!==window.top,t=Jo(document.referrer),n=Jo(window.location.href);return e&&t!==n}()&&window.addEventListener("message",n),window.addEventListener("orientationchange",t),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",i):window.addEventListener("devicemotion",e),function(){window.removeEventListener("devicemotion",e),window.removeEventListener("deviceorientation",t),window.removeEventListener("orientationchange",t),window.removeEventListener("message",n)}},t.prototype.getEyeOffset=function(){return{left:[.5*-this.viewer.interLensDistance,0,0],right:[.5*this.viewer.interLensDistance,0,0]}},t.prototype.getEyeProjectionMatrix=function(){var e,t,n=this.getEyeFieldOfView(),i=this.depthNear,r=this.depthFar,o={left:[],right:[]},a=n.left.upDegrees*Uo,s=n.left.downDegrees*Uo,l=2/((e=n.left.leftDegrees*Uo)+(t=n.left.rightDegrees*Uo)),u=2/(a+s);return o.left[0]=l,o.left[1]=0,o.left[2]=0,o.left[3]=0,o.left[4]=0,o.left[5]=u,o.left[6]=0,o.left[7]=0,o.left[8]=-(e-t)*l*.5,o.left[9]=(a-s)*u*.5,o.left[10]=r/(i-r),o.left[11]=-1,o.left[12]=0,o.left[13]=0,o.left[14]=r*i/(i-r),o.left[15]=0,a=n.right.upDegrees*Uo,s=n.right.downDegrees*Uo,l=2/((e=n.right.leftDegrees*Uo)+(t=n.right.rightDegrees*Uo)),u=2/(a+s),o.right[0]=l,o.right[1]=0,o.right[2]=0,o.right[3]=0,o.right[4]=0,o.right[5]=u,o.right[6]=0,o.right[7]=0,o.right[8]=-(e-t)*l*.5,o.right[9]=(a-s)*u*.5,o.right[10]=r/(i-r),o.right[11]=-1,o.right[12]=0,o.right[13]=0,o.right[14]=r*i/(i-r),o.right[15]=0,o},t.prototype.getEyeFieldOfView=function(){var e=this.viewer,t=this.device,n=new ra(e.distortionCoefficients),i=e.screenLensDistance,r=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=_o*Math.atan(n.distort(r/i)),u=_o*Math.atan(n.distort(o/i)),c=_o*Math.atan(n.distort(a/i)),h=_o*Math.atan(n.distort(s/i)),d=new aa,p=new aa;return d.leftDegrees=Math.min(l,e.fov),d.rightDegrees=Math.min(u,e.fov),d.downDegrees=Math.min(c,e.fov),d.upDegrees=Math.min(h,e.fov),p.leftDegrees=d.rightDegrees,p.rightDegrees=d.leftDegrees,p.upDegrees=d.upDegrees,p.downDegrees=d.downDegrees,{left:d,right:p}},t.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new e.Quaternion;var n=t.alpha,i=t.beta,r=t.gamma;n=(n||0)*Math.PI/180,i=(i||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new e.Euler(n,i,-r,"YXZ"))},t.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},t.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,n=e.rotationRate,i=e.timeStamp/1e3,r=i-this.previousTimestampS;return r<0?(Zo("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=i)):r<=.001||r>1?(Zo("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=i)):(t&&(this.accelerometer.set(-t.x,-t.y,-t.z),n&&(Wo()?this.gyroscope.set(-n.beta,n.alpha,n.gamma):this.gyroscope.set(n.alpha,n.beta,n.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,i)),this.filter.addAccelMeasurement(this.accelerometer,i)),void(this.previousTimestampS=i))},t.prototype.onOrientationChange_=function(){this.setScreenTransform_()},t.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},t.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),"undefined"!=typeof window?window.orientation:0){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new e.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new e.Vector3(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},t}(),la=[0,0,.5,1],ua=[.5,0,.5,1],ca=function(){function t(t){var n=this;this.renderer=t,this.sensor=new sa(.98,.04,!1,!1),this.scale=1,this.cameraL=new e.PerspectiveCamera,this.cameraR=new e.PerspectiveCamera;var i=this.sensor.start();this.dispose=function(){var t=n.renderer.getSize(new e.Vector2);n.renderer.setScissor(0,0,t.width,t.height),n.renderer.setViewport(0,0,t.width,t.height),n.renderer.setScissorTest(!1),i()}}return t.prototype.render=function(t,n){var i=this.renderer.getSize(new e.Vector2);if(i.width>i.height){var r=t.autoUpdate;r&&(t.updateMatrixWorld(),t.autoUpdate=!1);var o={x:Math.round(i.width*la[0]),y:Math.round(i.height*la[1]),width:Math.round(i.width*la[2]),height:Math.round(i.height*la[3])},a={x:Math.round(i.width*ua[0]),y:Math.round(i.height*ua[1]),width:Math.round(i.width*ua[2]),height:Math.round(i.height*ua[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),n.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis((new e.Vector3).fromArray(s.left),this.scale),this.cameraR.translateOnAxis((new e.Vector3).fromArray(s.right),this.scale);var l=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=l.left.slice(),this.cameraR.projectionMatrix.elements=l.right.slice(),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(t,this.cameraR),this.renderer.setViewport(0,0,i.width,i.height),this.renderer.setScissor(0,0,i.width,i.height),this.renderer.setScissorTest(!1),r&&(t.autoUpdate=!0)}else this.renderer.render(t,n)},t.prototype.dispose=function(){},t}(),ha={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},da="undefined"!=typeof navigator&&null!==($o=ha[navigator.language.split("-")[0]])&&void 0!==$o?$o:ha.zh,pa="\n<style>\n.$id {\n all: initial;\n position: absolute;\n overflow: hidden;\n display: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.$id-modal {\n width: 100%;\n height: 332px;\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: transform;\n animation: $id-modal-fade-in 0.3s ease 1;\n}\n.$id-modal-bg {\n background: rgba(0, 0, 0, 0.75);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.$id-modal-bg-line {\n height: 1px;\n background-image: linear-gradient(\n 85deg,\n rgba(162, 177, 255, 0.3) 1%,\n rgba(120, 126, 255, 0.8) 30%,\n rgba(147, 218, 255, 0.8) 66%,\n rgba(250, 255, 184, 0.3) 92%\n );\n}\n.$id-modal-bg-wave svg {\n width: 375px;\n height: 61px;\n display: block;\n}\n.$id-modal-content {\n color: #ffffff;\n padding: 0 14px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n overflow: hidden;\n}\n.$id-modal-content-title {\n font-size: 17px;\n font-family: sans-serif;\n line-height: 18px;\n padding: 20px 0;\n font-weight: bold;\n}\n.$id-modal-content-hit {\n font-size: 14px;\n font-family: sans-serif;\n line-height: 24px;\n opacity: 0.85;\n}\n.$id-modal-content-guide {\n position: relative;\n width: 168px;\n height: 139px;\n margin: 36px auto 0;\n}\n.$id-modal-content-guide-cardboard {\n position: absolute;\n width: 100px;\n height: 82px;\n left: 68px;\n top: 57px;\n}\n.$id-modal-content-guide-cardboard-image {\n width: 100px;\n height: 82px;\n background-image: url(".concat("data:image/png;base64,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",");\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-content-guide-phone {\n position: absolute;\n width: 58px;\n height: 56px;\n left: 0;\n top: 0;\n}\n.$id-modal-content-guide-phone-move-x {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-x 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-move-y {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-y 4s cubic-bezier(0.42, 0, 0.23, 0.98) 0.5s infinite;\n}\n.$id-modal-content-guide-phone-blink {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n will-change: opacity;\n animation: $id-guide-blink 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-image {\n width: 58px;\n height: 56px;\n background-image: url(").concat("data:image/png;base64,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",');\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-close {\n position: absolute;\n top: 20px;\n right: 14px;\n width: 14px;\n height: 14px;\n}\n.$id-modal-close svg {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n@keyframes $id-modal-fade-in {\n 0% { transform: translate3d(0, 100%, 0); opacity: 0.5; }\n 100% { transform: translate3d(0, 0, 0); opacity: 1; }\n}\n@keyframes $id-guide-blink {\n 0% { opacity: 0; }\n 7% { opacity: 0; }\n 12% { opacity: 1; }\n 29% { opacity: 1; }\n 34% { opacity: 0.3; }\n 39% { opacity: 1; }\n 44% { opacity: 0.3; }\n 49% { opacity: 1; }\n 80% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes $id-guide-move-x {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(70px, 0, 0); }\n 100% { transform: translate3d(70px, 0, 0); }\n}\n@keyframes $id-guide-move-y {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(0, 58px, 0); }\n 100% { transform: translate3d(0, 58px, 0); }\n}\n@media screen and (orientation: portrait) {\n .$id {\n display: block;\n }\n}\n</style>\n<div class="$id-modal">\n <div class="$id-modal-bg">\n <div class="$id-modal-bg-line"></div>\n <div class="$id-modal-bg-wave">\n <svg width="375" height="61" viewBox="0 0 375 61" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <linearGradient x1="0" y1="0%" x2="0" y2="100%" id="$id-2y6_dj_hgp">\n <stop stop-color="#8598FF" stop-opacity="0.15" offset="0%"></stop>\n <stop stop-color="#000" stop-opacity="0" offset="100%"></stop>\n </linearGradient>\n </defs>\n <path transform="translate(187.5, 30.5) scale(-1, 1) translate(-187.5, -30.5)" fill="url(#$id-2y6_dj_hgp)" d="\nM0,1\nC83.001,1.706 140.146,4.164 171.435,8.374\nC218.369,14.688 253.467,26.308 273.002,33\nC292.536,39.691323.501,51 343.709,56\nC357.182,59.333 367.612,61 375,61\nL375,0\nL0,0\nL0,1\nZ\n"></path>\n </svg>\n </div>\n </div>\n <div class="$id-modal-content">\n <div class="$id-modal-content-title">').concat(da.TITLE,'</div>\n <div class="$id-modal-content-hit">').concat(da.HIT,'</div>\n <div class="$id-modal-content-guide">\n <div class="$id-modal-content-guide-phone">\n <div class="$id-modal-content-guide-phone-move-x">\n <div class="$id-modal-content-guide-phone-move-y">\n <div class="$id-modal-content-guide-phone-blink">\n <div class="$id-modal-content-guide-phone-image"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="$id-modal-content-guide-cardboard">\n <div class="$id-modal-content-guide-cardboard-image"></div>\n </div>\n </div>\n </div>\n <div class="$id-modal-close">\n <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70%" id="$id-ho0itsc4p9">\n <stop stop-color="#FFF" stop-opacity="0.75" offset="0%"></stop>\n <stop stop-color="#FFF" stop-opacity="0.22" offset="100%"></stop>\n </radialGradient>\n </defs>\n <path transform="translate(-3, -3)" fill="url(#$id-ho0itsc4p9)" fill-rule="nonzero" d="\nM16.791,3.198\nC17.044,3.438 17.067,3.814 16.860,4.080\nL16.791,4.156\nL12.144,9.331\nC11.803,9.711 11.803,10.288 12.144,10.668\nL16.791,15.843\nC17.044,16.084 17.067,16.460 16.860,16.725\nL16.791,16.801\nC16.538,17.042 16.142,17.063 15.864,16.867\nL15.784,16.801\nL10.000,11.250\nL4.215,16.801\nL4.135,16.867\nC3.857,17.063 3.461,17.042 3.208,16.801\nL3.208,16.801\nL3.139,16.725\nC2.932,16.460 2.955,16.084 3.208,15.843\nL3.208,15.843\nL7.855,10.668\nC8.196,10.288 8.196,9.711 7.855,9.331\nL7.855,9.331\nL3.208,4.156\nL3.139,4.080\nC2.932,3.814 2.955,3.438 3.208,3.198\nC3.486,2.933 3.937,2.933 4.215,3.198\nL4.215,3.198 L9.999,8.749\nL15.784,3.198\nC16.062,2.933 16.513,2.933 16.791,3.198\nZ\n"></path>\n </svg>\n </div>\n</div>\n');var fa=new e.CircleBufferGeometry(.12,16),Aa=function(t){function n(){var n=t.call(this)||this;n.progress=0,n.opacity=0,n.loading=!1,n.current=!1,n.disabled=!1,n.currentMotion=new lr({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),n.opacityMotion=new lr({opacity:0}),n.loadingMotion=new lr({opacity:0}),n.disableMotion=new lr({opacity:0});var i={blending:e.CustomBlending,blendSrc:e.SrcAlphaFactor,blendDst:e.OneMinusSrcAlphaFactor,blendSrcAlpha:e.OneFactor,blendDstAlpha:e.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return n.hitTestMesh=new e.Mesh(fa,new e.MeshBasicMaterial(ne(ne({},i),{color:0,opacity:0}))),n.hitTestMesh.scale.set(1.5,1.5,1.5),n.ringMesh=new e.Mesh(fa,new e.ShaderMaterial(ne(ne({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\nuniform float opacity;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n",uniforms:{opacity:{value:0}}}))),n.panoMesh=new e.Mesh(fa,new e.ShaderMaterial(ne(ne({},i),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),n.add(n.hitTestMesh),n.add(n.ringMesh),n.add(n.panoMesh),n.renderOrder=1e4,n.needsRender=!0,n}return te(n,t),n.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},n.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Gt(e,0,1),this.opacityMotion.set({opacity:e},30).catch(le))},n.prototype.setCurrent=function(e){if(this.current!==e){if(e){var t=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(t,1500).catch(le)}else t=[{progress:0,value:ne({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}],this.currentMotion.setKeyframes(t,200).catch(le);this.current=e}},n.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(le):this.loadingMotion.set({opacity:0},0).catch(le),this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.needsRender=!0)},n.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(le),this.needsRender=!0)},n.prototype.tap=function(){return Promise.resolve()},n.prototype.updateTime=function(e,t){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var n=this.opacityMotion.value.opacity,i=this.currentMotion.value,r=i.ringScale,o=i.ringOpacity,a=i.circleFade,s=i.circleOpacity,l=i.circleScale;this.ringMesh.scale.set(r,1,r),this.ringMesh.material.uniforms.opacity.value=o*n,this.panoMesh.material.uniforms.opacity.value=n,this.panoMesh.material.uniforms.circleOpacity.value=s,this.panoMesh.material.uniforms.circleScale.value=l,this.panoMesh.material.uniforms.circleFade.value=a,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0},n.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},n}(e.Object3D),va=function(t){function n(e){var i=this,r=n.parseArgs(e);(i=t.call(this,r)||this).cardboard=new ca(i.renderer);var o,a,s,l=(a=function(e){for(var t=1,n=document.getElementsByTagName("meta"),i=0;i<n.length;i++){var r=n[i];if("viewport"===r.getAttribute("name")){var o=(r.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(t=Number(o[1])),isNaN(t)&&(t=1)}}return pa.replace(/\n/g," ").replace(/\ +/g," ").replace(/\$id/g,e).replace(/(\d+)px/g,(function(e,n){return function(e){return Math.floor(e*t)+"px"}(Number(n))}))}(o="five_vr_helper_"+Ii()),(s=document.createElement("div")).className=o,s.innerHTML=a,s);i.helperElement=l;var u=new zr(l);return i.element.parentNode&&(i.element.parentNode.insertBefore(l,i.element),i.setHelperElementSize(),u.on("tap",(function(){return i.emit("vrWantsToExit")}))),i.destroyHelper=function(){u.destroy(),l.parentNode&&l.parentNode.removeChild(l),delete i.helperElement},i}return te(n,t),n.parseArgs=function(e){var n=ne(ne({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,n)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var e=0,n=this.panoMeshes;e<n.length;e++){var i=n[e];this.helper.remove(i),i.dispose()}this.panoMeshes.length=0},n.prototype.isReady=function(){return!1},n.prototype.updateRenderSize=function(){this.needsRender=!0,this.setHelperElementSize()},n.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),n=0,i=this.work.observers;n<i.length;n++){var r=i[n],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&(this.helper.remove(o),o.setOpacity(0)))}},n.prototype.updatePanoMeshes=function(){var e=this;this.panoMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoMeshes.length=0,this.panoMeshHitTested={};for(var t=0;t<this.work.observers.length;t++){var n=this.work.observers[t],i=new Aa;i.name="panoSphere_".concat(this.work.workCode,"_").concat(t),i.position.copy(n.position),i.needsRender=!0,this.panoMeshes[t]=i}this.updatePanoMeshesVisible()},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u=[],c=2;c<arguments.length;c++)u[c-2]=arguments[c];if(!this.destroyed){var h=this.currentPanoIndex;this.needsRender=!0;var d={},p={};if(!1===this.locationMotion.ended){this.locationMotion.update(t);var f=this.locationMotion.getKeyFrameSegment(t),A=f[0],v=f[1],m=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(v),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),x=m.position,w=g.position,M=this.locationMotion.value.count-v.value.count+1;d.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,d.useBlackTransition="instant"===g.effect,g.panoPicture&&(M<1?m.panoPicture&&(d.pano0=m.panoPicture):d.pano0=g.panoPicture,d.pano1=g.panoPicture),"fade"===g.effect&&(d.pano0&&m.panoPicture&&(d.pano0={map:d.pano0.map,luminanceMap:d.pano0.luminanceMap,matrix:m.panoPicture.matrix.clone().setPosition(g.position)}),x.copy(w)),d.progress=M,p.distance=this.locationMotion.value.distance,p.offset=new e.Vector3(x.x+(w.x-x.x)*M,x.y+(w.y-x.y)*M,x.z+(w.z-x.z)*M);for(var E=[],C=[],I=0,S=this.locationMotion.keyframes;I<S.length;I++){var B=S[I],T=B.key,P=B.progress;void 0!==T&&(E.push(T),P>=this.locationMotion.progress&&C.push(T))}for(var R=0,L=Object.keys(this.panoResources);R<L.length;R++){var k=L[R];if(!(C.indexOf(k)>=0)){var O=this.panoResources[k];if(O.panoPicture){var F=O.panoPicture.map;if(F){if(F===(null===(i=d.pano0)||void 0===i?void 0:i.map))continue;if(F===(null===(r=d.pano1)||void 0===r?void 0:r.map))continue;F.dispose(),O.panoPicture=null}}E.indexOf(k)>=0||delete this.panoResources[k]}}this.currentPanoIndex=M<.5?m.panoIndex:g.panoIndex,this.emit("movingToPano",b.panoIndex,y.panoIndex,this.locationMotion.progress)}!1===Vr(d)&&((null===(o=d.pano0)||void 0===o?void 0:o.map)&&d.pano0.map instanceof wt&&!d.pano0.map.cubeRenderTarget&&(d.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=d.pano0)||void 0===a?void 0:a.luminanceMap)&&d.pano0.luminanceMap instanceof wt&&!d.pano0.luminanceMap.cubeRenderTarget&&(d.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=d.pano1)||void 0===s?void 0:s.map)&&d.pano1.map instanceof wt&&!d.pano1.map.cubeRenderTarget&&(d.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=d.pano1)||void 0===l?void 0:l.luminanceMap)&&d.pano1.luminanceMap instanceof wt&&!d.pano1.luminanceMap.cubeRenderTarget&&(d.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.model.setMaterial(d)),p.offset&&this.camera.position.copy(p.offset),this.currentPanoIndex!==h&&this.updatePanoMeshesVisible();var D=this.camera.pose.longitude,Q=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.updateMatrixWorld(),this.camera.computePose();for(var N=0,V=this.work.observers[this.currentPanoIndex].visibleNodes.concat(this.currentPanoIndex);N<V.length;N++){var U=V[N],_=this.work.observers[U],z=this.panoMeshes[U];if(_.loadable||_.active){var q=z.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);q<.05?z.setOpacity(0):z.setOpacity(Gt(1.5/q,0,1)),this.currentPanoIndex===U&&z.setOpacity(0),z.lookAt(this.camera.position)}else z.setOpacity(0)}var H=this.intersect(t);for(U=0;U<this.work.observers.length;U++)null==(z=this.panoMeshes[U])||z.setCurrent(z===H);for(U=0;U<this.work.observers.length;U++)(z=this.panoMeshes[U])&&z.updateTime&&z.updateTime(t,n);D===this.camera.pose.longitude&&Q===this.camera.pose.latitude||(this.cameraMotion.set(hn(this.camera.pose,["longitude","latitude"]),0).catch(le),this.emit("cameraDirectionUpdate",hn(this.camera.pose,["longitude","latitude"]),!0),this.emit("cameraUpdate",Ur(hn(this.camera.pose,["longitude","latitude","fov","offset","distance"])),!0))}},n.prototype.render=function(){this.cardboard.render(this.scene,this.camera)},n.prototype.setCamera=function(e){void 0===e&&(e={})},n.prototype.destroyHelper=function(){},n.prototype.setHelperElementSize=function(){if(this.helperElement){var t=new e.Vector2(this.element.offsetWidth,this.element.offsetHeight),n=t.x*this.scissor.left,i=t.y*(1-this.scissor.bottom-this.scissor.height),r=t.x*this.scissor.width,o=t.y*this.scissor.height;this.helperElement.style.marginLeft=n+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=r+"px",this.helperElement.style.height=o+"px"}},n.prototype.intersect=function(t){var n;if(!1===this.locationMotion.ended)return this.intersectMesh.visible=!1,delete this.activePanoMesh,void delete this.activeTime;if(this.activePanoMesh&&this.activeTime&&t-this.activeTime>1500){var i=this.activePanoMesh;return(u=this.panoMeshes.indexOf(i))>=0&&this.moveToPano(u,{},!0),delete this.activePanoMesh,delete this.activeTime,i}for(var r=this.camera.getDirection(new e.Vector3),o=new e.Raycaster(this.camera.position,r),a=void 0,s=[],l=this.work.observers[this.currentPanoIndex].visibleNodes,u=0;u<this.work.observers.length;u++){var c=this.panoMeshes[u];if(-1!==l.indexOf(u)){var h=o.intersectObject(null!==(n=c.hitTestMesh)&&void 0!==n?n:c,!0)[0];h&&s.push({panoMesh:c,intersection:h})}}var d=s.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];if(d?(a=d.intersection,this.activePanoMesh!==d.panoMesh&&(this.activePanoMesh=d.panoMesh,this.activeTime=t),this.intersectMesh.position.copy(d.panoMesh.position),this.intersectMesh.lookAt(this.camera.position),this.intersectMesh.visible=!1):(this.activePanoMesh=void 0,this.activeTime=void 0),!a)if((a=this.model.intersectRaycaster(o)[0])&&a.face){var p=a.face.normal,f=new e.Quaternion;f.setFromUnitVectors(new e.Vector3(0,0,1),p),this.intersectMesh.quaternion.copy(f);var A=p.clone().multiplyScalar(.05),v=a.point.clone().add(A);this.intersectMesh.position.copy(v),this.intersectMesh.visible=!0,this.emit("intersectionOnModelUpdate",a,this.intersectMesh)}else this.intersectMesh.visible=!1,this.emit("intersectionHidden");return null==d?void 0:d.panoMesh},n.prototype.onPanGesture=function(){},n.prototype.onTapGesture=function(){},n.prototype.onPinchGesture=function(){},n.prototype.onMouseMove=function(){},n.prototype.onMouseOut=function(){},n}(Vo),ma=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).currentPanoIndex=a.initial[0],o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(n,t),n.parseArgs=function(e){return t.parseArgs.call(this,e)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.locationMotion.dispose()},n.prototype.isReady=function(){return!1!==this.locationMotion.ended},n.prototype.updateWork=function(e,t,n,i,r){this.work=e,this.currentPanoIndex=t,this.hideIntersectMesh();var o={duration:0,longitude:n.longitude,latitude:n.latitude,fov:n.fov};return this.moveToPano(t,o,r),!0},n.prototype.updateTime=function(t,n){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(!this.destroyed){var o={},a={};if(!this.locationMotion.ended){this.locationMotion.update(t),o.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,a.distance=this.locationMotion.value.distance,a.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var s=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=Nr(this.work.observers,(function(e){return e.position.distanceTo(s)}));this.currentPanoIndex=this.work.observers.indexOf(l)}this.cameraMotion.ended||(this.cameraMotion.update(t),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),Vr(o)||this.model.setMaterial(o),Vr(a)||this.setCamera(a)}},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),o()},moveCancelCallback:function(){var e=r.currentPanoIndex,t={longitude:r.camera.pose.longitude,latitude:r.camera.pose.latitude,fov:r.camera.pose.fov,offset:r.camera.pose.offset.clone(),distance:r.camera.pose.distance};r.emit("initAnimationEnded",e,t,r.userAction),o()}},i)}))},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,offset:new e.Vector3(n.value.x,n.value.y,n.value.z),distance:n.value.distance}},n.prototype.moveToPano=function(e,t,n){void 0===t&&(t={});var i=this.work.observers[e];i&&this.moveToPosition(i.position,t,n)},n.prototype.moveToPosition=function(t,n,i){var r,o,a,s=this;void 0===n&&(n={}),this.userAction=i;for(var l=ce(),u=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z).distanceTo(t),c=this.locationMotion.getProgressVelocity(l),h=0,d=1;d<this.locationMotion.keyframes.length;d++){var p=this.locationMotion.keyframes[d-1].value,f=p.x,A=p.y,v=p.z,m=this.locationMotion.keyframes[d].value,g=m.x,y=m.y,b=m.z;h+=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-A,2)+Math.pow(b-v,2))}var x=0===u?0:c*h/u,w=this.calculateMovingDuration(n.duration,u),M={x:t.x,y:t.y,z:t.z,distance:0,modelAlpha:1,perspToOrtho:0,orthoDistance:1},E={longitude:n.longitude,latitude:n.latitude,fov:n.fov},C={longitude:null!==(r=E.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(o=E.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=E.fov)&&void 0!==a?a:this.camera.pose.fov,offset:t.clone(),distance:0},I=Nr(this.work.observers,(function(e){return e.position.distanceTo(t)})),S=this.work.observers.indexOf(I);this.emit("moveToPano",S,this.userAction),n.moveStartCallback&&n.moveStartCallback(S,C),this.emit("panoWillArrive",S,C,this.userAction),this.cameraMotion.set(E,w).catch(le),this.locationMotion.set(M,w,x).then((function(){var e=Ur(s.camera.pose);n.moveEndCallback&&n.moveEndCallback(S,e),s.emit("panoArrived",S,e,s.userAction)}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),s.emit("moveToPanoCanceled",S)}))},n.prototype.onTapGesture=function(t){var n=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var i=this.relativeClientPosition(t.center),r=new e.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.model.intersectRaycaster(r)[0];if(o&&o.face){var a=o.face.normal,s=o.point;if(new e.Vector3(0,1,0).angleTo(a)>Math.PI/3){var l=this.camera.position.clone().setY(s.y),u=s.clone().sub(l).setLength(.3),c=s.clone().sub(u);r.set(c,new e.Vector3(0,-1,0)),o=this.model.intersectRaycaster(r)[0]}}if(o){var h=o.point.clone(),d=Nr(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-h.y)<1})),(function(e){return e.standingPosition.distanceTo(h)}));if(d)return h.y=d.position.y,void this.moveToPosition(h,{},!0)}this.cameraBounce()}}},n}(po);const ga=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),ya=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f");var ba=Object.assign({opacity:new e.Uniform(1),scale:new e.Uniform(13.1),panoMap:new e.Uniform(null),panoDisplacementMap:new e.Uniform(null),panoPosition:new e.Uniform(new e.Vector3),panoMatrix:new e.Uniform(new e.Matrix4)},{emissive:new e.Uniform(new e.Color(0)),emissiveMap:new e.Uniform(null),specular:new e.Uniform(new e.Color(1118481)),specularMap:new e.Uniform(null),normalMap:new e.Uniform(null),bumpMap:new e.Uniform(null),shininess:new e.Uniform(30)},e.UniformsLib.common,e.UniformsLib.lights),xa=new e.SphereBufferGeometry(.01,128,128),wa=function(){function t(e){void 0===e&&(e={}),this.textureLoader=new Mt({allowHosts:this.allowHosts,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe}),this.allowHosts=e.allowHosts,this.requestProxy=e.requestProxy,this.networkSubscribe=e.networkSubscribe}return t.prototype.setAllowHosts=function(e){this.allowHosts=e,this.textureLoader.setAllowHosts(e)},t.prototype.setRequestProxy=function(e){this.requestProxy=e,this.textureLoader.setRequestProxy(e)},t.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e,this.textureLoader.setNetworkSubscribe(e)},t.prototype.load=function(t,n,i,r,o,a,s,l,u){var c=[0,0],h=function(e,t){c[t]=e,l(.8*c[0]+.2*c[1])},d=[this.textureLoader.loadTexture(t,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,1)}),u),this.textureLoader.loadCubeTexture(n,{imageURL:i,viaAjax:!0},void 0,void 0,(function(e){return h(e,0)}),u)];return Promise.all(d).then((function(t){var n=t[0],i=t[1],s=function(t,n,i,r){var o=new e.ShaderMaterial({side:e.BackSide,vertexShader:ga,fragmentShader:ya,transparent:!0,uniforms:e.UniformsUtils.clone(ba)}),a=n;return a.needsUpdate=!0,a.minFilter=e.LinearFilter,a.magFilter=e.LinearFilter,t.needsUpdate=!0,t.minFilter=e.LinearFilter,t.magFilter=e.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=a,o.uniforms.panoDisplacementMap.value=t,o.uniforms.panoPosition.value=i,o.uniforms.panoMatrix.value=r,Object.assign(new e.Mesh(xa,o),{frustumCulled:!1,dispose:function(){this.material instanceof e.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(n.body,i.body,r,o),l={body:s,meta:ie([n.meta],i.meta,!0)};return a(l),l})).catch((function(e){for(var t=0,n=d;t<n.length;t++)n[t].then((function(e){return e.body.dispose()})).catch(le);return s(e),Promise.reject(e)}))},t}(),Ma=new e.Vector3(-1,1,1),Ea=function(t){function n(i){var r,o,a,s,l,u=this,c=n.parseArgs(i);return(u=t.call(this,c)||this).currentPanoIndex=c.initial[0],u.forwardPanoIndex=null,u.maxAccessibleDistance=c.maxAccessibleDistance,u.panoTapTriggerRadius=c.panoTapTriggerRadius,u.panoCircleMeshCreator=c.panoCircleMeshCreator,u.panoModelGroup=new e.Group,u.panoModelGroup.name="panoModels",u.scene.add(u.panoModelGroup),u.panoMeshes=[],u.updatePanoMeshes(),u.helper.remove(u.intersectMesh),u.locationMotion=new lr({count:0,distance:u.camera.pose.distance,modelAlpha:null!==(o=null===(r=u.model.getMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,perspToOrtho:u.camera.perspToOrtho.x,orthoDistance:u.camera.orthoDistance}),u.panoResources={},u.panoResources[u.locationMotion.keyframes[0].key=u.locationMotion.keyframes[1].key=Ii()]={panoIndex:u.currentPanoIndex,workCode:u.work.workCode,matrix:null!==(l=null===(s=null===(a=u.model.getMaterial())||void 0===a?void 0:a.pano1)||void 0===s?void 0:s.matrix)&&void 0!==l?l:new e.Matrix4,position:u.camera.pose.offset.clone(),effect:"fly"},u.depthTextureLoader=new wa({allowHosts:u.work.allowHosts,requestProxy:u.requestProxy,networkSubscribe:u.networkSubscribe}),u}return te(n,t),n.parseArgs=function(e){var n,i,r,o=t.parseArgs.call(this,e);return ne(ne({},o),{maxAccessibleDistance:null!==(n=e.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=e.panoTapTriggerRadius)&&void 0!==i?i:1,panoCircleMeshCreator:null!==(r=e.panoCircleMeshCreator)&&void 0!==r?r:function(e){return new hr}})},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.destroy=function(){var e,n=this;if(t.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.model&&(this.model.visible=!0),this.panoModelGroup){for(var i=0,r=this.panoModelGroup.children;i<r.length;i++){var o=r[i];"function"==typeof o.dispose&&o.dispose()}this.scene.remove(this.panoModelGroup)}this.panoMeshes&&(this.panoMeshes.forEach((function(e){n.helper.remove(e),e.dispose()})),this.panoMeshes.length=0);for(var a=null!==(e=this.model.getMaterial())&&void 0!==e?e:{},s=a.pano0,l=a.pano1,u=0,c=Object.keys(this.panoResources);u<c.length;u++){var h=c[u],d=this.panoResources[h];d.panoModel&&d.panoModel.material.uniforms.panoMap.value!==(null==s?void 0:s.map)&&d.panoModel.material.uniforms.panoMap.value!==(null==l?void 0:l.map)&&(this.panoModelGroup.remove(d.panoModel),d.panoModel.material.uniforms.panoMap.value.dispose(),d.panoModel.dispose(),delete d.panoModel),delete this.panoResources[h]}this.interiaMovement=!1},n.prototype.isReady=function(){return!1===this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.currentPanoIndex=t,this.depthTextureLoader.setAllowHosts(this.work.allowHosts),this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(t,{effect:"fade",duration:i,longitude:n.longitude,latitude:n.latitude,fov:n.fov},r),!0},n.prototype.updateTime=function(t,n){for(var i,r,o=this,a=[],s=2;s<arguments.length;s++)a[s-2]=arguments[s];if(!this.destroyed){var l=this.currentPanoIndex,u={},c={},h=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),d=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),p=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var f=this.locationMotion.getKeyFrameSegment(t),A=f[0],v=f[1],m=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(v),y=(new e.Vector3).copy(m.position),b=(new e.Vector3).copy(g.position),x=this.locationMotion.value.count-v.value.count+1;u.progress=x,u.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance;for(var w=0,M=this.panoModelGroup.children;w<M.length;w++){var E=M[w];E.visible=E===m.panoModel||E===g.panoModel}m.panoModel&&(m.panoModel.material.uniforms.opacity.value=1-x,m.panoModel.material.depthTest=0!==x),g.panoModel&&(g.panoModel.material.uniforms.opacity.value=x,g.panoModel.material.depthTest=1!==x),g.panoModel&&(x<1?m.panoModel&&(u.pano0={map:m.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:m.matrix}):u.pano0={map:g.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:g.matrix},u.pano1={map:g.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:g.matrix}),p=u.useBlackTransition="instant"===g.effect||"montage"===g.effect,"fade"!==g.effect&&"montage"!==g.effect||(u.pano0&&(u.pano0={map:u.pano0.map,luminanceMap:null,matrix:m.matrix.clone().setPosition(g.position)}),y.copy(b)),c.distance=this.locationMotion.value.distance,c.offset=new e.Vector3(y.x+(b.x-y.x)*x,y.y+(b.y-y.y)*x,y.z+(b.z-y.z)*x);for(var C=[],I=[],S=0,B=this.locationMotion.keyframes;S<B.length;S++){var T=B[S],P=T.key,R=T.progress;void 0!==P&&(C.push(P),R>=this.locationMotion.progress&&I.push(P))}for(var L=0,k=Object.keys(this.panoResources);L<k.length;L++){var O=k[L];if(!(I.indexOf(O)>=0)){var F=this.panoResources[O];if(F.panoModel){if(F.panoModel.material.uniforms.panoMap.value===(null===(i=u.pano0)||void 0===i?void 0:i.map))continue;if(F.panoModel.material.uniforms.panoMap.value===(null===(r=u.pano1)||void 0===r?void 0:r.map))continue;this.panoModelGroup.remove(F.panoModel),F.panoModel.material.uniforms.panoMap.value.dispose(),F.panoModel.dispose(),delete F.panoModel}C.indexOf(O)>=0||delete this.panoResources[O]}}m.workCode===g.workCode?this.currentPanoIndex=x<.5?m.panoIndex:g.panoIndex:this.currentPanoIndex=g.panoIndex,this.emit("movingToPano",d.panoIndex,h.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),c.longitude=this.cameraMotion.value.longitude,c.latitude=this.cameraMotion.value.latitude,c.fov=this.cameraMotion.value.fov),!1===Vr(u)&&this.model.setMaterial(u);var D=!1;if(!1===Vr(c)&&(this.setCamera(c),D=!0),this.currentPanoIndex!==l&&(this.updatePanoMeshesVisible(),D=!0),D&&(Y=this.work.observers[this.currentPanoIndex])){var Q=Rt(this.camera.pose).normalize(),N=new e.Raycaster(Y.position,Q);this.forwardPanoIndex=this.getForwardPanoIndexOrNot(N)}if(this.camera.pose.distance>.1||p){var V=this.work.observers[this.currentPanoIndex];if(V)for(var U=0,_=j=V.visibleNodes.concat(this.currentPanoIndex);U<_.length;U++){var z=_[U];(X=this.panoMeshes[z])&&X.setOpacity(0)}}else{var q=this.work.observers[this.currentPanoIndex];if(q){var H=Nr(q.visibleNodes,(function(e){return q.standingPosition.distanceTo(o.work.observers[e].standingPosition)}),!0)[1];H=Gt(H,2.5,1/0);for(var j=q.visibleNodes.concat(this.currentPanoIndex),K=this.camera.getDirection(new e.Vector3),G=0,W=j;G<W.length;G++){z=W[G];var X,Y=this.work.observers[z];if(X=this.panoMeshes[z])if(Y.loadable||Y.active){var Z=X.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);X.setCurrent(!X.loading&&0===X.progress&&this.forwardPanoIndex===z),X.setOpacity(Z<.01?0:Gt(H/Z*1.2,.65,.98));var J=this.camera.position.clone().setY(X.position.y);if(Q=(new e.Vector3).copy(X.position).sub(J).normalize(),z===this.currentPanoIndex){var $=Gt((.5-J.distanceTo(X.position))/.5,0,1);Q.multiplyScalar(1-$).add(K.clone().multiplyScalar($))}Q.length()>0&&X.quaternion.setFromEuler(new e.Euler(0,Math.atan2(Q.x,Q.z),0)),X.updateTime&&X.updateTime(t,n)}else X.setOpacity(0)}}}}},n.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(ce())[1],t=this.locationMotion.getKeyFrameSegment(ce())[1],n=this.panoResourceFromLocationMotionKeyframe(t),i=this.work.observers[n.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:i?i.position.clone():this.camera.position.clone(),distance:0}},n.prototype.moveToPano=function(t,n,i){var r,o=this;void 0===n&&(n={}),this.userAction=i;var a=this.work.observers[t].images.depth,s=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality","sharpen","mappings"])),l=this.imageOptions.transform,u=this.work.observers[t].images,c=this.work.observers[t],h=c.position,d=c.quaternion,p=(new e.Matrix4).compose(h,d,new e.Vector3(-1,1,1)),f="pano:"+pn(u);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var A=this.pendingTextureTask.panoIndex;null===(r=this.panoMeshes[A])||void 0===r||r.setProgress(0),this.emit("textureAbort",A,this.work.observers[A]),this.pendingTextureTask.onError(new Error("texture aborted"))}var v="move-to-pano-"+t;this.pending.add(v),this.pendingTextureTask={panoIndex:t,hash:f,onLoad:function(e){o.pending.delete(v),o.destroyed?e.body.dispose():(e.body.name=f,o.emit("panoLoaded",t),o.doMoveToPano(t,e.body,n))},onError:function(e){o.pending.delete(v),n.moveCancelCallback&&n.moveCancelCallback(),o.emit("panoLoadError",e,t),o.emit("moveToPanoCanceled",t)}};var m=this.panoMeshes[t];m&&m.tap&&m.tap(),this.depthTextureLoader.load(a,u,{transform:l,options:s},h,p,(function(e){var n,i;(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f?(o.pendingTextureTask.onLoad(e),null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(0),delete o.pendingTextureTask,o.emit("textureLoaded",t,o.work.observers[t],e.meta)):e.body.dispose()}),(function(e){var n,i;(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f&&(o.pendingTextureTask.onError(e),null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(0),delete o.pendingTextureTask,o.emit("textureError",e,t,o.work.observers[t]),o.emit("error",e))}),(function(e){var n,i;o.emit("textureLoading",e,t,o.work.observers[t]),(null===(n=o.pendingTextureTask)||void 0===n?void 0:n.hash)===f&&(null===(i=o.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer),this.emit("textureStartLoad",t,this.work.observers[t])},n.prototype.initAnimation=function(e,t,n,i){var r=this;return this.destroyed?Promise.resolve():new Promise((function(o){var a,s,l,u=!1;r.userAction=i,r.moveToPano(e,{longitude:null!==(a=t.longitude)&&void 0!==a?a:r.defaultLongitude,latitude:Gt(null!==(s=t.latitude)&&void 0!==s?s:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:Gt(null!==(l=t.fov)&&void 0!==l?l:r.defaultFov,r.minFov,r.maxFov),duration:n,moveStartCallback:function(e,t){u=!0,r.emit("initAnimationWillStart",e,t,r.userAction)},moveEndCallback:function(e,t){r.emit("initAnimationEnded",e,t,r.userAction),o()},moveCancelCallback:function(){var e=Ur(r.camera.pose);!1===u&&r.emit("initAnimationWillStart",r.currentPanoIndex,e,r.userAction),r.emit("initAnimationEnded",r.currentPanoIndex,e,r.userAction),o()}},i)}))},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.locationMotionKeyframesLength=function(e){for(var t=0,n=1;n<e.length;n++){var i=this.panoResourceFromLocationMotionKeyframe(e[n-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[n]).position;t+=i.distanceTo(r)*(e[n].value.count-e[n-1].value.count)}return t},n.prototype.updatePanoMeshesVisible=function(){for(var e=this.work.observers[this.currentPanoIndex],t=(e?e.visibleNodes:[]).concat(this.currentPanoIndex),n=0,i=this.work.observers;n<i.length;n++){var r=i[n],o=this.panoMeshes[r.panoIndex];o&&(t.indexOf(r.panoIndex)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&this.helper.remove(o))}},n.prototype.updatePanoMeshes=function(){for(var e=this,t={},n=0,i=this.panoMeshes;n<i.length;n++)t[(p=i[n]).name]=p;this.panoMeshes.length=0;for(var r=1,o={},a=function(t){var n=Nr(t.accessibleNodes,(function(n){return Gt(e.work.observers[n].standingPosition.distanceTo(t.standingPosition),1,1/0)}),!0),i=n[1];void 0===o[t.panoIndex]&&(o[t.panoIndex]=i)},s=0,l=this.work.observers;s<l.length;s++)a(d=l[s]);var u=Object.keys(o).map((function(e){return o[e]}));u.length&&(r=Gt(u.reduce((function(e,t){return e+t}),0)/u.length*.6,1,3));for(var c=0;c<this.work.observers.length;c++){var h="panoCircle_".concat(this.work.workCode,"_").concat(c),d=this.work.observers[c],p=void 0;t[h]?(!0===(p=t[h]).loading&&!1===d.loadable&&p.setLoading(!1),delete t[h]):(p=this.panoCircleMeshCreator(c)).name=h,p.scale.set(r,1,r),p.position.copy(d.standingPosition),this.panoMeshes[c]=p}for(var f=0,A=Object.keys(t);f<A.length;f++){var v=A[f];this.helper.remove(t[v]),t[v].dispose(),delete t[v]}this.updatePanoMeshesVisible()},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s,l=this;void 0===i&&(i={});var u,c,h,d=ce(),p=Ii(),f=this.work.observers[t],A=this.panoResources[p]={panoIndex:t,workCode:this.work.workCode,effect:null!==(r=i.effect)&&void 0!==r?r:"fly",panoModel:n,matrix:(new e.Matrix4).compose(f.position,f.quaternion,Ma),position:f.position.clone()};if(n.visible=!1,n.renderOrder=-1,this.panoModelGroup.add(n),this.locationMotion.ended){var v=this.locationMotion.getKeyFrameSegment(d),m=(v[0],v[1]),g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(m).position,b=A.position;u=Math.max(y.distanceTo(b),1),c=[{key:m.key,progress:0,value:ne(ne({},g),{count:0})},{key:p,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,orthoDistance:1,count:1}}],h=0}else{var x=this.locationMotion.getKeyFrameSegment(d),w=x[0],M=(m=x[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(w).position),E=(y=this.panoResourceFromLocationMotionKeyframe(m).position,b=A.position,m.value.count-g.count),C=Math.max(M.distanceTo(y),1)*E;u=C+Math.max(y.distanceTo(b),1),c=[{key:w.key,progress:0,value:ne({},g)},{key:m.key,progress:C/u,value:m.value},{key:p,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var I=this.locationMotionKeyframesLength(this.locationMotion.keyframes),S=this.locationMotionKeyframesLength(c);h=0===I||0===I?0:this.locationMotion.getProgressVelocity(d)*I/S}var B=this.calculateMovingDuration(i.duration,"fade"===i.effect||"montage"===i.effect?0:u),T={longitude:i.longitude,latitude:i.latitude,fov:i.fov},P={longitude:null!==(o=T.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=T.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:f.position.clone(),distance:this.camera.pose.distance};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,P),this.emit("panoWillArrive",t,P,this.userAction),this.cameraMotion.set(T,B).catch(le),this.locationMotion.setKeyframes(c,B,h).then((function(){var e={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance};i.moveEndCallback&&i.moveEndCallback(t,e),l.emit("panoArrived",t,e,l.userAction)}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),l.emit("moveToPanoCanceled",t)}))},n.prototype.getForwardPanoIndexOrNot=function(t){var n=this,i=this.camera.getDirection(new e.Vector3),r=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var a=o.accessibleNodes.filter((function(t){if(t===n.currentPanoIndex)return!1;var i=n.work.observers[t],o=i.standingPosition.clone().sub(r);return 0!==o.length()&&!(o.angleTo(new e.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active)})),s=(t?t.ray.direction.clone():i.clone()).setY(0);if(0===s.length())return null;for(var l=a.slice().sort((function(e,t){var i=n.work.observers[e].position.clone().setY(r.y),o=n.work.observers[t].position.clone().setY(r.y);return i.distanceTo(r)-o.distanceTo(r)})),u=0,c=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];u<c.length;u++)for(var h=c[u],d=0,p=l;d<p.length;d++){var f=p[d],A=this.work.observers[f].position.clone().setY(r.y).sub(r);if(0!==A.length()&&s.angleTo(A)<h)return f}return null},n.prototype.onTapGesture=function(t){var n=this,i=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",i,!0)){var r=this.relativeClientPosition(t.center),o=new e.Raycaster;if(o.setFromCamera(r,this.camera),!this.emit("wantsTapGesture",o,r,!0)){this.emit("gesture","tap",i,!0),this.emit("tapGesture",o,r,!0),this.interiaMovement=!1;var a=this.camera.getDirection(new e.Vector3).setY(0),s=null,l=this.work.observers[this.currentPanoIndex];if(l){var u=l.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),c=o.intersectObject(this.boundingMesh,!0)[0];if(c){var h=Nr(u,(function(e){var t=n.work.observers[e].standingPosition.clone();return t.clone().sub(n.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(c.point)}),!0),d=h[0];h[1]<this.panoTapTriggerRadius&&(s=d)}Qi(s)&&(s=this.getForwardPanoIndexOrNot(o));for(var p=0,f=this.locationMotion.keyframes;p<f.length;p++){var A=f[p],v=this.panoResourceFromLocationMotionKeyframe(A);if(!(A.progress<this.locationMotion.progress)&&v.panoIndex===s){s=null;break}}if(this.emit("panoSelected",s),Qi(s))!0===this.locationMotion.ended&&this.cameraBounce();else{var m=this.work.observers[s];if(m.active){for(var g={},y=Math.PI/6,b=Math.PI/12,x=new e.Vector3(0,1,0),w=m.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),M=w.clone().applyAxisAngle(x,y),E=w.clone().applyAxisAngle(x,-y),C=[],I=[],S=[],B=0,T=m.accessibleNodes;B<T.length;B++)if((d=T[B])!==this.currentPanoIndex&&d!==s){var P=this.work.observers[d].position.clone().sub(m.position).setY(0);w.angleTo(P)<y?S.push(P):M.angleTo(P)<y?C.push(P):E.angleTo(P)<y&&I.push(P)}var R=(S.length>0?S:ie(ie([],C,!0),I,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];R&&R.angleTo(a)>b&&(g.longitude=Math.atan2(-R.x,-R.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(g.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",s,g,!0)}else this.panoMeshes[s]&&(this.panoMeshes[s].setDisabled(!1),this.panoMeshes[s].setLoading(!0))}}}}},n}(po),Ca=80;function Ia(t,n){var i=new e.Vector3;return i.setFromMatrixColumn(n,0),i.multiplyScalar(-t),i}function Sa(t){var n=new e.Vector3;return n.x=0,n.z=0,n.y=t,n}var Ba=function(t){function n(e){var i,r,o=this,a=n.parseArgs(e);return(o=t.call(this,a)||this).currentPanoIndex=a.initial[0],o.defaultLongitude=a.defaultLongitude,o.defaultLatitude=a.defaultLatitude,o.defaultDistance=a.defaultDistance,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.maxDistance=a.maxDistance,o.minDistance=a.minDistance,o.locationMotion=new lr({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(r=null===(i=o.model.getMaterial())||void 0===i?void 0:i.modelAlpha)&&void 0!==r?r:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o}return te(n,t),n.parseArgs=function(e){var n,i,r,o,a,s,l,u=t.parseArgs.call(this,e);return ne(ne({},u),{defaultLongitude:null!==(n=e.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(i=e.defaultLatitude)&&void 0!==i?i:Math.PI/4,defaultDistance:null!==(r=e.defaultDistance)&&void 0!==r?r:100,maxLatitude:null!==(o=e.maxLatitude)&&void 0!==o?o:+Math.PI/2,minLatitude:null!==(a=e.minLatitude)&&void 0!==a?a:0,maxDistance:null!==(s=e.maxDistance)&&void 0!==s?s:100,minDistance:null!==(l=e.minDistance)&&void 0!==l?l:0})},n.distanceFromModel=function(e,t,n){var i=e.bounding,r=Math.pow(Math.pow(i.max.x-i.min.x+1,2)+Math.pow(i.max.y-i.min.y+1,2)+Math.pow(i.max.z-i.min.z+1,2),.5),o=r/2/Math.tan(Math.PI*t/360);return n<1&&(o/=n),isNaN(o)?r:o},n.initAnimationEndPose=function(t){var i,r,o,a,s,l=this.parseArgs(t),u=(t.initial[0],t.initial[1]);return{longitude:null!==(i=u.longitude)&&void 0!==i?i:l.defaultLongitude,latitude:null!==(r=u.latitude)&&void 0!==r?r:l.defaultLatitude,fov:null!==(o=u.fov)&&void 0!==o?o:Ca,offset:null!==(a=u.offset)&&void 0!==a?a:t.model.bounding.getCenter(new e.Vector3),distance:null!==(s=u.distance)&&void 0!==s?s:n.distanceFromModel(l.model,Ca,l.camera.aspect)}},n.prototype.destroy=function(){t.prototype.destroy.call(this),this.model.enableTiles=!1,this.locationMotion.dispose(),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),delete this.mouseWheelState,delete this.panState},n.prototype.isReady=function(){return!1!==this.locationMotion.ended&&t.prototype.isReady.call(this)},n.prototype.updateCamera=function(e,t,n){var i,r,o;this.userAction=n;var a={longitude:e.longitude,latitude:e.latitude,fov:e.fov},s={x:null===(i=e.offset)||void 0===i?void 0:i.x,y:null===(r=e.offset)||void 0===r?void 0:r.y,z:null===(o=e.offset)||void 0===o?void 0:o.z,distance:e.distance};return Promise.all([this.locationMotion.set(s,t),this.cameraMotion.set(a,t).catch(le)])},n.prototype.updateWork=function(e,t,n,i,r){return this.work=e,this.updateCamera(n,i,r),!0},n.prototype.updateModel=function(n){t.prototype.updateModel.call(this,n);var i=n.bounding.getCenter(new e.Vector3);this.locationMotion.set({x:i.x,y:i.y,z:i.z},0).catch(le),this.model.enableTiles=!0},n.prototype.updateTime=function(t,n){if(!this.destroyed){var i={},r={};this.locationMotion.ended||(this.locationMotion.update(t),i.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,r.distance=this.locationMotion.value.distance,r.offset=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(t),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),Vr(i)||this.model.setMaterial(i),Vr(r)||this.setCamera(r)}},n.prototype.getTargetPose=function(){var t=this.cameraMotion.getKeyFrameSegment(ce())[1],n=this.locationMotion.getKeyFrameSegment(ce())[1];return{longitude:t.value.longitude,latitude:t.value.latitude,fov:t.value.fov,distance:n.value.distance,offset:new e.Vector3(n.value.x,n.value.y,n.value.z)}},n.prototype.initAnimation=function(t,i,r,o){var a=this;return this.destroyed?Promise.resolve():new Promise((function(s){var l,u,c,h,d;a.userAction=o;var p={longitude:null!==(l=i.longitude)&&void 0!==l?l:a.defaultLongitude,latitude:Gt(null!==(u=i.latitude)&&void 0!==u?u:a.defaultLatitude,a.minLatitude,a.maxLatitude),fov:null!==(c=i.fov)&&void 0!==c?c:Ca,offset:null!==(h=i.offset)&&void 0!==h?h:a.model.bounding.getCenter(new e.Vector3),distance:null!==(d=i.distance)&&void 0!==d?d:n.distanceFromModel(a.model,Ca,a.camera.aspect)},f=hn(p,["longitude","latitude","fov"]),A={x:p.offset.x,y:p.offset.y,z:p.offset.z,distance:p.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:p.distance};a.emit("initAnimationWillStart",t,p,a.userAction),a.cameraMotion.set(f,r).catch(le),a.locationMotion.set(A,r).then((function(){a.emit("initAnimationEnded",t,p,a.userAction)}),(function(e){var n=Ur(a.camera.pose);a.emit("initAnimationEnded",t,n,a.userAction)})).then((function(){a.model.enableTiles=!0,s()}))}))},n.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),n=this.model.intersectRaycaster(e)[0];if(!n)return null;var i=Nr(t,(function(e){return e.standingPosition.distanceTo(n.point)}),!0),r=i[0];return i[1]<5?this.work.observers.indexOf(r):null},n.prototype.coordinatesForOffset=function(t){var n=this.cameraMotion.value.fov,i=this.camera.aspect,r=this.renderer.getSize(new e.Vector2);return{longitude:2*t.x/(r.x*this.scissor.width)*n/95*i,latitude:-2*t.y/(r.y*this.scissor.height)*n/95}},n.prototype.onPanGesture=function(t){var i=this.panState,r=t.pointers.length;if(t.isFinal)delete this.panState;else{var o=void 0;if(t.pointerType)switch(t.srcEvent.buttons){case 0:o=void 0;break;case 1:o="left";break;case 2:o="right"}this.panState={mouseState:o,pointerLength:r,x:t.center.x,y:t.center.y}}if(void 0!==i&&i.pointerLength===r){var a=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pan",a,t.isFinal))if("mouse"===t.pointerType&&2===t.srcEvent.buttons){var s={x:t.center.x-i.x,y:t.center.y-i.y},l=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),u=(b=this.model.bounding).getCenter(new e.Vector3),c={x:(b.max.x-b.min.x)/Ca*this.cameraMotion.value.fov,y:(b.max.y-b.min.y)/Ca*this.cameraMotion.value.fov,z:(b.max.z-b.min.z)/Ca*this.cameraMotion.value.fov},h=(this.camera.position.y-b.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),d=this.renderer.getSize(new e.Vector2);l.add(Ia(4*s.x*h/d.y,this.camera.matrix)),l.add(Sa(4*s.y*h/d.y)),l.x=Gt(l.x,u.x-c.x,u.x+c.x),l.y=Gt(l.y,u.y-c.y,u.y+c.y);var p={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:l,distance:this.locationMotion.value.distance};if(this.emit("wantsPanGesture",p,t.isFinal))return;this.emit("gesture","pan",a,t.isFinal),this.emit("panGesture",p,t.isFinal),this.userAction=!0,this.locationMotion.set({x:l.x,y:l.y,z:l.z},0).catch(le)}else{l={x:t.center.x-i.x,y:t.center.y-i.y};var f=this.relativeClientPosition(t.center),A=this.camera.pose.latitude<Math.PI/6||f.y<0?1:-1;l.x*=A;var v=this.coordinatesForOffset(l),m=Tr(this.cameraMotion.value.longitude+-1*v.longitude),g=Gt(this.cameraMotion.value.latitude+-1*v.latitude,this.minLatitude,this.maxLatitude);if(this.camera.aspect<1&&Math.abs(t.overallVelocityX)>.2&&Math.atan2(Math.abs(t.overallVelocityY),Math.abs(t.overallVelocityX))<Math.PI/6.923&&(g=this.cameraMotion.value.latitude),p={longitude:m,latitude:g,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance},this.emit("wantsPanGesture",p,t.isFinal))return;this.emit("gesture","pan",a,t.isFinal),this.emit("panGesture",p,t.isFinal),this.userAction=!0,this.interiaMovement=!1;var y={longitude:p.longitude,latitude:p.latitude,fov:p.fov};if(this.cameraMotion.set(y,0).catch(le),t.isFinal&&"right"===i.mouseState){var b=this.model.bounding,x=Math.pow(Math.pow((b.max.x-b.min.x)/2,2)+Math.pow((b.max.y-b.min.y)/2,2)+Math.pow((b.max.z-b.min.z)/2,2),.5),w=new e.Vector3;this.model.bounding.getCenter(w);var M=w.sub(this.camera.position).length();if(M<=x){var E=n.distanceFromModel(this.model,this.cameraMotion.value.fov,this.camera.aspect),C=Gt((0*x-E)/(.5*x)*(x-M)+E,0*x,this.maxDistance);this.camera.computePose(C);var I=this.camera.pose.offset;this.locationMotion.set({distance:C,x:I.x,y:I.y,z:I.z},0),this.emit("cameraUpdate",this.camera.pose,!0)}}if(t.isFinal&&!this.emit("wantsInteriaPan",p)){this.interiaMovement=!0;var S=t.velocityX*-A,B=-1*t.velocityY;this.requestInteriaMovement(this.coordinatesForOffset({x:S,y:B}),0)}}}},n.prototype.onPinchGesture=function(t){var n=this.pinchState||{},i=n.distance,r=(n.offsetY,!1);if("pinchstart"!==t.type){if("pinchend"===t.type&&(r=!0,delete this.pinchState),void 0!==i){this.pinchState={distance:i};var o=t.pointers.map((function(e){return hn(e,["x","y"])}));if(this.emit("wantsGesture","pinch",o,r))return;var a=Gt(i/t.scale,this.minDistance,this.maxDistance);if(this.emit("wantsPinchGesture",t.scale,this.camera.pose.fov,r))return;this.emit("gesture","pinch",o,r),this.emit("pinchGesture",t.scale,this.camera.pose.fov,r),this.userAction=!0,this.locationMotion.set({distance:a},0).catch(le)}var s=this.panState,l=t.pointers.length;if(t.isFinal?delete this.panState:this.panState={mouseState:void 0,pointerLength:l,x:t.center.x,y:t.center.y},void 0!==s&&s.pointerLength===l){var u=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",u,r)){var c=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",c,r)){var h={x:t.center.x-s.x,y:t.center.y-s.y},d=new e.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),p=this.model.bounding,f=p.getCenter(new e.Vector3),A={x:(p.max.x-p.min.x)/Ca*this.cameraMotion.value.fov,y:(p.max.y-p.min.y)/Ca*this.cameraMotion.value.fov,z:(p.max.z-p.min.z)/Ca*this.cameraMotion.value.fov},v=(this.camera.position.y-p.min.y)*Math.tan(this.camera.fov/2*Math.PI/180),m=this.renderer.getSize(new e.Vector2);d.add(Ia(2*h.x*v/m.y,this.camera.matrix)),d.add(Sa(2*h.y*v/m.y)),d.x=Gt(d.x,f.x-A.x,f.x+A.x),d.y=Gt(d.y,f.y-A.y,f.y+A.y);var g={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:d,distance:this.locationMotion.value.distance};this.emit("wantsPanGesture",g,t.isFinal)||(this.emit("gesture","pan",c,t.isFinal),this.emit("panGesture",g,t.isFinal),this.userAction=!0,this.locationMotion.set({x:d.x,y:d.y,z:d.z},0).catch(le))}}}}else this.pinchState={distance:this.locationMotion.value.distance}},n.prototype.onMouseWheel=function(e){var t=this,n=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,i=[{x:e.clientX,y:e.clientY,delta:n}];if(!this.emit("wantsGesture","mouseWheel",i,!1)){var r=Gt(this.locationMotion.value.distance-n/2,this.minDistance,this.maxDistance);this.emit("wantsMouseWheel",n,this.camera.pose.fov,!1)||(this.emit("gesture","mouseWheel",i,!1),this.emit("mouseWheel",n,this.camera.pose.fov,!1),this.userAction=!0,this.locationMotion.set({distance:r},0).catch(le),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState,t.emit("wantsGesture","mouseWheel",i,!0)||t.emit("wantsMouseWheel",n,t.camera.pose.fov,!0)||(t.emit("gesture","mouseWheel",i,!0),t.emit("mouseWheel",0,t.camera.pose.fov,!0))}),200)})}},n.prototype.onTapGesture=function(t){var n=t.pointers.map((function(e){return hn(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var i=this.relativeClientPosition(t.center),r=new e.Raycaster;if(r.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",r,i,!0)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",r,i,!0),this.interiaMovement=!1;var o=this.getForwardPanoIndexOrNot(r);if(!Qi(o)){this.emit("panoSelected",o);var a={longitude:this.camera.pose.longitude,latitude:0};this.emit("wantsMoveToPano",o,a,!0)}}}},n.prototype.onPressGesture=function(t,n){var i,r,o=[t];if(this.emit("wantsGesture","press",o,n))return null===(i=this.pressState)||void 0===i||i.stop(),void delete this.pressState;var a=this.relativeClientPosition(t),s=new e.Raycaster;if(s.setFromCamera(a,this.camera),this.emit("wantsPressGesture",s,a,t.delta,n))return null===(r=this.pressState)||void 0===r||r.stop(),void delete this.pressState;this.emit("gesture","press",o,n),this.emit("pressGesture",s,a,t.delta,n)},n.prototype.requestInteriaMovement=function(e,t){var n=this;if(!1!==this.interiaMovement){for(var i=ne({},e),r={longitude:0,latitude:0},o=0;o<t;o++)i.longitude*=.996,i.latitude*=.994008,r.longitude+=i.longitude,r.latitude+=i.latitude;var a=Tr(this.cameraMotion.value.longitude+r.longitude),s=Gt(this.cameraMotion.value.latitude+r.latitude,this.minLatitude,this.maxLatitude),l={longitude:a,latitude:s,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance};this.cameraMotion.set({longitude:a,latitude:s},0).catch(le);var u=i.longitude>1e-4||i.longitude<-1e-4||i.latitude>1e-4||i.latitude<-1e-4;this.emit("interiaPan",l,!u),u?ke.shared.add((function(e,t){n.requestInteriaMovement(i,0|t)}),!0,1):this.interiaMovement=!1}},n}($r),Ta={type:"move"},Pa=function(){function t(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return t.prototype.getHandSpace=function(){return null===this._hand&&(this._hand=new e.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},t.prototype.getTargetRaySpace=function(){return null===this._targetRay&&(this._targetRay=new e.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new e.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new e.Vector3),this._targetRay},t.prototype.getGripSpace=function(){return null===this._grip&&(this._grip=new e.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new e.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new e.Vector3),this._grip},t.prototype.dispatchEvent=function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},t.prototype.disconnect=function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},t.prototype.getAxes=function(){return this._axes},t.prototype.update=function(t,n,i){var r=null,o=null,a=null,s=this._targetRay,l=this._grip,u=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&"visible-blurred"!==n.session.visibilityState)if(null!==s&&null!==(r=n.getPose(t.targetRaySpace,i))&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(Ta)),u&&t.hand){a=!0;for(var c=0,h=t.hand.values();c<h.length;c++){var d=h[c],p=n.getJointPose(d,i);if(void 0===u.joints[d.jointName]){var f=new e.Group;f.matrixAutoUpdate=!1,f.visible=!1,u.joints[d.jointName]=f,u.add(f)}var A=u.joints[d.jointName];null!==p&&(A.matrix.fromArray(p.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.jointRadius=p.radius),A.visible=null!==p}var v=u.joints["index-finger-tip"],m=u.joints["thumb-tip"],g=v.position.distanceTo(m.position);u.inputState.pinching&&g>.025?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!u.inputState.pinching&&g<=.015&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==l&&t.gripSpace&&null!==(o=n.getPose(t.gripSpace,i))&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1);return null!==s&&(s.visible=null!==r),null!==l&&(l.visible=null!==o),null!==u&&(u.visible=null!==a),this},t}(),Ra=function(t){function n(n,i,r){var o,a,s,l=this;return(l=t.call(this)||this).isPanorama=null===(o=null==r?void 0:r.isPanorama)||void 0===o||o,l.machineType=null!==(a=null==r?void 0:r.machineType)&&void 0!==a?a:"Pico",l.renderer=n,l.gl=i,l.enabled=!1,l.session=null,l.referenceSpaceType=null!==(s=null==r?void 0:r.referenceSpaceType)&&void 0!==s?s:"local-floor",l.referenceSpace=null,l.controllers=[new Pa,new Pa],l.inputSourcesMap=new Map,l.cameraVR=new e.ArrayCamera,l.cameraL=new e.PerspectiveCamera,l.cameraR=new e.PerspectiveCamera,l.cameraL.viewport=new e.Vector4,l.cameraR.viewport=new e.Vector4,l.cameraL.layers.enable(1),l.cameraR.layers.enable(2),l.cameraVR.layers.enable(1),l.cameraVR.layers.enable(2),l.isPresenting=!1,l.currentDepthNear=null,l.currentDepthFar=null,l.cameraLPos=new e.Vector3,l.cameraRPos=new e.Vector3,l}return te(n,t),n.prototype.getController=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getTargetRaySpace()},n.prototype.getControllerGrip=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.getInverse(e.matrixWorld)},n.prototype.setProjectionFromUnion=function(e,t,n){this.cameraLPos.setFromMatrixPosition(t.matrixWorld),this.cameraRPos.setFromMatrixPosition(n.matrixWorld);var i=this.cameraLPos.distanceTo(this.cameraRPos),r=t.projectionMatrix.elements,o=n.projectionMatrix.elements,a=r[14]/(r[10]-1),s=r[14]/(r[10]+1),l=(r[9]+1)/r[5],u=(r[9]-1)/r[5],c=(r[8]-1)/r[0],h=(o[8]+1)/o[0],d=a*c,p=a*h,f=i/(-c+h),A=f*-c;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(A),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var v=a+f,m=s+f,g=d-A,y=p+(i-A),b=l*s/m*v,x=u*s/m*v;e.projectionMatrix.makePerspective(g,y,b,x,v,m)},n.prototype.getCamera=function(e){this.cameraVR.near=this.cameraR.near=this.cameraL.near=e.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=e.far,!this.session||this.currentDepthNear===this.cameraVR.near&&this.currentDepthFar===this.cameraVR.far||(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var t=e.parent,n=this.cameraVR.cameras;this.updateCamera(this.cameraVR,t);for(var i=0;i<n.length;i++)this.updateCamera(n[i],t);e.matrixWorld.copy(this.cameraVR.matrixWorld);for(var r=e.children,o=(i=0,r.length);i<o;i++)r[i].updateMatrixWorld(!0);return 2===n.length?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(e){if(this.session){for(var t=this.session.inputSources,n=0;n<this.controllers.length;n++)this.inputSourcesMap.set(t[n],this.controllers[n]);for(n=0;n<e.removed.length;n++){var i=e.removed[n];(r=this.inputSourcesMap.get(i))&&(r.dispatchEvent({type:"disconnected",data:i}),this.inputSourcesMap.delete(i))}for(n=0;n<e.added.length;n++){var r;i=e.added[n],(r=this.inputSourcesMap.get(i))&&r.dispatchEvent({type:"connected",data:i})}}else console.warn("session is lose!")},n.prototype.onSessionEvent=function(e){var t=this.inputSourcesMap.get(e.inputSource);t&&t.dispatchEvent({type:e.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach((function(e,t){e.disconnect(t)})),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,ke.shared.setContext(null),this.emit("webXRSessionEnd")},n.prototype.onRequestReferenceSpace=function(e){this.referenceSpace=e,this.isPresenting=!0,this.emit("webXRSessionStart")},n.prototype.setSession=function(e){var t=this;if(this.session=e,this.session){this.session.addEventListener("select",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectstart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeeze",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezestart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezeend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("end",(function(e){t.onSessionEnd()}));var n=this.gl.getContextAttributes();this.gl.makeXRCompatible().then((function(){var e={antialias:null==n?void 0:n.antialias,alpha:null==n?void 0:n.alpha,depth:null==n?void 0:n.depth,stencil:null==n?void 0:n.stencil,framebufferScaleFactor:1};if(t.session){switch(t.machineType){case"Pico":t.session.updateRenderState({baseLayer:new XRWebGLLayer(t.session,t.gl,e)});break;case"Oculus":t.session.updateRenderState({layers:[new XRWebGLLayer(t.session,t.gl,e)]});break;default:t.machineType}t.session.requestReferenceSpace(t.referenceSpaceType).then((function(e){t.onRequestReferenceSpace(e)})),t.session.addEventListener("inputsourceschange",(function(e){t.updateInputSources(e)}))}else console.error("session is lose while set session!")}))}},n}(se),La=["webXRSessionStart","webXRSessionEnd"],ka=function(t){function n(){var n=t.call(this)||this;return n.type="LineSegmentsGeometry",n.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),n.setAttribute("position",new e.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),n.setAttribute("uv",new e.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2)),n}return te(n,t),n.prototype.applyMatrix4=function(e){var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),n.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},n.prototype.setPositions=function(t){var n;n=t instanceof Float32Array?t:Array.isArray(t)?new Float32Array(t):new Float32Array;var i=new e.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceStart",new e.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new e.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},n.prototype.setColors=function(t){var n;n=t instanceof Float32Array?t:Array.isArray(t)?new Float32Array(t):new Float32Array;var i=new e.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceColorStart",new e.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new e.InterleavedBufferAttribute(i,3,3)),this},n.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},n.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},n.prototype.fromMesh=function(t){return this.fromWireframeGeometry(new e.WireframeGeometry(t.geometry)),this},n.prototype.fromLineSegments=function(t){var n=t.geometry;if(n instanceof e.Geometry){var i=(new e.BufferGeometry).fromGeometry(n);this.setPositions(i.attributes.position.array)}else n instanceof e.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},n.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new e.Box3);var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(void 0!==t&&void 0!==n){var i=new e.Box3;this.boundingBox.setFromBufferAttribute(t),i.setFromBufferAttribute(n),this.boundingBox.union(i)}},n.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new e.Sphere),null===this.boundingBox&&this.computeBoundingBox();var t=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(void 0!==t&&void 0!==n){var i=this.boundingSphere.center;this.boundingBox.getCenter(i);for(var r=0,o=new e.Vector3,a=0,s=t.count;a<s;a++)o.fromBufferAttribute(t,a),r=Math.max(r,i.distanceToSquared(o)),o.fromBufferAttribute(n,a),r=Math.max(r,i.distanceToSquared(o));this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},n.prototype.toJSON=function(){},n}(e.InstancedBufferGeometry);Object.assign(ka.prototype,{isLineSegmentsGeometry:!0});var Oa={uniforms:e.UniformsUtils.merge([e.UniformsLib.common,e.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new e.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"},Fa=function(t){function n(n){var i=t.call(this,{uniforms:e.UniformsUtils.clone(Oa.uniforms),vertexShader:Oa.vertexShader,fragmentShader:Oa.fragmentShader,clipping:!0})||this;return i.type="LineMaterial",i.dashed=!1,Object.defineProperties(i,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),i.setValues(n),i}return te(n,t),n}(e.ShaderMaterial);Object.assign(Fa.prototype,{isLineMaterial:!0});var Da=function(t){function n(e,n){var i=t.call(this)||this;return i.type="LineSegments2",i.geometry=void 0!==e?e:new ka,i.material=void 0!==n?n:new Fa({color:16777215*Math.random()}),i}return te(n,t),n.prototype.computeLineDistances=function(){for(var t=this.geometry,n=t.attributes.instanceStart,i=t.attributes.instanceEnd,r=new Float32Array(2*n.count),o=new e.Vector3,a=new e.Vector3,s=0,l=0,u=n.count;s<u;s++,l+=2)o.fromBufferAttribute(n,s),a.fromBufferAttribute(i,s),r[l]=0===l?0:r[l-1],r[l+1]=r[l]+o.distanceTo(a);var c=new e.InstancedInterleavedBuffer(r,2,1);return t.setAttribute("instanceDistanceStart",new e.InterleavedBufferAttribute(c,1,0)),t.setAttribute("instanceDistanceEnd",new e.InterleavedBufferAttribute(c,1,1)),this},n.prototype.raycast=function(t,n){null===t.camera&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var i=t.ray,r=t.camera,o=r.projectionMatrix,a=this.geometry,s=this.material,l=s.resolution,u=s.linewidth,c=a.attributes.instanceStart,h=a.attributes.instanceEnd,d=new e.Vector4,p=new e.Vector4,f=new e.Vector4,A=new e.Vector3,v=new e.Matrix4,m=new e.Line3,g=new e.Vector3;i.at(1,f),f.w=1,f.applyMatrix4(r.matrixWorldInverse),f.applyMatrix4(o),f.multiplyScalar(1/f.w),f.x*=l.x/2,f.y*=l.y/2,f.z=0,A.copy(f);var y=this.matrixWorld;v.multiplyMatrices(r.matrixWorldInverse,y);for(var b=0,x=c.count;b<x;b++){d.fromBufferAttribute(c,b),p.fromBufferAttribute(h,b),d.w=1,p.w=1,d.applyMatrix4(v),p.applyMatrix4(v),d.applyMatrix4(o),p.applyMatrix4(o),d.multiplyScalar(1/d.w),p.multiplyScalar(1/p.w);var w=d.z<-1&&p.z<-1,M=d.z>1&&p.z>1;if(!w&&!M){d.x*=l.x/2,d.y*=l.y/2,p.x*=l.x/2,p.y*=l.y/2,m.start.copy(d),m.start.z=0,m.end.copy(p),m.end.z=0;var E=m.closestPointToPointParameter(A,!0);m.at(E,g);var C=e.MathUtils.lerp(d.z,p.z,E),I=C>=-1&&C<=1,S=A.distanceTo(g)<.5*u;if(I&&S){m.start.fromBufferAttribute(c,b),m.end.fromBufferAttribute(h,b),m.start.applyMatrix4(y),m.end.applyMatrix4(y);var B=new e.Vector3,T=new e.Vector3;i.distanceSqToSegment(m.start,m.end,T,B),n.push({point:T,pointOnLine:B,distance:i.origin.distanceTo(T),object:this,faceIndex:b})}}}},n}(e.Mesh);Object.assign(Da.prototype,{isLineSegments2:!0});var Qa=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i.type="Line2",i}return te(t,e),t}(Da);Object.assign(Qa.prototype,{isLine2:!0});var Na=function(t){function n(){var e=t.call(this)||this;return e.type="LineGeometry",e}return te(n,t),n.prototype.setPositions=function(e){for(var n=e.length-3,i=new Float32Array(2*n),r=0;r<n;r+=3)i[2*r]=e[r],i[2*r+1]=e[r+1],i[2*r+2]=e[r+2],i[2*r+3]=e[r+3],i[2*r+4]=e[r+4],i[2*r+5]=e[r+5];return t.prototype.setPositions.call(this,i),this},n.prototype.setColors=function(e){for(var n=e.length-3,i=new Float32Array(2*n),r=0;r<n;r+=3)i[2*r]=e[r],i[2*r+1]=e[r+1],i[2*r+2]=e[r+2],i[2*r+3]=e[r+3],i[2*r+4]=e[r+4],i[2*r+5]=e[r+5];return t.prototype.setColors.call(this,i),this},n.prototype.fromLine=function(t){var n=t.geometry;if(n instanceof e.Geometry){var i=(new e.BufferGeometry).fromGeometry(n);this.setPositions(i.attributes.position.array)}else n instanceof e.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},n.prototype.copy=function(){return this},n}(ka);Object.assign(Na.prototype,{isLineGeometry:!0});var Va=14467195,Ua=null,_a=function(t){function n(n,i){void 0===n&&(n=new e.Vector3),void 0===i&&(i=new e.Vector3);var r=t.call(this)||this;r.type="FiveLine",r.needsRender=!0;var o=new Na,a=new Fa({color:Va,linewidth:2,dashScale:20,dashed:!1});r.line=new Qa(o,a);var s=new e.BufferGeometry,l=new e.PointsMaterial({color:Va,size:8,map:Ua||(Ua=(new e.TextureLoader).load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),sizeAttenuation:!1,transparent:!0});return r.points=new e.Points(s,l),r.points.renderOrder=11,r.points.frustumCulled=!1,r.setPoints(n,i),r.add(r.line,r.points),r}return te(n,t),Object.defineProperty(n,"version",{get:function(){return"5.0.0-alpha.212"},enumerable:!1,configurable:!0}),n.prototype.setPoints=function(t,n){var i=[].concat(t.toArray(),n.toArray());this.points.geometry.setAttribute("position",new e.BufferAttribute(new Float32Array(i),3)),this.line.geometry.setPositions(i),this.line.computeLineDistances(),this.needsRender=!0},n.prototype.getPoints=function(){var t=this.points.geometry.attributes.position.array;return[new e.Vector3(t[0],t[1],t[2]),new e.Vector3(t[3],t[4],t[5])]},n.prototype.setMaterial=function(e){var t=this.line.material;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];"dashed"===n?(t.dashed=i,i?t.defines.USE_DASH="":delete t.defines.USE_DASH,t.needsUpdate=!0):t[n]=e[n]}this.needsRender=!0},n.prototype.setResolution=function(e,t){var n=this.line.material.resolution;n.x===e&&n.y===t||(n.set(e,t),this.needsRender=!0)},n}(e.Object3D);Object.assign(_a.prototype,{isFiveLine:!0});const za={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};async function qa(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}const Ha={xAxis:0,yAxis:0,button:0,state:za.ComponentState.DEFAULT};class ja{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===za.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(Ha)}updateFromComponent({xAxis:e,yAxis:t,button:n,state:i}){const{normalizedXAxis:r,normalizedYAxis:o}=function(e=0,t=0){let n=e,i=t;if(Math.sqrt(e*e+t*t)>1){const r=Math.atan2(t,e);n=Math.cos(r),i=Math.sin(r)}return{normalizedXAxis:.5*n+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case za.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?r:.5;break;case za.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?o:.5;break;case za.ComponentProperty.BUTTON:this.value=this.states.includes(i)?n:0;break;case za.ComponentProperty.STATE:this.valueNodeProperty===za.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class Ka{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const n=new ja(t.visualResponses[e]);this.visualResponses[e]=n})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:za.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=za.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=za.ComponentState.PRESSED:(t.touched||this.values.button>za.ButtonTouchThreshold)&&(this.values.state=za.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===za.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>za.AxisTouchThreshold&&(this.values.state=za.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===za.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>za.AxisTouchThreshold&&(this.values.state=za.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class Ga{constructor(e,t,n){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=n,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new Ka(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Wa extends e.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:n,maxNode:i,value:r,valueNodeProperty:o}=e;t&&(o===za.VisualResponseProperty.VISIBILITY?t.visible=r:o===za.VisualResponseProperty.TRANSFORM&&(t.quaternion.copy(n.quaternion).slerp(i.quaternion,r),t.position.lerpVectors(n.position,i.position,r)))}))})))}}function Xa(t,n){!function(t,n){Object.values(t.components).forEach((t=>{const{type:i,touchPointNodeName:r,visualResponses:o}=t;if(i===za.ComponentType.TOUCHPAD)if(t.touchPointNode=n.getObjectByName(r),t.touchPointNode){const n=new e.SphereGeometry(.001),i=new e.MeshBasicMaterial({color:255}),r=new e.Mesh(n,i);t.touchPointNode.add(r)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(o).forEach((e=>{const{valueNodeName:t,minNodeName:i,maxNodeName:r,valueNodeProperty:o}=e;if(o===za.VisualResponseProperty.TRANSFORM){if(e.minNode=n.getObjectByName(i),e.maxNode=n.getObjectByName(r),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${r} in the model`)}e.valueNode=n.getObjectByName(t),e.valueNode||console.warn(`Could not find ${t} in the model`)}))}))}(t.motionController,n),t.envMap&&n.traverse((e=>{e.isMesh&&(e.material.envMap=t.envMap,e.material.needsUpdate=!0)})),t.add(n)}class Ya{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new Bi)}createControllerModel(e){const t=new Wa;let n=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&async function(e,t,n=null,i=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const r=await async function(e){if(!e)throw new Error("No basePath supplied");return await qa(`${e}/profilesList.json`)}(t);let o;if(e.profiles.some((e=>{const n=r[e];return n&&(o={profileId:e,profilePath:`${t}/${n.path}`,deprecated:!!n.deprecated}),!!o})),!o){if(!n)throw new Error("No matching profile name found");const e=r[n];if(!e)throw new Error(`No matching profile name found and default profile "${n}" missing.`);o={profileId:n,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const a=await qa(o.profilePath);let s;if(i){let t;if(t="any"===e.handedness?a.layouts[Object.keys(a.layouts)[0]]:a.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(s=o.profilePath.replace("profile.json",t.assetPath))}return{profile:a,assetPath:s}}(i,this.path,"generic-trigger").then((({profile:e,assetPath:r})=>{t.motionController=new Ga(i,e,r);const o=this._assetCache[t.motionController.assetUrl];if(o)n=o.scene.clone(),Xa(t,n);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,n=e.scene.clone(),Xa(t,n)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(n),n=null})),t}}var Za=(new e.Matrix4).makeRotationAxis(new e.Vector3(0,1,0),Math.PI),Ja=new e.Vector3(-1,1,1),$a=function(t){function n(n){var i,r=this;(r=t.call(this,n)||this).xrManager=new Ra(r.renderer,r.renderer.getContext()),r.xrControllerRay={left:new e.Raycaster,right:new e.Raycaster},r.pointerLines={left:new _a,right:new _a},r.machineType=null!==(i=n.machineType)&&void 0!==i?i:"Pico",r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new e.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new e.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.scene.add(r.pointerLines.left,r.pointerLines.right),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=Ii()]={panoIndex:r.currentPanoIndex,workCode:r.work.workCode,leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade"},r.on("webXRSessionEnd",(function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)})),r.on("webXRMoveToPano",(function(e){e&&r.checkSelectedPano(e)})),r.parallaxCameraMatrixs=[];var o=ke.shared.getContext();if(!o)return console.error("获取session失败,请退出重试"),r;r.xrManager.setSession(o),r.controllerWrappers=[new e.Group,new e.Group],r.scene.add(r.controllerWrappers[0],r.controllerWrappers[1]);var a=r.xrManager.getController(0);r.controllerWrappers[0].add(a);var s=r.xrManager.getController(1);r.controllerWrappers[1].add(s);var l=new Ya,u=r.xrManager.getControllerGrip(0);u.add(l.createControllerModel(u)),r.controllerWrappers[0].add(u);var c=r.xrManager.getControllerGrip(1);c.add(l.createControllerModel(c)),r.controllerWrappers[1].add(c);for(var h=function(e){d.xrManager.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];r.emit.apply(r,ie([e],t,!1))}))},d=this,p=0,f=La;p<f.length;p++)h(f[p]);return r.xrControllerState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},r}return te(n,t),n.parseArgs=function(e){var n=ne(ne({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return t.parseArgs.call(this,n)},n.initAnimationEndPose=function(e){var n=this.parseArgs(e);return t.initAnimationEndPose.call(this,n)},n.prototype.moveToPano=function(t,n,i){var r,o,a,s,l=this;this.userAction=i;var u=this.work.observers[t],c=this.imageOptions.size;if(void 0===c&&u){var h=u.images.up.match(/\/cube_(\d+)\//);h&&(c=Number(h[1]))}void 0===c&&(c=2048);var d=this.imageOptions.transform,p=function(e,t){return Ue(e,d,t)},f=ne({key:"pano.".concat(t)},hn(this.imageOptions,["format","size","quality"])),A=u.images,v=null!==(o=null===(r=u.images.tiles)||void 0===r?void 0:r.filter((function(e){return e.size>c})))&&void 0!==o?o:null,m="pano:"+pn([A,f,d]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===m)return;var g=this.pendingTextureTask.panoIndex;null===(a=this.panoMeshes[g])||void 0===a||a.setProgress(0),this.emit("textureAbort",g,u),this.pendingTextureTask.onError(new Error("texture aborted"))}var y,b=this.model.getMaterial()||{},x=b.pano0,w=b.pano1;if((null==x?void 0:x.map.name)===m?y=x:(null==w?void 0:w.map.name)===m&&(y=w),y){var M={panoIndex:t,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fade",leftPanoPicture:{map:y.map,luminanceMap:y.luminanceMap,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Ja)},position:u.position.clone()};this.doMoveToPano(t,M,n)}else{var E="move-to-pano-"+t;this.pending.add(E),this.pendingTextureTask={panoIndex:t,hash:m,onLoad:function(i){var r;if(l.pending.delete(E),l.destroyed)i.body.dispose();else{i.body.name=m;var o={panoIndex:t,workCode:l.work.workCode,effect:null!==(r=n.effect)&&void 0!==r?r:"fade",leftPanoPicture:{map:i.body,luminanceMap:null,matrix:(new e.Matrix4).compose(u.position,u.quaternion,Ja)},position:u.position.clone()};l.doMoveToPano(t,o,n)}},onError:function(e){l.pending.delete(E),n.moveCancelCallback&&n.moveCancelCallback(),l.emit("panoLoadError",e,t),l.emit("moveToPanoCanceled",t)}},Promise.all([this.tileLevelForFov&&v&&v.length?this.textureLoader.loadTiledCubeTexture(A,v,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:f},format:e.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var n,i;l.emit("textureLoading",e,t,u),(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(A,{imageURL:{transform:p,options:f},format:e.RGBAFormat},void 0,void 0,(function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(e)),l.emit("textureLoading",e,t,u)}),this.renderer)]).then((function(e){var n,i,r=e[0];(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m?(l.pendingTextureTask.onLoad(r),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureLoaded",t,u,r.meta)):r.body.dispose()})).catch((function(e){var n,i;(null===(n=l.pendingTextureTask)||void 0===n?void 0:n.hash)===m&&(l.pendingTextureTask.onError(e),null===(i=l.panoMeshes[t])||void 0===i||i.setProgress(0),delete l.pendingTextureTask,l.emit("textureError",e,t,u),l.emit("error",e))})),this.emit("textureStartLoad",t,u)}},n.prototype.doMoveToPano=function(t,n,i){var r,o,a,s=this;void 0===i&&(i={});var l,u,c,h=ce(),d=Ii();if(this.panoResources[d]=n,this.locationMotion.ended){var p=this.locationMotion.getKeyFrameSegment(h),f=(p[0],p[1]),A=this.locationMotion.value,v=this.panoResourceFromLocationMotionKeyframe(f).position,m=n.position;l=Math.max(v.distanceTo(m),1),u=[{key:f.key,progress:0,value:ne(ne({},A),{count:0})},{key:d,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],c=0}else{var g=this.locationMotion.getKeyFrameSegment(h),y=g[0],b=(f=g[1],A=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(y).position),x=(v=this.panoResourceFromLocationMotionKeyframe(f).position,m=n.position,f.value.count-A.count),w=Math.max(b.distanceTo(v),1)*x;l=w+Math.max(v.distanceTo(m),1),u=[{key:y.key,progress:0,value:ne({},A)},{key:f.key,progress:w/l,value:f.value},{key:d,progress:1,value:{count:f.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var M=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(u);c=this.locationMotion.getProgressVelocity(h)*M/E}var C=this.calculateMovingDuration(i.duration,l),I={longitude:i.longitude,latitude:i.latitude,fov:i.fov},S={longitude:null!==(r=I.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(o=I.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=I.fov)&&void 0!==a?a:this.camera.pose.fov,offset:n.position.clone(),distance:0};this.emit("moveToPano",t,this.userAction),i.moveStartCallback&&i.moveStartCallback(t,S),this.emit("panoWillArrive",t,S,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=le,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(I,C).catch(le),this.locationMotion.setKeyframes(u,C,c).then((function(){var n,r,o,a={longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0};i.moveEndCallback&&i.moveEndCallback(t,a),s.emit("panoArrived",t,a,s.userAction);var l=s.work.observers[s.currentPanoIndex];if(l&&l.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var u=Za.clone().multiply(null!==(o=null===(r=null===(n=s.model.getMaterial())||void 0===n?void 0:n.pano1)||void 0===r?void 0:r.matrix)&&void 0!==o?o:new e.Matrix4).multiply(l.video.matrix),c={map:s.videoTexture,size:l.video.size,matrix:u,alpha:1},h=Ii(),d=s.videoTexture.image;d.setAttribute("uuid",h),fo().then((function(e){e&&l.video&&d.getAttribute("uuid")===h&&(d.oncanplay=function(){d.oncanplay=le,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=le,s.panoVideo.setMaterial(c))},d.src=l.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){i.moveCancelCallback&&i.moveCancelCallback(),s.emit("moveToPanoCanceled",t)}))},n.prototype.checkSelectedPano=function(t){var n=this;this.interiaMovement=!1;var i=this.camera.getDirection(new e.Vector3).setY(0),r=null,o=this.work.observers[this.currentPanoIndex];if(!o)return r;var a=o.accessibleNodes.filter((function(e){if(e===n.currentPanoIndex)return!1;var t=n.work.observers[e];return!(t.position.distanceTo(n.camera.position)>n.maxAccessibleDistance)&&(t.loadable||t.active)})),s=this.model.intersectRaycaster(t)[0];if(s){var l=Nr(a,(function(e){return n.work.observers[e].standingPosition.clone().distanceTo(s.point)}),!0),u=l[0];l[1]<this.panoTapTriggerRadius&&(r=u)}Qi(r)&&(r=this.getForwardPanoIndexOrNot(t));for(var c=0,h=this.locationMotion.keyframes;c<h.length;c++){var d=h[c],p=this.panoResourceFromLocationMotionKeyframe(d);if(!(d.progress<this.locationMotion.progress)&&p.panoIndex===r){r=null;break}}if(this.emit("panoSelected",r),Qi(r))return!0===this.locationMotion.ended&&this.cameraBounce(),r;var f=this.work.observers[r];if(!f.active)return this.panoMeshes[r]&&(this.panoMeshes[r].setDisabled(!1),this.panoMeshes[r].setLoading(!0)),r;for(var A={effect:"fade"},v=Math.PI/6,m=Math.PI/12,g=new e.Vector3(0,1,0),y=f.position.clone().setY(0).sub(o.position.clone().setY(0)).normalize(),b=y.clone().applyAxisAngle(g,v),x=y.clone().applyAxisAngle(g,-v),w=[],M=[],E=[],C=0,I=f.accessibleNodes;C<I.length;C++)if((u=I[C])!==this.currentPanoIndex&&u!==r){var S=this.work.observers[u].position.clone().sub(f.position).setY(0);y.angleTo(S)<v?E.push(S):b.angleTo(S)<v?w.push(S):x.angleTo(S)<v&&M.push(S)}var B=(E.length>0?E:ie(ie([],w,!0),M,!0)).slice().sort((function(e,t){return e.angleTo(y)-t.angleTo(y)}))[0];return B&&B.angleTo(i)>m&&(A.longitude=Math.atan2(-B.x,-B.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(A.latitude=Gt(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(A.fov=this.defaultFov),this.emit("wantsMoveToPano",r,A,!0),r},n.prototype.destroy=function(){t.prototype.destroy.call(this)},n.prototype.isReady=function(){return!1},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s,l,u,c=this,h=[],d=2;d<arguments.length;d++)h[d-2]=arguments[d];var p=this.currentPanoIndex,f={},A={},v=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.locationMotion.ended){this.locationMotion.update(t);var y=this.locationMotion.getKeyFrameSegment(t),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new e.Vector3).copy(w.position),C=(new e.Vector3).copy(M.position),I=this.locationMotion.value.count-x.value.count+1;f.progress=I,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Gt(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.leftPanoPicture&&(I<1?w.leftPanoPicture&&(f.pano0=w.leftPanoPicture):f.pano0=M.leftPanoPicture,f.pano1=M.leftPanoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.leftPanoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.leftPanoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),A.distance=this.locationMotion.value.distance,A.offset=new e.Vector3(E.x+(C.x-E.x)*I,E.y+(C.y-E.y)*I,E.z+(C.z-E.z)*I);for(var S=[],B=[],T=0,P=this.locationMotion.keyframes;T<P.length;T++){var R=P[T],L=R.key,k=R.progress;void 0!==L&&(S.push(L),k>=this.locationMotion.progress&&B.push(L))}for(var O=0,F=Object.keys(this.panoResources);O<F.length;O++){var D=F[O];if(!(B.indexOf(D)>=0)){var Q=this.panoResources[D];if(Q.leftPanoPicture){var N=Q.leftPanoPicture.map;if(N){if(N===(null===(i=f.pano0)||void 0===i?void 0:i.map))continue;if(N===(null===(r=f.pano1)||void 0===r?void 0:r.map))continue;N instanceof wt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),Q.leftPanoPicture=null}}S.indexOf(D)>=0||delete this.panoResources[D]}}w.workCode===M.workCode?this.currentPanoIndex=I<.5?w.panoIndex:M.panoIndex:this.currentPanoIndex=M.panoIndex,this.emit("movingToPano",m.panoIndex,v.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(t),A.longitude=this.cameraMotion.value.longitude,A.latitude=this.cameraMotion.value.latitude,A.fov=this.cameraMotion.value.fov),!1===Vr(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof wt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano1)||void 0===a?void 0:a.map)&&f.pano1.map instanceof wt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.model.setMaterial(f)),!1===Vr(A)&&this.setCamera(A),h[0];var V=h[1];if(V)if(this.xrManager.session){var U=this.xrManager.referenceSpace;if(U){var _=this.xrManager.cameraVR,z=[this.xrManager.cameraL,this.xrManager.cameraR],q=V.getViewerPose(U),H=new e.Vector3(0,0,0);if(q){var j;j=this.xrManager.session.renderState.baseLayer;var K=q.views;if(j){this.renderer.setFramebuffer(j.framebuffer);var G=!1;K.length!==_.cameras.length&&(_.cameras.length=0,G=!0),this.parallaxCameraMatrixs=[];var W=new e.Vector3,X=new e.Vector3;(new e.Matrix4).fromArray(K[0].transform.matrix).decompose(W,new e.Quaternion,new e.Vector3),(new e.Matrix4).fromArray(K[1].transform.matrix).decompose(X,new e.Quaternion,new e.Vector3),X.clone().sub(W).normalize();var Y=new e.Vector3,Z=new e.Quaternion,J=new e.Vector3;this.camera.matrix.decompose(Y,Z,J);for(var $=0;$<K.length;$++){var ee=K[$],te=j.getViewport(ee),ne=z[$];ne.matrix.fromArray(ee.transform.matrix);var ie=new e.Vector3,re=new e.Quaternion,oe=new e.Vector3;ne.matrix.decompose(ie,re,oe),H.copy(Y),ne.position.copy(Y),ne.quaternion.copy(re),ne.scale.copy(oe),ne.updateMatrix(),ne.projectionMatrix.fromArray(ee.projectionMatrix),ne.viewport.set(te.x,te.y,te.width,te.height),!0===G&&_.cameras.push(ne)}q.views[0].transform.position,q.views[1].transform.position;var ae=this.xrManager.session.inputSources;for($=0;$<this.xrManager.controllers.length;$++){var se=this.xrManager.controllers[$],le=ae[$];se.update(le,V,U);var ue=this.xrManager.getController($),ce=new e.Vector3(0,1.2,0),he=ue.position.clone().add(H).sub(ce);this.controllerWrappers[$].position.copy(new e.Vector3(0,0,0).add(H).sub(ce)),"left"===le.handedness?this.xrControllerRay.left.set(he,new e.Vector3(0,0,-1).applyEuler(ue.rotation)):"right"===le.handedness&&this.xrControllerRay.right.set(he,new e.Vector3(0,0,-1).applyEuler(ue.rotation));var de=this.model.intersectRaycaster(this.xrControllerRay.right);if(0===de.length&&(de=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0)),de.length>=1&&de[0].face&&"right"===le.handedness){var pe=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),fe=de[0].face.normal,Ae=fe.clone().multiplyScalar(.05),ve=de[0].point.clone().add(Ae);this.intersectMesh.position.copy(ve);var me=ve.clone().add(Ae);if(this.intersectMesh.lookAt(me),Math.abs(fe.y)>.99){var ge=this.camera.position.clone().sub(ve);this.intersectMesh.rotation.z=-Math.atan2(ge.z,ge.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",de[0],this.intersectMesh),pe.length>0?(this.pointerLines.right.setPoints(he,pe[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(he,de[0].point))}}if(this.currentPanoIndex!==p&&this.updatePanoMeshesVisible(),this.camera.pose.distance>.1||g){var ye=this.work.observers[this.currentPanoIndex];if(ye)for(var be=0,xe=Ce=ye.visibleNodes.concat(this.currentPanoIndex);be<xe.length;be++){var we=xe[be];(Pe=this.panoMeshes[we])&&Pe.setOpacity(0)}}else{var Me=this.work.observers[this.currentPanoIndex];if(Me){var Ee=Nr(Me.visibleNodes,(function(e){return Me.standingPosition.distanceTo(c.work.observers[e].standingPosition)}),!0)[1];Ee=Gt(Ee,2.5,1/0);for(var Ce=Me.visibleNodes.concat(this.currentPanoIndex),Ie=this.getForwardPanoIndexOrNot(),Se=this.camera.getDirection(new e.Vector3),Be=0,Te=Ce;Be<Te.length;Be++){we=Te[Be];var Pe,Re=this.work.observers[we];if(Pe=this.panoMeshes[we])if(Re.loadable||Re.active){var Le=Pe.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Pe.setCurrent(!Pe.loading&&0===Pe.progress&&Ie===we),Pe.setOpacity(Le<.01?0:Gt(Ee/Le*1.2,.65,.98));var ke=this.camera.position.clone().setY(Pe.position.y),Oe=(new e.Vector3).copy(Pe.position).sub(ke).normalize();if(we===this.currentPanoIndex){var Fe=Gt((.5-ke.distanceTo(Pe.position))/.5,0,1);Oe.multiplyScalar(1-Fe).add(Se.clone().multiplyScalar(Fe))}Oe.length()>0&&Pe.quaternion.setFromEuler(new e.Euler(0,Math.atan2(Oe.x,Oe.z),0)),Pe.updateTime&&Pe.updateTime(t,n)}else Pe.setOpacity(0)}}}var De,Qe=((De=new e.PerspectiveCamera).applyMatrix4(_.matrix),De.position.set(0,0,0),De.quaternion.premultiply(c.work.observers[m.panoIndex].quaternion.clone().inverse()),De.updateProjectionMatrix(),De.updateMatrixWorld(!0),(new e.Frustum).setFromProjectionMatrix((new e.Matrix4).multiplyMatrices(De.projectionMatrix,De.matrixWorldInverse)));m.panoIndex===this.currentPanoIndex&&(null===(s=m.leftPanoPicture)||void 0===s?void 0:s.map)instanceof wt&&(m.leftPanoPicture.map.update(Qe,3),!0===m.leftPanoPicture.map.needsRender&&(this.needsRender=!0));var Ne=this.tiling.object.visible;if(3>this.TILED_CUBE_TEXTURE_LEVEL&&this.initAnimationed){var Ve=m.panoIndex,Ue=this.work.observers[Ve];Ue&&Mr(this.camera.position,Ue.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoIndex!==Ve&&this.tiling.cleanup(),this.tiling.panoIndex=Ve,this.tiling.setResource(null!==(u=null===(l=Ue.images)||void 0===l?void 0:l.tiles)&&void 0!==u?u:[],this.enableIOSEDR&&Ue.images.luminance?Ue.images.luminance:null),this.tiling.setRotation(Ue.quaternion),this.tiling.setPosition(Ue.position),this.tiling.update(Qe,3,t)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;Ne!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(t),this.updateControllerHelper(ae,t,n)}else console.error("no layer found")}}}else console.error("session丢失,请重试");else console.error("xrFrame丢失,请重试")},n.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.scene,e)},n.prototype.onPanGesture=function(){},n.prototype.onTapGesture=function(){},n.prototype.onPinchGesture=function(){},n.prototype.onMouseMove=function(){},n.prototype.onMouseOut=function(){},n.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},n.prototype.updateControllerHelper=function(e,t,n){var i=this.xrControllerRay.left,r=this.xrControllerRay.left;if(e&&2===e.length&&e[0].gamepad&&e[1].gamepad){for(var o=0;o<e.length;o++){var a=e[o].handedness,s=e[o].gamepad;switch(a){case"left":this.emit("webXRAxesUpdate","left",{raycaster:{leftRay:i,rightRay:r},axesState:{up:s.axes[3]<0?Math.abs(s.axes[3]):0,down:s.axes[3]<0?0:Math.abs(s.axes[3]),left:s.axes[2]<0?Math.abs(s.axes[2]):0,right:s.axes[2]<0?0:Math.abs(s.axes[2])},deltaTime:n}),this.bindEventByKey(-1===s.axes[2],"LeftAxesLeft",t),this.bindEventByKey(1===s.axes[2],"LeftAxesRight",t),this.bindEventByKey(-1===s.axes[3],"LeftAxesUp",t),this.bindEventByKey(1===s.axes[3],"LeftAxesDown",t),this.bindEventByKey(null==s?void 0:s.buttons[4].pressed,"X",t),this.bindEventByKey(s.buttons[5].pressed,"Y",t),this.bindEventByKey(null==s?void 0:s.buttons[0].pressed,"LeftTrigger",t),this.bindEventByKey(null==s?void 0:s.buttons[1].pressed,"LeftPinch",t);break;case"right":this.emit("webXRAxesUpdate","right",{raycaster:{leftRay:i,rightRay:r},axesState:{up:s.axes[3]<0?Math.abs(s.axes[3]):0,down:s.axes[3]<0?0:Math.abs(s.axes[3]),left:s.axes[2]<0?Math.abs(s.axes[2]):0,right:s.axes[2]<0?0:Math.abs(s.axes[2])},deltaTime:n}),this.bindEventByKey(-1===s.axes[2],"RightAxesLeft",t),this.bindEventByKey(1===s.axes[2],"RightAxesRight",t),this.bindEventByKey(-1===s.axes[3],"RightAxesUp",t),this.bindEventByKey(1===s.axes[3],"RightAxesDown",t),this.bindEventByKey(null==s?void 0:s.buttons[4].pressed,"A",t),this.bindEventByKey(s.buttons[5].pressed,"B",t),this.bindEventByKey(null==s?void 0:s.buttons[0].pressed,"RightTrigger",t),this.bindEventByKey(null==s?void 0:s.buttons[1].pressed,"RightPinch",t)}}this.emit("webXRControllerRayUpdate",{leftRay:i,rightRay:r})}},n.prototype.bindEventByKey=function(e,t,n){var i=this.xrControllerRay.left,r=this.xrControllerRay.right;e?!1===this.xrControllerState[t].touchStart?(this.xrControllerState[t].touchStartTime=n,this.xrControllerState[t].touchStart=!0,this.emit("webXRControllerEvent","buttonDown",t,{raycaster:{leftRay:i,rightRay:r}})):n-this.xrControllerState[t].touchStartTime>300&&this.emit("webXRControllerEvent","press",t,{raycaster:{leftRay:i,rightRay:r}}):!0===this.xrControllerState[t].touchStart&&(this.emit("webXRControllerEvent","buttonUp",t,{raycaster:{leftRay:i,rightRay:r}}),n-this.xrControllerState[t].touchStartTime<=300&&(this.emit("webXRControllerEvent","tap",t,{raycaster:{leftRay:i,rightRay:r}})||"RightTrigger"===t&&this.checkSelectedPano(this.xrControllerRay.right)),this.xrControllerState[t].touchStart=!1,this.xrControllerState[t].touchStartTime=0)},n}(Vo),es=["Panorama","DepthPanorama","Model"],ts={Floorplan:eo,Topview:ho,Panorama:Vo,VRPanorama:va,Model:ma,DepthPanorama:Ea,Mapview:Ba,XRPanorama:$a};function ns(e){for(var t=0,n=es;t<n.length;t++){var i=n[t];if("string"==typeof e){if(i===e)return!0}else if(e instanceof $r&&e instanceof ts[i])return!0}return!1}var is=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPressGesture","pressGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError","webXRSessionStart","webXRSessionEnd","webXRControllerEvent","webXRControllerRayUpdate","webXRAxesUpdate","webXRMoveToPano"];function rs(e){for(var t,n,i={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var a=o[r].split("="),s=null===(t=a[0])||void 0===t?void 0:t.trim(),l=null===(n=a[1])||void 0===n?void 0:n.trim();s&&l&&(i[s]=l)}return i}function os(){for(var e,t=document.getElementsByTagName("meta"),n=0;n<t.length;n++){var i=t[n];if("viewport"===i.getAttribute("name")){var r=rs(null!==(e=i.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var as=[351,63],ss=[20,20],ls=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),us=new Float32Array([0,0,1,0,0,1,1,1]),cs=new Uint8Array([0,1,2,1,3,2]),hs=new e.BufferGeometry;hs.setAttribute("position",new e.BufferAttribute(ls,3)),hs.setAttribute("uv",new e.BufferAttribute(us,2)),hs.setIndex(new e.BufferAttribute(cs,1));var ds=new e.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),ps=new e.Mesh(hs,ds);ps.matrixAutoUpdate=!1;var fs=new e.Scene;fs.add(ps),fs.matrixAutoUpdate=!1;var As=new e.OrthographicCamera(-.5,.5,.5,-.5,.1,1);As.position.set(0,0,.5),As.lookAt(0,0,0),As.updateMatrixWorld(!0),As.matrixAutoUpdate=!1;var vs=new e.Vector4,ms=new e.Vector4;function gs(t){if(ds.map){var n=t.getViewport(vs),i=t.getScissor(ms),r=t.getScissorTest(),o=t.autoClear,a=i.x+ss[0]/3,s=i.y+ss[1]/3,l=as[0]/3,u=as[1]/3;t.setViewport(a,s,l,u),t.setScissor(a,s,l,u),t.setScissorTest(!0),t.autoClear=!1,t.render(fs,As),t.setViewport(n),t.setScissor(i),t.setScissorTest(r),t.autoClear=o}else{var c=new e.Texture,h=new Image;h.onload=function(){c.image=h,c.wrapS=e.ClampToEdgeWrapping,c.wrapT=e.ClampToEdgeWrapping,c.minFilter=e.LinearFilter,c.needsUpdate=!0,c.generateMipmaps=!1,ds.needsUpdate=!0,h.onload=le},h.src="data:image/png;base64,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",ds.map=c}}var ys=new e.Box3(new e.Vector3(-50,-50,-50),new e.Vector3(50,50,50)),bs=function(e){return e.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},xs=new e.Vector2,ws=new e.Frustum,Ms=new e.Matrix4,Es=new WeakMap,Cs=new WeakMap,Is=function(t){function n(n){void 0===n&&(n={});var i,r,o,a,s,l,u,c,h,d,p,f=this;if((f=t.call(this)||this).ident=Ii(),Ss.instances[f.ident]=f,f.renderSwitch01=0,f.panoIndex=0,f.needsRender=!1,f.onlyRenderIfNeeds=null===(i=n.onlyRenderIfNeeds)||void 0===i||i,f.imageOptions=ne({},null!==(r=n.imageOptions)&&void 0!==r?r:{}),f.textureOptions=ne({},null!==(o=n.textureOptions)&&void 0!==o?o:{}),f.modelLodOptions=ne({},null!==(a=n.modelLod)&&void 0!==a?a:{}),f.poweredByRealsee=null===(s=n.poweredByRealsee)||void 0===s||s,f.extraElements=[],f.controllerInits={Panorama:Object.assign({},n.panorama),Model:Object.assign({},n.model),Floorplan:Object.assign({},n.floorplan),Topview:Object.assign({},n.topview),Mapview:Object.assign({},n.mapview),DepthPanorama:Object.assign({},n.depthPanorama),VRPanorama:Object.assign({},n.vrPanorama),XRPanorama:Object.assign({},n.xrPanorama)},f.fps={testCount:0,testTime:ce()},f.modeChangeDuration=null!==(l=n.modeChangeDuration)&&void 0!==l?l:800,f.panoramaLikeSavedPose={},"undefined"!=typeof window)if(n.renderer)n.renderer instanceof Tt&&f.throwError(new Error("cannot render a internal renderer")),f.renderer=n.renderer;else try{f.renderer=new Tt({preserveDrawingBuffer:n.preserveDrawingBuffer,backgroundColor:n.backgroundColor,backgroundAlpha:n.backgroundAlpha,antialias:n.antialias,webgl2:null==n?void 0:n.webgl2});var A=os();f.renderer.setPixelRatio(1===A?window.devicePixelRatio:1),f.renderer.setSize(512,512)}catch(e){e instanceof Error&&f.throwError(e)}f.copyEffect=new Jr(f.renderer),f.getPixelsRenderTarget=new e.WebGLRenderTarget(1,1,{encoding:null!==(c=null===(u=f.renderer)||void 0===u?void 0:u.outputEncoding)&&void 0!==c?c:e.sRGBEncoding}),f.scissor=Object.assign({left:0,bottom:0,width:1,height:1},n.scissor),f.camera=new Vt(80),f.scene=new Pt,f.xrCustomObjectsScene=new Pt,f.scene.add(f.xrCustomObjectsScene),f.lastLoadWorkTask=Promise.resolve(),f.requestProxy=null!==(h=n.requestProxy)&&void 0!==h?h:bs,f.networkSubscribe=new Ie,f.networkSubscribe.on("network",(function(e,t,n,i){var r;f.emit("network",e,t,n,i),null===(r=f.analysis)||void 0===r||r.network(f.work,e,t,n,i)})),f.boundingMesh=Sr(new e.Box3(new e.Vector3(-.5,-.5,-.5),new e.Vector3(.5,.5,.5))),f.boundingMesh.name="bounding",f.scene.add(f.boundingMesh),f.model=new _i({allowHosts:[],requestProxy:f.requestProxy,networkSubscribe:f.networkSubscribe},f.renderer);var v=Sr(ys);v.name="model_empty",f.model.add(v),f.model.visible=!1,f.readyCallbacks=[],f.modelPending=!1,f.syncingState=!1,f.scene.add(f.model),f.helperGroup=new e.Group,f.helperGroup.name="helper",f.scene.add(f.helperGroup),f.videoTexture=new e.VideoTexture(n.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),function(t){(n=new e.DirectionalLight(16777215,.5)).position.copy(new e.Vector3(1,1,1)),t.add(n);var n=new e.DirectionalLight(16777215,.3);t.add(n),n=new e.AmbientLight(16777215,.3),t.add(n)}(f.scene),f.state={mode:null!==(d=f.currentMode)&&void 0!==d?d:zi,panoIndex:null!==(p=f.panoIndex)&&void 0!==p?p:0,longitude:f.camera.pose.longitude,latitude:f.camera.pose.latitude,fov:f.camera.pose.fov,offset:f.camera.pose.offset.clone(),distance:f.camera.pose.distance},f.stateSynced=!1,f._enableIOSEDR=!1,f.destroyed=!1,f.paused=!0,"undefined"!=typeof window&&(!1!==n.play&&f.play(),f.stopAnimationLoop=ke.shared.add((function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];f.updateTime.apply(f,ie([e,t],n,!1))}),!1,0,10));var m=function(){"undefined"!=typeof document&&null===document.fullscreenElement&&"VRPanorama"===f.currentMode&&f.controller.emit("vrWantsToExit")};if("undefined"!=typeof document&&document.addEventListener("fullscreenchange",m,!1),f.removeEventListeners=function(){"undefined"!=typeof document&&document.removeEventListener("fullscreenchange",m,!1)},f.plugins={},n.plugins&&n.plugins.length)for(var g=0,y=n.plugins;g<y.length;g++){var b=y[g];if("function"==typeof b)b(f);else if(Array.isArray(b)){var x=b[0],w=b[1],M=b[2];if("function"==typeof x){var E=x(f,M);"string"==typeof w&&(f.plugins[w]?f.throwError(new Error("plugin name ".concat(w," is exists."))):f.plugins[w]=E)}}}return f.gpuPickingRenderTarget=new e.WebGLRenderTarget(1,1),f.meshReplaceMaterialMap=new Map,f.meshOriginMaterialMap=new Map,f}return te(n,t),Object.defineProperty(n,"version",{get:function(){return"5.0.0-alpha.212"},enumerable:!1,configurable:!0}),n.prototype.getGPUPicking=function(t,n,i,r,o){var a=this;if(void 0===r&&(r=1),void 0===o&&(o=new e.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.model.setMaterial({modelColorInfo:o}),this.scene.traverse((function(t){if(t instanceof e.Mesh&&!(t instanceof Ge)){var n=Object.keys(i).filter((function(e){return e===t.uuid}))[0];if(n)if(a.meshOriginMaterialMap.set(n,t.material),a.meshReplaceMaterialMap.get(n))t.material=a.meshReplaceMaterialMap.get(n);else{var r=new e.ShaderMaterial({uniforms:{color:{value:i[n]}},vertexShader:"\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n ",fragmentShader:"\n uniform vec3 color;\n void main() {\n gl_FragColor = vec4( color, 1.0 );\n }\n "});r.depthTest=t.material.depthTest,r.side=t.material.side,a.meshReplaceMaterialMap.set(n,r),t.material=r}}}));var s=this.renderer.getSize(new e.Vector2);this.camera.setViewOffset(s.width,s.height,t*r,n*r,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var l=new Uint8Array(4);return this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse((function(t){t instanceof e.Mesh&&!(t instanceof Ge)&&a.meshOriginMaterialMap.get(t.uuid)&&(t.material=a.meshOriginMaterialMap.get(t.uuid))})),this.model.setMaterial({modelColorInfo:null}),Object.keys(i).filter((function(t){return i[t].equals((new e.Color).setRGB(l[0]/255,l[1]/255,l[2]/255))}))[0]||!1},n.prototype.dispose=function(){var e,t;if(!0!==this.destroyed){delete Ss.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),null===(e=this.renderer)||void 0===e||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var n=this.getElement();n&&n.parentNode&&n.parentNode.removeChild(n),this.scene.remove(this.model);var i=this.model.getMaterial();i&&(i.pano0&&i.pano0.map.dispose(),i.pano1&&i.pano1.map!==(null===(t=i.pano0)||void 0===t?void 0:t.map)&&i.pano1.map.dispose()),this.model.dispose(),this.diposeGPUPickingMaterial(),this.renderer instanceof Tt&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},n.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(n.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&"Panorama"===this.currentMode&&this.changeMode(this.currentMode,{},0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffers},set:function(t){var n,i,r,o;if(t){if(!this.screenBuffers){var a=this.getDrawingBufferSize(xs);this.screenBuffers=[new e.WebGLRenderTarget(a.x,a.y,{encoding:null!==(i=null===(n=this.renderer)||void 0===n?void 0:n.outputEncoding)&&void 0!==i?i:e.sRGBEncoding}),new e.WebGLRenderTarget(a.x,a.y,{encoding:null!==(o=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==o?o:e.sRGBEncoding})]}}else this.screenBuffers&&(this.screenBuffers[0].dispose(),this.screenBuffers[1].dispose(),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),n.prototype.updateConfiguration=function(e){var t=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),"Panorama"===this.currentMode&&(t=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),"Model"===this.currentMode&&(t=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),"Floorplan"===this.currentMode&&(t=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),"Topview"===this.currentMode&&(t=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.topview),"Mapview"===this.currentMode&&(t=!0)),e.depthPanorama&&(Object.assign(this.controllerInits.DepthPanorama,e.depthPanorama),"DepthPanorama"===this.currentMode&&(t=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),"VRPanorama"===this.currentMode&&(t=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),"Panorama"!==this.currentMode&&"DepthPanorama"!==this.currentMode&&"VRPanorama"!==this.currentMode||(t=!0)),t&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0),e.textureOptions&&(Object.assign(this.textureOptions,e.textureOptions),this.model.updateTexture(this.textureOptions))},n.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Tt){var n=this.getElement();if(n){e.appendChild(n),this.refresh(t);var i=window.getComputedStyle(e).position;"relative"!==i&&"absolute"!==i&&"fixed"!==i&&"sticky"!==i&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},n.prototype.refresh=function(t,n){if(void 0===t&&(t={}),this.renderer){var i=this.getElement();if(i){var r=i.parentNode;if(r&&r.nodeName){var o=t.width,a=void 0===o?r.offsetWidth:o,s=t.height,l=void 0===s?r.offsetHeight:s;this.renderer instanceof Tt&&(n&&this.renderer.setPixelRatio(n),this.renderer.setSize(a,l))}var u=this.renderer.getSize(new e.Vector2);this.camera.aspect=u.x*this.scissor.width/(u.y*this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},n.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},n.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},n.prototype.getPose=function(){var e=this.camera.copyPose(),t=e.longitude,n=e.latitude,i=e.fov,r=e.offset,o=e.distance;return{longitude:t,latitude:n,fov:i,offset:r.clone(),distance:o}},n.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},n.prototype.updateCamera=function(e,t,n){return void 0===n&&(n=!0),this.controller?this.controller.updateCamera(e,t,n):Promise.reject(new Error("controller is not initialized."))},n.prototype.updateCameraWithKeyframes=function(e,t,n){return void 0===n&&(n=!0),this.controller?this.controller.updateCameraWithKeyframes(e,t,n):Promise.reject(new Error("controller is not initialized."))},n.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},n.prototype.getOffset=function(){return this.getPose().offset},n.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var t=this.work.observers[this.panoIndex],n=new e.Object3D;return n.position.copy(t.position),n.quaternion.copy(t.quaternion),n.scale.set(1,1,1),n.updateMatrixWorld(!0),function(t,n){var i=new e.Vector3(0,0,-1);i.applyQuaternion(t.quaternion);var r=n.quaternion.clone().inverse();return i.applyQuaternion(r),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,n)}},Object.defineProperty(n.prototype,"work",{get:function(){var e=Cs.get(this);if(e&&$i.get(e))return e},enumerable:!1,configurable:!0}),n.prototype.load=function(e,t,n,i){var r=this;if(void 0===i&&(i=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?r.load_(e,t,n,i):e.then((function(e){return r.load_(e,t,n,i)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){r.throwError(e)})),o},n.prototype.load_=function(t,i,r,o){var a,s,l,u,c,h,d,p,f,A=this;void 0===o&&(o=!0);var v,m,g,y=rr(t),b=this.work;void 0===i&&(i=b?"inherit":"initial"),"inherit"===i?(v="number"==typeof this.panoIndex&&y.observers[this.panoIndex]?this.panoIndex:y.initial.panoIndex,m=null!==(a=this.currentMode)&&void 0!==a?a:y.initial.mode,g={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===i?(m=null!==(s=this.currentMode)&&void 0!==s?s:y.initial.mode,v=y.initial.panoIndex,g=m===n.Mode.Panorama||m===n.Mode.DepthPanorama||m===n.Mode.Model||m===n.Mode.VRPanorama||m===n.Mode.XRPanorama?{longitude:y.initial.longitude,latitude:y.initial.latitude,fov:y.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(v=null!==(l=i.panoIndex)&&void 0!==l?l:y.initial.panoIndex,m=null!==(c=null!==(u=i.mode)&&void 0!==u?u:this.currentMode)&&void 0!==c?c:zi,g={longitude:null!==(h=i.longitude)&&void 0!==h?h:y.initial.longitude,latitude:null!==(d=i.latitude)&&void 0!==d?d:y.initial.latitude,fov:null!==(p=i.fov)&&void 0!==p?p:y.initial.fov}),this.emit("willLoad",t,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov});var x=function(){var e;A.panoIndex=v,A.panoramaLikeSavedPose.longitude=y.initial.longitude,A.panoramaLikeSavedPose.latitude=y.initial.latitude,A.panoramaLikeSavedPose.fov=y.initial.fov;var n=A.controller?null!=r?r:A.modeChangeDuration:0,i=ne(ne({initial:[v,g,n,o]},A.commonParams()),A.controllerInits[m]);A.controller?!1===A.controller.updateWork(y,v,g,n,o)&&(A.controller.destroy(),A.controller=A.applyController(m,i)):A.controller=A.applyController(m,i),A.emit("load",t,y,{panoIndex:v,mode:m,longitude:g.longitude,latitude:g.latitude,fov:g.fov}),null===(e=A.analysis)||void 0===e||e.work(y)},w=function(e){var t;void 0===e&&(e=le),y.model&&(A.model.name!==(null===(t=y.model)||void 0===t?void 0:t.file)?(A.emit("modelWillLoad",y.model),A.loadModel(y.workCode,y.model,y.allowHosts,e,!0)):e&&e())};Cs.set(this,y);for(var M=new e.Box3,E=0,C=y.observers;E<C.length;E++){var I=C[E];M.expandByPoint(I.standingPosition),M.expandByPoint((new e.Vector3).fromArray([I.position.x,2*I.position.y-I.standingPosition.y,I.position.z]))}return this.model.bounding.union(M),m===n.Mode.Floorplan||m===n.Mode.Topview||m===n.Mode.Mapview||m===n.Mode.Model?w((function(){x(),A.needsRender=!0})):(this.controller||(this.camera.setFromPose({distance:0,fov:y.initial.fov,longitude:y.initial.longitude,latitude:y.initial.latitude,offset:y.observers[y.initial.panoIndex].position}),this.needsRender=!0),x(),null===(f=this.controller)||void 0===f||f.once("panoLoaded",(function(){A.needsRender=!0,A.emit("cameraUpdate",A.camera.copyPose(),o),w()}))),this.ready().then((function(){A.emit("loaded",t,A.work)}))},n.prototype.changeMode=function(e,t,i,r,o){var a=this;if(void 0===t&&(t={}),void 0===i&&(i=this.modeChangeDuration),void 0===r&&(r=!0),void 0===o&&(o=!1),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(s,l){if(!n.Mode.hasOwnProperty(e)){var u=new Error('mode "'.concat(e,'" is not existed'));return a.throwError(u),void l(u)}if((e===n.Mode.Floorplan||e===n.Mode.Topview||e===n.Mode.Mapview||e===n.Mode.Model)&&(Qi(a.model)||!0!==a.model.loaded))return u=new Error("model is not ready."),a.throwError(u),void l(u);if(Qi(a.controller))return u=new Error("controller is not ready."),a.throwError(u),void l(u);var c=a.controller,h=a.currentMode,d=function(){var u,d,p,f;if(a.emit("wantsChangeMode",e,h))l(new Error("change mode canceled."));else{if(a.controller&&!1===o&&h===e)e===n.Mode.Panorama||e===n.Mode.DepthPanorama||e===n.Mode.Model||e===n.Mode.VRPanorama||e===n.Mode.XRPanorama?"number"==typeof t.panoIndex&&t.panoIndex!==a.panoIndex?a.controller.moveToPano(null!==(d=null!==(u=t.panoIndex)&&void 0!==u?u:a.panoIndex)&&void 0!==d?d:0,ne({duration:i},t),r):a.controller.updateCamera(t,i,r).catch(le):("number"==typeof t.panoIndex&&t.panoIndex!==a.panoIndex&&(a.panoIndex=t.panoIndex),a.controller.updateCamera(t,i,r).catch(le));else{c.destroy();var A=null!==(f=null!==(p=t.panoIndex)&&void 0!==p?p:a.panoIndex)&&void 0!==f?f:0,v=ns(e)?a.panoramaLikeSavedPose:{};e===n.Mode.Mapview&&(v.longitude=a.panoramaLikeSavedPose.longitude),"number"!=typeof t.longitude&&"number"!=typeof t.latitude||(v.longitude=t.longitude,v.latitude=t.latitude),"number"==typeof t.fov&&(v.fov=t.fov),"Mapview"===e&&(v.distance=t.distance,v.offset=t.offset);var m=ne(ne({initial:[A,v,i,r]},a.commonParams()),a.controllerInits[e]);a.saveControllerPose(c),a.controller=a.applyController(e,m);var g=ts[e].initAnimationEndPose(m);a.emit("modeChange",e,h,A,g,r)}s()}};if(e===n.Mode.VRPanorama)a.requestFullscreen(),("undefined"==typeof location||"https:"!==location.protocol?Promise.reject(new Error("Request DeviceOrientation Permission denied.")):"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return d()})).catch((function(e){e instanceof Error&&(a.exitFullscreen(),a.throwError(e),l(e))}));else if(e===n.Mode.XRPanorama){var p=ke.shared.getContext();p?p.end():function(){if("xr"in navigator)return navigator.xr.isSessionSupported("immersive-vr").then((function(e){return e?Promise.resolve():Promise.reject()})).then((function(){return navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then((function(e){return Promise.resolve(e)}))}));var e=new Error("Request XR Permission denied.");return Promise.reject(e)}().then((function(e){ke.shared.setContext(e),d()})).catch((function(e){e instanceof Error&&(a.throwError(e),l(e))}))}else e===n.Mode.Mapview?(a.model&&a.model.originModel&&a.model.tiledModel&&(a.model.originModel.visible=!0,a.model.tiledModel.reset()),d()):d()}))},n.prototype.getPixels=function(t,n,i,r,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new e.Vector2);t=Gt(t,Math.floor(i/2),Math.floor(s.x-i)),n=Gt(n,Math.floor(r/2),Math.floor(s.y-r)),a.setSize(i*o,r*o),this.renderer.setRenderTarget(a),this.camera.setViewOffset(s.width,s.height,t,s.height-n-r,i,r),this.controller?this.controller.render():this.renderer.render(this.scene,this.camera);var l=new Uint8Array(i*o*r*o*4);return this.renderer.readRenderTargetPixels(a,0,0,i*o,r*o,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),l},n.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},n.prototype.render=function(e,t){var n,i=this;if(void 0===t&&(t=!1),!this.renderer)return null;var r=Ke.shared,o=null===(n=this.model.getMaterial())||void 0===n?void 0:n.clippers;if(o&&r.update(o,this.camera),this.model.setMaterial({clipperPlanesArray:o?r.clipperPlanes:null,clipperFloors:o?r.clipperFloors:null}),t){var a=this.renderer.getSize(xs);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(a.x,a.y)}))}if(this.controller&&this.screenBuffers&&null===this.renderer.getRenderTarget()){var s=this.getDrawingBufferSize(xs);return this.screenBuffers[0].setSize(s.x,s.y),this.screenBuffers[1].setSize(s.x,s.y),this.renderer.setRenderTarget(this.screenBuffers[0]),this.controller.render(),"VRPanorama"!==this.currentMode&&"XRPanorama"!==this.currentMode&&this.poweredByRealsee&&gs(this.renderer),this.renderer.setRenderTarget(null),e&&ke.shared.add(e,!0),this.screenBuffers[0]}return this.aroundScissor((function(){i.renderer&&(i.controller?i.controller.render():i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&"VRPanorama"!==i.currentMode&&"XRPanorama"!==i.currentMode&&gs(i.renderer)),e&&ke.shared.add(e,!0)})),null},n.prototype.updateTime=function(t,n){for(var i,r,o,a,s=this,l=[],u=2;u<arguments.length;u++)l[u-2]=arguments[u];if(!this.destroyed){this.syncingState=this.syncState(t,n),this.controller&&(i=this.controller).updateTime.apply(i,ie([t,n],l,!1)),this.syncingState=!1,this.camera.updateTime(t,n);var c=new e.Vector2(512,512),h=new e.Vector2(512,512);this.renderer&&(this.renderer.getSize(c),c.x*=this.scissor.width,c.y*=this.scissor.height,this.renderer.getDrawingBufferSize(h),h.x*=this.scissor.width,h.y*=this.scissor.height),this.renderer&&this.model.update(this.renderer,this.camera);var d=new e.Box3;this.work&&d.union(this.work.boundingBox),this.model.empty||d.union(this.model.bounding),d.max.x+=1,d.max.y+=1,d.max.z+=1,d.min.x-=1,d.min.y-=.001,d.min.z-=1,d.getCenter(this.boundingMesh.position),d.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(d);var p=null!==(r=this.model.getMaterial())&&void 0!==r?r:{},f=1-(null!==(o=p.modelAlpha)&&void 0!==o?o:0);p.opacity=Gt(4*f-3,0,1),delete p.clipperFloors,delete p.clipperPlanesArray,delete p.clippers,this.boundingMesh.setMaterial(p),this.boundingMesh.setTransparent(1!==f);var A=[];Ms.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ws.setFromProjectionMatrix(Ms);for(var v=0,m=this.scene.children;v<m.length;v++){var g=m[v];g!==this.model&&g instanceof e.Object3D&&g.traverseVisible((function(n){if(n.setResolution&&n.setResolution(c.x,c.y),n.setTime&&n.setTime(t),n.mixer instanceof e.AnimationMixer){var i=Es.get(n.mixer);i||(i=new e.Clock,Es.set(n.mixer,i)),n.mixer.update(i.getDelta())}(n instanceof e.Mesh||n instanceof e.Line||n instanceof e.Points)&&(n instanceof e.ImmediateRenderObject||!n.frustumCulled||ws.intersectsObject(n))&&A.push(n)}))}if(h.width*h.height>8388608?this.renderSwitch01=1^this.renderSwitch01:this.renderSwitch01=0,this.renderer&&!1===this.paused&&0===this.renderSwitch01){var y=void 0;if(!0!==this.onlyRenderIfNeeds)y=this.render();else{if(this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!0===this.camera.needsRender&&(this.camera.needsRender=!1,this.needsRender=!0),!0===this.model.needsRender&&(this.model.needsRender=!1,this.needsRender=!0),!0===(null===(a=this.model.tiledModel)||void 0===a?void 0:a.needsRender)&&(this.model.tiledModel.needsRender=!1,this.needsRender=!0),!0!==this.needsRender)for(var b=0,x=A;b<x.length;b++){var w=x[b],M=function(e){!0===e.needsRender?(e.needsRender=!1,s.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(s.needsRender=!0)};M(w),w.traverseAncestors(M)}!1!==this.needsRender&&(y=this.render())}if(this.needsRender=!1,this.controller&&this.screenBuffers){var E=this.controller,C=this.screenBuffers;this.aroundScissor((function(){E.postProcessing(C[0],C[1]),s.copyEffect.render(C[1],void 0)}))}this.hasListener("renderFrame")&&this.emit("renderFrame",void 0!==y)}this.fps.testTime&&t-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=t,this.fps.testCount=0)}},n.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof Tt&&this.renderer.clear(!0,!0,!0)},n.prototype.play=function(){this.needsRender=!0,this.paused=!1},n.prototype.moveToPano=function(e,t,i){var r=this;void 0===t&&(t={}),void 0===i&&(i=!0);var o=this,a=o.controller,s=o.currentMode,l=o.renderer;return a?l?(s===n.Mode.Floorplan||s===n.Mode.Topview||s===n.Mode.Mapview?Qi(e)||(this.panoIndex=e,this.once("initAnimationWillStart",(function(e,i){r.currentMode===n.Mode.Panorama&&t.moveStartCallback&&t.moveStartCallback(e,i)})),this.once("initAnimationEnded",(function(e,i){r.currentMode===n.Mode.Panorama&&t.moveEndCallback&&t.moveEndCallback(e,i)})),this.changeMode(n.Mode.Panorama,t,void 0,i)):a.moveToPano(e,t,i),this.ready()):(this.throwError(new Error("renderer is not initialized.")),Promise.resolve()):(this.throwError(new Error("controller is not initialized.")),Promise.resolve())},n.prototype.moveToPanoByRaycaster=function(e){this.controller&&this.controller instanceof ts.XRPanorama&&this.controller.checkSelectedPano(e)},n.prototype.preloadPano=function(e,t){var n=this;if(void 0===t&&(t=le),!this.work)return Promise.reject(new Error("work never loaded"));var i=this.work.observers[e],r=this.work.allowHosts,o=ce();return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ne({key:"pano.".concat(e,".").concat(t)},hn(n.imageOptions,["size","format","quality","mappings"])),a=i.images[t];return Te(n.imageOptions.transform?n.imageOptions.transform(a,o):Ve(a,o),{allowHosts:r,requestProxy:n.requestProxy,networkSubscribe:n.networkSubscribe})}))).then((function(){var e=ce()-o;return t(e),e}))},n.prototype.project2d=function(t,n){if(void 0===n&&(n=!1),!this.renderer)return null;if(!1===this.model.empty&&n){var i=this.camera.position,r=t.clone().sub(i),o=new e.Raycaster(i,r.clone().normalize()),a=this.model.intersectRaycaster(o)[0];if(a&&a.distance+.01<r.length())return null}var s=t.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var l=this.renderer.getSize(new e.Vector2),u=l.x*this.scissor.width,c=l.y*this.scissor.height,h=l.x*this.scissor.left+(s.x+1)/2*u,d=l.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new e.Vector2(h,d)},n.prototype.getRenderObjects=function(t){Ms.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),ws.setFromProjectionMatrix(Ms),t||(t=this.scene);var n=[];return t.traverseVisible((function(t){(t instanceof e.Mesh||t instanceof e.Line||t instanceof e.Points)&&(t instanceof e.ImmediateRenderObject||!t.frustumCulled||ws.intersectsObject(t))&&n.push(t)})),n},n.prototype.getCurrentState=function(){return ne(ne({},this.getPose()),{mode:this.currentMode||n.Mode.Panorama,panoIndex:this.panoIndex||0})},n.prototype.setState=function(t,i,r){var o,a,s,l,u,c,h,d,p;void 0===i&&(i=!1),void 0===r&&(r=!0),!(t=Object.assign({},t)).offset||t instanceof e.Vector3||(t.offset=new e.Vector3(t.offset.x,t.offset.y,t.offset.z));var f,A,v,m,g,y=null!==(o=t.panoIndex)&&void 0!==o?o:this.state.panoIndex,b=null!==(a=t.mode)&&void 0!==a?a:this.state.mode;if(this.work)if(this.work.observers[y])if(t.mode!==n.Mode.Floorplan&&t.mode!==n.Mode.Topview&&t.mode!==n.Mode.Mapview&&t.mode!==n.Mode.Model||!Qi(this.model)&&!0===this.model.loaded){if(this.state.mode!==b){if("VRPanorama"===b)return void this.changeMode("VRPanorama",void 0,void 0,!0);var x=void 0;x=ns(this.state.mode)&&ns(b)?ne({},this.state):ns(b)?ne({},this.panoramaLikeSavedPose):b===n.Mode.Mapview?{longitude:this.panoramaLikeSavedPose.latitude}:ne({},t),"number"==typeof t.longitude&&(x.longitude=t.longitude),"number"==typeof t.latitude&&(x.latitude=t.latitude),"number"==typeof t.fov&&(x.fov=t.fov),"number"==typeof t.distance&&"Mapview"===t.mode&&(x.distance=t.distance),t.offset instanceof e.Vector3&&"Mapview"===t.mode&&(x.offset=t.offset);var w=ne(ne({initial:[y,x,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[b]),M=ts[b].initAnimationEndPose(w);f=M.longitude,A=M.latitude,v=M.fov,m=M.offset,g=M.distance}else f=null!==(s=t.longitude)&&void 0!==s?s:this.state.longitude,A=null!==(l=t.latitude)&&void 0!==l?l:this.state.latitude,v=null!==(u=t.fov)&&void 0!==u?u:this.state.fov,m=null!==(c=t.offset)&&void 0!==c?c:this.state.offset,g=null!==(h=t.distance)&&void 0!==h?h:this.state.distance;var E={panoIndex:y,mode:b,longitude:f,latitude:A,fov:v,offset:m,distance:g};this.emit("setState",E),Dr(this.state,E)||(this.controller&&"VRPanorama"===E.mode&&E.mode!==this.state.mode?(Fr(this.state,E),this.changeMode("VRPanorama")):this.controller&&"XRPanorama"===E.mode&&E.mode!==this.state.mode?(Fr(this.state,E),this.changeMode("XRPanorama")):(Fr(this.state,E),this.controller&&r&&(this.controller.userAction=!1),i&&this.state.mode===E.mode&&(this.syncingState=this.syncState(ce(),0,i),this.syncingState&&(null===(d=this.controller)||void 0===d||d.updateTime(ce(),0),this.syncingState=!1)),this.emit("stateChange",this.state,r),null===(p=this.analysis)||void 0===p||p.state(this.work,this.state)))}else this.throwError(new Error("model is not ready."));else this.throwError(new Error("panoIndex not found in work"));else this.throwError(new Error("work never load."))},n.prototype.aroundScissor=function(t){if(this.renderer)if("XRPanorama"!==this.state.mode){var n=new e.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||1!==this.scissor.height;if(i){this.renderer.getSize(n);var r=Math.floor(n.x*this.scissor.left),o=Math.floor(n.y*this.scissor.bottom),a=Math.floor(n.x*this.scissor.width),s=Math.floor(n.y*this.scissor.height);this.renderer.setViewport(r,o,a,s),this.renderer.setScissor(r,o,a,s),this.renderer.setScissorTest(!0)}t(),i&&(this.renderer.setViewport(0,0,n.x,n.y),this.renderer.setScissor(0,0,n.x,n.y),this.renderer.setScissorTest(!1))}else t()},n.prototype.syncState=function(t,i,r){void 0===r&&(r=!1);var o=this.stateSynced;if(this.stateSynced=!1,!this.work)return!1;if(!this.controller)return!1;if(this.state.mode!==this.currentMode){var a={mode:this.state.mode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,a,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof ts.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,ne(ne({},s),{duration:r?0:void 0}),!1),!0}}else if(this.state.panoIndex!==this.panoIndex)return s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance},this.controller.moveToPano(this.state.panoIndex,s,!1),!0;if(this.controller instanceof ts.Topview||this.controller instanceof ts.Mapview){var l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l),h=r?this.state.distance:Lr(this.camera.pose.distance,this.state.distance,.2),d=r?new e.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new e.Vector3(Lr(this.camera.pose.offset.x,this.state.offset.x,.2),Lr(this.camera.pose.offset.y,this.state.offset.y,.2),Lr(this.camera.pose.offset.z,this.state.offset.z,.2)),p=r?{longitude:this.state.longitude,latitude:this.state.latitude}:kr({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u),f=p.longitude,A=p.latitude;if(this.controller instanceof ts.Mapview){if(wr(c,this.camera.pose.fov)||Er(d,this.camera.pose.offset)||wr(h,this.camera.pose.distance)||wr(f,this.camera.pose.longitude,2*Math.PI)||wr(A,this.camera.pose.latitude)){var v={x:d.x,y:d.y,z:d.z},m={fov:c};return Object.assign(v,{distance:h}),Object.assign(m,{longitude:f,latitude:A}),this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}}else if(wr(c,this.camera.pose.fov)||Er(d,this.camera.pose.offset))return v={x:d.x,y:d.y,z:d.z},m={fov:c},this.controller.cameraMotion.set(m,0).catch(le),this.controller.locationMotion.set(v,0).catch(le),!0}else{l=1,u=Math.PI/45,c=r?this.state.fov:Lr(this.camera.pose.fov,this.state.fov,l);var g=r?{longitude:this.state.longitude,latitude:this.state.latitude}:kr({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},u);if(f=g.longitude,A=g.latitude,wr(f,this.camera.pose.longitude,2*Math.PI)||wr(A,this.camera.pose.latitude)||wr(c,this.camera.pose.fov))return this.controller.cameraMotion.set({longitude:f,latitude:A,fov:c},0).catch(le),!0}if(this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state),this.readyCallbacks.length&&this.stateSynced){var y=this.currentMode;if(y!==n.Mode.Floorplan&&y!==n.Mode.Topview&&y!==n.Mode.Mapview&&y!==n.Mode.Model||!this.modelPending){var b=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var x=0,w=b;x<w.length;x++){var M=w[x];this.controller instanceof ts.Panorama?!0!==M.tile||this.controller.isTileReady()?M():this.readyCallbacks.push(M):M()}}}return!1},n.prototype.ready=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(n){var i;t.readyCallbacks.push(Object.assign(n,{tile:null!==(i=e.tile)&&void 0!==i&&i}))}))},n.prototype.requestFullscreen=function(){var e;if(Or()){var t=null===(e=this.getElement())||void 0===e?void 0:e.parentNode;t&&"requestFullscreen"in t&&"undefined"!=typeof document&&null===document.fullscreenElement&&t.requestFullscreen()}},n.prototype.exitFullscreen=function(){"undefined"!=typeof document&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},n.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},n.prototype.loadModel=function(t,n,i,r,o){var a=this,s=n.file;this.emit("modelWillLoad",n);var l=new _i({allowHosts:i,requestProxy:this.requestProxy,networkSubscribe:this.networkSubscribe},this.renderer);l.workCode=t,l.once("bvhLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelBvhLoaded",l)})),l.once("materialLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&a.emit("modelMaterialLoaded",l)})),l.once("geometryLoaded",(function(){var e,t;a.destroyed||s===(null===(t=null===(e=a.work)||void 0===e?void 0:e.model)||void 0===t?void 0:t.file)&&(l.bounding.max.y-l.bounding.min.y<1.5&&(l.bounding.max.y=l.bounding.min.y+10),a.emit("modelGeometryLoaded",l))})),l.once("loaded",(function(){var t,n,i,o,u;if(!a.destroyed&&s===(null===(n=null===(t=a.work)||void 0===t?void 0:t.model)||void 0===n?void 0:n.file)){var c,h=a.model;h&&(h.show(),c=h.getMaterial()||{},a.scene.remove(h),h.dispose(),l.setTransparent(h.getTransparent())),c&&l.setMaterial(c),a.model=l,a.scene.add(l),null===(i=a.controller)||void 0===i||i.updateModel(l),null===(o=a.renderer)||void 0===o||o.compile(a.scene,a.camera),a.needsRender=!0,a.modelPending=!1,r();var d=[];null===(u=a.model.originModel)||void 0===u||u.children.forEach((function(t){var n=new e.Box3;t.traverse((function(t){t instanceof e.Mesh&&n.union(t.geometry.boundingBox)})),d.push(new e.Vector3(n.max.y,n.min.y,0))})),a.model.setMaterial({globalFloorInfo:d}),a.model.updateTexture(a.textureOptions),a.emit("modelLoaded",l)}})),l.on("shownFloorChange",(function(e,t){var n,i;a.destroyed||s===(null===(i=null===(n=a.work)||void 0===n?void 0:n.model)||void 0===i?void 0:i.file)&&a.emit("modelShownFloorChange",e,t)})),l.on("error",(function(t){var n,i,o,u;if(!a.destroyed&&s===(null===(i=null===(n=a.work)||void 0===n?void 0:n.model)||void 0===i?void 0:i.file)){l.bounding.makeEmpty();for(var c=0,h=a.work.observers;c<h.length;c++){var d=h[c];l.bounding.expandByPoint(d.standingPosition),l.bounding.expandByPoint((new e.Vector3).fromArray([d.position.x,2*d.position.y-d.standingPosition.y,d.position.z]))}var p=Sr(l.bounding,new e.Vector3(1,0,1));p.visible=!0,p.name="model_empty",l.add(p);var f,A=a.model;A&&(A.show(),f=A.getMaterial()||{},a.scene.remove(A),A.dispose(),l.setTransparent(A.getTransparent())),f&&l.setMaterial(f),a.model=l,a.scene.add(l),null===(o=a.controller)||void 0===o||o.updateModel(l),null===(u=a.renderer)||void 0===u||u.compile(a.scene,a.camera),a.emit("modelLoadError",t,l),a.throwError(t),a.modelPending=!1,r()}})),this.modelPending=!0,l.load(n,this.textureOptions,this.modelLodOptions).catch(le)},n.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy}},n.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&ns(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},n.prototype.applyController=function(e,t){var i=this;if(!this.renderer)throw new Error("renderer is not initialized.");var r=ts[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===n.Mode.Floorplan||e===n.Mode.Topview||e===n.Mode.Model||e===n.Mode.Mapview),this.currentMode=e;for(var o=new r(t),a=function(e){o.on(e,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(i.emit.apply(i,ie([e],t,!1)))return!1}))},s=0,l=is;s<l.length;s++)a(l[s]);var u=ts[e].initAnimationEndPose(t),c=t.initial[3],h={panoIndex:t.initial[0],mode:e,longitude:u.longitude,latitude:u.latitude,fov:u.fov,offset:u.offset,distance:u.distance};return Dr(this.state,h)||(Fr(this.state,h),this.emit("stateChange",this.state,c)),this.emit("currentStateChange",this.getCurrentState(),c),o.on("cameraUpdate",(function(t,n){var r;if(i.controller){var o=ne(ne({},i.controller.getTargetPose()),{panoIndex:i.panoIndex,mode:e});!1!==i.syncingState||i.state.mode!==o.mode||Dr(i.state,o)||(Fr(i.state,o),i.emit("stateChange",i.state,n),null===(r=i.analysis)||void 0===r||r.state(i.work,i.state))}i.emit("currentStateChange",i.getCurrentState(),n)})),o.on("initAnimationWillStart",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("initAnimationEnded",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("panoWillArrive",(function(t,n,r){var o;i.panoIndex=t;var a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("panoArrived",(function(t,n,r){var o,a=ne(ne({},n),{panoIndex:t,mode:e});r&&i.state.mode===a.mode&&!Dr(i.state,a)&&(Fr(i.state,a),i.emit("stateChange",i.state,r),null===(o=i.analysis)||void 0===o||o.state(i.work,i.state))})),o.on("moveToPano",(function(e,t){i.emit("currentStateChange",i.getCurrentState(),t)})),o.on("wantsMoveToPano",(function(e,t,n){var r=i.emit("wantsMoveToPano",e,t,n);r||(r=i.emit("wantsToMoveToPano",e,t,n)),r||i.moveToPano(e,t,n)})),o.on("vrWantsToExit",(function(){i.currentMode===n.Mode.VRPanorama&&(i.exitFullscreen(),i.changeMode(n.Mode.Panorama))})),o.on("error",(function(e){return i.throwError(e)})),o},n.prototype.removeEventListeners=function(){},n.prototype.diposeGPUPickingMaterial=function(){this.meshReplaceMaterialMap.forEach((function(e){e.dispose()})),this.meshOriginMaterialMap.forEach((function(e){e.dispose()}))},n.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},n.Line=null,n}(se),Ss={instances:{},constructor:Is};"undefined"!=typeof window&&Object.assign(window,{__FIVE_DEBUG__:Ss});var Bs=function(){function e(){}return e.createButton=function(e){var t=document.createElement("button");function n(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return t.id="VRButton",t.style.display="none",n(t),navigator.xr.isSessionSupported("immersive-vr").then((function(n){n?(t.style.display="",t.style.cursor="pointer",t.style.left="calc(50% - 50px)",t.style.width="100px",t.textContent="ENTER VR",t.onmouseenter=function(){t.style.opacity="1.0"},t.onmouseleave=function(){t.style.opacity="0.5"},t.onclick=function(){e&&e()}):(t.style.display="",t.style.cursor="auto",t.style.left="calc(50% - 75px)",t.style.width="150px",t.onmouseenter=null,t.onmouseleave=null,t.onclick=null,t.textContent="VR NOT SUPPORTED")})),t;var i=document.createElement("a");return!1===window.isSecureContext?(i.href=document.location.href.replace(/^http:/,"https:"),i.innerHTML="WEBXR NEEDS HTTPS"):(i.href="https://immersiveweb.dev/",i.innerHTML="WEBXR NOT AVAILABLE"),i.style.left="calc(50% - 90px)",i.style.width="180px",i.style.textDecoration="none",n(i),i},e}()})(),__webpack_exports__})()));
|