var dom={getOffset:function(e,t,i){for(left="left"==e?t.offsetLeft:t.offsetTop,i=i||$("body")[0];(t=t.offsetParent)&&t!=i;)left+="left"==e?t.offsetLeft:t.offsetTop;return left}};if(function(){"use strict";function o(e,t){return typeof e===t}function a(e,t){return e instanceof t}function s(e){return e&&e.nodeType}function l(e){return s(e)?e:a(e,y)?e[0]:void 0}function e(e,i,n){return y.each(e,function(e,t){n=i.call(t,n,e,t)}),n}function t(e,t,i){var n,r,o;if(e===t)return!0;if(!e||!t||e.constructor!==t.constructor)return!1;for(n=0,r=i.length;n
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},r.prototype.init=function(e,t,i){this.enabled=!0,this.type=e,this.$element=m(t),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&m(this.options.viewport.selector||this.options.viewport);for(var n=this.options.trigger.split(" "),r=n.length;r--;){var o=n[r];if("click"==o)this.$element.on("click."+this.type,this.options.selector,m.proxy(this.toggle,this));else if("manual"!=o){var a="hover"==o?"mouseenter":"focusin",s="hover"==o?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,m.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,m.proxy(this.leave,this))}}this.options.selector?this._options=m.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},r.prototype.getDefaults=function(){return r.DEFAULTS},r.prototype.getOptions=function(e){return(e=m.extend({},this.getDefaults(),this.$element.data(),e)).delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},r.prototype.getDelegateOptions=function(){var i={},n=this.getDefaults();return this._options&&m.each(this._options,function(e,t){n[e]!=t&&(i[e]=t)}),i},r.prototype.enter=function(e){var t=e instanceof this.constructor?e:m(e.currentTarget).data("bs."+this.type);return t||(t=new this.constructor(e.currentTarget,this.getDelegateOptions()),m(e.currentTarget).data("bs."+this.type,t)),clearTimeout(t.timeout),t.hoverState="in",t.options.delay&&t.options.delay.show?void(t.timeout=setTimeout(function(){},t.options.delay.show)):t.show()},r.prototype.leave=function(e){var t=e instanceof this.constructor?e:m(e.currentTarget).data("bs."+this.type);return t||(t=new this.constructor(e.currentTarget,this.getDelegateOptions()),m(e.currentTarget).data("bs."+this.type,t)),clearTimeout(t.timeout),t.hoverState="out",t.options.delay&&t.options.delay.hide?void(t.timeout=setTimeout(function(){"out"==t.hoverState&&t.hide()},t.options.delay.hide)):t.hide()},r.prototype.show=function(){var e=m.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var t=m.contains(document.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!t)return;var i=this,n=this.tip(),r=this.getUID(this.type);this.setContent(),n.attr("id",r),this.$element.attr("aria-describedby",r),this.options.animation&&n.addClass("fade");var o="function"==typeof this.options.placement?this.options.placement.call(this,n[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,s=a.test(o);s&&(o=o.replace(a,"")||"top"),n.detach().css({top:0,left:0,display:"block"}).addClass(o).data("bs."+this.type,this),this.options.container?n.appendTo(this.options.container):n.insertAfter(this.$element);var l=this.getPosition(),c=n[0].offsetWidth,h=n[0].offsetHeight;if(s){var u=o,d=this.$element.parent(),p=this.getPosition(d);o="bottom"==o&&l.top+l.height+h-p.scroll>p.height?"top":"top"==o&&l.top-p.scroll-h<0?"bottom":"right"==o&&l.right+c>p.width?"left":"left"==o&&l.left-ca.top+a.height&&(r.top=a.top+a.height-l)}else{var c=t.left-o,h=t.left+o+i;ca.width&&(r.left=a.left+a.width-h)}return r},r.prototype.getTitle=function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},r.prototype.getUID=function(e){for(;e+=~~(1e6*Math.random()),document.getElementById(e););return e},r.prototype.tip=function(){return this.$tip=this.$tip||m(this.options.template)},r.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},r.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},r.prototype.enable=function(){this.enabled=!0},r.prototype.disable=function(){this.enabled=!1},r.prototype.toggleEnabled=function(){this.enabled=!this.enabled},r.prototype.toggle=function(e){var t=this;e&&((t=m(e.currentTarget).data("bs."+this.type))||(t=new this.constructor(e.currentTarget,this.getDelegateOptions()),m(e.currentTarget).data("bs."+this.type,t))),t.tip().hasClass("in")?t.leave(t):t.enter(t)},r.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var e=m.fn.tooltip;m.fn.tooltip=function(n){return this.each(function(){var e=m(this),t=e.data("bs.tooltip"),i="object"==typeof n&&n;!t&&"destroy"==n||(t||e.data("bs.tooltip",t=new r(this,i)),"string"==typeof n&&t[n]())})},m.fn.tooltip.Constructor=r,m.fn.tooltip.noConflict=function(){return m.fn.tooltip=e,this}}(jQuery),function(e,t,i){"undefined"!=typeof module&&module.exports?module.exports=i():"function"==typeof define&&define.amd?define(i):t.Keen=i()}(0,this,function(){"use strict";function Keen(){return _init.apply(this,arguments)}function _init(e){if(_isUndefined(e))throw new Error("Check out our JavaScript SDK Usage Guide: https://keen.io/docs/clients/javascript/usage-guide/");if(_isUndefined(e.projectId)||"String"!==_type(e.projectId)||e.projectId.length<1)throw new Error("Please provide a projectId");this.configure(e)}function _extend(e){for(var t=1;t>2,o=(3&t)<<4|i>>4,a=isNaN(i)?64:(15&i)<<2|n>>6,s=isNaN(i)||isNaN(n)?64:63&n,l=l+h.charAt(r)+h.charAt(o)+h.charAt(a)+h.charAt(s);return l},decode:function(e){var t,i,n,r,o,a,s="",l=0,c=this.map,h=String.fromCharCode;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");l>2,a=(3&n)<<6|(r=c.indexOf(e.charAt(l++))),s=s+(h(t<<2|i>>4)+(64!=n?h(o):""))+(64!=r?h(a):"");return this.utf8.decode(s)},utf8:{encode:function(e){for(var t,i="",n=0,r=String.fromCharCode;n>6|192)+r(63&t|128):r(t>>12|224)+r(t>>6&63|128)+r(63&t|128);return i},decode:function(e){for(var t,i="",n=0,r=String.fromCharCode;nn&&n<=G.end&&(n=t.start,Q.push(n),(n+=H)>G.end&&nG.start&&eG.end?e=G.end+(e-G.end)/6:e=G.end||n===Q.length-1){t.activePage=Q.length-1;break}if(e<=Q[n]+i){t.activePage=n;break}}if(le){for(var o=!1,a=!1,s=!1,l=0,c=$.length;l=G.end,i=(e?1:0)|(t?2:0);if(ye.slideePosState!==i&&(ye.slideePosState=i,ge.is("button,input")&&ge.prop("disabled",e),me.is("button,input")&&me.prop("disabled",t),ge.add(de)[e?"addClass":"removeClass"](F.disabledClass),me.add(ue)[t?"addClass":"removeClass"](F.disabledClass)),ye.fwdbwdState!==i&&Ie.released&&(ye.fwdbwdState=i,de.is("button,input")&&de.prop("disabled",e),ue.is("button,input")&&ue.prop("disabled",t)),le&&null!=ee.activeItem){var n=0===ee.activeItem,r=ee.activeItem>=$.length-1,o=(n?1:0)|(r?2:0);ye.itemsButtonState!==o&&(ye.itemsButtonState=o,pe.is("button,input")&&pe.prop("disabled",n),fe.is("button,input")&&fe.prop("disabled",r),pe[n?"addClass":"removeClass"](F.disabledClass),fe[r?"addClass":"removeClass"](F.disabledClass))}}function r(e,t,i){if(e=u(e),t=u(t),-1n&&ee.activeItem$e(Ie.pathY):$e(Ie.pathX)<$e(Ie.pathY)))return _();Ie.init=1}Pe(e),!Ie.locked&&Ie.path>Ie.pathToLock&&Ie.slidee&&(Ie.locked=1,Ie.$source.on(Ze,Oe)),Ie.released&&(_(),F.releaseSwing&&Ie.slidee&&(Ie.swing=(Ie.delta-Ie.history[0])/40*300,Ie.delta+=Ie.swing,Ie.tweese=10<$e(Ie.swing))),l(Ie.slidee?it(Ie.initPos-Ie.delta):y(Ie.initPos+Ie.delta))}}function _(){clearInterval(be),Ie.released=!0,We.off(Ie.touch?qe:Ye,E),(Ie.slidee?U:j).removeClass(F.draggedClass),setTimeout(function(){Ie.$source.off(Ze,Oe)}),G.cur===G.dest&&Ie.init&&L("moveEnd"),B.resume(1),Ie.init=0}function b(e){return~xe.inArray(e.nodeName,Qe)||xe(e).is(F.interactive)}function w(){B.stop(),We.off("mouseup",w)}function T(e){switch(Pe(e),this){case ue[0]:case de[0]:B.moveBy(ue.is(this)?F.moveBy:-F.moveBy),We.on("mouseup",w);break;case pe[0]:B.prev();break;case fe[0]:B.next();break;case ge[0]:B.prevPage();break;case me[0]:B.nextPage()}}function x(e){e.originalEvent[He]=B;var t=+new Date;if(ot+F.scrollHijack>t&&ce[0]!==document&&ce[0]!==window)ot=t;else if(F.scrollBy&&G.start!==G.end){var i=function(e){return Ee.curDelta=(F.horizontal?e.deltaY||e.deltaX:e.deltaY)||-e.wheelDelta,Ee.curDelta/=1===e.deltaMode?3:100,le?(Ue=+new Date,Ee.lastG.start)&&Pe(e,1),B.slideBy(F.scrollBy*i)}}function S(e){F.clickBar&&e.target===W[0]&&(Pe(e),l(y((F.horizontal?e.pageX-W.offset().left:e.pageY-W.offset().top)-q/2)))}function M(e){if(F.keyboardNavBy)switch(e.which){case F.horizontal?37:38:Pe(e),B["pages"===F.keyboardNavBy?"prevPage":"prev"]();break;case F.horizontal?39:40:Pe(e),B["pages"===F.keyboardNavBy?"nextPage":"next"]()}}function R(e){return b(this)?void(e.originalEvent[He+"ignore"]=!0):void(this.parentNode!==U[0]||e.originalEvent[He+"ignore"]||B.activate(this))}function P(){this.parentNode===Z[0]&&B.activatePage(K.index(this))}function O(e){F.pauseOnHover&&B["mouseenter"===e.type?"pause":"resume"](2)}function L(e,t){if(ve[e]){for(N=ve[e].length,Je.length=0,D=0;D=ee.lastItem?B.toStart(i,t):i<=ee.firstItem?B.toEnd(i,t):g())},B.activatePage=function(e,t){De(e)&&l(Q[Fe(e,0,Q.length-1)],t)},B.resume=function(e){F.cycleBy&&F.cycleInterval&&("items"!==F.cycleBy||$[0]&&null!=ee.activeItem)&&!(e=$.length-1?0:ee.activeItem+1);break;case"pages":B.activatePage(ee.activePage>=Q.length-1?0:ee.activePage+1)}},F.cycleInterval))},B.pause=function(e){e=$.length?i.appendTo(U):$.length&&i.insertBefore($[t].el),null!=ee.activeItem&&t<=ee.activeItem&&(ye.active=ee.activeItem+=i.length)):U.append(i),a()},B.remove=function(e){if(le){var t=u(e);if(-1"+(e+1)+""},forward:null,backward:null,prev:null,next:null,prevPage:null,nextPage:null,cycleBy:null,cycleInterval:5e3,pauseOnHover:!1,startPaused:!1,moveBy:300,speed:0,easing:"swing",startAt:null,keyboardNavBy:null,draggedClass:"dragged",activeClass:"active",disabledClass:"disabled"}}(jQuery,window),function o(a,s,l){function c(i,e){if(!s[i]){if(!a[i]){var t="function"==typeof require&&require;if(!e&&t)return t(i,!0);if(h)return h(i,!0);var n=new Error("Cannot find module '"+i+"'");throw n.code="MODULE_NOT_FOUND",n}var r=s[i]={exports:{}};a[i][0].call(r.exports,function(e){var t=a[i][1][e];return c(t||e)},r,r.exports,o,a,s,l)}return s[i].exports}for(var h="function"==typeof require&&require,e=0;e no transition time specified, defaulting to 2000 ms.")),$(this.container).fadeIn(e)},t.prototype.hidePlayerReticule=function(){this.player.reticule.hide()},f.exports=t}).call(this,"/js/DisplayController.js")},{"./enum/BlackoutStyle":18,"./enum/DirectorEvents":23,"./enum/tagEvents":32,"./enum/ModelManagerEvents":33,"./enum/PlayerEvents":40,"./enum/Viewmode":51,"./enum/WarpStyle":52,"./settings":166,"./util/common":185,"./util/lerp":188,"./util/logger":189,"./util/transitions":195,three:217}],2:[function(e,t,i){"use strict";function n(){this.baseStartTime=performance.timing.navigationStart,this.loadingStartTime=null,this.waitingStartTime=null,this.appReadyTime=null}n.prototype.setBaseStartTime=function(e){this.baseStartTime=e||Date.now()},n.prototype.setWaitingStartTime=function(e){this.waitingStartTime=e||Date.now()},n.prototype.setLoadingStartTime=function(e){this.loadingStartTime=e||Date.now()},n.prototype.setAppReadyTime=function(e){this.appReadyTime=e||Date.now()},n.prototype.calcFullLoadingTime=function(){var e=this.appReadyTime-this.baseStartTime;return this.waitingStartTime&&(e-=this.loadingStartTime-this.waitingStartTime),e},t.exports=n},{}],3:[function(i,n,e){(function(e){"use strict";function a(){return 100*Math.random()}var t=i("./util/logger"),s=i("./util/browser"),l=new t(e),c=window.MP_AB_TESTS=window.MP_AB_TESTS||{initialized:!1,init:function(e,t){if(t=t||{},!this.initialized){for(var i in this.initialized=!0,s.valueFromHash("tilegen")&&(t.tilegen=1===s.valueFromHash("tilegen",0)),s.valueFromHash("imgopt")&&(t.imgopt=1===s.valueFromHash("imgopt",0)),e){var n=i.match("^sc_tilegen_([0-9]+)$");n&&(c.tilegen=a() client.addEvent() error (is there blocking software installed?). Error message: "+e)}}("Session starts",{model:e,status:t,loadtime:Date.now()-(P||Date.now()),loadtime_from_navigation_start:i?Date.now()-window.navigationStart:null,autoplay:i,quickstart:n,ab_tilegen:a.tilegen,ab_imgopt:a.imgopt})},impression:function(e){g("impression",{visible:void 0===(e=e||{}).isVisible||e.isVisible,url_params:(void 0!==e.immediate&&e.immediate,window.location.search.substr(1).split("&"))})},initKeen:function(e){return e.token&&e.appId?void(o=new Keen({projectId:e.appId,writeKey:e.token,readKey:"",requestType:"xhr"})):void l.warn("no keen token/appId")},initSegment:function(e){return e.token?(i=e.token,window.analytics.load(e.token),c={model_id:e.model,start_source:e.startSource,autoplay:e.autoplay,quickstart:e.quickstart,language_tag:t.languageTag,is_mobile:y.isMobile(),iframe:y.inIframe(),aspect_ratio:y.aspectRatio(),session_id:h,window:{width:$("#player").width(),height:$("#player").height()},platform:{browser:{name:$.ua.browser.name,major:$.ua.browser.major,version:$.ua.browser.version},os:{name:$.ua.os.name,version:$.ua.os.version},device:{vendor:$.ua.device.vendor,model:$.ua.device.model,type:$.ua.device.type}}},n=Math.random()this.lastMoveTime+100?(this.rotationSpeed.set(0,0),this.rotationAcceleration.set(0,0)):this.rotationAcceleration.set(-this.rotateDelta.x,this.rotateDelta.y),this.update(),this.rotationAcceleration.set(0,0),this.rotateDelta.set(0,0)))},n.prototype.onMouseOver=function(e){0!==e.which&&0!==e.buttons||this.onMouseUp(e)},n.prototype.onMouseWheel=function(e){this.enabled&&c.useWheel&&(this.emit(f.Move,"wheel"),(0<(e.wheelDelta||-e.detail)?this.dollyOut:this.dollyIn).call(this),this.update())},n.prototype.onKeyDown=function(e){this.enabled&&(e.metaKey||e.ctrlKey||(e.preventDefault(),this.handleKeyDown(e.which)))},n.prototype.navRotationAcc=function(e,t){"y"===e?this.noRotateUpDown?this.keyboardZoomSpeed=t:this.rotationAcceleration.y=t:this.rotationAcceleration.x=t},n.prototype.navPanAcc=function(e,t){this.stopAutoPanning(),this.panAcceleration[e]=t},n.prototype.handleKeyDown=function(e){var t=!0;switch(e){case p.UPARROW:case p.I:this.navRotationAcc("y",1);break;case p.DOWNARROW:case p.K:this.navRotationAcc("y",-1);break;case p.LEFTARROW:case p.J:this.navRotationAcc("x",-1);break;case p.RIGHTARROW:case p.L:this.navRotationAcc("x",1);break;case p.W:this.navPanAcc("y",1);break;case p.S:this.navPanAcc("y",-1);break;case p.A:this.navPanAcc("x",-1);break;case p.D:this.navPanAcc("x",1);break;default:t=!1}t&&this.emit(f.Move,"key")},n.prototype.onKeyUp=function(e){this.enabled&&(e.preventDefault(),e.stopPropagation(),this.handleKeyUp(e.which))},n.prototype.handleKeyUp=function(e){switch(e){case p.I:case p.K:case p.UPARROW:case p.DOWNARROW:this.keyboardZoomSpeed=0,this.rotationAcceleration.y=0;break;case p.J:case p.L:case p.LEFTARROW:case p.RIGHTARROW:this.rotationAcceleration.x=0;break;case p.S:case p.W:this.panAcceleration.y=0;break;case p.A:case p.D:this.panAcceleration.x=0}},n.prototype.onTouchStart=function(i){if(this.enabled||this.state===u.NONE){i.preventDefault(),i.stopPropagation(),this.stopAutoPanning();var e=function(){if(2===i.touches.length){var e=i.touches[0].pageX-i.touches[1].pageX,t=i.touches[0].pageY-i.touches[1].pageY;this.dollyStart.set(e,t)}}.bind(this),t=function(){this.panStart.set(h.average(i.touches,"pageX"),h.average(i.touches,"pageY"))}.bind(this),n=function(){this.rotateStart.set(h.average(i.touches,"pageX"),h.average(i.touches,"pageY"))}.bind(this);switch(this.state=this.touchActions[i.touches.length],this.state){case u.PAN_DOLLY:e();case u.PAN:t();break;case u.ROTATE_DOLLY:e();case u.ROTATE:n()}this.rotationSpeed.set(0,0),this.emit(f.InputStart,"touch")}},n.prototype.onTouchMove=function(a){if(this.enabled&&this.state!==u.NONE){a.preventDefault(),a.stopPropagation();var s=function(){var e=a.touches[0].pageX-a.touches[1].pageX,t=a.touches[0].pageY-a.touches[1].pageY;this.dollyEnd.set(e,t);var i=this.dollyStart.length()-this.dollyEnd.length();0c.input.touchMoveThreshold*e)this.state=u.DOLLY,s();else{var r=h.average(a.touches,"pageX"),o=h.average(a.touches,"pageY");this.rotateDelta.set(r,o).sub(this.rotateStart).length()>c.input.touchMoveThreshold&&(this.state=u.ROTATE,this.rotateStart.set(r,o),l())}}}.bind(this);switch(this.state){case u.PAN_DOLLY:s();case u.PAN:e();break;case u.ROTATE_DOLLY:t();break;case u.DOLLY:s();break;case u.ROTATE:l();break;default:this.state=u.NONE}this.lastMoveTime=a.timeStamp,this.emit(f.Move,"touch")}},n.prototype.onTouchEnd=function(e){this.enabled&&(this.state===u.ROTATE&&(e.timeStamp>this.lastMoveTime+100?(this.rotationSpeed.set(0,0),this.rotationAcceleration.set(0,0)):this.rotationAcceleration.set(-this.rotateDelta.x,this.rotateDelta.y)),this.state=u.NONE,this.update(),this.rotationAcceleration.set(0,0),this.rotateDelta.set(0,0))},n.prototype.onPointerDown=function(e){this.enabled&&("touch"===e.pointerType&&(this.pointers.lengththis.moveTolerance||Math.abs(this.pointer.y-this.moveStart.y)>this.moveTolerance)&&this.emit(c.Move,"mouse"))},t.prototype.onTouchMove=function(e){if(this.usable())switch(this.emit(c.Move,"touch"),e.touches.length){case 1:o.convertScreenPositionToNDC(e.touches[0].clientX,e.touches[0].clientY,this.pointer);break;case 2:var t=(e.touches[0].clientX-e.touches[1].clientX)/$("#player").width(),i=(e.touches[0].clientY-e.touches[1].clientY)/$("#player").height(),n=this.pinchDistance-Math.sqrt(t*t+i*i);.01n.rotationAfterMoveHistoryCount;)this.rotationHistory.shift();this.lon+=this.rotationDifference.x,this.lat+=this.rotationDifference.y,this.rotationDifference.set(0,0),this.rotationSpeed.x=this.rotationSpeed.x*(1-n.rotationFriction)+this.rotationAcc.x*n.rotationAccelerationInside,this.rotationSpeed.y=this.rotationSpeed.y*(1-n.rotationFriction)+this.rotationAcc.y*n.rotationAccelerationInside,this.lon+=this.rotationSpeed.x*e,this.lat+=this.rotationSpeed.y*e,this.lat=Math.max(n.insideLookLimitDown,Math.min(n.insideLookLimitUp,this.lat)),this.phi=s.Math.degToRad(90-this.lat),this.theta=s.Math.degToRad(this.lon),this.lookVector.x=Math.sin(this.phi)*Math.cos(this.theta),this.lookVector.y=Math.cos(this.phi),this.lookVector.z=Math.sin(this.phi)*Math.sin(this.theta),this.target.copy(this.lookVector).add(this.camera.position),this.camera.lookAt(this.target)},t.prototype.onMouseWheel=function(e){if(this.usable()){var t=e.wheelDelta||-e.detail;this.emit(c.InteractionDirect),this.emit(c.Scroll,t)}},t.prototype.onKeyDown=function(e){this.usable()&&(e.metaKey||e.ctrlKey||(e.preventDefault(),this.handleKeyDown(e.which)))},t.prototype.handleKeyDown=function(e){var t=function(e,t){this.rotationAcc[e]=t}.bind(this);this.emit(c.InteractionKey);var i=!0;switch(e){case l.LEFTARROW:case l.J:t("x",-1);break;case l.RIGHTARROW:case l.L:t("x",1);break;case l.I:t("y",1);break;case l.K:t("y",-1);break;default:i=!1}i&&this.emit(c.Move,"key")},t.prototype.onKeyUp=function(e){this.usable()&&(e.preventDefault(),e.stopPropagation(),this.handleKeyUp(e.which))},t.prototype.handleKeyUp=function(e){switch(e){case l.LEFTARROW:case l.J:case l.RIGHTARROW:case l.L:this.rotationAcc.x=0;break;case l.I:case l.K:this.rotationAcc.y=0}},t.prototype.startRotating=function(e,t){e&&(this.rotationAcc.x=e),t&&(this.rotationAcc.y=t)},t.prototype.stopRotating=function(e){e&&(this.rotationSpeed.x=this.rotationSpeed.y=0),this.rotationAcc.set(0,0)},t.prototype.reset=function(){this.pointerDragOn=!1,this.rotationAcc.set(0,0),this.rotationSpeed.set(0,0),this.pointers=[]},t.prototype.toJSON=function(){return{camera_position:{x:o.toPrecision(this.camera.position.x,4),y:o.toPrecision(this.camera.position.y,4),z:o.toPrecision(this.camera.position.z,4)},camera_quaternion:{x:o.toPrecision(this.camera.quaternion.x,4),y:o.toPrecision(this.camera.quaternion.y,4),z:o.toPrecision(this.camera.quaternion.z,4),w:o.toPrecision(this.camera.quaternion.w,4)}}},t.prototype.setStateFromJSON=function(e){this.camera.position.copy(e.camera_position),this.camera.quaternion.copy(e.camera_quaternion)},d.exports=t}).call(this,"/js/controls/PanoramaControls.js")},{"../enum/ControlEvents":21,"../enum/Keys":30,"../enum/MouseButton":34,"../enum/Vectors":50,"../settings":166,"../util/common":185,"../util/logger":189,"../util/math":190,events:202,three:217}],14:[function(t,i,e){(function(e){"use strict";var c=t("three"),h=t("../enum/Viewmode"),u=new(t("../util/logger"))(e);i.exports={serialize:function(e){return encodeURI(JSON.stringify(e))},deserialize:function(e){function t(e){return e.reduce(function(e,t){return e&&"number"==typeof t&&!isNaN(t)},!0)}try{var i=JSON.parse(decodeURI(e)),n={mode:h.fromInt(i.camera_mode),panoId:i.scan_id,position:(new c.Vector3).copy(i.camera_position),quaternion:(new c.Quaternion).copy(i.camera_quaternion),zoom:i.ortho_zoom,floorVisibility:i.floor_visibility},r=n.position;t([r.x,r.y,r.z])||n.position.set(0,0,0);var o=n.quaternion;return t([o.x,o.y,o.z,o.w])||n.quaternion.set(0,0,0,1),n}catch(i){u.debug("Not able to parse start location as JSON; falling back to old array style parsing");try{var a=e.split(","),s={x:parseFloat(a[2]),y:parseFloat(a[3]),z:parseFloat(a[4])},l={x:parseFloat(a[5]),y:parseFloat(a[6]),z:parseFloat(a[7]),w:parseFloat(a[8])};return t([s.x,s.y,s.z])||(s.x=0,s.y=0,s.z=0),t([l.x,l.y,l.z,l.w])||(l.x=0,l.y=0,l.z=0,l.w=1),{mode:h.fromInt(a[0]),panoId:a[1],position:(new c.Vector3).copy(s),quaternion:(new c.Quaternion).copy(l)}}catch(t){u.warn('Invalid start override, ignoring: "'+e+'"',t.message)}}return null}}}).call(this,"/js/controls/serializer.js")},{"../enum/Viewmode":51,"../util/logger":189,three:217}],15:[function(C,I,e){(function(e){"use strict";function t(){this.endlessLoop=r.warp.loop,this.clock=new i.Clock(!0),this.model=null,this.player=null,this.currentItem=null,this.destinationItem=null,this.tourIsPlaying=!1,this.transitionStage=v.None,this.nextFunc=null,this.onTheBus=!1,this.tourInProgress=!1,this.reachSource=null,this.interrupted=!1,this.nItems=0,this.walkingSectionPaused=!1}var i=C("three"),n=C("./util/logger"),r=C("./settings"),o=C("./util/transitions"),a=C("events").EventEmitter,s=C("./enum/Viewmode"),l=C("./analytics"),c=C("./enum/WarpStyle"),h=(o=C("./util/transitions"),C("./model/ModelManager"),C("./enum/ModelManagerEvents")),u=C("./enum/DirectorEvents"),d=C("./enum/PlayerEvents"),p=(C("./enum/ControlEvents"),C("./enum/BlackoutStyle")),f=C("./enum/PathDiscardMode"),g=C("./enum/PathDisplayMode"),m=(C("./player"),new n(e)),v=Object.freeze({None:0,Moving:1,Aiming:2,Interlude:3}),y=Object.freeze({Forward:1,NoChange:0,Backwards:-1}),A=o.getUniqueId();(t.prototype=Object.create(a.prototype)).init=function(e,t){this.player=e,this.modelManager=t,this.updateModel(),this.resetAll(),this.bindEvents()},t.prototype.resetAll=function(){if(this.currentItem=null,this.destinationItem=null,this.tourIsPlaying=!1,this.bgmReplay(),this.transitionStage=v.None,this.nextFunc=null,this.onTheBus=!1,this.reachSource=null,this.interrupted=!1,this.model){var e=r.path.typ===c.WALK?c.WALK:c.STD;this.defaultWarpStyle=this.model.data.hasOwnProperty("player_options")&&this.model.data.player_options&&!1===this.model.data.player_options.fast_transitions?e:c.BLACK}else this.defaultWarpStyle=c.BLACK,m.warn('No model yet, choosing "'+this.defaultWarpStyle+'" transitions');this.resetSpecialTransition()},t.prototype.updateModel=function(){this.model=this.modelManager.getActiveModel(),this.nItems=this.model.heroLocations.length},t.prototype.bindEvents=function(){this.modelManager.on(h.ActiveModelChanged,this.updateModel.bind(this)),this.player.on(d.WarpInterruptedWithFlyTo,this.checkAndHandleWalkingtourInterruption.bind(this)),this.player.on(d.Move,this.handlePlayerMove.bind(this)),this.player.on(d.PanoChosen,this.handlePlayerPanoChosen.bind(this)),this.player.on(d.ModeChanged,this.handlePlayerModeChanged.bind(this)),this.player.on(d.InputStart,this.handlePlayerInputStart.bind(this)),this.player.on(d.FlyingStarted,this.handlePlayerFlyingStarted.bind(this)),this.player.once(d.Move,function(){o.cancelById(A)})},t.prototype.checkAndHandleWalkingtourInterruption=function(e){return e===c.WALK&&(this.interrupt(p.NONE),this.pauseWalkingSection(),this.player.fastForwardActivePanoFlight(),!0)},t.prototype.handlePlayerMove=function(e){this.transitionStage===v.Interlude&&this.interrupt(p.NONE),this.emit("update.controls")},t.prototype.handlePlayerPanoChosen=function(e,t){this.intermediateState()||e.id===t.id||(this.onTheBus=!1,this.emit("update.controls"))},t.prototype.handlePlayerModeChanged=function(e,t){this.intermediateState()||e===t||(this.onTheBus=!1,this.emit("update.controls"))},t.prototype.handlePlayerInputStart=function(e){this.transitionStage===v.Interlude&&this.interrupt(p.NONE)},t.prototype.handlePlayerFlyingStarted=function(){this.clearWalkingSectionPaused()},t.prototype.describe=function(){return{nItems:this.nItems,currentItem:this.currentItem,destinationItem:this.destinationItem,tourIsPlaying:this.tourIsPlaying,onTheBus:this.onTheBus,endlessLoop:this.endlessLoop,viewMode:this.player.mode,inTransition:this._inTransition(),transitionStage:this.transitionStage,tourInProgress:this.tourInProgress}},t.prototype._inTransition=function(){return this.player.flying||this.player.isWarping()||this.player.isWaitingToWarp()||this.player.mode===s.TRANSITIONING||this.tourIsPlaying},t.prototype.bounceable=function(){var e=this.clock.getDelta();return this.isInterrupted()||e<.9&&.01this.currentItem?y.Forward:y.Backwards},t.prototype.clearPath=function(){this._inTransition()||this.player.path.discardPathObject()},t.prototype.allFloors=function(){this.model.toggleAllFloors()},t.prototype.actionComplete=function(e){if(this.interrupted=!1,this.transitionStage=v.None,this.resetSpecialTransition(),null!==this.destinationItem&&this.setCurrentItem(this.destinationItem),this.tourIsPlaying||(this.player.disablePreRendering(),this.player.mode===s.PANORAMA&&this.player.currentPano.isAligned()&&this.model.fadePanoMarkers()),this.emit("update.controls"),this.nextFunc){var t=this.nextFunc;this.nextFunc=null,t()}},t.prototype.awaitCompletion=function(e,t){this.nextFunc=t,e()},t.prototype.updateSuccessFunction=function(e){this.nextFunc=e},t.prototype.interrupt=function(e,t){return!!this.wouldInterrupt()&&(this.tourIsPlaying&&(this.player.zoomEnabled=this.wasZoomEnabled),this.tourIsPlaying=!1,this.bgmReplay(),this.interrupted=!0,this.nextFunc=null,this.emit(u.ActionInterrupted),null!=e||(e=p.BEGINNING),this.player.interruptAndFastForward(e,t),!0)},t.prototype.wouldInterrupt=function(){return this.transitionStage!==v.None},t.prototype.intermediateState=function(){return this.transitionStage!==v.None},t.prototype.isInterrupted=function(){return this.interrupted},t.prototype.pauseWalkingSection=function(){this.walkingSectionPaused=!0},t.prototype.clearWalkingSectionPaused=function(){this.walkingSectionPaused=!1},t.prototype.autoTour=function(){var i=Date.now();this.model.auxDataPromise.then(function(){i=Date.now()-i;var e=r.warp.auto,t=this.model.data&&this.model.data.player_options&&this.model.data.player_options.highlight_reel;0<=e&&1 Redirecting to "+e+" via "+t);var i=function(){o.setTimeout(function(){this.setDestinationItem(e),this.goToDestination(!0,p.BEGINNING,r.warp.warpInterruptionRedirectTime,!1)}.bind(this),0)}.bind(this);this.interrupt(p.END,0),this.updateSuccessFunction(i)}else m.debug("Director.redirectToItem() -> Cannot redirect while transitioning.");else m.warn("Director.redirectToItem() -> Director cannot redirect if there is nothing to interrupt.");else m.warn("Director.redirectToItem() -> Redirecting to null item.")},t.prototype.useSpecialTransition=function(e){void 0!==e&&this.defaultWarpStyle!==c.BLACK&&m.debug("useSpecialTransition(): "+e),this.nextWarpStyle=c.BLACK},t.prototype.resetSpecialTransition=function(){this.nextWarpStyle=this.defaultWarpStyle},t.prototype.arrivedAtDestination=function(e){if(this.player.flying||this.player.isWarping())m.warn("Cannot advance to interlude or aiming while player is flying or warping.");else{this.transitionStage=v.Aiming;var t=this.tourIsPlaying?this.tourInterlude.bind(this,this.nextItem(this.currentItem)):null;this.player.model.fadePanoMarkers(0),this.awaitCompletion(function(){this.resetSpecialTransition(),e?this.player.aimTourCamera(this.destinationItem,g.Retain,g.Slow,this.actionComplete.bind(this)):this.actionComplete()}.bind(this),t)}},t.prototype.goToDestination=function(e,t,i,n){if(void 0!==g_data2.tourAudio&&null!==g_data2.tourAudio){var r=g_data2.tourAudio[this.model.heroLocations[this.destinationItem].sid];if(r&&0"),this.isInterrupted())return;this.clearWalkingSectionPaused(),this.setDestinationItem(e),this.useSpecialTransition("Hilight"),this.goToDestination(),l.trackAlways("reach_highlight",{reach_source:"thumb"})}},t.prototype.prevHighlight=function(){this.bounceable()||(this.player.emit("tour_manual","prev"),this.interrupt(p.BEGINNING)||this.isInterrupted()||(this.clearWalkingSectionPaused(),this.reachSource="prev",this.goPrev()))},t.prototype.nextHighlight=function(){this.bounceable()||(this.player.emit("tour_manual","next"),this.interrupt(p.BEGINNING)||this.isInterrupted()||(this.clearWalkingSectionPaused(),this.reachSource="next",this.goNext()))},t.prototype.changeMode=function(e){var t=$.Deferred(),i=t.resolve.bind(t),n=t.reject.bind(t);if(this.emit(u.StartModeChange),!function(){return this.clearWalkingSectionPaused(),!!this.wouldInterrupt()&&(this.interrupt(),!0)}.bind(this)()){switch(e){case s.PANORAMA:this.player.mode===s.PANORAMA?this.player.currentPano.isAligned()||this.player.goToLastView(!0).done(i).fail(n):this.player.insideMode(this.player.lastInsideView.pano).done(i).fail(n);break;case s.DOLLHOUSE:case s.FLOORPLAN:this.player.flyToNewMode({mode:e}).done(i).fail(n);break;case s.OUTDOOR:this.player.model.has360Views&&(this.player.mode!==s.PANORAMA||this.player.mode===s.PANORAMA&&this.player.currentPano.isAligned())&&this.player.goToLastView(!1).done(i).fail(n)}return t.promise()}},t.prototype.atEndOfTour=function(){return this.currentItem>=this.nItems-1},t.prototype.firstDestination=function(){return 0=this.nItems-1?this.endlessLoop?this.firstDestination():null:e+1},t.prototype.prevItem=function(e){return null===e?this.firstDestination():e<0?this.endlessLoop?this.lastDestination():null:e-1},t.prototype.tourAdvance=function(e){if(m.debug("tourAdvance("+e+")"),null===this.currentItem||void 0===this.currentItem?this.setDestinationItem(this.firstDestination()):this.setDestinationItem(this.currentItem+e),this.destinationItem<0?(this.setDestinationItem(this.finalDestination()),this.useSpecialTransition("reverse-looping to end")):this.destinationItem>=this.nItems&&(this.setDestinationItem(this.firstDestination()),this.useSpecialTransition("looping back to start")),"black"===window.MP_PREFETCHED_MODELDATA.momentTour){var i=this.player.zoomLevel;this.player.zoomEnabled=!0;var t=function(e,t){this.player.zoomTo((1-e)*i,!0)}.bind(this);o.start(t,1500,function(){},0,h.easeOutQuad,"zoom")}this.goToDestination()},I.exports=t}).call(this,"/js/director.js")},{"./analytics":4,"./enum/BlackoutStyle":18,"./enum/ControlEvents":21,"./enum/DirectorEvents":23,"./enum/ModelManagerEvents":33,"./enum/PathDiscardMode":38,"./enum/PathDisplayMode":39,"./enum/PlayerEvents":40,"./enum/Viewmode":51,"./enum/WarpStyle":52,"./model/ModelManager":140,"./player":155,"./settings":166,"./util/logger":189,"./util/transitions":195,events:202,three:217}],16:[function(e,t,i){"use strict";var n=e("three"),r=e("./enum/Viewmode"),o=(e("./settings"),e("./util/transitions")),a=e("./enum/PlayerEvents"),s=new n.ShaderPass(n.HorizontalBlurShader),l=new n.ShaderPass(n.VerticalBlurShader);l.renderToScreen=!0;var c=$("#player").width()/$("#player").height();isNaN(c)&&(c=1);var h={currentBlur:0,aspect:c,blurStrength:1,hblurPass:s,vblurPass:l,bindEvents:function(e){e.on(a.ModeChanged,function(e,t){e===r.PANORAMA&&(o.cancel(h.blur),o.cancel(h.addBlur),o.start(h.removeBlur,500,null,0,null,"deblur"))})},blur:function(e){var t=(h.currentBlur=e)*h.blurStrength;l.uniforms.v.value=t/512*h.aspect,s.uniforms.h.value=t/512},addBlur:function(e){e=Math.max(e,h.currentBlur),h.blur(e)},removeBlur:function(e){e=Math.min(1-e,h.currentBlur),h.blur(e)}};h.blur(0),t.exports=h},{"./enum/PlayerEvents":40,"./enum/Viewmode":51,"./settings":166,"./util/transitions":195,three:217}],17:[function(e,t,i){"use strict";t.exports={UNKNOWN:0,ALIGNED:1,UNALIGNED:2,PLACED:3}},{}],18:[function(e,t,i){"use strict";t.exports={NONE:0,MIDDLE:1,END:2,BEGINNING:3,FADEIN:4}},{}],19:[function(e,t,i){"use strict";var r=e("three");t.exports={newBlue:new r.Color(4967932),altBlue:new r.Color(47355),tagDefault:new r.Color(223357),classicBlue:new r.Color(53759),mpYellow:new r.Color(16502016),mpOrange:new r.Color(16428055),mpBlue:new r.Color(12096),mpLtGrey:new r.Color(13751252),mpDkGrey:new r.Color(10000019),mpRed:new r.Color(12525854),mpOrangeDesat:new r.Color(16764529),mpBlueDesat:new r.Color(4034734),mpRedDesat:new r.Color(14705505),white:new r.Color(16777215),black:new r.Color(0),_desat:function(e,t){var i=t||.3,n=(new r.Color).copy(e).getHSL();return(new r.Color).setHSL(n.h,n.s*(1-i),n.l)},_darken:function(e,t){var i=t||.2,n=e.getHSL();return(new r.Color).setHSL(n.h,n.s,n.l*(1-i))}}},{three:217}],20:[function(e,t,i){"use strict";t.exports={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,ROTATE_DOLLY:3,PAN_DOLLY:4}},{}],21:[function(e,t,i){"use strict";t.exports={Move:"move",InteractionDirect:"interaction.direct",InteractionKey:"interaction.key",InteractionGui:"interaction.gui",FlyInDirection:"fly.direction",InputStart:"input.start",Pinch:"input.pinch",Scroll:"input.scroll",AutoPanInterrupt:"autopan.interrupt",AutoPanComplete:"autopan.complete",AutoPanClamped:"autopan.clamped",LongTap:"longtap"}},{}],22:[function(e,t,i){"use strict";t.exports=Object.freeze({FORWARD:"FORWARD",LEFT:"LEFT",RIGHT:"RIGHT",BACK:"BACK",UP:"UP",DOWN:"DOWN"})},{}],23:[function(e,t,i){"use strict";t.exports={ActionInterrupted:"action.interrupted",TourStart:"tour.start",TourEnd:"tour.end",StartModeChange:"mode.startChange"}},{}],24:[function(e,t,i){"use strict";t.exports=Object.freeze({None:0,Queued:1,ForceQueued:2,Downloading:3,Downloaded:4,DownloadFailed:5})},{}],25:[function(e,t,i){"use strict";t.exports={GL_TEXTURE_CUBE_MAP_POSITIVE_X:0,GL_TEXTURE_CUBE_MAP_NEGATIVE_X:1,GL_TEXTURE_CUBE_MAP_POSITIVE_Y:2,GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:3,GL_TEXTURE_CUBE_MAP_POSITIVE_Z:4,GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:5}},{}],26:[function(e,t,i){"use strict";t.exports={Texture2D:0,TextureCube:1}},{}],27:[function(e,t,i){"use strict";t.exports={SMALL:"small",LARGE:"large"}},{}],28:[function(e,t,i){"use strict";var n=e("./Viewmode"),r={LANDING:{},NAVIGATION:"navigation",MORE_HELP:"moreHelp",TOUR_INTERACTION:{}};r.LANDING[n.PANORAMA]="panorama.landing",r.LANDING[n.OUTDOOR]="outdoor.landing",r.LANDING[n.DOLLHOUSE]="dollhouse.landing",r.LANDING[n.FLOORPLAN]="floorplan.landing",r.TOUR_INTERACTION.standard="standard.tour",r.TOUR_INTERACTION[n.OUTDOOR]="outdoor.tour",r.TOUR_INTERACTION[n.FLOORPLAN]="floorplan.tour",t.exports=r},{"./Viewmode":51}],29:[function(e,t,i){"use strict";var n={UP:1,DOWN:-1,LEFT:"L",RIGHT:"R",FORWARD:"F",BACK:"B",reverse:{},opposite:function(e){return this.reverse[e.toString()]}};n.reverse[n.UP]=n.DOWN,n.reverse[n.DOWN]=n.UP,n.reverse[n.LEFT]=n.RIGHT,n.reverse[n.RIGHT]=n.LEFT,n.reverse[n.FORWARD]=n.BACK,n.reverse[n.BACK]=n.FORWARD,t.exports=n},{}],30:[function(e,t,i){"use strict";var n={ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,LEFTARROW:37,UPARROW:38,RIGHTARROW:39,DOWNARROW:40,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,SPACE:32,RETURN:13,SEMICOLON:186,PLUSEQUALS:187,DASHUNDERSCORE:189,OPENBRACKET:219};e("../util/browser").detectFirefox()&&(n.SEMICOLON=59,n.PLUSEQUALS=61,n.DASHUNDERSCORE=173),t.exports=n},{"../util/browser":182}],31:[function(e,t,i){"use strict";t.exports={EN_US:"en-US",ES_MX:"es-MX",FR_FR:"fr-FR",DE_DE:"de-DE",RU_RU:"ru-RU",CN_CN:"cn-CN",JP_JP:"jp-JP"}},{}],32:[function(e,t,i){"use strict";t.exports={TagActivated:"tag.activated",TagDismissed:"tag.dismissed",TagNavigation:"tag.navigation"}},{}],33:[function(e,t,i){"use strict";t.exports={ModelAdded:"model-added",ActiveModelChanged:"active-model-changed"}},{}],34:[function(e,t,i){"use strict";t.exports={LEFT:0,MIDDLE:1,RIGHT:2}},{}],35:[function(e,t,i){"use strict";t.exports={PanoRenderComplete:"panorama.render.complete",TileRenderFailure:"panorama.tile.render.failed",TileRenderSuccess:"panorama.tile.render.success",TileUploadAttempted:"panorama.tile.upload.attempted",UploadAttemptedForAllTiles:"panorama.upload.attempted.all.tiles",ZoomLevelRenderStarted:"panorama.zoom.render.started"}},{}],36:[function(e,t,i){"use strict";t.exports={BASE:1,STANDARD:2,HIGH:3,ULTRAHIGH:4}},{}],37:[function(e,t,i){"use strict";t.exports={LoadComplete:"panorama.load.complete",LoadFailed:"panorama.load.failed",TileLoaded:"panorama.tile.loaded"}},{}],38:[function(e,t,i){"use strict";t.exports=Object.freeze({Standard:0,Slow:1,Retain:2})},{}],39:[function(e,t,i){"use strict";t.exports=Object.freeze({Show:0,Hide:1,Retain:2})},{}],40:[function(e,t,i){"use strict";t.exports={Move:"move",MoveComplete:"move.complete",ModeChanged:"mode.changed",ModeChanging:"mode.changing",PanoChosen:"pano.chosen",ClosestPanoChanging:"closest.pano.changing",WarpStarted:"warp.started",WarpInterrupted:"warp.interrupted",WarpEnded:"warp.ended",FlyinFinished:"flyin.finished",FlyingStarted:"flying.started",FlyingInterrupted:"flying.interrupted",FlyingEnded:"flying.ended",Ready:"ready",StartInside:"start.inside",StartOutside:"start.outside",ViewChanged:"view.changed",WarpInterruptedWithFlyTo:"warp.interrupted.flyto",InputStart:"input.start"}},{}],41:[function(e,t,i){"use strict";t.exports=Object.freeze({DEFAULT:0,PANOMARKERS:1,RETICULE:2,TAG:3})},{}],42:[function(e,t,i){"use strict";t.exports={visibleFloor:1,ghostFloor:3,boundingSkybox:1,panoMarker:2,reticule:3,tagStem:4,tagDisc:5,ribbon:100}},{}],43:[function(e,t,i){"use strict";t.exports={ContextCreated:"scene-renderer-context-created",AfterRender:"after-render",MemoryUsageUpdated:"scene-renderer-memory-usage-updated"}},{}],44:[function(e,t,i){"use strict";t.exports={IDLE:"idle",BROWSE:"browse",EXAMINE:"examine"}},{}],45:[function(e,t,i){"use strict";t.exports={TileDownloadSuccess:"tiledownloader.download.success",TileDownloadFailure:"tiledownloader.download.failure",PanoDownloadComplete:"tiledownloader.pano.download.complete"}},{}],46:[function(e,t,i){"use strict";t.exports={CardboardAndroid:"googlevr",GearVR:"gearvr",CardboardIOS:"googlevrios",Cardboard:"googlevr"}},{}],47:[function(e,t,i){"use strict";t.exports={NONE:0,CONTEXTUAL:1,ANDROID:2}},{}],48:[function(e,t,i){"use strict";var n={Title:0,Cardboard:1},r={Title:0,Cardboard:1,Gear:2};[n,r].forEach(function(e){e.pageCount=Object.keys(e).length}),t.exports.ios=n,t.exports.standard=r},{}],49:[function(e,t,i){"use strict";t.exports={Android:"android",IOS:"ios",Desktop:"desktop",UnsupportedAndroid:"android-unsupported"}},{}],50:[function(e,t,i){"use strict";var n=e("three");t.exports={UP:new n.Vector3(0,1,0),DOWN:new n.Vector3(0,-1,0),LEFT:new n.Vector3(-1,0,0),RIGHT:new n.Vector3(1,0,0),FORWARD:new n.Vector3(0,0,-1),BACK:new n.Vector3(0,0,1)}},{three:217}],51:[function(e,t,i){"use strict";var n=e("../exception/ViewmodeConvertException"),r=e("./coreViewmodes"),o={MESH:"mesh",OUTDOOR:"outdoor",TRANSITIONING:"transitioning",toInt:function(e){switch(e){case this.PANORAMA:return 1;case this.DOLLHOUSE:return 2;case this.FLOORPLAN:return 3;case this.OUTDOOR:return 4;case this.TRANSITIONING:return-1}throw new n("No known conversion for Viewmode to int for mode: "+e)},fromInt:function(e){switch(e){case"1":case 1:return this.PANORAMA;case"2":case 2:return this.DOLLHOUSE;case"3":case 3:return this.FLOORPLAN;case"4":case 4:return this.OUTDOOR}throw new n("No known conversion for int to viewmode for int: "+e)},convertWorkshopModeInt:function(e){switch(e){case"0":case 0:case void 0:return this.PANORAMA;case"1":case 1:return this.FLOORPLAN;case"2":case 2:return this.DOLLHOUSE;case"3":case 3:return this.MESH}throw new n("No known conversion for Workshop int to viewmode for int: "+e)}};e("../util/common").extendObject(o,r),t.exports=o},{"../exception/ViewmodeConvertException":58,"../util/common":185,"./coreViewmodes":54}],52:[function(e,t,i){"use strict";t.exports={BLACK:"black",STD:"std",WALK:"walk"}},{}],53:[function(e,t,i){"use strict";t.exports={ZoomIn:"zoom.in",ZoomOut:"zoom.out",ZoomMax:"zoom.max",ZoomMin:"zoom.min"}},{}],54:[function(e,t,i){"use strict";t.exports={PANORAMA:"panorama",DOLLHOUSE:"dollhouse",FLOORPLAN:"floorplan"}},{}],55:[function(e,t,i){"use strict";t.exports=function(e){this.message=e}},{}],56:[function(e,t,i){"use strict";function n(e){r.call(this,e)}var r=e("./BasicException");n.prototype=Object.create(r.prototype),t.exports=n},{"./BasicException":55}],57:[function(e,t,i){"use strict";function n(e){r.call(this,e)}var r=e("./BasicException");n.prototype=Object.create(r.prototype),t.exports=n},{"./BasicException":55}],58:[function(e,t,i){"use strict";function n(e){r.call(this,e)}var r=e("./BasicException");n.prototype=Object.create(r.prototype),t.exports=n},{"./BasicException":55}],59:[function(a,s,e){(function(e){"use strict";var i=a("./util/ajax"),n=a("./util/showcase"),t=a("./util/logger"),r=new t(e),o={};s.exports={loadFeatureFlags:function(e){var t=$.Deferred();return i.get(e.urlBase+"",{responseType:"json",prefetchFrom:"user",auth:n.getAuthorizationHeader()}).done(function(e){(o=function(e){var t={};if(e){var i=e.flags;if(i)for(var n in i)i.hasOwnProperty(n)&&(t[i[n]]=!0);return t}return r.debug("Feature flags -> parseFeatureFlags: rawData is null."),null}(e))?t.resolve(o):t.reject("loading-failed")}).fail(function(){r.debug("Retrieval of feature flags failed."),t.reject("loading-failed")}),t.promise()},getFlags:function(){return o},updateDependentSettings:function(e,t){(e=e||o).labels&&(t.labels.enabled=!0),e.zooming&&!t.zoom.forceOff&&(t.zoom.enabled=!0),e.showcase_sdk&&(t.sdkInit=!0),e.mobile_highq_override&&(t.tiling.mobileHighQualityOverride=!0),e.showcase_webvr&&(t.vr.allowWebVR=!0),e.uhql&&(t.tiling.allowUltraHighResolution=!0),e.hide_sc_sharing&&(t.share.enabled=!1)}}}).call(this,"/js/featureflags.js")},{"./util/ajax":181,"./util/logger":189,"./util/showcase":193}],60:[function(e,t,i){"use strict";var n=(e("../util/common"),{status:0,set:function(e){if(isNaN(e))return!1;var t=$(".progressbar");e<0&&(e=0),100=$("#player").height()&&t.offsetWidth>=$("#player").width();e!==p&&((p=e)?(t.classList.add("closeByFooter"),c.classList.add("closeByFooter")):(t.classList.remove("closeByFooter"),c.classList.remove("closeByFooter")))}e?setTimeout(i,r.guiAnimationSpeed):i()}var r=e("../../settings"),o=(e("../../tag/Media/MediaEvent"),e("../../util/browser")),a=e("../../util/common"),s=e("./ModalCloserEvent"),l=e("events").EventEmitter,c=document.getElementsByClassName("footer")[0],h=c.querySelectorAll(".close")[0],u=null,d=null,p=null,f=(o.isMobile(),{open:function(e){e&&(n(e),u&&h.removeEventListener("click",u,!0),u=function(e,t){t&&(t.stopPropagation(),t.preventDefault()),e&&this.emit(s.CLOSE,e),f.reset()}.bind(this,e.id),h.addEventListener("click",u,!0),d&&window.removeEventListener("resize",d,!0),d=n.bind(this,e),window.addEventListener("resize",d,!0))},reset:function(){c.classList.remove("closeByFooter"),h.removeEventListener("click",u,!0),window.removeEventListener("resize",d,!0),u=d=p=null}});a.extendObject(f,l.prototype),t.exports=f},{"../../tag/Media/MediaEvent":131,"../../settings":166,"../../util/browser":182,"../../util/common":185,"./ModalCloserEvent":61,events:202}],63:[function(e,t,i){"use strict";var A=e("../lib/dat.gui"),C=e("three"),I=e("../util/easing"),E=e("../enum/Viewmode"),_=e("../enum/Colors"),b=e("../enum/WarpStyle"),w=e("../settings");e("../tag/tag"),A.GUI.prototype.removeFolder=function(e){var t=this.__folders[e];t&&(t.close(),this.__ul.removeChild(t.domElement.parentNode),delete this.__folders[e],this.onResize())},t.exports.toggle=function(t,e,i){var n=new A.GUI({width:400}),r=n.addFolder("Flydown from Dollhouse");r.add(w.flydown,"movementEasing",Object.keys(I)),r.add(w.flydown,"movementDelay",0,1).step(.01),r.add(w.flydown,"rotationEasing",Object.keys(I)),r.add(w.flydown,"rotationDelay",0,1).step(.01),r.add(w.flydown,"modelTextureDelay",0,1).step(.01),r.add(w.flydown,"skyboxDelay",0,1).step(.01),r.add(w.dollhouseDefault,"minPolarAngle",0,C.Math.degToRad(50)),r.add(w.dollhouseDefault,"maxPolarAngle",C.Math.degToRad(50),C.Math.degToRad(170));var o=n.addFolder("Transition between panos");o.add(w.transition,"blur",0,10).onFinishChange(function(){}),o.add(w.transition,"flySpeed",0,10).step(.01).onFinishChange(function(){w.transition.flyTime=0,o.__controllers.forEach(function(e){e.updateDisplay()})}),o.add(w.transition,"flyTime",0,5e3).onFinishChange(function(){w.transition.flySpeed=0,o.__controllers.forEach(function(e){e.updateDisplay()})}),o.add(w.transition,"aimTime",500,2500).step(50),o.add(w.transition,"aimSlowFactor",1,3).step(.1),o.add(w.transition,"movementEasing",Object.keys(I));var a=n.addFolder("Path Display");a.add(w.path,"opacity",0,1).step(.01).onFinishChange(function(){}),a.add(w.path,"height",0,.2).step(.01).onFinishChange(function(){}),a.add(w.path,"outsideHeight",0,2).step(.01).onFinishChange(function(){}),a.add(w.path,"ribbonWidth",.01,.35).step(.01).onFinishChange(function(){}),a.add(w.path,"waypointRadius",.01,1.2).step(.01).onFinishChange(function(){}),a.add(w.path,"waypointPulse",0,3600).step(20).onFinishChange(function(){}),a.add(w.path,"waypointIndoorRadius",.01,1.2).step(.01).onFinishChange(function(){}),a.add(w.path,"fadeInTime",0,1200).step(10).onFinishChange(function(){}),a.add(w.path,"fadeOutTime",0,1200).step(10).onFinishChange(function(){}),a.add(w.path,"color",Object.keys(_)).onFinishChange(function(){w.path.color=_[w.path.color],w.path.colorUp=_._desat(w.path.color),w.path.colorDown=_.darken(w.path.color)}),a.add(w,"reticuleColor",Object.keys(_)).onFinishChange(function(){w.reticuleColor=_[w.reticuleColor]});var s=n.addFolder("Warping"),l=s.addFolder("Warp/Teleport");l.add(w.warp,"softPushDist",0,2).onFinishChange(function(){}),l.add(w.warp,"softPushEnd",0,1).step(.01).onFinishChange(function(){}),l.add(w.warp,"softBendAngle",0,45).onFinishChange(function(){}),l.add(w.warp,"softBendTilt",0,45).onFinishChange(function(){}),l.add(w.warp,"softBendEnd",0,1).step(.01).onFinishChange(function(){}),l.add(w.warp,"burnsAngle",0,30).onFinishChange(function(){}),l.add(w.warp,"minBurnsAngle",0,10).onFinishChange(function(){}),l.add(w.warp,"brakeStrength",1,8).onFinishChange(function(){}),l.add(w.warp,"minBrakeAngle",0,5).step(.01).onFinishChange(function(){}),l.add(w.warp,"maxBrakeAngle",0,5).step(.01).onFinishChange(function(){}),l.add(w.path,"mapGuides").onFinishChange(function(){}),l.add(w.warp,"teleportTime",0,5e3).step(10).onFinishChange(function(){}),l.add(w.warp,"outsideTime",0,5e3).step(10).onFinishChange(function(){}),l.add(w.path,"typ",Object.keys(b)).onFinishChange(function(){w.path.typ=b[w.path.typ]}),l.add(w.warp,"loop").onChange(function(){}).onFinishChange(function(){e.endlessLoop=w.warp.loop}),l.add(w.warp,"walkSlideShowThreshhold",1,1e4).step(1).onFinishChange(function(){}),l.add(w.warp,"walkExtraPanosDistance",0,3).step(.1).onFinishChange(function(){}),l.add(w.transition,"fastForwardFactor",1,10).step(1).onFinishChange(function(){});var c=s.addFolder("Long Warp Only");c.add(w.warp,"minWarpTime",0,5e3).step(10).onFinishChange(function(){w.warp.flySpeed=0,c.__controllers.forEach(function(e){e.updateDisplay()})}),c.add(w.warp,"timePerMeter",0,5e3).step(10).onFinishChange(function(){}),c.add(w.warp,"lookAheadMax",.01,1).step(.01).onFinishChange(function(){}),c.add(w.warp,"lookAheadDist",.01,4).step(.01).onFinishChange(function(){}),c.add(w.warp,"maxTurnPerSec",0,720).step(1).onFinishChange(function(){}),c.add(w.warp,"maxAimPerSec",0,720).step(1).onFinishChange(function(){}),c.add(w.warp,"turnFriction",0,1).step(.01).onFinishChange(function(){}),c.add(w.warp,"walkDelay",0,2e3).step(10).onFinishChange(function(){}),c.add(w.transition,"flytimeMaxDistanceThreshold",0,25).step(10).onFinishChange(function(){}),c.add(w.warp,"walkMaxDist",0,100).step(1).onFinishChange(function(){});var h=n.addFolder("Warp Esoterica");h.add(w.warp,"nearPanoDist",.01,12).step(0).onFinishChange(function(){}),h.add(w.warp,"blur",.01,1).onFinishChange(function(){}),h.add(w.warp,"flySpeed",0,10).step(.01).onFinishChange(function(){w.warp.minWarpTime=0,h.__controllers.forEach(function(e){e.updateDisplay()})}),h.add(w.warp,"showBunny").onFinishChange(function(){}),h.add(w.warp,"fastTime",0,2500).step(10).onFinishChange(function(){}),h.add(w.warp,"movementEasing",Object.keys(I));var u=n.addFolder("Misc");u.add(w,"dollhouseFOV",10,180).onChange(function(){i.cameras[E.DOLLHOUSE].fov=w.dollhouseFOV}),u.add(w,"insideFOV",10,180).onChange(function(){i.cameras[E.PANORAMA].fov=w.insideFOV}),u.add(w,"insideLookSpeed",.01,.3).step(.01).onChange(function(){}),u.add(w,"rotationAccelerationInside",.1,10).step(.1).onChange(function(){}),u.add(w,"rotationAccelerationOutside",.1,10).step(.1).onChange(function(){});var d=n.addFolder("Navigation");d.add(w.navigation,"panoScores").onFinishChange(function(){w.navigation.panoScores||t.panos.forEach(function(e){e.floor.remove(e.text3d),e.text3d=null})}),d.add(w.navigation,"mouseDirection"),d.add(w.navigation,"filterStrictness",0,1),d.add(w.navigation,"angleFactor",-60,0),d.add(w.navigation,"directionFactor",1,20),d.add(w.navigation,"distanceFactor",-5,5),d.add(w.navigation,"optionalityFactor",.1,10);var p=n.addFolder("tags"),f=p.addFolder("Tag Creation");f.add(w.tags.pole,"enabled").name("poleEnabled"),f.add(w.tags.pole,"height",0,2.5).step(.01).name("poleHeight"),f.add(w.tags.pole,"width",1,10).step(1).name("poleWidth"),f.add(w.tags.pole,"opacity",.1,1).step(.1).name("poleOpacity");var g=p.addFolder("Visibility");g.add(w.tags.visibility,"anyDistance"),g.add(w.tags.visibility,"visibleDistance",.1,30).step(.1),g.add(w.tags.visibility,"cameraClearance",0,1).step(.01),g.add(w.tags.visibility,"hideViaFloor"),g.add(w.tags.visibility,"hideOffScreenDisc").name("hideEdgeDisc"),g.add(w.tags.visibility,"hideOffScreenObject").name("hideEdgeObject");var m=p.addFolder("Disc Parameters");m.add(w.tags.disc.scale,"nearBound",.1,10).step(.1),m.add(w.tags.disc.scale,"farBound",.1,20).step(.1).listen(),m.add(w.tags.disc.scale,"linkFarBound").onChange(function(e){e&&(w.tags.disc.scale.farBound=w.tags.visibility.visibleDistance*(1-w.tags.disc.scale.linkPercent/100))}),m.add(w.tags.disc.scale,"linkPercent",0,100).step(1).onChange(function(e){w.tags.disc.scale.linkFarBound&&(w.tags.disc.scale.farBound=w.tags.visibility.visibleDistance*(1-e/100))}),m.add(w.tags.disc.scale,"maxSize",40,200).step(1),m.add(w.tags.disc.scale,"minSize",20,100).step(1),m.add(w.tags.disc.scale,"responsiveness",0,100).step(1);var v=p.addFolder("Navigate");v.add(w.tags.navigate,"nearestPano").name("nearestPano"),v.add(w.tags.navigate,"lineOfSight").name("lineOfSight"),v.add(w.tags.navigate,"reactivate").name("reactivate"),v.add(w.tags.navigate,"aimAt",["disc","object","pole","nothing"]).name("aim at"),v.add(w.tags.navigate,"tiltTolerance",0,50).step(1),v.add(w.tags.navigate,"rotateSpeedFactor",0,5).step(.1);var y=n.addFolder("Debug");y.add(w,"wireframe").onFinishChange(function(){t.chunks.forEach(function(e){e.material&&(e.wireframeTwin||(e.wireframeTwin=new C.WireframeHelper(e),e.wireframeTwin.material.depthWrite=!1,e.wireframeTwin.material.depthTest=!1,e.wireframeTwin.material.opacity=.5,e.wireframeTwin.material.transparent=!0),w.wireframe?t.add(e.wireframeTwin):t.remove(e.wireframeTwin))})}),y.add(w,"skyboxWireframe").onFinishChange(function(){w.skyboxWireframe?(t.skybox.wireframe=new C.WireframeHelper(t.skybox),t.add(t.skybox.wireframe)):(t.remove(t.skybox.wireframe),t.skybox.wireframe=null)}),y.add(w,"showSweeps").onFinishChange(function(){t.setSweepVisibility(w.showSweeps)}),y.add(w,"showMesh").onFinishChange(function(){t.chunks.forEach(function(e){e.visible=w.showMesh})}),y.add(w,"showFloors").onFinishChange(function(){t.floors.forEach(function(e){e.collider.children.forEach(function(e){e.material.visible=w.showFloors})})}),y.add(w,"showSkyboxes").onFinishChange(function(){t.panos.forEach(function(e){e.skyboxMesh.visible=w.showSkyboxes})}),y.add(w,"showNeighbors").onChange(function(){}),y.add(t,"alpha",0,1)}},{"../enum/Colors":19,"../enum/Viewmode":51,"../enum/WarpStyle":52,"../lib/dat.gui":93,"../tag/tag":123,"../settings":166,"../util/easing":186,three:217}],64:[function(c,h,e){(function(e){"use strict";function i(e,t,i,n){$(".gui-error .error-problem-text").text(e),$(".gui-error .error-solution-text").text(t),$(".gui-error .error-explanation").text(i),$(".gui-error .error-actions").html(n),$(window).resize(),$(".gui-error").fadeIn(),$("#bottom-logo").fadeIn()}function n(e){var t=['
','
','','',"
",'
','','',"
",'
','','',"
",'
','','',"
","
"].join("");i(e,s.ERROR_BROWSER_SOLUTION,s.ERROR_BROWSER_EXPLANATION,t),r.isMobile()||$("[rel=tiletip]").tooltip({placement:"bottom",delay:{show:50,hide:0},trigger:"hover",viewport:{selector:"body",padding:10}})}function t(){var e=r.isMobile()?"":''+s.ERROR_GENERIC_ACTIONS_2+""+s.ERROR_GENERIC_ACTIONS_3,t=[s.ERROR_GENERIC_ACTIONS_1,e].join("");i(s.ERROR_GENERIC_PROBLEM,s.ERROR_GENERIC_SOLUTION,"",t),r.isMobile()||$(".install-browser").on("click touchstart",function(e){e.preventDefault(),e.stopPropagation(),n(" ")})}var r=c("./../util/browser"),o=c("./../analytics"),a=c("./../settings"),s=c("../localization/localize"),l=new(c("./../util/logger"))(e);h.exports.error=function(e){if($("head title").text(a.pageTitle),$("#gui-message, #gui-loading, #nprogress, #gui-thumb, #bottom-logo").hide(),$("#gui-loading").fadeOut(250),$("#quick-blackout").hide(),o.track("showcase_error",{error_key:e}),s.locale||s.init(),"webgl-unsupported"===e)r.isMobile()?t():n(s.ERROR_WEBGL_UNSUPPORTED_PROBLEM);else if("webgl-ios"===e)i(s.ERROR_WEBGL_IOS_PROBLEM,s.ERROR_WEBGL_IOS_SOLUTION,"",s.ERROR_WEBGL_IOS_ACTIONS_1+""+s.ERROR_WEBGL_IOS_ACTIONS_2+".");else if("webgl-safari"===e)i(s.ERROR_WEBGL_SAFARI_PROBLEM,"","",s.ERROR_WEBGL_SAFARI_ACTIONS_1+""+s.ERROR_WEBGL_SAFARI_ACTIONS_2+". "+s.ERROR_WEBGL_SAFARI_ACTIONS_3+""+s.ERROR_WEBGL_SAFARI_ACTIONS_4+".");else if("webgl-generic"===e)t();else if("missing-urls"===e)i(s.ERROR_MISSING_URLS_PROBLEM,"",s.ERROR_MISSING_URLS_EXPLANATION);else if("loading-failed"===e)i(s.ERROR_LOADING_FAILED_PROBLEM,"","",s.ERROR_LOADING_FAILED_ACTIONS_1+''+s.ERROR_LOADING_FAILED_ACTIONS_2+".");else{if("loading-failed-maintenance"!==e)return void l.error("Unhandled error: "+e);i(s.ERROR_MAINTENANCE_PROBLEM,s.ERROR_MAINTENANCE_SOLUTION)}}}).call(this,"/js/gui/error.js")},{"../localization/localize":108,"./../analytics":4,"./../settings":166,"./../util/browser":182,"./../util/logger":189}],65:[function(Oe,Le,e){(function(e){"use strict";function c(){for(var e in Ce)if(Ce.hasOwnProperty(e)){var t=Ce[e];if(!t.visible)for(var i=0;i').text(e.floors.get(t).name);$(".gui-floor").find(".container").prepend(r)}n.find(".container").prepend('"),n.on("click",function(e){y(e),_e("floor"),n.toggleClass("open")}),$(".floorChoice").on("click",function(e){y(e);var t=$(this).data("index");"all"!==t?(R.updateInteraction(oe.InteractionGui,"floor-control"),i.player.gotoFloor(t),R.track("showcase_gui",{gui_action:"click_floor_select_button",interaction_source:"gui"})):(R.updateInteraction(oe.InteractionGui,"floor-control"),_e("move"),i.allFloors(),R.track("showcase_gui",{gui_action:"click_toggle_all_floors_button",interaction_source:"gui"})),n.removeClass("open")})}function I(e,t){e&&(t===ie.DOLLHOUSE||t===ie.FLOORPLAN?($(".allFloorBtn").show(),$(".gui-floor-icon").hide(),$(".gui-floor-title").show()):($(".allFloorBtn").hide(),$(".gui-floor-icon").show(),$(".gui-floor-title").hide()),e.model.allFloorsVisible?($(".gui-floor-title").text(se.FLOOR_ALL),$(".gui-floor-number").text(se.FLOOR_ALL),$(".floorChoice").removeClass("active"),$('.floorChoice[data-index="all"]').addClass("active")):($(".gui-floor-title").text(e.name),$(".gui-floor-number").text(" "+(e.floorIndex+1)),$(".floorChoice").removeClass("active"),$(".floorChoice[data-index="+e.floorIndex+"]").addClass("active")))}function E(){var e=$("#player").width()-20,t=$("#scroller"),i=$("#drawer"),n=$(".pinBottom");$("#player").width()<488||$("#player").height()<488?(t.addClass("hidden"),i.addClass("noScroll"),n.addClass("noScroll")):e=n.clientWidth?i.style.width=t.offsetWidth+116+"px":i.style.width=""}else if("LI"===t.tagName){n=t.parentElement;t.children[0].offsetWidth+116>=n.clientWidth?i.style.width=t.children[0].offsetWidth+116+"px":i.style.width=""}else i.style.width=""}),$("#hotListContent ul").on("click",function(e){y(e),this.preElem&&this.preElem.classList.remove("active"),"SPAN"===e.target.tagName?(e.target.parentElement.classList.add("active"),e.target.parentElement.hot&&e.target.parentElement.hot.examine(window.player,!0),this.preElem=e.target.parentElement):(e.target.classList.add("active"),e.target.hot&&e.target.hot.examine(window.player,!0),this.preElem=e.target)}),$("#hotListClose").on("click",function(e){y(e),$("#hotListWrap")[0].classList.remove("hotListActive"),$("#hotListContent ul .active").removeClass("active"),$("#hotList")[0].classList.remove("active")})),"true"===window.MP_PREFETCHED_MODELDATA.supportsVR&&$("#vr").css("display",""),$("#more-menu-button").on("click",function(e){y(e),$("#more-menu").toggleClass("open")}),Le.exports.init=function(s,l,c,e,t,i,n){var r;x=n,s.outsideAllowed()||$("#gui-modes-outside").addClass("invisible"),s.supportedModes[ie.PANORAMA]||$("#gui-modes-inside").addClass("invisible"),F.init(),D.init(s,i),ce.init(s,l,e),$(".icon").on("mouseover",function(){l.player&&l.player.reticule.hide()}),function(e,t){var i=t.player;$("#gui-modes-inside").on("mousedown touchstart",function(e){y(e),R.updateInteraction(oe.InteractionGui,"inside-button"),R.track("USER",{event_type:"showcase_gui",gui_action:"click_inside_mode_button"}),t.changeMode(ie.PANORAMA)}),$("#gui-modes-outside").find("a").on("click",function(e){y(e),R.track("showcase_gui",{gui_action:"click_outside_mode_button"}),t.changeMode(pe)}),$("#gui-modes-floorplan").on("click",function(e){y(e),i.mode!==ie.FLOORPLAN&&(R.track("showcase_gui",{gui_action:"click_floorplan_mode_button"}),t.changeMode(ie.FLOORPLAN))}),$("#gui-modes-dollhouse").on("click",function(e){y(e),i.mode!==ie.DOLLHOUSE&&(R.track("showcase_gui",{gui_action:"click_dollhouse_mode_button"}),t.changeMode(ie.DOLLHOUSE))})}(0,l),function(e,t){$("#play").find("a").on("mousedown touchstart",function(e){y(e),_e("tour"),q.play(),R.trackAlways("showcase_gui",{gui_action:"play_highlights"})}),window.startAndPlay=function(e){_e("tour"),q.play(),R.trackAlways("showcase_gui",{gui_action:"play_highlights"})},$("#pause").find("a").on("mousedown touchstart",function(e){y(e),q.pause(),R.trackAlways("showcase_gui",{gui_action:"pause_highlights"})}),$("#gui-zoomin").find("a").on("click",function(e){y(e),t.player.zoomInIncrementally()}),$("#gui-zoomout").find("a").on("click",function(e){y(e),t.player.zoomOutIncrementally()})}(0,l),s.data.enable_social_sharing&&s.data.is_public&&M.share.enabled&&(K.init(s.data.name),K.on(ae.OPENED,(r=document.getElementById("share-modal"),function(){_e("share"),V.open(r)})),K.on(ae.CLOSED,V.reset)),1');if(l.attr("data-index",a),Ce.highlight.visible&&l.find("img").attr("src",s.thumbUrl),s.name){var c=$('
').text(s.name);l.prepend(c)}if(e.has360Views&&s.cameraMode===ie.PANORAMA){var h=e.panos.get(s.panoId),u=h&&!h.isAligned()?'
':'
';l.prepend(u)}r.append(l),o.append('
')}T=144*fe,111*fe,$(".thumbImg").on("mouseover",function(){!function(e){return e.describe().inTransition}(i)&&t.showPathToHeroLocation($(this).data("index"))}),$(".thumbImg").on("mouseout",function(){i.clearPath()}),$(".thumbImg").on("click",function(e){y(e);var t=$(this);R.updateInteraction(oe.InteractionGui,"thumbnail"),R.trackAlways("showcase_gui",{gui_action:"click_highlight"}),i.goToHighlight(t.data("index"))}),$(".previous").find("a").on("click",function(e){y(e),R.trackAlways("showcase_gui",{gui_action:"prev_highlight"}),i.prevHighlight()}),$(".next").find("a").on("click",function(e){y(e),R.trackAlways("showcase_gui",{gui_action:"next_highlight"}),i.nextHighlight()}),$("#drawer").on("mouseleave",function(t){var i;y(t);try{i=new MouseEvent("mouseup",{clientX:t.clientX,clientY:t.clientY,screenX:t.screenX,screenY:t.screenY})}catch(e){(i=document.createEvent("MouseEvents")).initMouseEvent("mouseup",t.bubbles,t.cancelable,t.view,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget)}document.dispatchEvent(i)}),(w=new Sly($("#scrollFrame"),{horizontal:!0,itemNav:"centered",smart:!0,scrollTrap:!0,scrollBy:1,mouseDragging:!0,touchDragging:!0,speed:300,dragHandle:!0,dynamicHandle:!0,clickBar:!0,scrollBar:$("#scroller"),activateOn:null}).init()).on("active",function(e,t){t,_e("tour"),$(".step").removeClass("active"),$("#status").find(".curIdx").text(t+1);for(var i=0;i<=t;i++)$("#progressBar").find("[data-idx='"+i+"']").addClass("active")}),E()}(s,l,c):(Ce.highlight.visible=!1,Ce.tourControls.visible=!1),z.on(G.OPEN_INFO,_e.bind(this,"info")),function(){var n;document.body.addEventListener("mousedown",function(e){n=0===e.button||1===e.which?e.target:null},!0),document.body.addEventListener("mouseup",function(t){n!==t.target&&(n=b(n,t.target));var e=document.getElementById("gui-parent");if(b(e,n)!==e&&(n=null),n){var i;try{i=new MouseEvent("click",t)}catch(e){(i=document.createEvent("MouseEvents")).initMouseEvent("click",t.bubbles,t.cancelable,t.view,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget)}i.syntheticClick=!0,n.dispatchEvent(i),n=null}},!0),document.getElementById("gui-parent").addEventListener("click",function(e){e.syntheticClick||(e.stopPropagation(),"A"===e.target.nodeName&&e.preventDefault())},!0)}(),A(c),C(s,t),s.on("floor.changed",I),s.on("waiting",function(e){_(e)}.bind(this,s)),s.on("waiting-done",function(e){_(e)}.bind(this,s)),c.on(re.ModeChanged,function(e,t){A(c),v(l,c),t===ie.PANORAMA&&c.currentPano&&!c.currentPano.isAligned()&&(t=ie.OUTDOOR),U.updateMode(t)}),e.on(oe.Move,_e.bind(this,"move")),c.on(re.Ready,function(){O.init(e,c,c.tagManager,l),c.on(re.ModeChanged,function(e,t){e!==t&&$(".vr-popup").is(":visible")&&X.dismiss()})}),c.on(re.PanoChosen,function(e,t){A(c,t),U.updateMode(t&&!t.isAligned()?ie.OUTDOOR:ie.PANORAMA)}),V.on(k.CLOSE,function(e){switch(e){case"vr-modal":X.dismiss();break;case"share-modal":K.hide();break;case"terms-modal":W.hide()}});var o,h=$("#play").eq(0),u=$("#pause").eq(0),d=$(".pinBottom").toArray(),p=$("#drawer").eq(0),f=$("#playHead").eq(0),a=$("#progressBar").eq(0),g=$("#thumb-container").eq(0).children(),m=a.children();l.on("update.controls",function(){var e,t,i,n=l.describe();if(n.tourIsPlaying||c.isWarping()?(Ce.tourControls.visible&&(h.hide(),u.show()),n.tourInProgress&&(d.forEach(function(e){e.classList.add("playing")}),p.addClass("playing"),f.addClass("playing"))):(Ce.tourControls.visible&&(h.show(),u.hide()),n.tourInProgress||(q.stopTour(),d.forEach(function(e){e.classList.remove("playing")}),p.removeClass("playing"),f.removeClass("playing"))),null!==n.currentItem){var r,o;$("#status").find(".curIdx").text(n.currentItem+1),n.onTheBus?(r="active",o="recent"):(o="active",r="recent");var a=null===n.destinationItem||n.currentItem===n.destinationItem;for(e=0;e=M.zoom.max?t("#gui-zoomin",!1):t("#gui-zoomin",!0),e.zoomLevel<=M.zoom.min?t("#gui-zoomout",!1):t("#gui-zoomout",!0)}(c),P.setAutoPlay(s.heroCount()),U.init(c,i.mode),U.on(H.OPENED,_e.bind(this,"help")),W.init(),W.on(j.OPENED,(o=document.getElementById("terms-modal"),function(){_e("terms"),V.open(o)})),W.on(j.CLOSED,V.reset),M.quickstart.enabled||D.delayLanding(i.mode).then(D.showMessage.bind(this,c,l,Ce.coBrand.visible)),(M.quickstart.enabled||c.model.outsideAllowed())&&O.init(e,c,c.tagManager,l),M.profiling.enabled&&B.show(),q.init(l)},Le.exports.startLoading=function(e,t,i,n,r,o){function a(){o.setLoadingStartTime(),function(){function e(e){e.target===t||$.contains(t,e.target)||e.target===i||$.contains(i,e.target)||e.target===n||$.contains(n,e.target)}$("body").css("touch-action","none"),$("#gui-parent").find("*:not(#tag-billboards)").on("touchmove",function(e){});var t=document.getElementById("terms-text"),i=document.getElementById("more-help-wrapper"),n=(document.getElementById("navigation-help-wrapper"),document.getElementById("help-dialog"),document.getElementById("tag-billboards"));M.useWheel&&(document.body.addEventListener("mousewheel",e,{passive:!1}),document.body.addEventListener("DOMMouseScroll",e)),$("#terms-text, #more-help-wrapper, #navigation-help-wrapper").off("touchmove").on("touchmove",function(e){e.stopPropagation()})}(),r?(D.showMessage(t,i,Ce.coBrand.visible),l()):function(e){L.show(e),c()}(l)}var s=$.Deferred(),l=s.resolve.bind(s);return ye=!0,_(e),e.data.player_options&&function(e){Ce.tourControls.visible=e.tour_buttons&&S.valueFromHash("gt",1),Ce.coBrand.visible=e.presented_by&&1!==M.specialEdition&&M.brand&&!S.valueFromHash("mls",!1),Ce.highlight.visible=e.highlight_reel&&1!==M.specialEdition&&M.showHighlights}(e.data.player_options),1===M.specialEdition&&$("body").addClass("specialEdition"),se.localizeGUI(),function(i){function e(e,t){return!!i.player_options[e]&&i[t||e]}$(".model-title").text(i.name);var t=M.pageTitle;2!==S.valueFromHash("mls",0)&&(t=i.name),document.title=t,S.isMobile()?$("#gui-fullscreen").css("display","none"):($("[rel=tooltip]").tooltip({delay:{show:50,hide:0},trigger:"hover",html:!1,viewport:{selector:"body",padding:10}}),S.inIframe()&&document.getElementsByClassName("pinBottom-container")[0].classList.add("embed")),z.populate({name:e("model_name","name"),coBrand:e("presented_by"),description:e("model_summary","summary")||"暂无内容",contactName:e("contact_name"),address:e("address"),phone:e("contact_phone"),formattedPhone:i.formatted_contact_phone,email:e("contact_email"),url:e("external_url"),socialSharing:i.enable_social_sharing&&i.is_public})}(e.data),r||$(".quick").addClass("hidden"),e.data.image&&!r&&function(e){$("").attr("src",e).on("load",function(){$("#gui-thumb").css("backgroundImage","url("+e+")").fadeIn(500),$(this).remove()})}(e.data.image),n?(R.impression(),a()):(o.setWaitingStartTime(),N.show(r,a)),s},Le.exports.endLoading=function(e,t,i){var n=t.player;function r(){i.dismissExaminedTag(),i.disableHovering()}$("#gui-thumb").fadeOut(2500),L.hide(function(){ye=!1}),Y.init(e,i),z.finishSetup(Object.keys(e.tags).length),i.on(ne.IMAGE_OPENED,_e.bind(this,"tag")),X.on(Z.OPENED,r),K.on(ae.OPENED,r),U.on(H.OPENED,r),W.on(j.OPENED,r);var o=i.enableHovering.bind(i);if(X.on(Z.CLOSED,o),K.on(ae.CLOSED,o),U.on(H.CLOSED,o),W.on(j.CLOSED,o),M.labels.enabled&&Object.keys(e.labels).length,e.floors.length<=1||!Ce.floors.visible?Ce.floors.visible=!1:(h(e,t),I(e.currentFloor,n.mode)),"372"===getQueryVariable("m")&&(Ce.floors.visible=1,h(e,t)),c(),v(t,t.player),$("#gui").fadeIn(1500),Ce.highlight.visible&&(2!==M.startHighlights||e.has360Views)&&setTimeout(function(){l(),(!e.has360Views&&1!==M.startHighlights||e.has360Views&&0===M.startHighlights)&&setTimeout(l,2e3)},2e3),!S.isMobile())for(var a=["a","#title-toggle",".next-button",".prev-button",".gui-floor",".meta-toggle",".thumbImg","logo-button"],s=0;s div:visible:last").css(e),i.is(":visible")?$(".viewContainer > div:visible:first").css(t):$("#gui-modes-map > div:visible:first").css(t)}/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)?n(e.bottom,e.top):n(t.bottom,t.top);(window.MP_PREFETCHED_MODELDATA.model.special||"true"===window.MP_PREFETCHED_MODELDATA.special)&&window.specialScene&&specialScene.special().afterImplement()}(),window.EditTools&&new EditTools(n.sceneRenderer)},Le.exports.onProgress=function(e){L.progress(e)}}).call(this,"/js/gui/gui.js")},{"../analytics":4,"../controls/serializer":14,"../enum/AlignmentType":17,"../enum/BlackoutStyle":18,"../enum/ControlEvents":21,"../enum/DirectorEvents":23,"../enum/Keys":30,"../enum/PathDiscardMode":38,"../enum/PathDisplayMode":39,"../enum/PlayerEvents":40,"../enum/VROption":47,"../enum/Vectors":50,"../enum/Viewmode":51,"../enum/WarpStyle":52,"../enum/ZoomEvents":53,"../lib/dat.gui":93,"../localization/localize":108,"../tag/Media/MediaEvent":131,"../objects/Snapshot":153,"../settings":166,"../util/ajax":181,"../util/browser":182,"../util/camera":183,"../util/logger":189,"../util/showcase":193,"../util/transitions":195,"./closer/ModalCloserEvent":61,"./closer/modalCloser":62,"./help/HelpEvent":66,"./help/help":67,"./helpManager":68,"./immersiveMode":69,"./konami":70,"./landingScreen":71,"./loadingScreen":72,"./memoryUsage":73,"./playButton":74,"./populateModal":75,"./sharing/ShareEvents":76,"./sharing/modal":77,"./terms/TermsEvent":78,"./terms/terms":79,"./title/TitleEvents":80,"./title/tagToggle":81,"./title/titleBar":82,"./tourInteraction":84,"./vr/vrEvent":85,"./vr/vrModal":87,"./webvr/WebVrEvent":88,"./webvr/webVRgui":89,three:217}],66:[function(e,t,i){"use strict";t.exports=Object.freeze({OPENED:"help.opened",CLOSED:"help.closed"})},{}],67:[function(e,t,i){"use strict";function n(){p.on("click",function(e){T&&T!==a.TRANSITIONING&&(0'),n.exports.init=function(i,n,r){l.debug("konami has the modelInstance");var t=[];$(window).on("keydown",function(e){t.push(e.which),t.length>o.secretPanelWord.length&&t.shift(),s.equalLists(t,o.secretPanelWord)&&(l.debug("Developer mode active."),o.debug=!0)}),$(window).on("keydown",function e(t){o.debug&&72===t.which&&(i&&r?(a.toggle(i,n,r),$(window).off("keydown",e)):console.warn("sorry we're not ready yet"))})}}).call(this,"/js/gui/konami.js")},{"./../settings":166,"./../util/common":185,"./../util/logger":189,"./debug":63,"./gui":65}],71:[function(e,t,i){"use strict";function r(){s.clear(m,l.LANDING[v]),g.removeClass("fadeIn")}var o=e("../settings"),a=(e("./help/help"),e("./helpManager")),s=e("./populateModal"),l=e("../enum/HelpModalType"),n=e("../enum/Viewmode"),c=e("../enum/DirectorEvents"),h=e("../enum/PlayerEvents"),u=$("#quick-blackout").eq(0),d=$("#quick-logo").eq(0),p=$(".quick-brand").toArray(),f=$("#loaderCoBrand").eq(0),g=$("#interaction-modal").eq(0),m=g.find(".interaction").toArray(),v=($("#model-title, .pinBottom-container, #drawer-container, #drawer, .footer").toArray(),"");t.exports.delayLanding=function(e){var t=$.Deferred();e||t.resolve();var i=o.startupFlyinDelay;return e===n.PANORAMA&&(i+=o.dollhouse.transitionTime),setTimeout(t.resolve.bind(t),i),t},t.exports.showMessage=function(e,t,i){var n=0;o.quickstart.enabled&&(function(e){e&&(f.addClass("quick-brand"),d.before(f),p=$(".quick-brand").toArray()),u.addClass("fadeOut"),setTimeout(function(){p.forEach(function(e){e.classList.add("fadeIn")})},o.quickstart.showTextDelay),setTimeout(function(){p.forEach(function(e){e.classList.add("fadeOut")})},o.quickstart.fadeOutDelay)}(i),n=o.quickstart.showTextDelay+o.quickstart.fadeOutDelay),function(e,t){setTimeout(function(){if(a.isHelpEnabled()){if(t(),s.init(),g.addClass("fadeIn landing "+s.deviceType),a.isSmallHelpEnabled())return void g.addClass("small");s.fill(m,l.LANDING[v]),g.addClass(v)}},e);var i={pc:["images/pc_step1.png","images/pc_step2.png","images/pc_step3.png"],mobile:["images/phone_step1.png","images/phone_step2.png","images/phone_step3.png"]},n=$(".nav-icon .icon");/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)&&n.attr("src",i.mobile[0]);function r(e){e.on("click",function(){var e=null;if(e="plus"==$(this).attr("data-id")?+n.attr("data-page")+1:+n.attr("data-page")-1,i.length"+r.TERMS_OF_USE+"

"+r.TERMS_FAIL)}),c.classList.add("fadeIn")},hide:function(e){e&&e.preventDefault(),c.classList.contains("fadeIn")&&this.emit(n.CLOSED),c.classList.remove("fadeIn")}};s.extendObject(h,l.prototype),t.exports=h},{"../../analytics":4,"../../localization/localize":108,"../../util/ajax":181,"../../util/common":185,"./TermsEvent":78,events:202}],80:[function(e,t,i){"use strict";t.exports=Object.freeze({OPEN_INFO:"title.open.info",CLOSE_INFO:"title.close.info",SHOW_INFO:"title.show.info",HIDE_INFO:"title.hide.info",LINK_CLICKED:"title.link.click",CONTACT_LINK_CLICKED:"title.contact.click",ORIGIN_LINK_CLICKED:"title.origin.click"})},{}],81:[function(e,t,i){"use strict";var o=e("../../settings");t.exports.init=function(e,t){o.tags.enabled&&0!==Object.keys(e.tags).length&&function(t,i){function e(e){t.shouldShowtags="show"===this.value,t.shouldShowtags?i.showAlltags(o.tags.startup.fadeInDuration):i.hideAlltags(o.tags.startup.fadeInDuration)}document.getElementById("tag-toggles").classList.remove("hidden"),document.getElementById("radio-tag-show").checked=!0;for(var n=document.getElementById("tag-inputs").querySelectorAll("input"),r=0;ro.minTooltipCharacters&&p.parentElement.setAttribute("data-original-title",e),t&&1!==c.specialEdition&&c.brand&&!c.mls?document.getElementById("cobrandTitle").innerText=t:(document.getElementsByClassName("co-brand")[0].classList.add("hidden"),document.getElementById("gui-name").classList.add("noCoBrand"),document.getElementById("cobrandTitle").classList.add("hidden")),!0):(document.getElementById("model-title").classList.add("hidden"),!1)}(e.name,e.coBrand)){if(function(e){e?(w=!0,v.innerHTML=e):v.classList.add("hidden")}(e.description),function(e,t,i,n){if((e||t||i)&&c.brand&&!l.valueFromHash("mls",!1)){w=!0;var r=[],o=s(r,"
");if(e&&o(''+e+""),t){var a=n||t;o(l.isMobile()?''+a+"":""+a+"")}i&&o(''+i+""),r[0]="",A.innerHTML=r.join("")}else y.classList.add("hidden")}(e.contactName,e.phone,e.email,e.formatted_contact_phone),function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return u.warn("Unable to parse address data"),C.parentElement.classList.add("hidden")}if(e&&(e.address_1||e.address_2||e.city||e.state||e.zip)){w=!0;var t=[],i=s(t," ");e.address_1&&i(e.address_1),e.address_2&&i(e.address_2),e.city&&i(e.city,", "),e.state&&i(e.state,", "),e.zip&&i(e.zip,e.state?" ":", "),t[0]="",C.innerText=t.join("")}else C.parentElement.classList.add("hidden")}(e.address),w){var t=document.createElement("br");I.insertBefore(t,I.firstElementChild)}e.socialSharing&&c.share.enabled&&(T=i(e.url))}},finishSetup:function(e){w=w||!!e,document.getElementById("title-toggle").addEventListener("click",x.toggleTitle.bind(x)),w&&p.addEventListener("click",x.toggleMeta.bind(x,!1)),[].slice.call(v.querySelectorAll("a")).forEach(function(e){e.addEventListener("click",x.emit.bind(x,a.LINK_CLICKED))}),[].slice.call(y.querySelectorAll("a")).forEach(function(e){e.addEventListener("click",x.emit.bind(x,a.CONTACT_LINK_CLICKED,{contact_type:e.getAttribute("id")}))}),w||(T?p.classList.add("share-only"):p.classList.add("no-meta"))},toggleMeta:function(e,t){var i=document.getElementById("model-title");t&&t.preventDefault();var n=m.classList.contains("expand");e&&!n||(n?(b.forEach(function(e){e.classList.remove("expand")}),this.emit(a.CLOSE_INFO),i.classList.remove("expand")):(b.forEach(function(e){e.classList.add("expand")}),i.classList.add("expand"),this.emit(a.OPEN_INFO)))},setupToggling:function(){g.style.height=m.offsetHeight+"px",m.addEventListener("transitionend",function(){g.style.height=m.offsetHeight+"px"})},toggleTitle:function(e){e&&e.preventDefault(),d.classList.contains("closed")?(d.classList.add("open"),f.classList.remove("icon-dpad-right"),f.classList.add("icon-dpad-left"),this.emit(a.SHOW_INFO),setTimeout(function(){d.classList.remove("closed"),d.classList.remove("open")},o.removeAnimationClasses)):(d.classList.add("closed"),f.classList.remove("icon-dpad-left"),f.classList.add("icon-dpad-right"),this.emit(a.HIDE_INFO))}};t.extendObject(x,h.prototype),M.exports=x}).call(this,"/js/gui/title/titleBar.js")},{"../../localization/localize":108,"../../settings":166,"../../util/browser":182,"../../util/common":185,"../../util/logger":189,"./TitleEvents":80,"./titleBarSettings":83,events:202}],83:[function(e,t,i){"use strict";t.exports=Object.freeze({minTooltipCharacters:19,removeAnimationClasses:500})},{}],84:[function(e,t,i){"use strict";function n(){v.playTour(),y&&clearTimeout(y),c(),E.removeClass("fadeIn")}function r(){A.classList.contains("playing")&&(v.stopTour(),E.addClass("fadeIn"),setTimeout(function(){E.removeClass("fadeIn")},h.tourInteraction.showPauseButton),M||(clearTimeout(y),y=setTimeout(s,h.tourInteraction.showModal)),setTimeout(function(){A.classList.remove("playing")},h.tourInteraction.allowNextClick))}function o(){v.tourInProgress&&(v.stopTour(),v.endTourProgress(),A.classList.remove("playing"))}function a(){_.is(":visible")?n():r()}function s(){if(!h.tourInteraction.disabled){T.removeClass("small landing "+d.FLOORPLAN+" "+d.OUTDOOR+" "+d.PANORAMA),T.addClass("fadeIn tour "+p.deviceType);var e,t=h.tourInteraction.smallModal?m.SMALL:m.LARGE;if(!h.tourInteraction.smallModal)e=v.player.mode===d.PANORAMA&&!v.player.currentPano.isAligned()||v.player.mode===d.DOLLHOUSE?d.OUTDOOR:v.player.mode===d.FLOORPLAN?d.FLOORPLAN:d.PANORAMA,p.fill(x,g.TOUR_INTERACTION[e]),T.addClass(e);T.addClass(t)}}function l(e,t){if(t){var i="keydown"===t.type,n=t.which===u.SPACE||v.tourIsPlaying;i&&n||e||(M=!0),v.atEndOfTour()&&c(),!v.tourIsPlaying&&v.tourInProgress&&(E.removeClass("fadeIn"),c(),t.which!==u.SPACE&&o()),i&&n&&a()}}function c(){T.removeClass("fadeIn")}var h=(e("../util/browser"),e("../settings")),u=e("../enum/Keys"),d=e("../enum/Viewmode"),p=(e("./helpManager"),e("./populateModal")),f=e("../enum/DirectorEvents"),g=e("../enum/HelpModalType"),m=e("../enum/HelpModalSize"),v=null,y=null,A=document.getElementById("pause-overlay"),C=document.getElementById("player"),I=document.getElementById("gui"),E=$("#pause-icon").eq(0),_=$("#play").eq(0),b=$("#playHead").eq(0),w=$(".rightViewContainer, #previous, #next, #gui-modes-inside, #gui-modes-outside, #gui-modes-dollhouse, #gui-modes-floorplan").toArray(),T=$("#interaction-modal").eq(0),x=$("#interaction-modal .interaction").toArray(),S=["touchstart","mousedown","pointerdown"],M=!1;t.exports.init=function(e){v=e,S.forEach(function(t){C.addEventListener(t,l.bind(this,!1),!0),I.addEventListener(t,l.bind(this,!0),!0),A.addEventListener(t,r,!0),w.forEach(function(e){e.addEventListener(t,o,!0)}),$("#drawer img").on(t,o)}),document.addEventListener("keydown",l.bind(this,!1),!0),v.on(f.TourStart,function(){A.classList.add("playing")})},t.exports.play=n,t.exports.pause=r,t.exports.pauseWithoutCTA=o,t.exports.togglePlay=a,t.exports.stopTour=function(){b.hasClass("playing")&&(clearTimeout(y),v.atEndOfTour()?(A.classList.remove("playing"),s()):E.removeClass("fadeIn"))},t.exports.dismissModal=c},{"../enum/DirectorEvents":23,"../enum/HelpModalSize":27,"../enum/HelpModalType":28,"../enum/Keys":30,"../enum/Viewmode":51,"../settings":166,"../util/browser":182,"./helpManager":68,"./populateModal":75}],85:[function(e,t,i){"use strict";t.exports=Object.freeze({OPENED:"vr.modal.opened",LAUNCH:"vr.modal.launch",CLOSED:"vr.modal.closed",NEXT:"vr.modal.next",PREV:"vr.modal.prev",STORE:"vr.modal.store",falseICECHOSEN:"vr.modal.device"})},{}],86:[function(e,t,i){"use strict";var h=e("../../util/browser"),u=e("../../enum/VRApps"),n=e("../../enum/VRPlatforms"),d=e("../../util/ajax"),p=e("../../settings"),r={};for(var o in r[u.CardboardAndroid]="https://play.google.com/store/apps/details?id=com.port.mpvrcardboard&redirect_uri=",r[u.CardboardIOS]="https://itunes.apple.com/us/app/port-vr/id1168808473&redirect_uri=",r[u.GearVR]="https://www.oculus.com/experiences/gear-vr/811670972252145/?redirect_uri=",u){var a=u[o];r[a]+=encodeURIComponent(document.referrer+"&display="+a)}var s,f={},g=(-1===(s=window.location.host).indexOf(".port.com")&&-1===s.indexOf("localhost")&&(s="my.port.com"),"https://"+s);t.exports.init=function(e,t,o){function a(e,t,i,n){function r(){return"&utm_medium="+(h.inIframe()?"embed":"direct")+("&utm_source="+s)+("&utm_showcase_session_id="+o)}return h.valueFromHash("vrcoll",!1)?l+"&sids="+t+"&lsid="+t+"&ln="+encodeURIComponent(i)+"&ld="+encodeURIComponent(n)+"&display="+e+r():c+"&m="+t+"&display="+e+r()}var s=h.inIframe()?encodeURIComponent(document.referrer):encodeURIComponent(window.location.href),l=g+"/vr/dlist/?ret="+s,c=g+"/vr/show/?ret="+s;switch(e){case n.IOS:!function(t,e,i,n){var r=a(t,e,i,n),o={responseType:"json",data:{branch_key:p.appConfig.branch_key,data:{m:e,full_url:r,$desktop_url:"",$og_app_id:"331853976762864119",$og_title:i,$og_description:n,$og_image_url:location.origin+"/api/v1/player/models/"+e+"/thumb",$canonical_url:window.location.href}}};d.post("https://api.branch.io/v1/url",o).done(function(e){f[t]=e.url}).fail(function(e){f[t]=e}.bind(this,r))}(u.CardboardIOS,t.sid,t.name,t.summary);break;default:!function(e,t,i){for(var n in u){var r=u[n],o=a(r,e,t,i);f[r]=o}}(t.sid,t.name,t.summary)}},t.exports.launch=function(e){var t=f[e];window.open(t,"_blank")},t.exports.launchStore=function(e){var t=r[e];window.open(t,"_blank")}},{"../../enum/VRApps":46,"../../enum/VRPlatforms":49,"../../settings":166,"../../util/ajax":181,"../../util/browser":182}],87:[function(e,t,i){"use strict";function c(e){var t;switch(e){case y.IOS:return 9<(t=g.iosVersion()).major||9===t.major&&1<=t.minor;case y.Android:return 4<(t=g.androidVersion()).major||4===t.major&&4=l.labels.minLengthForTruncate?r.textBlock.innerText=r.text.substring(0,l.labels.truncateLength)+l.labels.truncateSuffix:r.textBlock.innerText=r.text)}}),n.prototype.updateProjectedGuiElement=(c=new r.Vector3,new r.Vector3,function(e,t,i,n,r){t.style.fontSize=100*r+"%";var o=.5*$("#player").width(),a=.5*$("#player").height();c.copy(i),c.project(this.player.camera);var s=c.x*o+o,l=-c.y*a+a;s-=e.offsetWidth/2,l-=e.offsetHeight/2,e.style.left=s+"px",e.style.top=l+"px"}),n.prototype.handleStartInside=function(e){this.updateLabelVisibility()},n.prototype.handleStartOutside=function(){this.updateLabelVisibility()},t.exports=n},{"../enum/DirectorEvents":23,"../enum/ModelManagerEvents":33,"../enum/PlayerEvents":40,"../enum/Viewmode":51,"../enum/WarpStyle":52,"../settings":166,"../util/browser":182,"../util/common":185,"../util/lerp":188,"../util/transitions":195,three:217}],92:[function(e,t,i){"use strict";Array.prototype.findIndex||(Array.prototype.findIndex=function(e){if(null==this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,i=Object(this),n=i.length>>>0,r=arguments[1],o=0;o>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n=arguments[1],r=0;rthis.__max&&(e=this.__max),void 0!==this.__step&&e%this.__step!=0&&(e=Math.round(e/this.__step)*this.__step),Y.superclass.prototype.setValue.call(this,e)},min:function(e){return this.__min=e,this},max:function(e){return this.__max=e,this},step:function(e){return this.__step=e,this.__impliedStep=e,this.__precision=se(e),this}}),Y),ee.controllers.NumberControllerBox=(U=ee.controllers.NumberController,H=ee.dom.dom,z=ee.utils.common,(G=function(e,t,i){function n(){var e=parseFloat(s.__input.value);z.isNaN(e)||s.setValue(e)}function r(e){var t=a-e.clientY;s.setValue(s.getValue()+t*s.__impliedStep),a=e.clientY}function o(){H.unbind(window,"mousemove",r),H.unbind(window,"mouseup",o)}this.__truncationSuspended=!1,G.superclass.call(this,e,t,i);var a,s=this;this.__input=document.createElement("input"),this.__input.setAttribute("type","text"),H.bind(this.__input,"change",n),H.bind(this.__input,"blur",function(){n(),s.__onFinishChange&&s.__onFinishChange.call(s,s.getValue())}),H.bind(this.__input,"mousedown",function(e){H.bind(window,"mousemove",r),H.bind(window,"mouseup",o),a=e.clientY}),H.bind(this.__input,"keydown",function(e){13===e.keyCode&&(s.__truncationSuspended=!0,this.blur(),s.__truncationSuspended=!1)}),this.updateDisplay(),this.domElement.appendChild(this.__input)}).superclass=U,z.extend(G.prototype,U.prototype,{updateDisplay:function(){return this.__input.value=this.__truncationSuspended?this.getValue():function(e,t){var i=Math.pow(10,t);return Math.round(e*i)/i}(this.getValue(),this.__precision),G.superclass.prototype.updateDisplay.call(this)}}),G),ee.controllers.NumberControllerSlider=(N=ee.controllers.NumberController,F=ee.dom.dom,B=ee.utils.css,V=ee.utils.common,(k=function(e,t,i,n,r){function o(e){e.preventDefault();var t=F.getOffset(s.__background),i=F.getWidth(s.__background);return s.setValue(function(e,t,i,n,r){return n+(e-t)/(i-t)*(r-n)}(e.clientX,t.left,t.left+i,s.__min,s.__max)),!1}function a(){F.unbind(window,"mousemove",o),F.unbind(window,"mouseup",a),s.__onFinishChange&&s.__onFinishChange.call(s,s.getValue())}k.superclass.call(this,e,t,{min:i,max:n,step:r});var s=this;this.__background=document.createElement("div"),this.__foreground=document.createElement("div"),F.bind(this.__background,"mousedown",function(e){F.bind(window,"mousemove",o),F.bind(window,"mouseup",a),o(e)}),F.addClass(this.__background,"slider"),F.addClass(this.__foreground,"slider-fg"),this.updateDisplay(),this.__background.appendChild(this.__foreground),this.domElement.appendChild(this.__background)}).superclass=N,k.useDefaultStyles=function(){B.inject("/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\n.slider {\n box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);\n height: 1em;\n border-radius: 1em;\n background-color: #eee;\n padding: 0 0.5em;\n overflow: hidden;\n}\n\n.slider-fg {\n padding: 1px 0 2px 0;\n background-color: #aaa;\n height: 1em;\n margin-left: -0.5em;\n padding-right: 0.5em;\n border-radius: 1em 0 0 1em;\n}\n\n.slider-fg:after {\n display: inline-block;\n border-radius: 1em;\n background-color: #fff;\n border: 1px solid #aaa;\n content: '';\n float: right;\n margin-right: -1em;\n margin-top: -1px;\n height: 0.9em;\n width: 0.9em;\n}")},V.extend(k.prototype,N.prototype,{updateDisplay:function(){var e=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*e+"%",k.superclass.prototype.updateDisplay.call(this)}}),k),ee.controllers.FunctionController=(P=ee.controllers.Controller,O=ee.dom.dom,L=ee.utils.common,(D=function(e,t,i){D.superclass.call(this,e,t);var n=this;this.__button=document.createElement("div"),this.__button.innerHTML=void 0===i?"Fire":i,O.bind(this.__button,"click",function(e){return e.preventDefault(),n.fire(),!1}),O.addClass(this.__button,"button"),this.domElement.appendChild(this.__button)}).superclass=P,L.extend(D.prototype,P.prototype,{fire:function(){this.__onChange&&this.__onChange.call(this),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),this.getValue().call(this.object)}}),D),ee.controllers.BooleanController=(x=ee.controllers.Controller,S=ee.dom.dom,M=ee.utils.common,(R=function(e,t){R.superclass.call(this,e,t);var i=this;this.__prev=this.getValue(),this.__checkbox=document.createElement("input"),this.__checkbox.setAttribute("type","checkbox"),S.bind(this.__checkbox,"change",function(){i.setValue(!i.__prev)},!1),this.domElement.appendChild(this.__checkbox),this.updateDisplay()}).superclass=x,M.extend(R.prototype,x.prototype,{setValue:function(e){var t=R.superclass.prototype.setValue.call(this,e);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),this.__prev=this.getValue(),t},updateDisplay:function(){return!0===this.getValue()?(this.__checkbox.setAttribute("checked","checked"),this.__checkbox.checked=!0):this.__checkbox.checked=!1,R.superclass.prototype.updateDisplay.call(this)}}),R),ee.color.toString=(T=ee.utils.common,function(e){if(1==e.a||T.isUndefined(e.a)){for(var t=e.hex.toString(16);t.length<6;)t="0"+t;return"#"+t}return"rgba("+Math.round(e.r)+","+Math.round(e.g)+","+Math.round(e.b)+","+e.a+")"}),ee.color.interpret=(I=ee.color.toString,E=ee.utils.common,w=[{litmus:E.isString,conversions:{THREE_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);return null!==t&&{space:"HEX",hex:parseInt("0x"+t[1].toString()+t[1].toString()+t[2].toString()+t[2].toString()+t[3].toString()+t[3].toString())}},write:I},SIX_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9]{6})$/i);return null!==t&&{space:"HEX",hex:parseInt("0x"+t[1].toString())}},write:I},CSS_RGB:{read:function(e){var t=e.match(/^rgb\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/);return null!==t&&{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3])}},write:I},CSS_RGBA:{read:function(e){var t=e.match(/^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\,\s*(.+)\s*\)/);return null!==t&&{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3]),a:parseFloat(t[4])}},write:I}}},{litmus:E.isNumber,conversions:{HEX:{read:function(e){return{space:"HEX",hex:e,conversionName:"HEX"}},write:function(e){return e.hex}}}},{litmus:E.isArray,conversions:{RGB_ARRAY:{read:function(e){return 3==e.length&&{space:"RGB",r:e[0],g:e[1],b:e[2]}},write:function(e){return[e.r,e.g,e.b]}},RGBA_ARRAY:{read:function(e){return 4==e.length&&{space:"RGB",r:e[0],g:e[1],b:e[2],a:e[3]}},write:function(e){return[e.r,e.g,e.b,e.a]}}}},{litmus:E.isObject,conversions:{RGBA_OBJ:{read:function(e){return!!(E.isNumber(e.r)&&E.isNumber(e.g)&&E.isNumber(e.b)&&E.isNumber(e.a))&&{space:"RGB",r:e.r,g:e.g,b:e.b,a:e.a}},write:function(e){return{r:e.r,g:e.g,b:e.b,a:e.a}}},RGB_OBJ:{read:function(e){return!!(E.isNumber(e.r)&&E.isNumber(e.g)&&E.isNumber(e.b))&&{space:"RGB",r:e.r,g:e.g,b:e.b}},write:function(e){return{r:e.r,g:e.g,b:e.b}}},HSVA_OBJ:{read:function(e){return!!(E.isNumber(e.h)&&E.isNumber(e.s)&&E.isNumber(e.v)&&E.isNumber(e.a))&&{space:"HSV",h:e.h,s:e.s,v:e.v,a:e.a}},write:function(e){return{h:e.h,s:e.s,v:e.v,a:e.a}}},HSV_OBJ:{read:function(e){return!!(E.isNumber(e.h)&&E.isNumber(e.s)&&E.isNumber(e.v))&&{space:"HSV",h:e.h,s:e.s,v:e.v}},write:function(e){return{h:e.h,s:e.s,v:e.v}}}}}],function(){b=!1;var i=1 ul {\n margin-top: 27px; }\n .dg.a.has-save > ul.closed {\n margin-top: 0; }\n .dg.a .save-row {\n position: fixed;\n top: 0;\n z-index: 1002; }\n .dg li {\n -webkit-transition: height 0.1s ease-out;\n -o-transition: height 0.1s ease-out;\n -moz-transition: height 0.1s ease-out;\n transition: height 0.1s ease-out; }\n .dg li:not(.folder) {\n cursor: auto;\n height: 27px;\n line-height: 27px;\n overflow: hidden;\n padding: 0 4px 0 5px; }\n .dg li.folder {\n padding: 0;\n border-left: 4px solid rgba(0, 0, 0, 0); }\n .dg li.title {\n cursor: pointer;\n margin-left: -4px; }\n .dg .closed li:not(.title),\n .dg .closed ul li,\n .dg .closed ul li > * {\n height: 0;\n overflow: hidden;\n border: 0; }\n .dg .cr {\n clear: both;\n padding-left: 3px;\n height: 27px; }\n .dg .property-name {\n cursor: default;\n float: left;\n clear: left;\n width: 40%;\n overflow: hidden;\n text-overflow: ellipsis; }\n .dg .c {\n float: left;\n width: 60%; }\n .dg .c input[type=text] {\n border: 0;\n margin-top: 4px;\n padding: 3px;\n width: 100%;\n float: right; }\n .dg .has-slider input[type=text] {\n width: 30%;\n /*display: none;*/\n margin-left: 0; }\n .dg .slider {\n float: left;\n width: 66%;\n margin-left: -5px;\n margin-right: 0;\n height: 19px;\n margin-top: 4px; }\n .dg .slider-fg {\n height: 100%; }\n .dg .c input[type=checkbox] {\n margin-top: 9px; }\n .dg .c select {\n margin-top: 5px; }\n .dg .cr.function,\n .dg .cr.function .property-name,\n .dg .cr.function *,\n .dg .cr.boolean,\n .dg .cr.boolean * {\n cursor: pointer; }\n .dg .selector {\n display: none;\n position: absolute;\n margin-left: -9px;\n margin-top: 23px;\n z-index: 10; }\n .dg .c:hover .selector,\n .dg .selector.drag {\n display: block; }\n .dg li.save-row {\n padding: 0; }\n .dg li.save-row .button {\n display: inline-block;\n padding: 0px 6px; }\n .dg.dialogue {\n background-color: #222;\n width: 460px;\n padding: 15px;\n font-size: 13px;\n line-height: 15px; }\n\n/* TODO Separate style and structure */\n#dg-new-constructor {\n padding: 10px;\n color: #222;\n font-family: Monaco, monospace;\n font-size: 10px;\n border: 0;\n resize: none;\n box-shadow: inset 1px 1px 1px #888;\n word-wrap: break-word;\n margin: 12px 0;\n display: block;\n width: 440px;\n overflow-y: scroll;\n height: 100px;\n position: relative; }\n\n#dg-local-explain {\n display: none;\n font-size: 11px;\n line-height: 17px;\n border-radius: 3px;\n background-color: #333;\n padding: 8px;\n margin-top: 10px; }\n #dg-local-explain code {\n font-size: 10px; }\n\n#dat-gui-save-locally {\n display: none; }\n\n/** Main type */\n.dg {\n color: #eee;\n font: 11px 'Lucida Grande', sans-serif;\n text-shadow: 0 -1px 0 #111;\n /** Auto place */\n /* Controller row,

  • */\n /** Controllers */ }\n .dg.main {\n /** Scrollbar */ }\n .dg.main::-webkit-scrollbar {\n width: 5px;\n background: #1a1a1a; }\n .dg.main::-webkit-scrollbar-corner {\n height: 0;\n display: none; }\n .dg.main::-webkit-scrollbar-thumb {\n border-radius: 5px;\n background: #676767; }\n .dg li:not(.folder) {\n background: #1a1a1a;\n border-bottom: 1px solid #2c2c2c; }\n .dg li.save-row {\n line-height: 25px;\n background: #dad5cb;\n border: 0; }\n .dg li.save-row select {\n margin-left: 5px;\n width: 108px; }\n .dg li.save-row .button {\n margin-left: 5px;\n margin-top: 1px;\n border-radius: 2px;\n font-size: 9px;\n line-height: 7px;\n padding: 4px 4px 5px 4px;\n background: #c5bdad;\n color: #fff;\n text-shadow: 0 1px 0 #b0a58f;\n box-shadow: 0 -1px 0 #b0a58f;\n cursor: pointer; }\n .dg li.save-row .button.gears {\n background: #c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;\n height: 7px;\n width: 8px; }\n .dg li.save-row .button:hover {\n background-color: #bab19e;\n box-shadow: 0 -1px 0 #b0a58f; }\n .dg li.folder {\n border-bottom: 0; }\n .dg li.title {\n padding-left: 16px;\n background: black url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;\n cursor: pointer;\n border-bottom: 1px solid rgba(255, 255, 255, 0.2); }\n .dg .closed li.title {\n background-image: url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==); }\n .dg .cr.boolean {\n border-left: 3px solid #806787; }\n .dg .cr.function {\n border-left: 3px solid #e61d5f; }\n .dg .cr.number {\n border-left: 3px solid #2fa1d6; }\n .dg .cr.number input[type=text] {\n color: #2fa1d6; }\n .dg .cr.string {\n border-left: 3px solid #1ed36f; }\n .dg .cr.string input[type=text] {\n color: #1ed36f; }\n .dg .cr.function:hover, .dg .cr.boolean:hover {\n background: #111; }\n .dg .c input[type=text] {\n background: #303030;\n outline: none; }\n .dg .c input[type=text]:hover {\n background: #3c3c3c; }\n .dg .c input[type=text]:focus {\n background: #494949;\n color: #fff; }\n .dg .c .slider {\n background: #303030;\n cursor: ew-resize; }\n .dg .c .slider-fg {\n background: #2fa1d6; }\n .dg .c .slider:hover {\n background: #3c3c3c; }\n .dg .c .slider:hover .slider-fg {\n background: #44abda; }\n");var b,w,T="Default",x=function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}}(),S=!0,s=!1,M=[],R=function(t){var i=this;this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),m.addClass(this.domElement,"dg"),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],t=t||{},t=v.defaults(t,{autoPlace:!0,width:R.DEFAULT_WIDTH}),t=v.defaults(t,{resizable:t.autoPlace,hideable:t.autoPlace}),v.isUndefined(t.load)?t.load={preset:T}:t.preset&&(t.load.preset=t.preset),v.isUndefined(t.parent)&&t.hideable&&M.push(this),t.resizable=v.isUndefined(t.parent)&&t.resizable,t.autoPlace&&v.isUndefined(t.scrollable)&&(t.scrollable=!0);var n,e,r=x&&"true"===localStorage.getItem(I(0,"isLocal"));if(Object.defineProperties(this,{parent:{get:function(){return t.parent}},scrollable:{get:function(){return t.scrollable}},autoPlace:{get:function(){return t.autoPlace}},preset:{get:function(){return i.parent?i.getRoot().preset:t.load.preset},set:function(e){i.parent?i.getRoot().preset=e:t.load.preset=e,function(e){for(var t=0;tGUI\'s constructor:\n\n \n\n
    \n\n Automatically save\n values to localStorage on exit.\n\n
    The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n \n
    \n \n
    \n\n'),this.parent)throw new Error("You can only call remember on a top level GUI.");var t=this;v.each(Array.prototype.slice.call(arguments),function(e){0==t.__rememberedObjects.length&&function(i){var e=i.__save_row=document.createElement("li");m.addClass(i.domElement,"has-save"),i.__ul.insertBefore(e,i.__ul.firstChild),m.addClass(e,"save-row");var t=document.createElement("span");t.innerHTML=" ",m.addClass(t,"button gears");var n=document.createElement("span");n.innerHTML="Save",m.addClass(n,"button"),m.addClass(n,"save");var r=document.createElement("span");r.innerHTML="New",m.addClass(r,"button"),m.addClass(r,"save-as");var o=document.createElement("span");o.innerHTML="Revert",m.addClass(o,"button"),m.addClass(o,"revert");var a=i.__preset_select=document.createElement("select");if(i.load&&i.load.remembered?v.each(i.load.remembered,function(e,t){E(i,t,t==i.preset)}):E(i,T,!1),m.bind(a,"change",function(){for(var e=0;e>8*t&255},hex_with_component:function(e,t,i){return i<<(c=8*t)|e&~(255<>8&255),b(255&e)}function T(e,t,i,n,r){for(var o,a=r[0],s=r[240],l=function(e,t){var i,n,r,o,a,s,l,c,h,u,d=0;for(h=0;h<8;++h){i=e[d],n=e[d+1],r=e[d+2],o=e[d+3],a=e[d+4],s=e[d+5],l=e[d+6];var p=i+(c=e[d+7]),f=i-c,g=n+l,m=n-l,v=r+s,y=r-s,A=o+a,C=o-a,I=p+A,E=p-A,_=g+v,b=g-v;e[d]=I+_,e[d+4]=I-_;var w=.707106781*(b+E);e[d+2]=E+w,e[d+6]=E-w;var T=.382683433*((I=C+y)-(b=m+f)),x=.5411961*I+T,S=1.306562965*b+T,M=.707106781*(_=y+m),R=f+M,P=f-M;e[d+5]=P+x,e[d+3]=P-x,e[d+1]=R+S,e[d+7]=R-S,d+=8}for(h=d=0;h<8;++h){i=e[d],n=e[d+8],r=e[d+16],o=e[d+24],a=e[d+32],s=e[d+40],l=e[d+48];var O=i+(c=e[d+56]),L=i-c,D=n+l,N=n-l,F=r+s,B=r-s,V=o+a,k=o-a,U=O+V,H=O-V,z=D+F,G=D-F;e[d]=U+z,e[d+32]=U-z;var W=.707106781*(G+H);e[d+16]=H+W,e[d+48]=H-W;var j=.382683433*((U=k+B)-(G=N+L)),Y=.5411961*U+j,q=1.306562965*G+j,X=.707106781*(z=B+N),Z=L+X,K=L-X;e[d+40]=K+Y,e[d+24]=K-Y,e[d+8]=Z+q,e[d+56]=Z-q,d++}for(h=0;h<64;++h)u=e[h]*t[h],Q[h]=0>4;for(var m=1;m<=d;++m)_(s);g&=15}o=32767+A[p],_(r[(g<<4)+y[o]]),_(v[o]),p++}return 63!=u&&_(a),i}function x(e){if(e<=0&&(e=1),100>3)*A+(d=4*(7&f)),v<=C+p&&(u-=A*(C+1+p-v)),A<=a+d&&(u-=a+d-A+4),s=g[u++],l=g[u++],c=g[u++],k[f]=(z[s]+z[l+256>>0]+z[c+512>>0]>>16)-128,U[f]=(z[s+768>>0]+z[l+1024>>0]+z[c+1280>>0]>>16)-128,H[f]=(z[s+1280>>0]+z[l+1536>>0]+z[c+1792>>0]>>16)-128;n=T(k,D,n,S,R),r=T(U,N,r,M,P),o=T(H,N,o,M,P),a+=32}C+=I}if(0<=V){var E=[];E[1]=V+1,E[0]=(1<>0]=38470*e,z[e+512>>0]=7471*e+32768,z[e+768>>0]=-11059*e,z[e+1024>>0]=-21709*e,z[e+1280>>0]=32768*e+8421375,z[e+1536>>0]=-27439*e,z[e+1792>>0]=-5329*e}(),x(e),(new Date).getTime()}t.exports.encode=function(e,t){return(t=t||{}).quality=t.quality||50,{data:new i(t.quality).encode(e,t),width:e.width,height:e.height}}}).call(this,e("buffer").Buffer)},{buffer:198}],95:[function(e,t,i){"use strict";!function(){if("performance"in window==0&&(window.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in window.performance==0){var e=Date.now();performance.timing&&performance.timing.navigationStart&&(e=performance.timing.navigationStart),window.performance.now=function(){return Date.now()-e}}}()},{}],96:[function(e,t,i){"use strict";var a=e("three");a.EffectComposer=function(e,t){if(this.renderer=e,void 0===t){var i={minFilter:a.LinearFilter,magFilter:a.LinearFilter,format:a.RGBAFormat,stencilBuffer:!1},n=e.getSize();t=new a.WebGLRenderTarget(n.width,n.height,i)}this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.passes=[],void 0===a.CopyShader&&console.error("THREE.EffectComposer relies on THREE.CopyShader"),this.copyPass=new a.ShaderPass(a.CopyShader)},a.EffectComposer.prototype={swapBuffers:function(){var e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e},addPass:function(e){this.passes.push(e)},insertPass:function(e,t){this.passes.splice(t,0,e)},render:function(e){this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2;var t,i,n=!1,r=this.passes.length;for(i=0;iu.maxMobileTextures&&(d.warn("Model probably too large for mobile, turning down quality."),t="low"));var o=i.data.job.uuid+e+"_texture_jpg_"+t+"/",a=$.Deferred(),s=0;return i.chunks.forEach(function(e){if(!e.material.map&&e.textureName){var t=i.urls.get(o+e.textureName);e.setTextureMap(c.load(t,function(e,t){e||(n.push(t),s++,a.notify(s,r),s===r&&a.resolve())}.bind(this,c.isLoaded(t))))}}),a.promise()}}}).call(this,"/js/loaders/ModelTextureLoader.js")},{"../settings":166,"../util/browser":182,"../util/common":185,"../util/logger":189,"../util/texture":194}],107:[function(s,l,e){(function(n,e){"use strict";function t(e){this.model=e,this.modelDataPath=this.model.urls.get("vision.modeldata"),this.sweepLocationsPath=this.model.urls.get("sweep_locations.csv");var t=n("Ly8gUHJvdG9jb2wgQnVmZmVyIGZvciBwdWNrIHZpc2liaWxpdHkgYW5kIHJlbGF0ZWQgZGF0YQovLwovLyBUbyBkdW1wIG91dCBhIGJpbnJheSBtYW5pZmVzdCBpbiB0ZXh0IGZvcm1hdCwgeW91IGNhbiB1c2UgcHJvdG9jIGRpcmVjdGx5OgovLyAgIHByb3RvYyAtLXByb3RvX3BhdGggfi9kZXYvbXBfdmlzaW9uLyAgLS1kZWNvZGU9ZW9zLnN0b3JhZ2UuVmlzaW9uTW9kZWxkYXRhIH4vZGV2L21wX3Zpc2lvbi9lb3Mvc3RvcmFnZS92aXNpb25fbW9kZWxkYXRhLnByb3RvIDwgdmlzaW9uLm1vZGVsZGF0YQoKLy8gcGFja2FnZSBlb3Muc3RvcmFnZTsKCi8vIGltcG9ydCAiZW9zL2luZnJhL2NvbW1vbi5wcm90byI7Ci8vIFRoZSBmb2xsb3dpbmcgd2VyZSBtYW51YWxseSBleHRyYWN0ZWQgaGVyZSwgSlMgZG9lcyBub3QgbGlrZSBwcm90b2J1ZiBpbXBvcnRzCgptZXNzYWdlIEFmZmluZTNmIHsKCW9wdGlvbmFsIFF1YXRlcm5pb25mIHJvdGF0aW9uID0gMTsKCW9wdGlvbmFsIFZlY3RvcjNmIHRyYW5zbGF0aW9uID0gMjsKfQoKbWVzc2FnZSBRdWF0ZXJuaW9uZiB7CglvcHRpb25hbCBmbG9hdCB3ID0gMTsKCW9wdGlvbmFsIGZsb2F0IHggPSAyOwoJb3B0aW9uYWwgZmxvYXQgeSA9IDM7CglvcHRpb25hbCBmbG9hdCB6ID0gNDsKfQoKbWVzc2FnZSBWZWN0b3IzZiB7CglvcHRpb25hbCBmbG9hdCB4ID0gMTsKCW9wdGlvbmFsIGZsb2F0IHkgPSAyOwoJb3B0aW9uYWwgZmxvYXQgeiA9IDM7Cn0KCi8vCi8vIE9uZSBzd2VlcCAvIHBhbm8KLy8KbWVzc2FnZSBTd2VlcExvY2F0aW9uIHsKCW9wdGlvbmFsIGJ5dGVzIHV1aWQgPSAxOyAgLyogdXVpZCAqLwoJb3B0aW9uYWwgQWZmaW5lM2YgcG9zZSA9IDI7ICAvKiBjYW1lcmEgcG9zZSAoeCwgeSx6KSBpbiBtZXRlciBhbmQgYSBxdWF0ZXJuaW9uKi8KCW9wdGlvbmFsIFZlY3RvcjNmIHB1Y2sgPSAzOyAgLyogcHVjayBsb2NhdGlvbiAtIHggYW55IGlzIGdlbmVyYWxseSB0aGUgc2FtZSBhcyBwb3NlLCB6IGlzIHRoZSBoZWlnaHQgb2YgdGhlIGNsb3Nlc3QgZmxvb3IgdW5kZXIgdGhlIGNhbWVyYSAqLwoJb3B0aW9uYWwgaW50MzIgZ3JvdXAgPSA0OyAgLyogZmxvb3IgaW5kZXggKi8KCW9wdGlvbmFsIGludDMyIHN1Ymdyb3VwID0gNTsgIC8qIHJvb20gaW5kZXggKi8KCXJlcGVhdGVkIGludDMyIHZpc2libGVzID0gNjsgIC8qIGxpc3Qgb2YgaW5kaWNlcyB0byBhbGwgcHVja3MgdmlzaWJsZSBmcm9tIHRoaXMgcHVjayAqLwoJcmVwZWF0ZWQgZmxvYXQgc2NvcmVzID0gNzsgLyogdXNlZCBhcyBwYXJ0IG9mIHNjb3JpbmcgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoaWNoIHB1Y2sgdG8gZ28gdG8gbmV4dCAqLwogIG9wdGlvbmFsIHN0cmluZyBzd2VlcF9uYW1lID0gODsKCiAgLy8gV2l0aCBvdXRkb29yIHBhbm9zLCB3ZSBoYXZlIGEgY291cGxlIG9mIGRpZmZlcmVudCBzaXR1YXRpb25zIGZvciBhbGlnbm1lbnQuIFRoZSBjb21tb24KICAvLyBjYXNlIGlzIHRoYXQgdGhlIHBhbm8gYWxpZ25lZCBub3JtYWxseS4gSXQgY291bGQgYWxzbyBoYXZlIGJlZW4gcGxhY2VkIG1hbnVhbGx5IGluCiAgLy8gQ2FwdHVyZUFwcCBvciBXb3Jrc2hvcCwgb3IgbGVmdCB1bmFsaWduZWQgZm9yIGhpZ2hsaWdodC1yZWVsIHZpZXdpbmcuCiAgZW51bSBBbGlnbm1lbnRUeXBlCiAgewogICAgICBVTktOT1dOID0gMDsKICAgICAgQUxJR05FRCA9IDE7CiAgICAgIFVOQUxJR05FRCA9IDI7CiAgICAgIE1BTlVBTExZX1BMQUNFRCA9IDM7CiAgfQogIG9wdGlvbmFsIEFsaWdubWVudFR5cGUgYWxpZ25tZW50X3R5cGUgPSA5IFtkZWZhdWx0ID0gQUxJR05FRF07Cn0KCm1lc3NhZ2UgU3ViZ3JvdXBJbmZvIHsKCW9wdGlvbmFsIGludDMyIHN1Ymdyb3VwID0gMTsKCW9wdGlvbmFsIGZsb2F0IGFyZWEgPSAyOyAvKiBmbG9vciBhcmVhIGluIG1eMiAoc3F1YXJlIG1ldGVyYWdlKSAqLwp9CgovKiBBbGwgcHVja3MgaW4gYSBtb2RlbC4gUHVja3MgYXJlIHN0b3JlZCBpbiBzY2FubmluZyBvcmRlci4gKi8KbWVzc2FnZSBWaXNpb25Nb2RlbGRhdGEgewoJcmVwZWF0ZWQgU3dlZXBMb2NhdGlvbiBzd2VlcExvY2F0aW9ucyA9IDE7CglyZXBlYXRlZCBTdWJncm91cEluZm8gc3ViZ3JvdXBJbmZvcyA9IDI7Cn0K","base64"),i=r.loadProto(t);this.decoder=i.build("VisionModeldata")}var r=s("protobufjs"),i=s("../util/ajax"),o=(s("../util/common"),s("../util/math")),a=new(s("../util/logger"))(e);t.prototype.load=function(){return this.modelDataPath?(a.info("Using vision.modeldata"),this.loadVisionModelData()):this.sweepLocationsPath?(a.warn("Using sweep_locations.csv"),this.loadSweepLocationsCSV()):(a.warn("No sweep file found"),$.when([]))},t.prototype.loadVisionModelData=function(){return i.get(this.modelDataPath,{responseType:"arraybuffer"}).then(function(e){var t;try{t=this.decoder.decode(e)}catch(e){return a.warn("Could not decode vision.modeldata, trying sweep_locations.csv"),this.loadSweepLocationsCSV()}var i=t.sweepLocations.map(function(e){return{uuid:e.uuid.toUTF8().replace(/-/g,""),position:{x:e.pose.translation.x,y:e.pose.translation.y,z:e.pose.translation.z},quaternion:{x:e.pose.rotation.x,y:e.pose.rotation.y,z:e.pose.rotation.z,w:e.pose.rotation.w},puck:{x:e.puck.x,y:e.puck.y,z:e.puck.z},floor:e.group,neighbours:e.visibles,alignmentType:e.alignment_type}}).map(function(e){return e.position=o.convertVisionVector(e.position),e.quaternion=o.convertVisionQuaternion(e.quaternion),e.puck=o.convertVisionVector(e.puck),e});return i.forEach(function(e){e.neighbours=e.neighbours.map(function(e){return i[e].uuid})}),i}.bind(this),function(){return a.warn("Could not load vision.modeldata, trying sweep_locations.csv"),this.loadSweepLocationsCSV()}.bind(this))},t.prototype.loadSweepLocationsCSV=function(){return i.get(this.sweepLocationsPath).then(function(e){return e.split("\n").map(function(e){return e.split(", ")}).filter(function(e){return 1 通用 > 软件更新",ERROR_WEBGL_SAFARI_PROBLEM:"启用 WebGL 以在 3D 中探索。",ERROR_WEBGL_SAFARI_ACTIONS_1:"单击",ERROR_WEBGL_SAFARI_ACTIONS_2:"菜单栏中的首选项 > 高级 > 显示开发菜单",ERROR_WEBGL_SAFARI_ACTIONS_3:"然后单击",ERROR_WEBGL_SAFARI_ACTIONS_4:"开发 > 启用 WebGL",ERROR_MISSING_URLS_PROBLEM:"糟糕,没有此模型的全景。",ERROR_MISSING_URLS_EXPLANATION:"这是较早的模型。网站所有者可能正在开发一种新模型。",ERROR_LOADING_FAILED_PROBLEM:"糟糕,模式不可用。",ERROR_LOADING_FAILED_ACTIONS_1:"如果问题仍然存在,",ERROR_LOADING_FAILED_ACTIONS_2:"查看我们的故障排除指南",ERROR_MAINTENANCE_PROBLEM:"正在进行维护",ERROR_MAINTENANCE_SOLUTION:"请过几分钟再来。",LINK_TO_LOCATION:"地点链接",MENU_COPY:"复制",LINK_ALERT_COPY:"请使用 CTRL/CMD + C 复制。",ROTATE:"旋转",MOVE:"移动",INSIDE:"内部",ZOOM:"缩放",HELP:"小帮手",HELP_NAVIGATION_TAB:"导航",HELP_MORE_HELP_TAB:"更多帮助",HELP_DESKTOP_PANORAMA_1A:"单击并拖动以环顾空间。",HELP_DESKTOP_PANORAMA_2A:"单击整个空间内的圆环以四处移动。",HELP_DESKTOP_PANORAMA_3A:"使用鼠标滚轮来放大和缩小。",HELP_DESKTOP_PANORAMA_1B:"或者,使用箭头键向左向右转。",HELP_DESKTOP_PANORAMA_2B:"或者,使用箭头键向前移动和向后移动。",HELP_DESKTOP_PANORAMA_3B:"或者,使用加号和减号键来放大和缩小。",HELP_DESKTOP_360_2A:"单击内部视图图标以进入空间。",HELP_DESKTOP_360_2B:"或者,按 1 号键进入内部视图。 ",HELP_DESKTOP_DOLLHOUSE_1A:"左键单击并向左、向右、向上和向下拖动以旋转场景屋。",HELP_DESKTOP_DOLLHOUSE_2A:"右键单击并向左、向右、向上和向下拖动以改变场景屋在屏幕上的位置。",HELP_DESKTOP_DOLLHOUSE_3A:"使用鼠标滚轮来放大和缩小。",HELP_DESKTOP_DOLLHOUSE_1B:"或者,使用箭头键来旋转场景屋。",HELP_DESKTOP_FLOORPLAN_1A:"左键单击并向左、向右、向上和向下拖动以改变楼层平面图在屏幕上的位置。",HELP_DESKTOP_FLOORPLAN_2A:"右键单击并向左或向右拖动以旋转楼层平面图。",HELP_DESKTOP_FLOORPLAN_3A:"使用鼠标滚轮来放大和缩小。",HELP_DESKTOP_FLOORPLAN_2B:"或者,使用箭头键以向左或向右旋转。",HELP_DESKTOP_FLOORPLAN_3B:"或者,使用箭头键来放大和缩小。",HELP_MOBILE_PANORAMA_1:"触摸并拖动以环顾空间。",HELP_MOBILE_PANORAMA_2:"点击整个空间内的圆环以四处移动。",HELP_MOBILE_3:"使用捏合手势来放大和缩小。",HELP_MOBILE_360_2:"点击内部视图图标以进入空间。",HELP_MOBILE_DOLLHOUSE_1:"触摸并向上、向下、向左和向右拖动以旋转场景屋。",HELP_MOBILE_DOLLHOUSE_2:"用两指触摸并拖动以定位场景屋。",HELP_MOBILE_FLOORPLAN_1:"触摸并拖动以定位楼层平面图。",HELP_MOBILE_FLOORPLAN_2:"用两指触摸并拖动以旋转楼层平面图。",HELP_MORE_HLR_A:"精彩片段集锦",HELP_DESKTOP_MORE_HLR_B:"打开以使用缩略图图像在空间中流览。",HELP_MORE_DOLLHOUSE_A:"场景屋",HELP_DESKTOP_MORE_DOLLHOUSE_B:"单击以查看和旋转 3D 内整个空间的俯视图。",HELP_MOBILE_MORE_DOLLHOUSE_B:"点击以查看和旋转 3D 内整个空间的俯视图。",HELP_MORE_FLOORS_A:"楼层选择器",HELP_DESKTOP_MORE_FLOORS_B:"在空间中的楼层之间切换。",HELP_MORE_TAG_A:"tag™ 贴文",HELP_DESKTOP_MORE_TAG_B:"单击或悬停鼠标以查看空间中的功能信息。",HELP_MOBILE_MORE_TAG_B:"点击以查看空间中的功能信息。",HELP_MORE_ZOOM_A:"缩放控件",HELP_DESKTOP_MORE_ZOOM_B:"使用这些控件来放大和缩小或使用滚轮。",HELP_MORE_TOUR_A:"导览控件",HELP_DESKTOP_MORE_TOUR_B:"通过导览播放、暂停以及向前和向后流览。",HELP_MORE_INSIDE_A:"内部视图",HELP_DESKTOP_MORE_INSIDE_B:"单击以探索空间内部。",HELP_MOBILE_MORE_INSIDE_B:"点击以探索空间内部。",HELP_MORE_VR_A:"VR 模式",HELP_DESKTOP_MORE_VR_B:"单击以在虚拟现实中启动空间。",HELP_MOBILE_MORE_VR_B:"点击以在虚拟现实中启动空间。",HELP_MORE_360_A:"360° 视图",HELP_DESKTOP_MORE_360_B:"单击精彩片段集锦中的 360 视图中以观看室外场景。",HELP_MOBILE_MORE_360_B:"点击精彩片段集锦中的 360 视图中以观看室外场景。",HELP_MORE_FULLSCREEN_A:"全屏",HELP_DESKTOP_MORE_FULLSCREEN_B:"将 3D Showcase 扩展到全屏。",CLOSE:"关闭"}},{}],110:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"Lädt",PRESENTED_BY_CAPS:"PRÄSENTIERT VON",POWERED_BY:"Angetrieben von",POWERED_BY_CAPS:"ANGETRIEBEN VON",DESKTOP_SHORT_CTA:"Sehen sie sich in diesem 3D Raum um.",MOBILE_SHORT_CTA:"Sehen sie sich in diesem 3D Raum um.",PRESENTED_BY:"Präsentiert von ",MORE:"Mehr ",LESS:"Weniger ",TAG_CONTENT:"tag™ Inhalt",SHOW:"Anzeigen",HIDE:"Verbergen",DOLLHOUSE:"Puppenhaus",FLOOR_PLAN:"Grundriss",OPEN_HIGHLIGHTS:"Highlights anzeigen",CLOSE_HIGHLIGHTS:"Schließen",PREVIOUS:"Vorheriges",PLAY:"Abspielen",PAUSE:"Pausieren",NEXT:"Nächstes",EXPLORE_3D_SPACE:"Innenraum betreten",VIEW_DOLLHOUSE:"Puppenhaus ansehen",SOCIAL_SHARING:"Teilen Sie diesen Raum",VIEW_IN_VR:"In VR ansehen",VIEW_FULLSCREEN:"Ansicht im Vollbildmodus",EXIT_FULLSCREEN:"Beenden des Vollbildmodus",ZOOM_IN:"Vergrößern",ZOOM_OUT:"Verkleinern",FLOOR_NAME:"Etage ",FLOOR_ALL:"Alle",TERMS:"Bedingungen",PORT_TERMS:"port Bedingungen",TERMS_OF_USE:"Nutzungsbedingungen",TERMS_TEXT_FILE:"terms-de-DE.html",CLOSE_TERMS:"Schließen",TERMS_FAIL:"Konnte die Nutzungsbedingungen nicht abrufen. Bitte stellen Sie sicher, dass Sie zum Internet verbunden sind.",HELP:"Hilfe",HELP_NAVIGATION_TAB:"Navigation",HELP_MORE_HELP_TAB:"Hilfe-Details",CLOSE:"Schließen",HELP_DESKTOP_PANORAMA_1A:"Klicken und ziehen Sie um sich im Raum umzusehen.",HELP_DESKTOP_PANORAMA_2A:"Klicken Sie auf die Ringe im Raum um sich zu bewegen.",HELP_DESKTOP_PANORAMA_3A:"Verwenden Sie das Scrollrad zum Vergrößern und Verkleinern.",HELP_DESKTOP_PANORAMA_1B:"Oder verwenden Sie die Pfeiltasten um sich nach links und rechts zu bewegen.",HELP_DESKTOP_PANORAMA_2B:"Oder verwenden Sie die Pfeiltasten um sich vorwärts und rückwärts zubewegen.",HELP_DESKTOP_PANORAMA_3B:"Oder verwenden Sie die Plus- und Minus-Tasten zum Vergrößern und Verkleinern.",HELP_DESKTOP_360_2A:"Klicken Sie die Innenansicht ikone, um diesen Raum zu starten .",HELP_DESKTOP_360_2B:"Oder, drücken Sie die 1-Taste um die Innenraumansicht zu starten.",HELP_DESKTOP_DOLLHOUSE_1A:"Klicken Sie mit der linken Maustaste und ziehen Sie nach links, rechts, oben und unten um das Puppenhaus zu drehen.",HELP_DESKTOP_DOLLHOUSE_2A:"Klicken mit der rechten Maustaste und ziehen Sie nach links, rechts, oben und unten um die Position des Puppenhauses zu ändern.",HELP_DESKTOP_DOLLHOUSE_3A:"Verwenden Sie das Scrollrad zum Vergrößern und Verkleinern.",HELP_DESKTOP_DOLLHOUSE_1B:"Oder verwenden Sie die Pfeiltasten um das Puppenhaus zu drehen.",HELP_DESKTOP_FLOORPLAN_1A:"Klicken mit der linken Maustaste und ziehen Sie nach links, rechts, oben und unten um die Position des Grundrisses auf zu ändern.",HELP_DESKTOP_FLOORPLAN_2A:"Klicken Sie mit der rechten Maustaste und ziehen Sie nach links oder rechts um den Grundriss zu drehen.",HELP_DESKTOP_FLOORPLAN_3A:"Verwenden Sie das Scrollrad zum Vergrößern und Verkleinern.",HELP_DESKTOP_FLOORPLAN_2B:"Oder verwenden Sie die Pfeiltasten um das Modell nach links oder rechts zu drehen.",HELP_DESKTOP_FLOORPLAN_3B:"Oder verwenden Sie die Pfeiltasten zum Vergrößern und Verkleinern.",HELP_MOBILE_PANORAMA_1:"Berühren und ziehen an dem Raum um sich umzusehen.",HELP_MOBILE_PANORAMA_2:"Klicken Sie auf die Ringe im Raum, um sich zu bewegen.",HELP_MOBILE_3:"Benutzen Sie die Zoom-Gäste zum Vergrößern und Verkleinern.",HELP_MOBILE_360_2:"Tippen Sie die Innenansicht ikone, um diesen Raum zu starten.",HELP_MOBILE_DOLLHOUSE_1:"Berühren und nach oben, unten, links und rechts ziehen um das Puppenhaus zu drehen.",HELP_MOBILE_DOLLHOUSE_2:"Berühren und mit zwei Fingern ziehen um das Puppenhaus zu positionieren.",HELP_MOBILE_FLOORPLAN_1:"Berühren und ziehen, um den Grundriss zu positionieren.",HELP_MOBILE_FLOORPLAN_2:"Berühren und ziehen mit zwei Fingern, um den Grundriss zu drehen.",HELP_MORE_HLR_A:"Liste das Highlight",HELP_DESKTOP_MORE_HLR_B:"Öffnen um durch den Raum mit Vorschau-Bildern zu navigieren.",HELP_MORE_DOLLHOUSE_A:"Puppenhaus Ansicht",HELP_DESKTOP_MORE_DOLLHOUSE_B:"Klicken Sie um die von oben nach unten Sicht des gesamten Raumes in 3D anzuzeigen und zu drehen.",HELP_MOBILE_MORE_DOLLHOUSE_B:"Tippen Sie um die von oben nach unten Sicht des gesamten Raumes in 3D anzuzeigen und zu drehen.",HELP_MORE_FLOORS_A:"Etage auswählen",HELP_DESKTOP_MORE_FLOORS_B:"Zwischen den Etagen im Raum wechseln.",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"Klicken Sie auf oder bewegen Sie Ihren Mauszeiger über die Informationen über die Funktionen im Raum.",HELP_MOBILE_MORE_TAG_B:"Tippen Sie für Informationen über die Funktionen im Raum.",HELP_MORE_ZOOM_A:"Zoom Steuerung",HELP_DESKTOP_MORE_ZOOM_B:"Verwenden Sie diese Steuerung oder das Scrollrad zum Vergrößern und Verkleinern.",HELP_MORE_TOUR_A:"Tour Steuerung",HELP_DESKTOP_MORE_TOUR_B:"Abspielen, pausieren und vorwärts und rückwärts durch eine geführte Tour navigieren.",HELP_MORE_INSIDE_A:"Innenansicht",HELP_DESKTOP_MORE_INSIDE_B:"Klicken Sie hier um sich im Raum umzusehen.",HELP_MOBILE_MORE_INSIDE_B:"Sehen Sie sich in diesen 3D Raum um.",HELP_MORE_VR_A:"VR Modus",HELP_DESKTOP_MORE_VR_B:"Klicken Sie hier, um den Raum in der virtuellen Realität zu starten.",HELP_MOBILE_MORE_VR_B:"Tippen Sie um den Raum in der virtuellen Realität zu starten.",HELP_MORE_360_A:"360° Views Ansicht ",HELP_DESKTOP_MORE_360_B:"Klicken Sie die 360° Views Ansicht in das Highlight um Aussen-Szenen zu sehen.",HELP_MOBILE_MORE_360_B:"Tippen Sie die 360° Views Ansicht in das Highlight um Aussen-Szenen zu sehen.",HELP_MORE_FULLSCREEN_A:"Vollbild",HELP_DESKTOP_MORE_FULLSCREEN_B:"Erweitern Sie 3D Showcase im Vollbildmodus.",WEBVR_FOR_CARDBOARD:"Für Google Cardboard",WEBVR_FOR_DAYDREAM:"Für Daydream View",WEBVR_ENTER_WEBVR:"Starten Sie VR",WEBVR_DIFFERENT_HEADSET:"Haben Sie anderes Headset?",WEBVR_LEARN_MORE:"Mehr Infos",WEBVR_VIEW_SPACE:"Ansicht des Raumes in VR",WEBVR_DAYDREAM_VIEW:"Daydream View",WEBVR_DAYDREAM_PHONE:"Daydream-fähiges Handy",WEBVR_VIEW_CARDBOARD:"Oder mit Google Cardboard ansehen",VR_WHAT_YOU_NEED:"Was Sie dafür brauchen...",VR_NEED_DAYDREAM_PHONE:"Daydream-fähiges Handy",VR_GOOGLE_DAYDREAM:"Google Daydream",VR_APP:"port VR App",VR_APP_OPEN:"Oder öffnen Sie die port VR App",VR_COMPATIBLE_ANDROID_LONG:"Kompatibles Android Gerät mit Bildschirmdiagonale von 11,5 bis 14 cm (4,5 - 5,5 Zoll) und Android 4.4.4 und neuer",VR_SAMSUNG_DETAIL:"Galaxy S6 und neuer",VR_APP_FOR_ANDROID:"port VR app für Android",VR_NEED_DAYDREAM:"ERFORDERT VOR DER 'PAIRING' MIT DAYDREAM VIEW",VR_VIEW_SPACE:"Ansicht des Raumes in VR",VR_LEARN_MORE_CAPS:"MEHR INFOS",VR_PREVIOUS_CAPS:"ZURÜCK",VR_NEXT_CAPS:"WEITER",VR_GOT_IT_CAPS:"VERSTANDEN",VR_SHOW_SUPPORTED:"Tippen Sie um den Raum in VR zu sehen",VR_SHOW_UNSUPPORTED:"Schade, aber Ihr Gerät erfüllt nicht die Mindestanforderungen um den Raum in VR zu sehen.",VR_SHOW_IOS_1:"Tippen Sie um den Raum in VR zu sehen",VR_SHOW_IOS_2:"port VR App sowie kompatibles iPhone sind von nöten um diesen Raum zu sehen",VR_NEED_CARDBOARD:"Was Sie dafür brauchen ist Google Cardboard",VR_NEED_SAMSUNG:"Was Sie dafür brauchen ist Samsung Gear VR",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhones",VR_COMPATIBLE_IPHONES_2:"iPhone 5s oder neuer, mit iOS 9.1 und später",VR_COMPATIBLE_IPHONES_3:"Kompatibles iPhones",VR_COMPATIBLE_ANDROID:"Kompatibles Android Gerät",VR_ANDROID_DETAIL:"Bildschirmdiagonale von 11,5 bis 14 cm (4,5 - 5,5 Zoll) und Android 4.4.4 und neuer",VR_ANDROID_DVICES:"Android Geräte",VR_COMPATIBLE_SAMSUNG:"Kompatible Samsung Geräte",VR_APP_FOR_CARDBOARD:"port VR App für Google Cardboard",VR_APP_FOR_SAMSUNG:"port VR App für Gear VR",VR_DOWNLOAD_HERE:"Hier runterladen",VR_REQUIRE_HEADSET:"Benötigt das ein VR-Headset und port VR App für Android installiert wird",VR_REDIRECT_TO_STORE:"Wenn App nicht installiert ist, werden Sie zum App Store umgeleitet.",VR_IMPROPER_EMBED:"Der port Raum ist nicht richtig eingebettet um VR in Ihrem Webbrowser zu unterstützen.",VR_OPEN_ANDROID_LINK:"Öffnen Sie den Link auf Ihrem Handy",VR_ANDROID_OPTIONS:"VR Headset Optionen",SHARE_TO:"Teilen auf",SHARE_LINK:"Direkter Link",SHARE_EXPLORE:"Umsehen",SHARE_AT:"auf",SHARE_WITH:"mit",SHARE_3D:"in 3D",SHARE_COPIED:"Kopiert!",ERROR_BROWSER_SOLUTION:"Installieren Sie einen neueren Browser um sich in 3D umzusehen.",ERROR_BROWSER_EXPLANATION:"WebGL benötigt einen modernen Browser.",ERROR_GENERIC_PROBLEM:"Huch, etwas ist schief gelaufen.",ERROR_GENERIC_SOLUTION:"Starten Sie Ihren Browser neu.",ERROR_GENERIC_ACTIONS_1:"Wenn das Problem weiterhin besteht, ",ERROR_GENERIC_ACTIONS_2:"Installieren Sie einen unterstützten Browser",ERROR_GENERIC_ACTIONS_3:" oder ",ERROR_GENERIC_ACTIONS_4:"Sehen Sie unseren Leitfaden zur Fehlerbehebung",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"Browser wird nicht unterstützt.",ERROR_WEBGL_IOS_PROBLEM:"iOS-Version wird nicht unterstützt.",ERROR_WEBGL_IOS_SOLUTION:"Aktualisieren Sie auf iOS 8 oder neuer um sich in 3D umzusehen.",ERROR_WEBGL_IOS_ACTIONS_1:"Tippen ",ERROR_WEBGL_IOS_ACTIONS_2:"Einstellungen > Allgemein > Softwareaktualisierung",ERROR_WEBGL_SAFARI_PROBLEM:"Aktivieren Sie WebVR um sich in 3D umzusehen.",ERROR_WEBGL_SAFARI_ACTIONS_1:"Klicken ",ERROR_WEBGL_SAFARI_ACTIONS_2:"Präferenzen > Fortgeschrittene > Entwickler-Menü anzeigen",ERROR_WEBGL_SAFARI_ACTIONS_3:"Klicken Sie dann ",ERROR_WEBGL_SAFARI_ACTIONS_4:"Entwickler > WebGL Aktivieren",ERROR_MISSING_URLS_PROBLEM:"Huch, es gibt keine Panoramen für dieses Modell .",ERROR_MISSING_URLS_EXPLANATION:"Dies ist ein älteres Modell. Der Website-Besitzer hat eventuell ein neues Modell in Arbeit.",ERROR_LOADING_FAILED_PROBLEM:"Huch, das Modell ist nicht verfügbar.",ERROR_LOADING_FAILED_ACTIONS_1:"Wenn das Problem weiterhin besteht, ",ERROR_LOADING_FAILED_ACTIONS_2:"sehen Sie unseren Leitfaden zur Fehlerbehebung",ERROR_MAINTENANCE_PROBLEM:"Wartung im Gange.",ERROR_MAINTENANCE_SOLUTION:"Bitte versuchen Sie es in ein paar Minuten nochmal.",LINK_TO_LOCATION:"Link zu",MENU_COPY:"Kopieren",LINK_ALERT_COPY:"Bitte benutzen Sie CTRL/CMD + C zum kopieren.",ROTATE:"Drehen",INSIDE:"Drinnen",MOVE:"Bewegen",ZOOM:"Vergrößern"}},{}],111:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"Loading",PRESENTED_BY_CAPS:"PRESENTED BY",POWERED_BY:"powered by ",POWERED_BY_CAPS:"POWERED BY",DESKTOP_SHORT_CTA:"Click to explore this 3D space.",MOBILE_SHORT_CTA:"Tap to explore this 3D space.",PRESENTED_BY:"Presented by ",MORE:"More ",LESS:"Less ",TAG_CONTENT:"tag™ Content",SHOW:"Show",HIDE:"Hide",DOLLHOUSE:"Dollhouse",FLOOR_PLAN:"Floor plan",OPEN_HIGHLIGHTS:"Open Highlights",CLOSE_HIGHLIGHTS:"Close",PREVIOUS:"Previous",PLAY:"Play",PAUSE:"Pause",NEXT:"Next",EXPLORE_3D_SPACE:"Explore 3D Space",VIEW_DOLLHOUSE:"View dollhouse",SOCIAL_SHARING:"Share this Space",VIEW_IN_VR:"View in VR",VIEW_FULLSCREEN:"全屏",EXIT_FULLSCREEN:"退出全屏",ZOOM_IN:"Zoom in",ZOOM_OUT:"Zoom out",FLOOR_NAME:"Floor ",FLOOR_ALL:"全部",TERMS:"Terms",PORT_TERMS:"port terms",TERMS_OF_USE:"Terms of Use",TERMS_TEXT_FILE:"terms-en-US.html",CLOSE_TERMS:"Close",TERMS_FAIL:"Could not fetch terms. Please make sure you have an internet connection to view the terms of use.",HELP:"Help",HELP_NAVIGATION_TAB:"Navigation",HELP_MORE_HELP_TAB:"More Help",CLOSE:"Close",HELP_DESKTOP_PANORAMA_1A:"Click and Drag to look around the Space.",HELP_DESKTOP_PANORAMA_2A:"Click on the rings throughout the space to move around.",HELP_DESKTOP_PANORAMA_3A:"Use the scroll wheel to zoom in and out.",HELP_DESKTOP_PANORAMA_1B:"Or, use the arrow keys to turn left and right.",HELP_DESKTOP_PANORAMA_2B:"Or, use the arrow keys to move forward and back.",HELP_DESKTOP_PANORAMA_3B:"Or, use the plus and minus keys to zoom in and out.",HELP_DESKTOP_360_2A:"Click the Inside View icon to enter the Space.",HELP_DESKTOP_360_2B:"Or, press the number 1 key to enter Inside View.",HELP_DESKTOP_DOLLHOUSE_1A:"Left click and drag left, right, up, and down to rotate the Dollhouse.",HELP_DESKTOP_DOLLHOUSE_2A:"Right click and drag left, right, up, and down to change the Dollhouse position on screen.",HELP_DESKTOP_DOLLHOUSE_3A:"Use the scroll wheel to zoom in and out.",HELP_DESKTOP_DOLLHOUSE_1B:"Or, use the arrow keys to rotate the Dollhouse.",HELP_DESKTOP_FLOORPLAN_1A:"Left click and drag left, right, up, and down to change the Floorplan position on screen.",HELP_DESKTOP_FLOORPLAN_2A:"Right click and drag left or right to rotate the Floorplan.",HELP_DESKTOP_FLOORPLAN_3A:"Use the scroll wheel to zoom in and out.",HELP_DESKTOP_FLOORPLAN_2B:"Or, use the arrow keys to rotate left or right.",HELP_DESKTOP_FLOORPLAN_3B:"Or, use the arrow keys to zoom in and out.",HELP_MOBILE_PANORAMA_1:"Touch and Drag to look around the Space.",HELP_MOBILE_PANORAMA_2:"Tap on the rings throughout the Space to move around.",HELP_MOBILE_3:"Use a pinch gesture to zoom in and out.",HELP_MOBILE_360_2:"Tap the Inside View icon to enter the Space.",HELP_MOBILE_DOLLHOUSE_1:"Touch and drag up, down, left, and right to rotate the Dollhouse.",HELP_MOBILE_DOLLHOUSE_2:"Touch and drag with two fingers to position the Dollhouse.",HELP_MOBILE_FLOORPLAN_1:"Touch and drag to position the Floorplan.",HELP_MOBILE_FLOORPLAN_2:"Touch and drag with two fingers to rotate the Floorplan.",HELP_MORE_HLR_A:"Highlight Reel",HELP_DESKTOP_MORE_HLR_B:"Open to navigate through the Space using thumbnail images.",HELP_MORE_DOLLHOUSE_A:"Dollhouse View",HELP_DESKTOP_MORE_DOLLHOUSE_B:"Click to view and rotate a top-down view of the entire Space in 3D.",HELP_MOBILE_MORE_DOLLHOUSE_B:"Tap to view and rotate a top-down view of the entire Space in 3D.",HELP_MORE_FLOORS_A:"Floor Selector",HELP_DESKTOP_MORE_FLOORS_B:"Switch between floors in the Space.",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"Click or hover over for information about features in the Space.",HELP_MOBILE_MORE_TAG_B:"Tap for information about features in the Space.",HELP_MORE_ZOOM_A:"Zoom Controls",HELP_DESKTOP_MORE_ZOOM_B:"Use these controls to zoom in and out or use the scroll wheel.",HELP_MORE_TOUR_A:"Tour Controls",HELP_DESKTOP_MORE_TOUR_B:"Play, pause, and navigate forward and backward through a Guided Tour.",HELP_MORE_INSIDE_A:"Inside View",HELP_DESKTOP_MORE_INSIDE_B:"Click to explore inside the Space.",HELP_MOBILE_MORE_INSIDE_B:"Tap to explore inside the Space.",HELP_MORE_VR_A:"VR Mode",HELP_DESKTOP_MORE_VR_B:"Click to launch the Space in virtual reality.",HELP_MOBILE_MORE_VR_B:"Tap to launch the Space in virtual reality.",HELP_MORE_360_A:"360° Views",HELP_DESKTOP_MORE_360_B:"Click 360 Views in the Highlight Reel to view outdoor scenes.",HELP_MOBILE_MORE_360_B:"Tap 360 Views in the Highlight Reel to view outdoor scenes.",HELP_MORE_FULLSCREEN_A:"Full screen",HELP_DESKTOP_MORE_FULLSCREEN_B:"Expand 3D Showcase to full screen.",WEBVR_FOR_CARDBOARD:"For Google Cardboard",WEBVR_VIEW_CARDBOARD:"Or View on Google Cardboard",WEBVR_FOR_DAYDREAM:"For Daydream View",WEBVR_ENTER_WEBVR:"ENTER VR",WEBVR_DIFFERENT_HEADSET:"Have a different headset?",WEBVR_LEARN_MORE:"Learn more",WEBVR_VIEW_SPACE:"View Space in VR",WEBVR_DAYDREAM_VIEW:"Daydream View",WEBVR_DAYDREAM_PHONE:"Daydream-ready phone",VR_VIEW_SPACE:"View Space in Virtual Reality",VR_LEARN_MORE_CAPS:"LEARN MORE",VR_PREVIOUS_CAPS:"PREVIOUS",VR_NEXT_CAPS:"NEXT",VR_GOT_IT_CAPS:"GOT IT",VR_SHOW_SUPPORTED:"Tap to view the Space in VR with",VR_SHOW_UNSUPPORTED:"Sorry, but your device doesn't meet the minimum requirements to view a space in VR.",VR_SHOW_IOS_1:"Tap to view the space in VR",VR_SHOW_IOS_2:"Requires port VR app and compatible iPhone to view",VR_WHAT_YOU_NEED:"What You'll Need For...",VR_NEED_CARDBOARD:"What you'll need with Google Cardboard",VR_NEED_SAMSUNG:"What you'll need with Samsung Gear VR",VR_NEED_DAYDREAM:"NEEDS PRIOR PAIRING WITH DAYDREAM VIEW",VR_NEED_DAYDREAM_PHONE:"Daydream-ready phone",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_GOOGLE_DAYDREAM:"Google Daydream",VR_APP:"port VR App",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhones",VR_COMPATIBLE_IPHONES_2:"iPhone 5s and newer, running iOS 9.1 and higher",VR_COMPATIBLE_IPHONES_3:"Compatible iPhones",VR_COMPATIBLE_ANDROID:"Compatible Android Devices",VR_COMPATIBLE_ANDROID_LONG:'Compatible Android Devices Displays from 4.5"-5.5" running Android OS 4.4.4 and higher',VR_ANDROID_DETAIL:'Displays from 4.5"-5.5" running Android OS 4.4.4 and higher',VR_ANDROID_DVICES:"Android Devices",VR_COMPATIBLE_SAMSUNG:"Compatible Samsung Devices",VR_SAMSUNG_DETAIL:"Galaxy S6 and Above",VR_APP_FOR_CARDBOARD:"port VR app for Google Cardboard",VR_APP_FOR_SAMSUNG:"port VR app for Gear VR",VR_APP_FOR_ANDROID:"port VR app for Android Phones",VR_APP_OPEN:"Open with the port VR app instead",VR_DOWNLOAD_HERE:"Download here",VR_REQUIRE_HEADSET:"Requires a VR headset and port VR app for Android to be installed",VR_REDIRECT_TO_STORE:"If app is not installed, you will be redirected to the app store.",VR_IMPROPER_EMBED:"The port Space is not embedded properly to support VR in your web browser.",VR_OPEN_ANDROID_LINK:"Open the Link on Your Mobile Phone",VR_ANDROID_OPTIONS:"Available VR Headset Options",SHARE_TO:"Share to",SHARE_LINK:"Direct Link",SHARE_EXPLORE:"Explore ",SHARE_AT:"at",SHARE_WITH:"with",SHARE_3D:" in 3D",SHARE_COPIED:"Copied!",ERROR_BROWSER_SOLUTION:"Install a new browser to explore in 3D.",ERROR_BROWSER_EXPLANATION:"WebGL requires a modern browser.",ERROR_GENERIC_PROBLEM:"Oops, something went wrong.",ERROR_GENERIC_SOLUTION:"Restart your browser.",ERROR_GENERIC_ACTIONS_1:"If the problem persists, ",ERROR_GENERIC_ACTIONS_2:"install a supported browser",ERROR_GENERIC_ACTIONS_3:" or ",ERROR_GENERIC_ACTIONS_4:"see our troubleshooting guide",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"Browser not supported.",ERROR_WEBGL_IOS_PROBLEM:"iOS version not supported.",ERROR_WEBGL_IOS_SOLUTION:"Upgrade to iOS 8 or higher to explore in 3D.",ERROR_WEBGL_IOS_ACTIONS_1:"Tap ",ERROR_WEBGL_IOS_ACTIONS_2:"Settings > General > Software Update",ERROR_WEBGL_SAFARI_PROBLEM:"Enable WebGL to explore in 3D.",ERROR_WEBGL_SAFARI_ACTIONS_1:"Click ",ERROR_WEBGL_SAFARI_ACTIONS_2:"Preferences > Advanced > Show Develop menu",ERROR_WEBGL_SAFARI_ACTIONS_3:"Then click ",ERROR_WEBGL_SAFARI_ACTIONS_4:"Develop > Enable WebGL",ERROR_MISSING_URLS_PROBLEM:"Oops, there are no panoramas for this model.",ERROR_MISSING_URLS_EXPLANATION:"This is an older model. The website owner may have a new model on the way.",ERROR_LOADING_FAILED_PROBLEM:"模型不可用.",ERROR_LOADING_FAILED_ACTIONS_1:"If the problem persists, ",ERROR_LOADING_FAILED_ACTIONS_2:"see our troubleshooting guide",ERROR_MAINTENANCE_PROBLEM:"Maintenance in progress.",ERROR_MAINTENANCE_SOLUTION:"Please come back in a few minutes.",LINK_TO_LOCATION:"Link to location",MENU_COPY:"Copy",LINK_ALERT_COPY:"Please use CTRL/CMD + C to copy.",ROTATE:"Rotate",INSIDE:"Inside",MOVE:"Move",ZOOM:"Zoom"}},{}],112:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"Cargando",PRESENTED_BY_CAPS:"PRESENTADO POR",POWERED_BY:"potenciando por ",POWERED_BY_CAPS:"POTENCIADO POR ",DESKTOP_SHORT_CTA:"Haga clic para explorar este Espacio 3D.",MOBILE_SHORT_CTA:"Pulse para explorar este Espacio 3D.",PRESENTED_BY:"Presentado por ",MORE:"Más ",LESS:"Menos ",TAG_CONTENT:"Contenido de tag™",SHOW:"Mostrar",HIDE:"Ocultar",DOLLHOUSE:"Dollhouse",FLOOR_PLAN:"Planos",OPEN_HIGHLIGHTS:"Aspectos Destacados",CLOSE_HIGHLIGHTS:"Cerrar",PREVIOUS:"Anterior",PLAY:"Play",PAUSE:"Pausa",NEXT:"Siguiente",EXPLORE_3D_SPACE:"Explorar el Espacio 3D",VIEW_DOLLHOUSE:"Ver dollhouse",SOCIAL_SHARING:"Compartir este espacio",VIEW_IN_VR:"Ver en realidad virtual",VIEW_FULLSCREEN:"Ver en pantalla completa",EXIT_FULLSCREEN:"Salir de pantalla completa",ZOOM_IN:"Acercar",ZOOM_OUT:"Alejar",FLOOR_NAME:"Piso ",FLOOR_ALL:"Todas",TERMS:"Condiciones",PORT_TERMS:"port términos de uso",TERMS_OF_USE:"Términos de uso",TERMS_TEXT_FILE:"terms-es-MX.html",CLOSE_TERMS:"Cerrar",TERMS_FAIL:"No se han podido obtener las condiciones. Asegúrese de tener una conexión a Internet para ver los términos de uso.",HELP:"Ayuda",HELP_NAVIGATION_TAB:"Navegación",HELP_MORE_HELP_TAB:"Más Ayuda",CLOSE:"Cerrar",HELP_DESKTOP_PANORAMA_1A:"Haga clic y arrastre para mirar alrededor del espacio.",HELP_DESKTOP_PANORAMA_2A:"Haga clic en los aros a lo largo del espacio para moverse.",HELP_DESKTOP_PANORAMA_3A:"Use la rueda de desplazamiento para acercar o alejar.",HELP_DESKTOP_PANORAMA_1B:"O use las teclas de flecha para girar a la izquierda y a la derecha.",HELP_DESKTOP_PANORAMA_2B:"O use las teclas de dirección para adelantar o retroceder.",HELP_DESKTOP_PANORAMA_3B:"O use la tecla más para acercar y la tecla menos para alejar.",HELP_DESKTOP_360_2A:"Haga clic en el icono Vista Interior para ingresar al Espacio.",HELP_DESKTOP_360_2B:"O bien, presione la tecla numero 1 para entrar en la Vista Interior.",HELP_DESKTOP_DOLLHOUSE_1A:"Haga clic izquierdo y arrastre hacia la izquierda, derecha, arriba o abajo para girar la Dollhouse.",HELP_DESKTOP_DOLLHOUSE_2A:"Haga clic derecho y arrastre hacia la izquierda, derecha, arriba o abajo para cambiar la posición della dollhouse.",HELP_DESKTOP_DOLLHOUSE_3A:"Use la rueda de desplazamiento para acercar o alejar.",HELP_DESKTOP_DOLLHOUSE_1B:"O use las teclas de dirección para girar la Dollhouse.",HELP_DESKTOP_FLOORPLAN_1A:"Haga clic con izquierdo y arrastre hacia la izquierda, derecha, arriba o abajo para cambiar la posición de la planta.",HELP_DESKTOP_FLOORPLAN_2A:"Haga clic derecho y arrastre hacia la izquierda o derecha para girar la planta.",HELP_DESKTOP_FLOORPLAN_3A:"Use la rueda de desplazamiento para acercar o alejar.",HELP_DESKTOP_FLOORPLAN_2B:"O use las teclas para girar hacia la izquierda o derecha.",HELP_DESKTOP_FLOORPLAN_3B:"O use las teclas de dirección para acercar o alejar.",HELP_MOBILE_PANORAMA_1:"Toque y arrastre para mirar alrededor del espacio.",HELP_MOBILE_PANORAMA_2:"Toque en los aros a lo largo del espacio para moverse.",HELP_MOBILE_3:"Use el gesto de pellizcar para acercar o alejar.",HELP_MOBILE_360_2:"Toque el ícono Vista Interior para entrar en el Espacio.",HELP_MOBILE_DOLLHOUSE_1:"Toque y arrastre con dos dedos para cambiar la posición della dollhouse.",HELP_MOBILE_DOLLHOUSE_2:"Toque y arrastre con dos dedos para cambiar la posición de la vista aérea.",HELP_MOBILE_FLOORPLAN_1:"Toque y arrastre para cambiar la posición de la planta.",HELP_MOBILE_FLOORPLAN_2:"Toque y arrastre con dos dedos para girar la planta.",HELP_MORE_HLR_A:"Galería destacada",HELP_DESKTOP_MORE_HLR_B:"Abra para navegar a través del espacio utilizando imágenes en miniatura.",HELP_MORE_DOLLHOUSE_A:"Vista aérea por pisos",HELP_DESKTOP_MORE_DOLLHOUSE_B:"Haga clic para ver y girar la Dollhouse del espacio completo en 3D.",HELP_MOBILE_MORE_DOLLHOUSE_B:"Toque para ver y girar la vista Dollhouse del espacio completo en 3D.",HELP_MORE_FLOORS_A:"Seleccionador de plantas",HELP_DESKTOP_MORE_FLOORS_B:"Cambie de una planta a otra en el espacio.",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"Haga clic o coloque el cursor para obtener más información acerca de las características del espacio.",HELP_MOBILE_MORE_TAG_B:"Toque para obtener más información acerca de las características del espacio.",HELP_MORE_ZOOM_A:"Controles de zoom",HELP_DESKTOP_MORE_ZOOM_B:"Use estos controles o la rueda de desplazamiento para acercar o alejar.",HELP_MORE_TOUR_A:"Controles de recorrido",HELP_DESKTOP_MORE_TOUR_B:"Reproduzca, pause, adelante o retroceda a través de un recorrido guiado.",HELP_MORE_INSIDE_A:"Vista interior",HELP_DESKTOP_MORE_INSIDE_B:"Haga clic para explorar el interior del espacio.",HELP_MOBILE_MORE_INSIDE_B:"Toque para explorar el interior del espacio.",HELP_MORE_VR_A:"Modo de realidad virtual",HELP_DESKTOP_MORE_VR_B:"Toque para ver el espacio en realidad virtual.",HELP_MOBILE_MORE_VR_B:"Toque para ver el espacio en realidad virtual.",HELP_MORE_360_A:"360° Views",HELP_DESKTOP_MORE_360_B:"Una vez que se encuentre en galería destacada, haga clic en vistas de 360º para ver el exterior.",HELP_MOBILE_MORE_360_B:"Una vez que se encuentre en galería destacada, toque en vistas de 360º para ver el exterior.",HELP_MORE_FULLSCREEN_A:"Pantalla completa",HELP_DESKTOP_MORE_FULLSCREEN_B:"Expanda el escenario 3D para verlo en pantalla completa.",WEBVR_FOR_CARDBOARD:"Para Google Cardboard",WEBVR_FOR_DAYDREAM:"Para Daydream View",WEBVR_ENTER_WEBVR:"ENTRAR VR",WEBVR_DIFFERENT_HEADSET:"¿Tiene un auricular diferente?",WEBVR_LEARN_MORE:"Más información",WEBVR_VIEW_SPACE:"Ver Espacio en VR",WEBVR_DAYDREAM_VIEW:"Daydream View",WEBVR_DAYDREAM_PHONE:"Daydream Teléfono listos",WEBVR_VIEW_CARDBOARD:"O Ver en Google Cardboard",VR_NEED_DAYDREAM:"Necesidades antes de acoplarse con Daydream View",VR_NEED_DAYDREAM_PHONE:"Teléfono listo para Daydream",VR_GOOGLE_DAYDREAM:"Daydream de Google",VR_APP:"port VR App",VR_COMPATIBLE_ANDROID_LONG:'Compatible con los Dispositivos Android con Pantallas de 4.5"-5.5" operando Android OS 4.4.4 y posteriores',VR_APP_FOR_ANDROID:"Aplicación port VR para Teléfonos Android",VR_APP_OPEN:"Abrir con la aplicación port VR en su lugar",VR_VIEW_SPACE:"Ver Espacio en realidad virtual",VR_LEARN_MORE_CAPS:"SABER MÁS",VR_PREVIOUS_CAPS:"ANTERIOR",VR_NEXT_CAPS:"SIGUIENTE",VR_GOT_IT_CAPS:"COMPRENDIDO",VR_SHOW_SUPPORTED:"Pulse para ver el Espacio en realidad virtual con",VR_SHOW_UNSUPPORTED:"Lo sentimos, pero su dispositivo no cumple los requisitos mínimos para ver un Espacio en realidad virtual.",VR_SHOW_IOS_1:"Pulse para ver el Espacio en realidad virtual",VR_SHOW_IOS_2:"Necesita la aplicación port VR y un iPhone compatible para ver",VR_WHAT_YOU_NEED:"Lo que necesitaras...",VR_NEED_CARDBOARD:"Lo que necesitaras con Google Cardboard",VR_NEED_SAMSUNG:"Lo que necesitaras con el Samsung Gear VR",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhones",VR_COMPATIBLE_IPHONES_2:"Compatible con iPhone 6S o superior y con iOS 9.1 en adelante",VR_COMPATIBLE_IPHONES_3:"iPhones compatibles",VR_COMPATIBLE_ANDROID:"Dispositivos Android compatibles",VR_ANDROID_DETAIL:"Pantallas de 11.43 cm a 13.97 cm con OS de Android 4.4.4 en adelante",VR_ANDROID_DVICES:"Dispositivos Android",VR_COMPATIBLE_SAMSUNG:"Dispositivos compatibles del Samsung",VR_SAMSUNG_DETAIL:"Galaxy S5 en adelante",VR_APP_FOR_CARDBOARD:"Aplicación port VR para Google Cardboard",VR_APP_FOR_SAMSUNG:"Aplicación port VR para Gear VR",VR_DOWNLOAD_HERE:"Descargar aquí",VR_REQUIRE_HEADSET:"Necesita un casco de realidad virtual y que se instale la aplicación port VR para Android",VR_REDIRECT_TO_STORE:"Si la aplicación no está instalada, se le redirigirá a la tienda de aplicaciones.",VR_IMPROPER_EMBED:"El espacio de port no está incorporado correctamente para apoyar VR en su navegador web.",VR_OPEN_ANDROID_LINK:"Abre el enlace en tu teléfono móvil",VR_ANDROID_OPTIONS:"Opciones de auriculares en RV disponibles",SHARE_TO:"Compartir en",SHARE_LINK:"Enlace directo",SHARE_EXPLORE:"Explorar ",SHARE_AT:"en",SHARE_WITH:"con",SHARE_3D:" en 3D",SHARE_COPIED:"¡Copiado!",ERROR_BROWSER_SOLUTION:"Instale un nuevo navegador para explorar en 3D.",ERROR_BROWSER_EXPLANATION:"WebGL requiere un navegador moderno.",ERROR_GENERIC_PROBLEM:"Vaya, algo ha ido mal.",ERROR_GENERIC_SOLUTION:"Reinicie su navegador.",ERROR_GENERIC_ACTIONS_1:"Si el problema persiste, ",ERROR_GENERIC_ACTIONS_2:"instale un navegador compatible",ERROR_GENERIC_ACTIONS_3:" o ",ERROR_GENERIC_ACTIONS_4:"consulte nuestra guía de solución de problemas",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"Navegador no compatible.",ERROR_WEBGL_IOS_PROBLEM:"Versión de iOS no compatible.",ERROR_WEBGL_IOS_SOLUTION:"Actualice a iOS 8 o superior para explorar en 3D.",ERROR_WEBGL_IOS_ACTIONS_1:"Pulse ",ERROR_WEBGL_IOS_ACTIONS_2:"Ajustes > General > Actualización de software",ERROR_WEBGL_SAFARI_PROBLEM:"Habilite WebGL para explorar en 3D.",ERROR_WEBGL_SAFARI_ACTIONS_1:"Haga clic en ",ERROR_WEBGL_SAFARI_ACTIONS_2:"Preferencias > Avanzado > Mostrar el menú Desarrollar",ERROR_WEBGL_SAFARI_ACTIONS_3:"Después, haga clic en ",ERROR_WEBGL_SAFARI_ACTIONS_4:"Desarrollar > Habilitar WebGL",ERROR_MISSING_URLS_PROBLEM:"Vaya, no hay panoramas para este modelo.",ERROR_MISSING_URLS_EXPLANATION:"Este es un modelo antiguo. El propietario del sitio web puede tener un nuevo modelo en mente.",ERROR_LOADING_FAILED_PROBLEM:"Vaya, modelo no disponible.",ERROR_LOADING_FAILED_ACTIONS_1:"Si el problema persiste, ",ERROR_LOADING_FAILED_ACTIONS_2:"consulte nuestra guía de solución de problemas",ERROR_MAINTENANCE_PROBLEM:"Mantenimiento en progreso.",ERROR_MAINTENANCE_SOLUTION:"Regrese en unos minutos.",LINK_TO_LOCATION:"Enlace a la ubicación",MENU_COPY:"Copiar",LINK_ALERT_COPY:"Utilice CTRL/CMD + C para copiar.",ROTATE:"Girar",INSIDE:"Interior",MOVE:"Moverse",ZOOM:"Acercar o alejar"}},{}],113:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"Chargement",PRESENTED_BY_CAPS:"PRÉSENTÉ PAR",POWERED_BY:"alimenté par ",POWERED_BY_CAPS:"ALIMENTÉ PAR",DESKTOP_SHORT_CTA:"Cliquez pour explorer l'Espace 3D.",MOBILE_SHORT_CTA:"Cliquez pour explorer l'Espace 3D.",PRESENTED_BY:"Présenté par ",MORE:"Plus ",LESS:"Moins ",TAG_CONTENT:"Contenu tag™",SHOW:"Montrer",HIDE:"Cacher",DOLLHOUSE:"Dollhouse",FLOOR_PLAN:"Plan de sol",OPEN_HIGHLIGHTS:"Ouvrir les faits saillants",CLOSE_HIGHLIGHTS:"Fermer",PREVIOUS:"Précédent",PLAY:"Lecture",PAUSE:"Pause",NEXT:"Suivant",EXPLORE_3D_SPACE:"Explorer l'Espace en 3D",VIEW_DOLLHOUSE:"Voir dollhouse",SOCIAL_SHARING:"Partager cet espace",VIEW_IN_VR:"Voir en VR",VIEW_FULLSCREEN:"Plein écran",EXIT_FULLSCREEN:"Fermer plein écran",ZOOM_IN:"Zoom avant",ZOOM_OUT:"Zoom arrière",FLOOR_NAME:"Étage ",FLOOR_ALL:"Tous",TERMS:"Mentions légales",PORT_TERMS:"port mentions légales",TERMS_OF_USE:"Conditions d'utilisation",TERMS_TEXT_FILE:"terms-fr-FR.html",CLOSE_TERMS:"Fermer",TERMS_FAIL:"Impossible d'accéder aux mentions légales. Vérifiez que vous avez une connexion Internet pour afficher les conditions d'utilisation.",HELP:"Aide",HELP_NAVIGATION_TAB:"Navigation",HELP_MORE_HELP_TAB:"Aide",CLOSE:"Fermer",HELP_DESKTOP_PANORAMA_1A:"Cliquez et faites glisser pour regarder autour de l’espace.",HELP_DESKTOP_PANORAMA_2A:"Cliquez sur les anneaux pour vous déplacer.",HELP_DESKTOP_PANORAMA_3A:"Utilisez la molette de votre souris pour zoomer.",HELP_DESKTOP_PANORAMA_1B:"Ou utilisez les touches pour tourner.",HELP_DESKTOP_PANORAMA_2B:"Ou utilisez les touches pour avancer et reculer.",HELP_DESKTOP_PANORAMA_3B:"Ou utilisez les touches plus et moins pour zoomer.",HELP_DESKTOP_360_2A:"Cliquez sur l’icône Vue Intérieure pour entrer dans l’Espace.",HELP_DESKTOP_360_2B:"Ou, appuyez sur la touche numéro 1 pour entrer dans la Vue Intérieure.",HELP_DESKTOP_DOLLHOUSE_1A:"Faites un clic gauche et bougez votre souris pour faire pivoter la vue Dollhouse.",HELP_DESKTOP_DOLLHOUSE_2A:"Faites un clic droit et bougez votre souris pour changer la position de la vue Dollhouse.",HELP_DESKTOP_DOLLHOUSE_3A:"Utilisez la molette de votre souris pour zoomer.",HELP_DESKTOP_DOLLHOUSE_1B:"Ou utilisez les touches pour faire pivoter la vue Dollhouse.",HELP_DESKTOP_FLOORPLAN_1A:"Faites un clic droit pour changer la position du plan sur l’écran.",HELP_DESKTOP_FLOORPLAN_2A:"Faites un clic droit et faites glisser à gauche ou à droite pour faire pivoter le plan.",HELP_DESKTOP_FLOORPLAN_3A:"Utilisez la molette de votre souris pour zoomer.",HELP_DESKTOP_FLOORPLAN_2B:"Ou utilisez les touches pour faire pivoter à gauche ou à droite.",HELP_DESKTOP_FLOORPLAN_3B:"Ou utilisez les touches pour effectuer un zoom avant ou arrière.",HELP_MOBILE_PANORAMA_1:"Touchez et faites glisser pour regarder autour de l’espace.",HELP_MOBILE_PANORAMA_2:"Tapez sur les anneaux dans tout l’espace pour vous déplacer.",HELP_MOBILE_3:"Utilisez un geste de pincement pour zoomer avant/arrière.",HELP_MOBILE_360_2:"Tapez sur l’icône Vue Intérieure pour entrer dans l’Espace.",HELP_MOBILE_DOLLHOUSE_1:"Touchez et faites glisser vers le haut/bas/gauche/droite pour faire pivoter la vue Dollhouse.",HELP_MOBILE_DOLLHOUSE_2:"Touchez et faites glisser avec deux doigts pour positionner vue en coupe.",HELP_MOBILE_FLOORPLAN_1:"Touchez et faites glisser pour positionner le plan.",HELP_MOBILE_FLOORPLAN_2:"Touchez et faites glisser avec deux doigts pour faire pivoter le plan.",HELP_MORE_HLR_A:"Carrousel",HELP_DESKTOP_MORE_HLR_B:"Ouvrez pour naviguer dans l’espace en utilisant les vignettes.",HELP_MORE_DOLLHOUSE_A:"Vue en coupe",HELP_DESKTOP_MORE_DOLLHOUSE_B:"Cliquez pour afficher et faire pivoter l’espace entier en 3D.",HELP_MOBILE_MORE_DOLLHOUSE_B:"Tapez pour afficher et faire pivoter l’espace entier en 3D.",HELP_MORE_FLOORS_A:"Sélecteur d’étage",HELP_DESKTOP_MORE_FLOORS_B:"Basculer entre les étages dans l’espace.",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"Cliquez ou survolez pour obtenir des informations sur l’espace.",HELP_MOBILE_MORE_TAG_B:"Tapez pour obtenir des informations sur l’espace.",HELP_MORE_ZOOM_A:"Commandes de zoom",HELP_DESKTOP_MORE_ZOOM_B:"Utilisez votre clavier ou la molette de votre souris pour zoomer.",HELP_MORE_TOUR_A:"Commandes de la visite",HELP_DESKTOP_MORE_TOUR_B:"Mettez en marche ou en pause, avancez et reculez lors d'une visite guidée.",HELP_MORE_INSIDE_A:"Vue intérieure",HELP_DESKTOP_MORE_INSIDE_B:"Cliquez pour explorer l’intérieur de l’espace.",HELP_MOBILE_MORE_INSIDE_B:"Tapez pour explorer l’intérieur de l’espace.",HELP_MORE_VR_A:"Mode RV",HELP_DESKTOP_MORE_VR_B:"Cliquez pour lancer l’espace en réalité virtuelle.",HELP_MOBILE_MORE_VR_B:"Tapez pour lancer l’espace en réalité virtuelle.",HELP_MORE_360_A:"Vues 360°",HELP_DESKTOP_MORE_360_B:"Cliquez sur vues 360°, dans le carrousel pour voir les scènes extérieures.",HELP_MOBILE_MORE_360_B:"Tapez sur vues 360°, dans le carrousel pour voir les scènes extérieures.",HELP_MORE_FULLSCREEN_A:"Plein écran",HELP_DESKTOP_MORE_FULLSCREEN_B:"Voir 3D Showcase en plein écran.",WEBVR_FOR_CARDBOARD:"Pour Google Cardboard",WEBVR_FOR_DAYDREAM:"Pour Daydream View",WEBVR_ENTER_WEBVR:"ENTRER VR",WEBVR_DIFFERENT_HEADSET:"Avez-vous un casque différent?",WEBVR_LEARN_MORE:"En savoir plus",WEBVR_VIEW_SPACE:"Voir Espace en VR",WEBVR_DAYDREAM_VIEW:"Daydream View",WEBVR_DAYDREAM_PHONE:"Téléphone compatibles Daydream",WEBVR_VIEW_CARDBOARD:"Ou Afficher sur Google Cardboard",VR_VIEW_SPACE:"Voir l'Espace en Réalité Virtuelle",VR_LEARN_MORE_CAPS:"EN SAVOIR PLUS",VR_PREVIOUS_CAPS:"PRÉCÉDENT",VR_NEXT_CAPS:"SUIVANT",VR_GOT_IT_CAPS:"BIEN COMPRIS",VR_SHOW_SUPPORTED:"Taper pour voir l'Espace en VR avec",VR_SHOW_UNSUPPORTED:"Désolé mais votre appareil ne répond pas aux critères minimaux pour voir cet Espace en mode VR.",VR_SHOW_IOS_1:"Taper pour voir l’Espace en Realité Virtuelle",VR_SHOW_IOS_2:"Nécessite l’application port VR et un iPhone compatible pour voir",VR_WHAT_YOU_NEED:"Ce dont vous aurez besoin pour...",VR_NEED_CARDBOARD:"Ce dont vous aurez besoin avec Google Cardboard",VR_NEED_SAMSUNG:"Ce dont vous aurez besoin avec Samsung Gear VR",VR_NEED_DAYDREAM:"BESOINS AVANT APPARIEMENT AVEC DAYDREAM VIEW",VR_NEED_DAYDREAM_PHONE:"Téléphone compatible avec Daydream",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_GOOGLE_DAYDREAM:"Google Daydream",VR_APP:"port VR App",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhones",VR_COMPATIBLE_IPHONES_2:"iPhone 5s et plus récent, avec iOS 9.1 et plus récent",VR_COMPATIBLE_IPHONES_3:"iPhones compatibles",VR_COMPATIBLE_ANDROID:"Appareils Android compatibles",VR_COMPATIBLE_ANDROID_LONG:"Compatible avec les écrans des appareils Android de 11,5 à 14 cm (4,5 à 5,5 po) fonctionnant sous Android OS 4.4.4 et plus",VR_ANDROID_DETAIL:'Écrans 4.5" à 5.5" avec Android 4.4.4 ou plus récent',VR_ANDROID_DVICES:"Appareils Android",VR_COMPATIBLE_SAMSUNG:"Appareils Samsung Compatibles",VR_SAMSUNG_DETAIL:"Galaxy S6 et plus récents",VR_APP_FOR_CARDBOARD:"Application port VR pour Google Cardboard",VR_APP_FOR_SAMSUNG:"Application port VR pour Gear VR",VR_APP_FOR_ANDROID:"Application port VR pour téléphones Android",VR_APP_OPEN:"Ouvrir plutôt avec l’application port VR",VR_DOWNLOAD_HERE:"Télécharger ici",VR_REQUIRE_HEADSET:"Nécessite un casque VR et l'application port VR pour Android afin d'être installé",VR_REDIRECT_TO_STORE:"Si l'application n'est pas installée, vous serez rediriger vers l'App store.",VR_IMPROPER_EMBED:"L'Espace port n'est pas correctement intégré pour supporter VR dans votre navigateur Web.",VR_OPEN_ANDROID_LINK:"Ouvrez ce lien avec votre appareil mobile",VR_ANDROID_OPTIONS:"Options disponibles pour casque VR sous",SHARE_TO:"Partager sur",SHARE_LINK:"Lien direct",SHARE_EXPLORE:"Explorer ",SHARE_AT:"à",SHARE_WITH:"avec",SHARE_3D:" en 3D",SHARE_COPIED:"Copié!",ERROR_BROWSER_SOLUTION:"Installer un nouveau navigateur pour explorer en 3D.",ERROR_BROWSER_EXPLANATION:"WebGL a besoin d'un navigateur récent.",ERROR_GENERIC_PROBLEM:"Il y eu un problème.",ERROR_GENERIC_SOLUTION:"Redémarrer votre navigateur.",ERROR_GENERIC_ACTIONS_1:"Si le problème persiste, ",ERROR_GENERIC_ACTIONS_2:"installez un navigateur plus récent",ERROR_GENERIC_ACTIONS_3:" ou ",ERROR_GENERIC_ACTIONS_4:"voir notre guide de dépannage",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"Navigateur non-supporté.",ERROR_WEBGL_IOS_PROBLEM:"Version iOS non-supportée.",ERROR_WEBGL_IOS_SOLUTION:"Mettre à jour avec iOS8 au minimum pour voir l'Espace en 3D.",ERROR_WEBGL_IOS_ACTIONS_1:"Tapez ",ERROR_WEBGL_IOS_ACTIONS_2:"Paramètres > Général > Mise à jour Software",ERROR_WEBGL_SAFARI_PROBLEM:"Activez WegGL pour explorer en 3D.",ERROR_WEBGL_SAFARI_ACTIONS_1:"Cliquez ",ERROR_WEBGL_SAFARI_ACTIONS_2:"Préferences > Avancés > Voir menu développeur",ERROR_WEBGL_SAFARI_ACTIONS_3:"Puis cliquez ",ERROR_WEBGL_SAFARI_ACTIONS_4:"Développe > Activé WebGL",ERROR_MISSING_URLS_PROBLEM:"Il n'y a pas de panoromas pour ce modèle.",ERROR_MISSING_URLS_EXPLANATION:"Ceci est un ancien modèle. Le propriétaire du site a peut-être un nouveau modèle en cours.",ERROR_LOADING_FAILED_PROBLEM:"Ce modèle n'est pas disponible.",ERROR_LOADING_FAILED_ACTIONS_1:"Si le problème persiste, ",ERROR_LOADING_FAILED_ACTIONS_2:"voir notre guide de dépannage",ERROR_MAINTENANCE_PROBLEM:"Maintenance en cours.",ERROR_MAINTENANCE_SOLUTION:"Revenez dans quelques instants.",LINK_TO_LOCATION:"Lien vers l'emplacement",MENU_COPY:"Copie",LINK_ALERT_COPY:"Utiliser CTRL+CMD C pour copier.",ROTATE:"Faire pivoter",INSIDE:"Intérieure",MOVE:"Se déplacer",ZOOM:"Zoom"}},{}],114:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"読み込み中",PRESENTED_BY_CAPS:"PRESENTED BY",POWERED_BY:"powered by",POWERED_BY_CAPS:"POWERED BY",DESKTOP_SHORT_CTA:"クリックしてこの3D Spaceを探索",MOBILE_SHORT_CTA:"タップしてこの3D Spaceを探索",PRESENTED_BY:"Presented by ",MORE:"全て表示 ",LESS:"閉じる ",TAG_CONTENT:"tag™コンテンツ ",SHOW:"表示",HIDE:"非表示",DOLLHOUSE:"ドールハウス",FLOOR_PLAN:"フロアプラン",OPEN_HIGHLIGHTS:"ハイライトを開く",CLOSE_HIGHLIGHTS:"閉じる",PREVIOUS:"前へ",PLAY:"再生",PAUSE:"一時停止",NEXT:"次へ",EXPLORE_3D_SPACE:"3DSpaceの探索",VIEW_DOLLHOUSE:"ドールハウスの表示",SOCIAL_SHARING:"このSpaceを共有する",VIEW_IN_VR:"VRで表示",VIEW_FULLSCREEN:"フルスクリーン表示",EXIT_FULLSCREEN:"フルスクリーン表示を終了",ZOOM_IN:"ズームイン",ZOOM_OUT:"ズームアウト",FLOOR_NAME:"フロア ",FLOOR_ALL:"すべて",TERMS:"規約",PORT_TERMS:"port規約",TERMS_OF_USE:"利用規約",CLOSE_TERMS:"閉じる",TERMS_TEXT_FILE:"terms-jp-JP.html",TERMS_FAIL:"規約を取得できませんでした。利用規約を表示するためにインターネットに接続されていることを確認してください。",WEBVR_FOR_DAYDREAM:"Daydream View用",WEBVR_ENTER_WEBVR:"VRに入る",WEBVR_DIFFERENT_HEADSET:"別のヘッドセットをお持ちですか?",WEBVR_LEARN_MORE:"もっと詳しく",WEBVR_VIEW_SPACE:"VRでSpaceを表示",WEBVR_DAYDREAM_VIEW:"Daydream View",WEBVR_DAYDREAM_PHONE:"Daydream対応スマホ",WEBVR_FOR_CARDBOARD:"Google Cardboard用",WEBVR_VIEW_CARDBOARD:"またはGoogle Cardboardで表示",VR_VIEW_SPACE:"バーチャルリアリティでSpaceを表示",VR_LEARN_MORE_CAPS:"もっと詳しく",VR_PREVIOUS_CAPS:"前へ",VR_NEXT_CAPS:"次へ",VR_GOT_IT_CAPS:"了解",VR_SHOW_SUPPORTED:"タップして次を使用してVRでSpaceを表示: ",VR_SHOW_UNSUPPORTED:"お使いのデバイスはVRでSpaceを表示する最低要件を満たしていません",VR_SHOW_IOS_1:"タップしてVRでSpaceを表示",VR_SHOW_IOS_2:"表示するにはport VRアプリと互換性のあるiPhoneが必要です",VR_WHAT_YOU_NEED:"必要なもの",VR_NEED_CARDBOARD:"Google Cardboardに必要なもの",VR_NEED_SAMSUNG:"Samsung Gear VRに必要なもの",VR_NEED_DAYDREAM:"事前にDaydream Viewとのペアリングが必要です",VR_NEED_DAYDREAM_PHONE:"Daydream対応スマホ",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_GOOGLE_DAYDREAM:"Google Daydream",VR_APP:"port VRアプリ",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhone",VR_COMPATIBLE_IPHONES_2:"iOS 9.1以降で動作するiPhone 5s以降のモデル",VR_COMPATIBLE_IPHONES_3:"互換性のあるiPhone",VR_COMPATIBLE_ANDROID:"互換性のあるAndroidデバイス",VR_COMPATIBLE_ANDROID_LONG:"Android OS 4.4.4以降で動作する互換性のあるAndroidデバイスの4.5~5.5インチディスプレイ",VR_ANDROID_DETAIL:"Android OS 4.4.4以降で動作する4.5~5.5インチディスプレイ",VR_ANDROID_DVICES:"Androidデバイス",VR_COMPATIBLE_SAMSUNG:"互換性のあるSamsungデバイス",VR_SAMSUNG_DETAIL:"Galaxy S5以降のモデル",VR_APP_FOR_CARDBOARD:"Google Cardboard用のport VRアプリ",VR_APP_FOR_SAMSUNG:"Gear VR 用のport VRアプリ",VR_APP_FOR_ANDROID:"Androidフォン用のport VRアプリ",VR_APP_OPEN:"port VRアプリで開く",VR_DOWNLOAD_HERE:"ここからダウンロード",VR_REQUIRE_HEADSET:"Android 用のVRヘッドセットとport VRアプリ をインストールする必要があります",VR_REDIRECT_TO_STORE:"アプリがインストールされていない場合、App Storeにリダイレクトされます",VR_IMPROPER_EMBED:"お使いのウェブブラウザでVRがサポートされるようport Spaceが適切に埋め込まれていません。",VR_OPEN_ANDROID_LINK:"お使いの携帯電話でリンクを開いてください",VR_ANDROID_OPTIONS:"利用可能なVRヘッドセットオプション",SHARE_TO:"共有先",SHARE_LINK:"ダイレクトリンク",SHARE_EXPLORE:"探索",SHARE_AT:"場所",SHARE_WITH:"使用アプリ",SHARE_3D:"3Dで",SHARE_COPIED:"コピーされました!",ERROR_BROWSER_SOLUTION:"3D探索するには、新しいバージョンのブラウザをインストールしてください",ERROR_BROWSER_EXPLANATION:"WebGLにはモダンブラウザが必要です。",ERROR_GENERIC_PROBLEM:"問題が発生しました。",ERROR_GENERIC_SOLUTION:"ブラウザを再起動してください。",ERROR_GENERIC_ACTIONS_1:"問題が解決しない場合は、",ERROR_GENERIC_ACTIONS_2:"サポートされているブラウザをインストールしてください",ERROR_GENERIC_ACTIONS_3:"または",ERROR_GENERIC_ACTIONS_4:"トラブルシューティングガイドを参照してください",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"ブラウザがサポートされていません。",ERROR_WEBGL_IOS_PROBLEM:"サポートされていないiOSバージョンです。",ERROR_WEBGL_IOS_SOLUTION:"3D探索するには、iOS 8以降にアップグレードしてください。",ERROR_WEBGL_IOS_ACTIONS_1:"以下の順にタップします:",ERROR_WEBGL_IOS_ACTIONS_2:"設定 > 全般 > ソフトウェアの更新",ERROR_WEBGL_SAFARI_PROBLEM:"WebGLを有効にして3Dで探索します。",ERROR_WEBGL_SAFARI_ACTIONS_1:"以下の順にクリックします:",ERROR_WEBGL_SAFARI_ACTIONS_2:"環境設定 > 詳細 > メニューバーに開発メニューを表示",ERROR_WEBGL_SAFARI_ACTIONS_3:"その後、以下の順にクリックします:",ERROR_WEBGL_SAFARI_ACTIONS_4:"開発 > WebGLを有効にする",ERROR_MISSING_URLS_PROBLEM:"このモデルではパノラマを使用できません。",ERROR_MISSING_URLS_EXPLANATION:"これは古いモデルです。ウェブサイト所有者が新しいモデルを開発中かもしれません。",ERROR_LOADING_FAILED_PROBLEM:"モデルは利用できません。",ERROR_LOADING_FAILED_ACTIONS_1:"問題が解決しない場合は、",ERROR_LOADING_FAILED_ACTIONS_2:"トラブルシューティングガイドを参照してください",ERROR_MAINTENANCE_PROBLEM:"メンテナンスは進行中です。",ERROR_MAINTENANCE_SOLUTION:"しばらくしてからやり直し てください。",LINK_TO_LOCATION:"ロケーションへのリンク",MENU_COPY:"コピー",LINK_ALERT_COPY:"コピーするにはCTRL/CMD + Cを使用してください。",ROTATE:"回転",MOVE:"移動",INSIDE:"内側",ZOOM:"ズーム",HELP:"ヘルプ",HELP_NAVIGATION_TAB:"ナビゲーション",HELP_MORE_HELP_TAB:"その他のヘルプ",HELP_DESKTOP_PANORAMA_1A:"Spaceを見回すには、クリックしてドラッグします。",HELP_DESKTOP_PANORAMA_2A:"移動するには、Space全体にあるリングをクリックします。",HELP_DESKTOP_PANORAMA_3A:"スクロールホイールを使用してズームイン、ズームアウトします。",HELP_DESKTOP_PANORAMA_1B:"または、矢印キーを使用して左右に向きを変えます。",HELP_DESKTOP_PANORAMA_2B:"または、矢印キーを使用して前後に向きを変えます。",HELP_DESKTOP_PANORAMA_3B:"あるいは、プラス(+)キーまたはマイナス(-)キーを使用して、ズームイン、ズームアウトします。",HELP_DESKTOP_360_2A:"内側ビューアイコンをクリックしてSpaceに入ります。",HELP_DESKTOP_360_2B:"または、数字キー1を押して内側ビューに入ります。",HELP_DESKTOP_DOLLHOUSE_1A:"左クリックと左右、上下のドラッグでドールハウスを回転します。",HELP_DESKTOP_DOLLHOUSE_2A:"右クリックと左右、上下のドラッグでドールハウスの画面上の位置を変更します。",HELP_DESKTOP_DOLLHOUSE_3A:"スクロールホイールを使用してズームイン、ズームアウトします。",HELP_DESKTOP_DOLLHOUSE_1B:"または、矢印キーを使用してドールハウスを回転します。",HELP_DESKTOP_FLOORPLAN_1A:"左ボタンを押しながら、上下左右にドラッグしてフロアプランの画面上の位置を変更します。",HELP_DESKTOP_FLOORPLAN_2A:"右ボタンを押しながら左右にドラッグして、フロアプランを回転します。",HELP_DESKTOP_FLOORPLAN_3A:"スクロールホイールを使用してズームイン、ズームアウトします。",HELP_DESKTOP_FLOORPLAN_2B:"または、矢印キーを使用して左右に回転します。",HELP_DESKTOP_FLOORPLAN_3B:"または、矢印キーを使用して、ズームイン、ズームアウトします。",HELP_MOBILE_PANORAMA_1:"Spaceを見回すには、タッチしてドラッグします。",HELP_MOBILE_PANORAMA_2:"移動するには、Space全体にあるリングをタップします。",HELP_MOBILE_3:"ピンチジェスチャーを使用してズームイン、ズームアウトします。",HELP_MOBILE_360_2:"内側ビューアイコンをタップしてSpaceに入ります。",HELP_MOBILE_DOLLHOUSE_1:"タッチして上下左右にドラッグしてドールハウスを回転します。",HELP_MOBILE_DOLLHOUSE_2:"タッチして、2本指でドラッグしてドールハウスを配置します。",HELP_MOBILE_FLOORPLAN_1:"タッチ&ドラッグしてフロアプランを配置します。",HELP_MOBILE_FLOORPLAN_2:"タッチして、2本指でドラッグしてフロアプランを回転します。",HELP_MORE_HLR_A:"ハイライト",HELP_DESKTOP_MORE_HLR_B:"サムネイル画像を使用してSpaceを移動するために開きます。",HELP_MORE_DOLLHOUSE_A:"ドールハウス",HELP_DESKTOP_MORE_DOLLHOUSE_B:"クリックして3DでSpace全体のトップダウンビューを表示して回転します。",HELP_MOBILE_MORE_DOLLHOUSE_B:"タップして3DでSpace全体のトップダウンビューを表示して回転します。",HELP_MORE_FLOORS_A:"フロアセレクター",HELP_DESKTOP_MORE_FLOORS_B:"Space内のフロアを切り替えます。",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"クリックするか、カーソルを置くとSpace内の機能についての説明が表示されます。",HELP_MOBILE_MORE_TAG_B:"タップするとSpace内の機能についての説明が表示されます。",HELP_MORE_ZOOM_A:"ズームコントロール",HELP_DESKTOP_MORE_ZOOM_B:"これらのコントロールまたはスクロールホイールを使用して、ズームイン、ズームアウトします。",HELP_MORE_TOUR_A:"ツアーコントロール",HELP_DESKTOP_MORE_TOUR_B:"ガイド付きツアー中に再生、一時停止、前方・後方に移動します。",HELP_MORE_INSIDE_A:"内側ビュー",HELP_DESKTOP_MORE_INSIDE_B:"クリックしてSpace内を探索します。",HELP_MOBILE_MORE_INSIDE_B:"タップしてSpace内を探索します。",HELP_MORE_VR_A:"VRモード",HELP_DESKTOP_MORE_VR_B:"クリックしてバーチャルリアリティでSpaceを起動します。",HELP_MOBILE_MORE_VR_B:"タップしてバーチャルリアリティでSpaceを起動します。",HELP_MORE_360_A:"360° Views",HELP_DESKTOP_MORE_360_B:"Highlight Reelの360° Viewsをクリックして屋外シーンを表示します。",HELP_MOBILE_MORE_360_B:"Highlight Reelの360° Viewsをタップして屋外シーンを表示します。",HELP_MORE_FULLSCREEN_A:"フルスクリーン",HELP_DESKTOP_MORE_FULLSCREEN_B:"3D Showcaseをフルスクリーン表示にします。",CLOSE:"閉じる"}},{}],115:[function(e,t,i){"use strict";t.exports={PAGE_TITLE:"",LOADING:"Загрузка",PRESENTED_BY_CAPS:"ПРЕДСТАВЛЕНО",POWERED_BY:"разработано на платформе ",POWERED_BY_CAPS:"РАЗРАБОТАНО НА ПЛАТФОРМЕ",DESKTOP_SHORT_CTA:"Нажмите для просмотра.",MOBILE_SHORT_CTA:"Нажмите для просмотра.",PRESENTED_BY:"Представлено ",MORE:"Больше ",LESS:"Меньше ",TAG_CONTENT:"tag™ Контент",SHOW:"Показать",HIDE:"Скрыть",DOLLHOUSE:"Dollhouse",FLOOR_PLAN:"Планировка",OPEN_HIGHLIGHTS:"Открыть Фотоколлаж",CLOSE_HIGHLIGHTS:"Закрыть",PREVIOUS:"Предыдущий",PLAY:"Воспроизвести",PAUSE:"Пауза",NEXT:"Следующий",EXPLORE_3D_SPACE:"Просмотреть 3D модель",VIEW_DOLLHOUSE:"Посмотреть Dollhouse",SOCIAL_SHARING:"Поделиться этой моделью",VIEW_IN_VR:"Посмотреть в VR",VIEW_FULLSCREEN:"Полный экран",EXIT_FULLSCREEN:"Выйти из полноэкранного режима",ZOOM_IN:"Увеличить",ZOOM_OUT:"Уменьшить",FLOOR_NAME:"Этаж ",FLOOR_ALL:"Все",TERMS:"Условия",PORT_TERMS:"Правила пользования",TERMS_OF_USE:"Условия использования",TERMS_TEXT_FILE:"terms-ru-RU.html",CLOSE_TERMS:"Закрыть",TERMS_FAIL:"Не удалось загрузить условия использования. Для просмотра условий использования, пожалуйста, убедитесь, что у Вас есть подключение к Интернету.",HELP:"Помощь",HELP_NAVIGATION_TAB:"Навигация",HELP_MORE_HELP_TAB:"Доп. Помощь",CLOSE:"Закрыть",HELP_DESKTOP_PANORAMA_1A:"Нажмите и перетащите, чтобы осмотреть пространство вокруг.",HELP_DESKTOP_PANORAMA_2A:"Для передвижения по модели нажимайте на круги .",HELP_DESKTOP_PANORAMA_3A:"Используйте колесо прокрутки для увеличения и уменьшения.",HELP_DESKTOP_PANORAMA_1B:"Или используйте клавиши со стрелками для поворота влево и вправо.",HELP_DESKTOP_PANORAMA_2B:"Или используйте стрелки для перемещения вперед и назад.",HELP_DESKTOP_PANORAMA_3B:"Или используйте клавиши ‘плюс’ и ‘минус’ для увеличения и уменьшения изображения.",HELP_DESKTOP_360_2A:"Нажмите на значок ‘Вид Изнутри’, чтобы увидеть внутреннюю панораму.",HELP_DESKTOP_360_2B:"или нажмите 1 на клавиатуре, чтобы увидеть внутреннюю панораму.",HELP_DESKTOP_DOLLHOUSE_1A:"Нажмите левую кнопку мыши и перетащите влево, вправо, вверх и вниз, чтобы повернуть Dollhouse.",HELP_DESKTOP_DOLLHOUSE_2A:"Нажмите правую кнопку мыши и перетащите влево, вправо, вверх и вниз, чтобы изменить позицию Dollhouse на экране.",HELP_DESKTOP_DOLLHOUSE_3A:"Используйте колесо прокрутки чтобы увеличить и уменьшить.",HELP_DESKTOP_DOLLHOUSE_1B:"Или используйте клавиши со стрелками, чтобы повернуть Dollhouse.",HELP_DESKTOP_FLOORPLAN_1A:"Нажмите левую кнопку мыши и перетащите влево, вправо, вверх и вниз, чтобы изменить положение Планировки на экране.",HELP_DESKTOP_FLOORPLAN_2A:"Нажмите правую кнопку мыши и перетащите влево или вправо, чтобы повернуть Планировку.",HELP_DESKTOP_FLOORPLAN_3A:"Используйте колесо прокрутки чтобы увеличить и уменьшить.",HELP_DESKTOP_FLOORPLAN_2B:"Или используйте клавиши со стрелками для поворота влево или вправо.",HELP_DESKTOP_FLOORPLAN_3B:"Или используйте стрелки для увеличения и уменьшения.",HELP_MOBILE_PANORAMA_1:"Нажмите и перетащите, чтобы осмотреть модель.",HELP_MOBILE_PANORAMA_2:"Для передвижения по модели нажимайте на круги.",HELP_MOBILE_3:"Используйте движение двумя пальцами в разные стороны, чтобы увеличить и уменьшить.",HELP_MOBILE_360_2:"Нажмите на значок ‘Вид Изнутри’, чтобы увидеть внутреннюю панораму.",HELP_MOBILE_DOLLHOUSE_1:"Нажмите и перетащите вверх, вниз, влево и вправо, чтобы повернуть Dollhouse.",HELP_MOBILE_DOLLHOUSE_2:"Нажмите и перетащите, чтобы расположить Dollhouse.",HELP_MOBILE_FLOORPLAN_1:"Нажмите и перетащите, чтобы расположить план здания.",HELP_MOBILE_FLOORPLAN_2:"Коснитесь и перетащите двумя пальцами, чтобы повернуть план здания.",HELP_MORE_HLR_A:"Фотоколлаж",HELP_DESKTOP_MORE_HLR_B:"Откройте для перемещения по модели, используя иконки изображений.",HELP_MORE_DOLLHOUSE_A:"Dollhouse",HELP_DESKTOP_MORE_DOLLHOUSE_B:"Нажмите и поверните сверху вниз чтобы просмотреть всю 3D модель.",HELP_MOBILE_MORE_DOLLHOUSE_B:"Нажмите и поверните сверху вниз чтобы просмотреть всю 3D модель.",HELP_MORE_FLOORS_A:"Выбор Этажа",HELP_DESKTOP_MORE_FLOORS_B:"Переключение между этажами.",HELP_MORE_TAG_A:"tag™ Posts",HELP_DESKTOP_MORE_TAG_B:"Нажмите или наведите курсор мыши для получения информации о функциях в Пространстве.",HELP_MOBILE_MORE_TAG_B:"Нажмите для получения информации о функциях.",HELP_MORE_ZOOM_A:"Масштаб",HELP_DESKTOP_MORE_ZOOM_B:"Используйте эти кнопки для увеличения и уменьшения изображения или используйте колесо прокрутки.",HELP_MORE_TOUR_A:"Управление Туром",HELP_DESKTOP_MORE_TOUR_B:"Используйте кнопки Воспроизвести, Пауза, Вперед и Назад для управления фотоколлажем.",HELP_MORE_INSIDE_A:"Вид Изнутри",HELP_DESKTOP_MORE_INSIDE_B:"Нажмите, чтобы просмотреть модель изнутри.",HELP_MOBILE_MORE_INSIDE_B:"Нажмите, чтобы просмотреть модель изнутри.",HELP_MORE_VR_A:"Режим VR",HELP_DESKTOP_MORE_VR_B:"Нажмите, чтобы запустить модель в виртуальной реальности.",HELP_MOBILE_MORE_VR_B:"Нажмите, чтобы запустить модель в виртуальной реальности.",HELP_MORE_360_A:"360° Views",HELP_DESKTOP_MORE_360_B:"Нажмите на “360 Views” в фотоколлаже, чтобы просмотреть внешний пейзаж.",HELP_MOBILE_MORE_360_B:"Нажмите на “360 Views” в фотоколлаже, чтобы просмотреть внешний пейзаж.",HELP_MORE_FULLSCREEN_A:"Полный экран",HELP_DESKTOP_MORE_FULLSCREEN_B:"Развернуть 3D Showcase во весь экран.",WEBVR_FOR_CARDBOARD:"Для Google Cardboard",WEBVR_FOR_DAYDREAM:"Для просмотра в Daydream",WEBVR_ENTER_WEBVR:"ВОЙТИ В VR ",WEBVR_DIFFERENT_HEADSET:"Есть другой VR-шлем?",WEBVR_LEARN_MORE:"Узнать больше",WEBVR_VIEW_SPACE:"Запустить модель в VR",WEBVR_DAYDREAM_VIEW:"Посмотреть в Daydream",WEBVR_DAYDREAM_PHONE:"Daydream-готовый телефон",WEBVR_VIEW_CARDBOARD:"Или просмотреть в Google Cardboard",VR_WHAT_YOU_NEED:"Что Вам потребуется...",VR_NEED_DAYDREAM_PHONE:"Daydream-готовый телефон",VR_GOOGLE_DAYDREAM:"Google Daydream",VR_APP:"port VR App",VR_APP_OPEN:"Или открыть через приложение port VR",VR_COMPATIBLE_ANDROID_LONG:'Совместимые Android устройства с диагональю экрана 4.5"-5.5" дюймов и Android версией 4.4.4, и выше',VR_SAMSUNG_DETAIL:"Galaxy S6 и выше",VR_APP_FOR_ANDROID:"Приложение port VR для Android",VR_NEED_DAYDREAM:"Необходимо для соединением с Daydream",VR_VIEW_SPACE:"Запустить модель в VR",VR_LEARN_MORE_CAPS:"УЗНАТЬ БОЛЬШЕ",VR_PREVIOUS_CAPS:"ПРЕДЫДУЩИЙ",VR_NEXT_CAPS:"СЛЕДУЮЩИЙ",VR_GOT_IT_CAPS:"ЯСНО",VR_SHOW_SUPPORTED:"Нажмите, чтобы просмотреть модель в VR с помощью",VR_SHOW_UNSUPPORTED:"Извините, но Ваше устройство не соответствует минимальным требованиям для просмотра модели в VR.",VR_SHOW_IOS_1:"Нажмите, чтобы просмотреть модель в VR",VR_SHOW_IOS_2:"Для просмотра требуется приложение port VR и совместимый iPhone",VR_NEED_CARDBOARD:"Что Вам потребуется для Google Cardboard",VR_NEED_SAMSUNG:"Что Вам потребуется для Samsung Gear VR",VR_GOOGLE_CARDBOARD:"Google Cardboard",VR_SAMSUNG_GEAR_VR:"Samsung Gear VR",VR_COMPATIBLE_IPHONES_1:"iPhones",VR_COMPATIBLE_IPHONES_2:"iPhone 5s или новее с iOS 9.1 и выше",VR_COMPATIBLE_IPHONES_3:"Совместимые модели iPhone",VR_COMPATIBLE_ANDROID:"Совместимые Android устройства",VR_ANDROID_DETAIL:'Экран от 4.5" до 5.5" и Android 4.4.4, и выше',VR_ANDROID_DVICES:"Android устройства",VR_COMPATIBLE_SAMSUNG:"Совместимые Samsung устройства",VR_APP_FOR_CARDBOARD:"Приложение port VR для Google Cardboard",VR_APP_FOR_SAMSUNG:"Приложение port VR для Gear VR",VR_DOWNLOAD_HERE:"Скачать здесь",VR_REQUIRE_HEADSET:"Требуется VR-шлем и установленное приложение port VR для Android",VR_REDIRECT_TO_STORE:"Если приложение не установлено, Вы будете перенаправлены на страницу магазина приложений.",VR_IMPROPER_EMBED:"port модель не встроена должным образом для поддержки VR в вашем веб-браузере.",VR_OPEN_ANDROID_LINK:"Откройте ссылку на Вашем мобильном телефоне",VR_ANDROID_OPTIONS:"Доступные опции VR-шлемов",SHARE_TO:"Поделиться",SHARE_LINK:"Прямая ссылка",SHARE_EXPLORE:"просмотреть",SHARE_AT:"на",SHARE_WITH:"с",SHARE_3D:"в 3D",SHARE_COPIED:"Скопировано!",ERROR_BROWSER_SOLUTION:"установите новый браузер, чтобы просмотреть 3D пространство.",ERROR_BROWSER_EXPLANATION:"WebGL требует современный браузер.",ERROR_GENERIC_PROBLEM:"Ой, что-то пошло не так.",ERROR_GENERIC_SOLUTION:"Перезапустите браузер.",ERROR_GENERIC_ACTIONS_1:"Если проблема не устранена, ",ERROR_GENERIC_ACTIONS_2:"установите поддерживаемый браузер",ERROR_GENERIC_ACTIONS_3:" или ",ERROR_GENERIC_ACTIONS_4:"смотрите наше руководство по устранению неполадок",ERROR_WEBGL_UNSUPPORTED_PROBLEM:"Браузер не поддерживается.",ERROR_WEBGL_IOS_PROBLEM:"iOS-версия не поддерживается.",ERROR_WEBGL_IOS_SOLUTION:"Обновите до iOS 8 или выше, чтобы просмотреть пространство в 3D.",ERROR_WEBGL_IOS_ACTIONS_1:"Нажмите ",ERROR_WEBGL_IOS_ACTIONS_2:"Настройки > Общие > Обновление ПО",ERROR_WEBGL_SAFARI_PROBLEM:"Включите WebGL для 3D-просмотра.",ERROR_WEBGL_SAFARI_ACTIONS_1:"Нажмите ",ERROR_WEBGL_SAFARI_ACTIONS_2:"Настойки > Дополнения > Показывать меню “Разработка” в строке меню",ERROR_WEBGL_SAFARI_ACTIONS_3:"Затем нажмите ",ERROR_WEBGL_SAFARI_ACTIONS_4:"Разработка > Разрешить WebGL",ERROR_MISSING_URLS_PROBLEM:"Ой, для этой модели нет панорамы.",ERROR_MISSING_URLS_EXPLANATION:"Эта модель устарела. У владельца веб-сайта может быть новая модель.",ERROR_LOADING_FAILED_PROBLEM:"Ой, модель недоступна.",ERROR_LOADING_FAILED_ACTIONS_1:"Если проблема не устранена, ",ERROR_LOADING_FAILED_ACTIONS_2:"посмотрите наше руководство по устранению неполадок",ERROR_MAINTENANCE_PROBLEM:"Выполняется техническое обслуживание.",ERROR_MAINTENANCE_SOLUTION:"Пожалуйста, попробуйте снова через несколько минут.",LINK_TO_LOCATION:"Ссылка на местоположение",MENU_COPY:"Копировать",LINK_ALERT_COPY:"Для того, чтобы скопировать, пожалуйста, используйте CTRL/CMD + C.",ROTATE:"Вращать",MOVE:"Передвигаться",INSIDE:"Вид изнутри",ZOOM:"Масштаб"}},{}],116:[function(r,e,t){(function(i){"use strict";function re(e){console.log("e1:"+e),e=Math.round(.4*e*100),console.log("e2:"+e);var t=$(".progressbar");t.find(".bar").css("width",e+"%"),t.find(".label").css("left",t.width()*e/100-15+"px"),t.find(".perc").text(e+"%")}$("#gui-loading").fadeIn(200),re(.1);var e=g_version?"modeldata.js":"someData.json";$.ajax(g_Prefix+"data/"+window.number+"/"+e+"?"+randomTime().getTime(),{dataType:"json"}).done(function(e){var t=matcher(e);t.files.templates[0]=g_Prefix+e.files.templates[0].replace("{{number}}",window.number),t.user={is_authenticated:!1,flags:["payment_show_past_due","sc_imgopt_100","mattertags","labels","fastly_v2_urls","vr","uhql","sc_segment_100","show_segment_metrics","content_distribution","workshop_webgl","show360views","showcase_vr","ws_zooming","model_settings","ws_360snapshots","img_multi_dl","vrworkshop","tag_links","ws_img_multi_dl","mattertag_links","billing_tab_hidden","static_cloud_ui","metrics","mattertag_media","img_size_download","show_360snapshots","floorplan","sc_tilegen_0","showcase_webvr","sc_mixpanel_0","show_clickbait","zooming","showcase_tiling","list_signed_urls_default_3","fastly_image_opto"]},window.MP_PREFETCHED_MODELDATA=t,re(.7),function(){function y(e){t.update(e)}function A(e,t){ne.error(t),n.error(t),N.report(e,"error-"+t)}function C(e,t,i){try{e.start(t)}catch(e){throw ne.warn(e.message),function(e){var t=O.details();t&&"Safari"===t.name&&500r||e.scrollTop+e.clientHeight-e.scrollHeight==0&&t.changedTouches[0].clientY$("#player").height()?e.x<0?"right":"left":e.y<0?"bottom":"top")),1==i&&1==t&&n===this.orientation||this.applyOrientation(n)}},t.prototype.applyOrientation=function(e){this.div.style.transform=this.div.style.webkitTransform="",this.div.classList.remove("tag-container-"+this.orientation),this.div.classList.add("tag-container-"+e);var t=window.getComputedStyle(this.div);this.initialTransform=t.transform||t.webkitTransform,"none"===this.initialTransform&&(this.initialTransform="");var i=t.transform.slice(7,-1).split(","),n=-i[4],r=-i[5];this.div.style.webkitTransformOrigin=n+"px "+r+"px",this.div.style.transformOrigin=n+"px "+r+"px",this.orientation=e},v.exports=t}).call(this,"/js/tag/Billboard/Billboard.js")},{"../../util/browser":182,"../../util/lerp":188,"../../util/logger":189,"../../util/transitions":195,"../Media/EmbedlyEmbed":125,"../Media/EmbedlyPlayer":126,"../Media/Image":128,"../Media/Link":129,"../Media/MediaEvent":131,"../Parser/DescriptionChunkType":133,"../Parser/DescriptionParser":134,"./BillboardEvent":120,"./billboardSettings":121,"./overlaySettings":122,events:202}],120:[function(e,t,i){"use strict";t.exports=Object.freeze({ENTER:"billboard.enter",LEAVE:"billboard.leave",OPENING:"billboard.opening",OPENED:"billboard.open",CLOSING:"billboard.closing",CLOSED:"billboard.closed",ACTIVATING:"billboard.activating",ACTIVATE:"billboard.activate"})},{}],121:[function(e,t,i){"use strict";t.exports=Object.freeze({animation:Object.freeze({hoverOnClosing:!1,openDelay:100,closeDelay:50,openDuration:200,closeDuration:100}),boardToDiscRatio:1.2})},{}],122:[function(e,t,i){"use strict";t.exports=Object.freeze({boundaryWidth:30,boundaryHeight:0})},{}],hot:[function(e,t,i){"use strict";function n(e,t,i){this.sid=e,this.position=this.conversionArray(t.position),this.rotation=this.conversionArray(t.rotation),this.link=t.link,this.model=i,this.size=t.size,this.build()}var g=e("three"),r=e("../shaders"),m=e("../settings"),v=e("../enum/Viewmode"),d=e("../objects/Panorama"),o=e("../util/texture"),p=new g.Raycaster,a=new g.PlaneBufferGeometry(g_HotMeshSize.g_HotMeshWidth,g_HotMeshSize.g_HotMeshHeight,1,1),s=new g.ShaderMaterial({uniforms:r.hot.uniforms,vertexShader:r.hot.vertexShader,fragmentShader:r.hot.fragmentShader});s.transparent=!0,r.hot.uniforms.texture1.value=o.load(g_HotImage.point),r.hot.uniforms.texture2.value=o.load(g_HotImage.point2),n.prototype.conversionArray=function(e){if("[object Array]"==Object.prototype.toString.call(e))return e;var t=[];for(var i in e)t.push(e[i]);return t},n.prototype.build=function(){var e=new g.Mesh(a,s),t=parseFloat(window.MP_PREFETCHED_MODELDATA.hotIconScale);e.dynamic=!0,e.position.copy((new g.Vector3).fromArray(this.position)),e.rotation.copy((new g.Euler).fromArray(this.rotation)),t&&e.scale.set(t,t,t),e.name=this.sid,e.type="hotSprite",(e.belongHot=this).link&&(e.hotLink=this.link),this.mesh=e,this.model.add(e),g_HotMeshes.push(e)},n.prototype.closestPanoTowardTag=function(e,t){var i=[],n=[],r=this.mesh.position;if(e===v.PANORAMA){var o=t.position.clone().sub(r).normalize();n.push(d.scoreFunctions.direction(r,o))}var a=new g.Vector3;i.push(function(e){return Math.abs(e.position.x-r.x)>m.tags.visibility.cameraClearance||Math.abs(e.position.z-r.z)>m.tags.visibility.cameraClearance},function(e){a.copy(r).sub(e.position);var t=-g.Math.radToDeg(Math.atan(a.y/Math.sqrt(a.x*a.x+a.z*a.z))),i=m.tags.navigate.tiltTolerance;return m.insideLookLimitDown-ih)return console.log(l),c}return null}return s&&0g.tags.visibility.cameraClearance||Math.abs(e.position.z-r.z)>g.tags.visibility.cameraClearance},function(e){a.copy(r).sub(e.position);var t=-f.Math.radToDeg(Math.atan(a.y/Math.sqrt(a.x*a.x+a.z*a.z))),i=g.tags.navigate.tiltTolerance;return g.insideLookLimitDown-ig.tags.visibility.visibleDistance)return null;d.raycaster.set(c.position,r.clone().sub(c.position).normalize());var u=d.raycaster.intersectObjects(this.model.colliders);if(0===u.length||u[0].distance>h)return c}return null}return 0=h.length)for(var l=0;l<64;l++)h.push({tag:a,dot:s});var c=h[r];c.tag=a,c.dot=s,c.position=math.projectPositionToCanvas(p,i),u.push(c),r++}}return u.sort(function(e,t){return e.dot>t.dot?-1:e.dot heroIndex is less than 0."),null;if(this.heroCount()<1)return R.warn("Model.getHeroDescriptorByIndex() -> No hero locations in this model"),null;var t=this.heroLocations[e];return void 0===t?(R.warn("Model.getHeroDescriptorByIndex() -> Index "+e+" is not a validindex"),null):t},t.prototype.findPanoramicHero=function(){for(var e in this.heroLocations)if(this.heroLocations[e].cameraMode===s.PANORAMA)return this.heroLocations[e];return null},t.prototype.listImagePanos=function(){var i=[],n=this;return this.images.forEach(function(e){if(e.metadata&&e.metadata.scan_id){var t=n.panos.get(e.metadata.scan_id);t&&(n.supportsTiles||t.isLoaded("high")||i.push(t))}}),i},t.prototype.fadePanoMarkers=function(e,t){this.panos.fadeMarkerOpacity(e,t)},t.prototype.setSweepVisibility=function(t){this.panos.forEach(function(e){e.marker&&(e.marker.visible=t)})},t.prototype.outsideAllowed=function(){return this.supportedModes[s.DOLLHOUSE]&&this.supportedModes[s.FLOORPLAN]},O.exports=t}).call(this,"/js/model/Model.js")},{"../constants":8,"../enum/AlignmentType":17,"../enum/RenderOrder":42,"../enum/Viewmode":51,"../exception/BasicException":55,"../label/Label":90,"../loaders/ModelLoader":105,"../loaders/ModelTextureLoader":106,"../loaders/SweepDataLoader":107,"../tag/tag":123,"../tag/tagManager":124,"../objects/BoundingTextureSkybox":143,"../objects/Chunk":144,"../objects/Floor":146,"../objects/Panorama":148,"../objects/Room":150,"../objects/Snapshot":153,"../settings":166,"../shaders":167,"../util/ModelUrls":177,"../util/PanoramaCollection":178,"../util/ajax":181,"../util/common":185,"../util/easing":186,"../util/lerp":188,"../util/logger":189,"../util/math":190,"../util/texture":194,"../util/transitions":195,"./../util/browser":182,"./../util/showcase":193,"./Chunks":135,"./FloorCollection":136,"./ImageCollection":137,"./LabelCollection":138,"./RoomCollection":141,events:202,three:217,hot:"hot"}],140:[function(e,t,i){"use strict";function n(){this.modelMap={},this.activeModel=null,this.modelCount=0,this.tileDownloader=null,this.panoRenderer=null}var r=(e("three"),e("../util/common")),o=e("../exception/BasicException"),a=e("../enum/ModelManagerEvents"),s=e("../enum/PanoRendererEvents"),l=e("events").EventEmitter;n.prototype.init=function(e,t,i){this.tileDownloader=e,this.panoRenderer=t,this.qualityManager=i,this.bindEvents()},n.prototype.bindEvents=function(){this.panoRenderer.on(s.TileRenderSuccess,this.onTileRendered.bind(this))},n.prototype.onTileRendered=function(e,t,i,n){},n.prototype.addModel=function(e){this.modelMap[e.sid]=e,0===this.modelCount&&this.activateModel(e.sid),this.modelCount++,this.emit(a.ModelAdded)},n.prototype.getModel=function(e){return this.modelMap[e]},n.prototype.activateModel=function(e){var t=this.modelMap[e];if(!t)throw new o("Tried to activate invalid model!");var i=this.activeModel;this.activeModel=t,this.tileDownloader.setPanoData(t.panos,t.listImagePanos(),t.sid),this.tileDownloader.setUrls(t.urls),t.panos.forEach(function(e){e.attachToPanoRenderer(this.panoRenderer),e.tileDownloader=this.tileDownloader,e.qualityManager=this.qualityManager}.bind(this)),this.emit(a.ActiveModelChanged,{oldModel:i,model:t})},n.prototype.getActiveModel=function(){return this.activeModel},r.extend(n,l),t.exports=n},{"../enum/ModelManagerEvents":33,"../enum/PanoRendererEvents":35,"../exception/BasicException":55,"../util/common":185,events:202,three:217}],141:[function(r,l,e){(function(e){"use strict";function o(){n.call(this)}var a=r("../objects/Room"),t=(r("../settings"),r("../util/logger")),i=(r("../util/transitions"),r("../util/easing"),r("../util/common")),n=r("../util/IndexedCollection"),s=r("./Chunks");new t(e),i.inherit(o,n),o.prototype.getIndex=function(e){return e.roomId},o.prototype.calcRoomBoundaries=function(){this.forEach(function(e){e.calcBoundaries()})},o.prototype.createFromChunks=function(e){var n={floorId:-1,roomId:-1},r={};e.forEach(function(e){s.parseIdsFromChunkName(e.name,n);var t=r[n.roomId];if(!t){var i=o.generateRoomId(n.floorId,n.roomId);t=new a(n.floorId,i),this.add(t),r[n.roomId]=t}t.addChunk(e)}.bind(this)),this.calcRoomBoundaries()},o.generateRoomId=function(e,t){return e+"_"+t},l.exports=o}).call(this,"/js/model/RoomCollection.js")},{"../objects/Room":150,"../settings":166,"../util/IndexedCollection":175,"../util/common":185,"../util/easing":186,"../util/logger":189,"../util/transitions":195,"./Chunks":135}],142:[function(e,t,i){"use strict";function n(e,t,i){var n=(e=e.clone()).size(),r=new o.BoxGeometry(n.x,n.y,n.z);r.boundingBox=e,o.Mesh.call(this,r,t),this.position.copy(e.center()),this.frustumCulled=!1,i&&this.add(new o.WireframeHelper(this))}var o=e("three");(n.prototype=Object.create(o.Mesh.prototype)).constructor=n,t.exports=n},{three:217}],143:[function(l,c,e){(function(e){"use strict";function t(e){s.time("Computing a nice bounding cubemap");var t=new r({side:i.BackSide,transparent:!0});t.uniforms.modelAlpha.value=0,t.uniforms.opacity.value=1-o.modelAlpha,this.renderOrder=a.boundingSkybox,n.call(this,e,t),s.timeEnd("Computing a nice bounding cubemap")}var i=l("three"),n=(l("../enum/Viewmode"),l("../shaders"),l("./BoundingMesh")),r=l("../materials/ModelTextureMaterial"),o=l("../settings"),a=l("../enum/RenderOrder"),s=new(l("../util/logger"))(e);(t.prototype=Object.create(n.prototype)).constructor=t,c.exports=t}).call(this,"/js/objects/BoundingTextureSkybox.js")},{"../enum/RenderOrder":42,"../enum/Viewmode":51,"../materials/ModelTextureMaterial":118,"../settings":166,"../shaders":167,"../util/logger":189,"./BoundingMesh":142,three:217}],144:[function(e,t,i){"use strict";function n(e){this.materialInside=new s({side:r.DoubleSide});var t=r.UniformsUtils.clone(o.modelOutside.uniforms);this.materialOutside=new r.RawShaderMaterial({fragmentShader:o.modelOutside.fragmentShader,vertexShader:o.modelOutside.vertexShader,uniforms:t,side:r.FrontSide,name:"chunkOut"}),r.Mesh.call(this,e.geometry,this.materialInside),this.name=e.name||"",this.textureName=e.textureName,this.meshUrl=e.meshUrl}var r=e("three"),o=e("../shaders"),a=e("../enum/Viewmode"),s=e("../materials/ModelTextureMaterial");(n.prototype=Object.create(r.Mesh.prototype)).setTextureMap=function(e){this.materialInside.uniforms.map.value=e,this.materialOutside.uniforms.map.value=e},n.prototype.setMode=function(e){var t=e===a.DOLLHOUSE||e===a.FLOORPLAN?this.materialOutside:this.materialInside;t.side=e===a.PANORAMA?r.DoubleSide:r.FrontSide,t.transparent=this.material.transparent,t.uniforms.opacity.value=this.material.uniforms.opacity.value,this.material=t},t.exports=n},{"../enum/Viewmode":51,"../materials/ModelTextureMaterial":118,"../shaders":167,three:217}],145:[function(e,t,i){"use strict";function n(e){this.chunksize=e||10,this.chunks={},this.boundingBoxes={},this.children=[],this.offset=new m.Vector3(0,.5,0),this.material=new m.MeshBasicMaterial({color:16777215*Math.random(),side:m.DoubleSide})}var m=e("three");e("../enum/Viewmode"),n.prototype.add=function(e){var t,i,n,r,o,a,s,l,c,h,u=e.attributes;u?(t=u.position.array,i=void 0!==e.index?e.index.array:void 0):(t=e.vertices,e.faces);var d=new m.Vector3;if(i)for(n=0,r=i.length;n=e&&(i.resolve(e,t),this.resetWaitDeferred(e))}.bind(this)),this.on(f.LoadFailed,function(e){var t=this.getWaitDeferred(e).deferred;t&&"pending"===t.state()&&this.highestPartialTileRenderOpCompleted>=e&&(t.reject(e),this.resetWaitDeferred(e))}.bind(this)),this.on(f.TileLoaded,function(e,t,i){var n=this.getWaitDeferred(e).deferred;if(n&&"pending"===n.state()){n.notify(e,t,i);var r=w[this.id+":"+e];r&&(r.tileCount++,r.tileCount===r.targetTileCount&&(this.onPanoRendered(this.id,e,i,!0),n.resolve(e,i),this.resetWaitDeferred(e)))}}.bind(this)))}this.tileDownloader.clearForceQueue(),this.tileDownloader.forceQueueTilesForPano(this,e,t,l,c,o),this.tiledPanoRenderTarget=this.panoRenderer.activateTiledPano(this,this.qualityManager.getMaxNavPanoSize(),n),this.panoRenderer.renderPanoTiles(this.id,t,r)}return s.promise()}),r.prototype.onUploadAttemptedForAllTiles=function(e,t,i){e===this.id&&t===this.qualityManager.getPanoSize(m.BASE)&&this.shouldRedrawOnBaseLoaded&&(this.shouldRedrawOnBaseLoaded=!1,this.panoRenderer.resetRenderStatus(this.id,!0,!1),this.panoRenderer.renderPanoTiles(this.id,null,!0,!0))},r.prototype.onTileRendered=function(e,t,i,n){e===this.id&&this.emit(f.TileLoaded,t,i,n)},r.prototype.onPanoRendered=function(e,t,i,n){e===this.id&&(this.minimumTiledPanoLoaded=!0,this.updateSkyboxForZoomLevel(),t>this.highestPartialTileRenderOpCompleted&&(this.highestPartialTileRenderOpCompleted=t),!n&&t>this.highestFullTileRenderOpCompleted&&(this.highestFullTileRenderOpCompleted=t),this.emit("load",t),this.model.emit("load",this),this.emit(f.LoadComplete,t,i))},r.prototype.setZoomed=function(e){this.zoomed=e,this.updateSkyboxForZoomLevel()},r.prototype.ensureSkyboxReadyForRender=function(){this.tiled||(this.solidSkybox.loaded||(this.solidSkybox.needsUpdate=!0),this.solidSkybox.loaded=!0)},r.prototype.updateSkyboxForZoomLevel=function(){this.minimumTiledPanoLoaded&&this.model.updateProjectedPanos()},r.prototype.getSkyboxTexture=function(){return this.tiled?this.minimumTiledPanoLoaded?this.zoomed?this.panoRenderer.zoomRenderTarget.texture:this.tiledPanoRenderTarget.texture:null:this.solidSkybox},r.prototype.onTileRenderFail=function(e,t,i){e===this.id&&this.emit(f.LoadFailed,t)},r.prototype.isLoaded=function(e){if(this.tiled){if(e&&"string"==typeof e)throw new y("Wrong panoSize given to Panorama.isLoaded(); a tiled pano uses PanoSizeClass");return!!this.minimumTiledPanoLoaded&&(!e||this.highestPartialTileRenderOpCompleted>=e)}if(e&&"number"==typeof e)throw new y("Wrong panoSize given to Panorama.isLoaded(); a non-tiled pano uses high/low.");return!!this.solidSkybox.high||e in this.solidSkybox},r.prototype.loadCube=function(a){if(this.isLoaded(a))return I.info("Skipping load of pano, already loaded"),$.when();this.emit("loading",a),this.model.emit("loading",this);var n=p.getCubemapUrls(this.model.urls,this.id,a),e=n.filter(function(e){return!e});"low"===a&&0a.panoramaNeighbourMaxDistance)return this.model.panos.setNeighbour(this,e,!1),void r.raycastsSkipped++;var i=e.position.clone().sub(this.position).normalize(),n=new s.Raycaster(this.position,i.clone(),0,t).intersectObjects(this.model.colliders);r.raycastsDone++,this.model.panos.setNeighbour(this,e,0===n.length),a.showNeighbourRaycasts&&(n.length?this.floor.model.add(new s.ArrowHelper(i,this.position,n[0].distance,16711680)):this.floor.model.add(new s.ArrowHelper(i,this.position,t,16777215,0,0)))}}.bind(this)),this.model.panos.neighbourMap[this.id]},r.prototype.worldPosition=function(){return this.position},r.prototype.addTextSprite=function(e,t){this.removeTextSprite();var i=document.createElement("canvas"),n=i.getContext("2d");i.width=256,i.height=256;n.font="bold 60px Arial",n.fillStyle="white";var r=n.measureText(e).width;n.fillText(e,(i.width-r)/2,(i.height+60)/2);var o=new s.Texture(i);o.needsUpdate=!0;var a=new s.SpriteMaterial({map:o,color:t||16428055});this.text3d=new s.Sprite(a),this.text3d.position.copy(this.skyboxMesh.position),this.floor.add(this.text3d)},r.prototype.removeTextSprite=function(){this.text3d&&(this.floor.remove(this.text3d),this.text3d=null)},r.prototype.isAligned=function(){return this.alignmentType===c.ALIGNED},r.filters={inDirection:function(t,i,n){return function(e){return e.position.clone().sub(t).normalize().dot(i)>n}},inFloorDirection:function(t,i,n){return function(e){return e.floorPosition.clone().sub(t).normalize().dot(i)>n}},inPanoDirection:function(n,r,o){return o=a.navigation.panoScores?a.navigation.filterStrictness:o,function(e){var t=e.floorPosition.clone().sub(n).normalize(),i=e.position.clone().sub(n).normalize();return t.dot(r)>o||i.dot(r)>o}},atFloor:function(t){return function(e){return!t||e.floor===t}},not:function(t){return function(e){return e!==t}},notIn:function(t){return function(e){return-1===t.indexOf(e)}},isLoaded:function(){return function(e){return e.isLoaded()}},isNotLoaded:function(){return function(e){return!e.isLoaded()}},isCloseEnoughTo:function(t,i){return function(e){return t.distanceTo(e.floorPosition)i}},isNotBehindNormal:function(t,i){var n=new s.Vector3;return i=i.clone(),function(e){return 0t}},isOnVisibleFloor:function(){return function(e){return!e.floor.hidden}},isPanoAligned:function(){return function(e){return e.isAligned()}}},r.sortFunctions={distanceToPoint:function(i){return function(e,t){return e.position.distanceTo(i)-t.position.distanceTo(i)}},floorDistanceToPoint:function(i){return function(e,t){return e.floorPosition.distanceTo(i)-t.floorPosition.distanceTo(i)}},choose:function(i){return function(e,t){return i.id===e.id?-1:i.id===t.id?1:0}}},r.scoreFunctions={distance:function(t,i){return i=i||a.navigation.distanceFactor,function(e){return t?t.position.distanceTo(e.position)*i:0}},distanceSquared:function(t,i){return i=i||a.navigation.distanceFactor,function(e){return t?t.position.distanceToSquared(e.position)*i:0}},direction:function(t,i){return function(e){return e.position.clone().sub(t).normalize().dot(i)*a.navigation.directionFactor}},angle:function(t,i){return function(e){return e.position.clone().sub(t).normalize().angleTo(i)*a.navigation.angleFactor}},inFieldOfView:function(t,i){return function(e){return.75o.hideReticuleTimeout&&!this.hidden&&this.hide()},n.prototype.updatePosition=function(e,t){if(!this.hidden){if(!t)return this.hide();var i=t.point,n=e.distanceTo(i),r=1+.01*n;n<1&&(r-=1-n),this.show(),this.scale.set(r,r,r),this.direction=this.direction.multiplyScalar(.8),this.direction.add(t.face.normal.clone().multiplyScalar(.2)),this.position.copy(i).add(t.face.normal.clone().multiplyScalar(.01)),this.lookAt(this.position.clone().add(this.direction))}},n.prototype.writeAstag=function(){var e=Math.floor(4294967296*(1+Math.random())).toString(16)+Math.floor(16*(1+Math.random())).toString(16),t=new Date;this.tagCount=void 0===this.tagCount?1:this.tagCount+1;var i={enabled:!0,version:"0",created:t.toISOString(),created_by:"APITest",position:this.position.clone(),stem:{enabled:o.tags.pole.enabled,direction:this.direction.multiplyScalar(o.tags.pole.height)},label:"tag "+this.tagCount,description:"Description "+e,floor:function(e){if(e.currentFloor){var t=e.floors.indexOf(e.currentFloor);return-1n){var s=(n-t[a-1])/(t[a]-t[a-1]);return r.copy(e[a]),r.sub(e[a-1]),r.multiplyScalar(s),r.add(e[a-1]),r}}else r.copy(e[e.length-1]);return r},t.prototype.pathHeight=function(){return this.player.mode!==O.FLOORPLAN?D.path.height:D.path.outsideHeight},t.prototype.createBunnyObj=function(e){this.bunnyObj||(this.bunnyObj=new P.AxisHelper(.1),this.bunnyObj.visible=D.warp.showBunny),this.bunnyObj.parent&&this.bunnyObj.parent.remove(bunnyObj),e.add(this.bunnyObj)},t.prototype.createCpm=function(e){if(!this.currentPanoMarker){var t=this.makeWaypointObj(I.pathEnd,"Current");t.material.uniforms.opacity.value=0,this.currentPanoMarker={mesh:t,placed:!1}}this.currentPanoMarker.mesh.parent&&this.currentPanoMarker.mesh.parent.remove(this.currentPanoMarker.mesh),this.placeCpm(),this.currentPanoMarker.mesh.parent||e.add(this.currentPanoMarker.mesh)},t.prototype.placeCpm=function(){if(D.path.mapGuides&&this.player.currentPano&&this.player.currentPano.isAligned()){var e=this.player.currentPano.floor;this.currentPanoMarker.mesh.parent!==this.player.currentPano.floor&&(this.currentPanoMarker.mesh.parent&&this.currentPanoMarker.mesh.parent.remove(this.currentPanoMarker.mesh),e.add(this.currentPanoMarker.mesh)),this.currentPanoMarker.mesh.position.copy(this.player.currentPano.floorPosition).sub(e.position),this.currentPanoMarker.mesh.position.y+=this.pathHeight(),this.currentPanoMarker.placed=!0}else this.popOutCpm()},t.prototype.fadeInCpm=function(e){this.player.mode===O.PANORAMA&&this.player.currentPano&&!this.player.currentPano.isAligned()||D.path.mapGuides&&this.currentPanoMarker.placed&&V.start(F.property(this.currentPanoMarker.mesh.material.uniforms.opacity,"value",1),e)},t.prototype.fadeOutCpm=function(e){V.start(F.property(this.currentPanoMarker.mesh.material.uniforms.opacity,"value",0),e)},t.prototype.popInCpm=function(){D.path.mapGuides&&this.currentPanoMarker.placed&&this.fadeInCpm(2)},t.prototype.popOutCpm=function(){this.fadeOutCpm(2)},t.prototype.brushPrefs={linewidth:7,strokeWidth:15,cvSegments:48,paveStep:.1,paveWidth:.2,lookBlendDist:3,maxTurn:P.Math.degToRad(2)},t.prototype.panoPathDistance=function(e){var t=this.model.panos;if(!e||e.length<2)return 0;for(var i=[],n=0;n Only one hero location is available."),this.model.getHeroDescriptorByIndex(0);var i=this.model.getHeroDescriptorByIndex(e);if(i){var n=i.isPano()?i.panoId:i.cameraMode;H.debug('ShowPath.getHeroDescriptorByHeroIndex() -> New brush/warp destination: "'+n+'" out of '+t+" choices.")}return i},t.prototype.getHeroDescriptorByPano=function(e){return this.model.panos.get(e.id)?this.getHeroDescriptorByPanoId(e.id):null},t.prototype.getHeroDescriptorByPanoId=function(e){var t=this.getHeroIndexFromPanoId(e);return this.getHeroDescriptorByHeroIndex(t)},t.prototype.getHeroIndexFromPanoId=function(e){for(var t=0;tthis.longestStep&&(this.longestStep=a,H.debug("path contains "+a+" meter segment")),{floor:s,camera:l,color:c}},t.prototype.makeFloorCurves=function(e,t,i){var n=this.player.mode===O.PANORAMA?D.path.waypointIndoorRadius:D.path.waypointRadius,r=this.pointPathDistance(e)-2*n,o=e.slice(0),a=o[1].clone().sub(o[0]);a.y=0,a.normalize().multiplyScalar(n),o[0]=(new P.Vector3).copy(o[0]).add(a),(a=o[o.length-2].clone().sub(o[o.length-1])).y=0,a.normalize().multiplyScalar(n),o[o.length-1]=(new P.Vector3).copy(o[o.length-1]).add(a);var s=new P.CatmullRomCurve3(o),l=Math.floor(r/i);l=4*Math.floor(l/4),l=Math.max(4,l);for(var c,h,u=s.getSpacedPoints(l),d=[],p=new P.Vector3,f=0;fD.warp.minRotation?V.start(d,e,t,0,B[D.warp.movementEasing]):(H.info("Aim angle only is "+a.toPrecision(3)+" degrees, skipping explicit re-aim"),void(t&&t()))},t.prototype._warpBendAim=function(e,t,i,n){var r=n||0,o=this.playerControls.cameras[O.PANORAMA],a=new P.Euler(0,0,0,D.warp.eOrder).setFromQuaternion(this.warpDestHeroLoc.quaternion,D.warp.eOrder),s=(new P.Euler).setFromQuaternion(o.quaternion,D.warp.eOrder),l=new P.Euler(a.x-s.x,a.y-s.y,a.z-s.z,D.warp.eOrder);l.y=N.constrainedTurn(l.y);var c=Math.min(P.Math.degToRad(D.warp.softBendTilt),Math.abs(l.x));l.x=c*Math.sign(l.x),c=Math.min(P.Math.degToRad(Math.max(0,D.warp.softBendAngle)),c),this.burnsDir=Math.sign(l.y),c*=Math.sign(l.y),l.y=c;var h=new P.Euler(0,0,0,D.warp.eOrder),u=new P.Vector3,d=function(e,t){if(e<.5)h.x=s.x+e*l.x,h.y=s.y+e*l.y,h.z=s.z+e*l.z;else{var i=(1-e)*D.warp.softBendEnd;h.x=a.x-i*l.x,h.y=a.y-i*l.y,h.z=a.z-i*l.z}u.set(0,0,-1),u.applyEuler(h),u.add(o.position),o.controls.lookAt(u),o.controls.lookVector.copy(u),o.lookAt(u)}.bind(this);return V.start(d,t,i,r,B[D.warp.movementEasing])},t.prototype._warpStepCameraAim=function(e,t,i){var n=this.playerControls.cameras[O.PANORAMA],r=new P.Euler(0,0,0,D.warp.eOrder).setFromQuaternion(this.warpDestHeroLoc.quaternion,D.warp.eOrder),o=(new P.Euler).setFromQuaternion(n.quaternion,D.warp.eOrder),a=new P.Euler(r.x-o.x,r.y-o.y,r.z-o.z,D.warp.eOrder);a.y=N.constrainedTurn(a.y),this.burnsDir=Math.sign(a.y);var s=new P.Euler(0,0,0,D.warp.eOrder),l=new P.Vector3,c=function(e,t){e<.5?s.copy(o):s.copy(r),l.set(0,0,-1),l.applyEuler(s),l.add(n.position),n.controls.lookAt(l),n.controls.lookVector.copy(l),n.lookAt(l)}.bind(this);return V.start(c,t,i,0,B[D.warp.movementEasing])},t.prototype.setBurnsDir=function(){var e=this.playerControls.cameras[O.PANORAMA],t=new P.Euler(0,0,0,D.warp.eOrder).setFromQuaternion(this.warpDestHeroLoc.quaternion,D.warp.eOrder),i=(new P.Euler).setFromQuaternion(e.quaternion,D.warp.eOrder),n=new P.Euler(t.x-i.x,t.y-i.y,t.z-i.z,D.warp.eOrder);n.y=N.constrainedTurn(n.y),this.burnsDir=Math.sign(n.y)},t.prototype.stepWarpPath=function(e,t){var i=this.playerControls.cameras[O.PANORAMA];if(!this.warpPathPoints)return i.position.copy(this.warpDestPano.position),!0;var n=this.warpPathPoints[0],r=this.warpDestPano.position;if(null!==this.nodes&&1>>> Walkthrough interupted at t="+e),!0;if(!this.warpPathPoints)return!0;var i=this.warpLength*e,n=P.Math.smoothstep(i,0,this.brushPrefs.lookBlendDist),r=P.Math.smoothstep(i,this.warpLength-this.brushPrefs.lookBlendDist,this.warpLength);D.warp.matchCam&&(n*=1-r),m.lookAt(g,l,U.UP),u.setFromRotationMatrix(m,D.warp.eOrder),p.setFromQuaternion(h.quaternion,D.warp.eOrder),v.set(u.x-p.x,u.y-p.y,u.z-p.z,D.warp.eOrder),v.y=N.constrainedTurn(v.y),u.x=p.x+n*v.x,u.y=p.y+n*v.y,u.z=p.z+n*v.z,v.set(u.x-f.x,u.y-f.y,u.z-f.z,D.warp.eOrder),v.y=N.constrainedTurn(v.y);var o=P.Math.degToRad(D.warp.maxTurnPerSec)*t/1e3;v.y=Math.sign(v.y)*Math.min(o,Math.abs(v.y)),f.x=f.x+v.x*D.warp.turnFriction,f.y=f.y+v.y*D.warp.turnFriction,f.z=f.z+v.z*D.warp.turnFriction,f.x=Math.max(P.Math.degToRad(D.warp.minDownAngle),f.x);var a=l.clone().sub(g).normalize();if(Ci.maxWeight&&(n(i.maxWeight/t.size,"jpeg"),t=I(e.src)),(o=o||new Image).base64Src=e.src,o.src=window.URL.createObjectURL(t)}var o,t=Math.max(r.width,r.height);return"png"!=i.toType&&("jpeg"==i.oldType?(t>i.maxSize&&n(i.maxSize/t,"jpeg"),e()):"png"==i.oldType&&i.maxWeight&&i.weight>i.maxWeight&&(n(t>i.maxSize?i.maxSize/t:1,"jpeg"),e())),o||r}(this,{maxSize:g_snapShotWidth,oldType:"jpeg"});e.src.replace(function(e){return"image/"+(e=e.toLowerCase().replace(/jpg/i,"jpeg")).match(/png|jpeg|bmp|gif/)[0]}("image/jpeg"),"image/octet-stream");var t="snap"+(new Date).getTime();!function(e,t){var i=document.createElementNS("http://www.w3.org/1999/xhtml","a");i.href=e,i.download=t;var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),i.dispatchEvent(n)}(e.src,t+".jpg"),n+=',\r\t"thumbnail_signed_src":"'+t+'.jpg",',n+='\r\t"sid":"'+t+'",',n+='\r\t"name":"'+t+'"\r}',logData(n)}}})},t.prototype.getSnapAngleInfo=function(){var e={},t='"metadata":{',i=this.camera.quaternion.clone();switch(this.mode){case"panorama":e.scan_id=this.currentPano.id,t+='"scan_id":"'+this.currentPano.id+'",';break;case"floorplan":e.camera_mode=1,(i=(new B.Quaternion).setFromAxisAngle(new B.Vector3(0,1,0),B.Math.degToRad(90))).multiply(this.camera.quaternion),t+='"camera_mode":1,',t+='"ortho_zoom":'+U.toPrecision(this.cameraControls.activeControl.currentScale,4)+",";break;case"dollhouse":e.camera_mode=2,t+='"camera_mode":2,'}var n=new B.Quaternion(i.x,i.y,i.z,i.w);return n.multiply(new B.Quaternion(Math.sqrt(2)/2,Math.sqrt(2)/2,0,0).conjugate()),n.x*=-1,n.w*=-1,e.camera_position=U.toPrecision(this.camera.position.toArray(),4),e.camera_quaternion=U.toPrecision(n.toArray(),4),e.zoom=this.zoomLevel,t+='"camera_position":['+e.camera_position+'],"camera_quaternion":['+e.camera_quaternion+'], "zoom":'+e.zoom+"}"},t.prototype.closePopup=function(){if(g_currentHot){g_currentHot=null,document.getElementById("popup").style.display="none",document.querySelector(".popup-content").removeChild(document.getElementById("id1")),$("#popup iframe:last").remove();document.getElementById("bgaudio");return g_bgAudio&&g_bgAudio.paused&&0!=g_bgAudio.readyState&&1===g_play&&g_bgAudio.play(),!1}},t.prototype.setupCustomProperties=function(e){var i=e||V.PANORAMA;Object.defineProperty(this,"mode",{get:function(){return i},set:function(e){var t=i;i=e,this.onModeUpdated(t,i)}})},t.prototype.isInMode=function(){for(var e=0;ek.input.moveToleranceNDC&&(this.mouseCouldBeClickToMove=!1,this.couldBeLongTap=!1,clearTimeout(this.mouseDownTimer)),this.mouseLastMoveTime=Date.now(),this.reticule.move(e,t,i)},t.prototype.handleInputEnd=function(e,t,i){if(this.isTouchEvent=i,this.mouseDown=!1,this.cameraControls.controls[V.PANORAMA].emit("interaction.direct"),!i&&this.couldBeLongTap)return!0;if(this.handleLongTap())return!0;if(this.mouseCouldBeClickToMove){if(this.flying)return this.path.activeTransType===R.WALK&&this.emit(W.WarpInterruptedWithFlyTo,this.path.activeTransType),!0;if(this.checkHotClick())return!0;if(this.cameraControls.activeControl&&this.cameraControls.activeControl.emit(u.Move,this.isTouchEvent?"touch":"mouse"),this.history.invalidate(),this.intersect)return this.flyToPanoClosestToMouse();if(this.mode===V.PANORAMA){var n=this.closestPanoInDirection(this.getMouseDirection());return n?this.flyToPano({pano:n}):this.bump(this.getMouseDirection())}}this.intersect&&this.closestPano&&this.closestPano.hoverOff(this.mode)},t.prototype.handleLongTap=function(){if(this.couldBeLongTap&&(!this.isPanoHover||this.mode!==V.PANORAMA))return this.cameraControls.activeControl&&this.cameraControls.activeControl.emit(u.LongTap,"touch"),!0},t.prototype.checktagClick=function(){if(this.tagManager.intersectTag){var e=this.isTouchEvent,t=this.tagManager.clickedOnTag(e,this);return e||t||G.cancelById(q.LookTransition),!0}if(this.tagManager.activeTag)return this.tagManager.dismissActiveTag(),!1},t.prototype.rankedtagInDirection=function(e,t){return this.tagManager.rankedtagInDirection(e,this.position,this.camera,t)},t.prototype.start=function(e){var t=e.mode,i=e.pano,n=e.position,r=e.quaternion,o=e.tag,a=e.quickstart,s=$.Deferred();this.updateModelDependentData(),this.updateFromControls(),this.findDefaultViews();var l=this.is360View(t,i);return!this.model.outsideAllowed()||l||a?this.startInside(i,n,r,o,s):this.startOutside(e,s),s.done(function(e){this.emit(W.Ready,l,e,o)}.bind(this)),s.promise()},t.prototype.startOutside=function(e,t){var i=e.mode,n=e.pano,r=e.position,o=e.quaternion,a=e.zoom,s=e.floorVisibility,l=e.tag;this.emit(W.StartOutside,k[i].transitionTime),this.isOutsideMode(i)?(this.model.warpDestFloors(s,!0),G.cancelById(q.FlyToViewFloor),i===V.FLOORPLAN?this.floorplanMode(r,o,a):this.dollhouseMode(r,o),t.resolve(!1)):this.startInsideWithFlyin(n,r,o,l,t)},t.prototype.startInside=function(e,t,i,n,r){r=r||$.Deferred();var o=(this.currentPano=e)&&!e.isAligned();if(t=o?e.position:t||e.position,i=i||e.quaternion,e){var a=this.startInside.bind(this,e,t,i,n,r);if(this.checkAndWaitForPanoLoad(e,"high","low",this.basePanoSize,a))return}return this.mode=V.PANORAMA,e.floor.enter(this.mode),this.emit(W.PanoChosen,this.currentPano,this.currentPano),this.switchCameraMode(this.mode,i),this.emit(W.StartInside,o),r.resolve(!0),r},t.prototype.startInsideWithFlyin=function(i,e,n,t,r){if(r=r||$.Deferred(),this.dollhouseMode(),!i)return Y.warn("Player.startInsideWithFlyin() -> targetPano is invalid."),r.resolve(!1),r;e=e||i.position;var o=n||this.cameraControls.activeControl.camera.quaternion,a=i.position;return this.fitDollhouse(a,e,o),setTimeout(function(e){this.cameraControls.activeControl&&(this.cameraControls.activeControl.maxDistance=e);var t={mode:V.PANORAMA,pano:i,quaternion:n,callback:function(){this.emit(W.FlyinFinished),r.resolve(!0)}.bind(this)};this.flyToNewMode(t)}.bind(this,this.cameraControls.activeControl.maxDistance),k.startupFlyinDelay),r},t.prototype.checkAndWaitForPanoLoad=(Z={},K={},function(t,e,i,n,r,o,a,s,l,c){if(function(){for(var e in Z)if(Z.hasOwnProperty(e)&&Z[e]&&performance.now()-K[e]<5e3)return!0;return!1}())return!0;var h=function(e,t,i){j.delayOneFrame(function(){Z[e]=!1,r&&r(t,i)}.bind(this))}.bind(this,t.id),u=function(e,t){j.delayOneFrame(function(){Z[e]=!1,o&&o(t)}.bind(this))}.bind(this,t.id);try{return null!=s||(s=!0),this.model.supportsTiles?Z[t.id]=this.checkAndWaitForTiledPanoLoad(t,n,h,u,a,s,l,c):Z[t.id]=this.checkAndWaitForWholePanoLoad(t,e,i,h,s),Z[t.id]&&(K[t.id]=performance.now()),Z[t.id]}catch(e){throw Z[t.id]=!1,K[t.id]=performance.now()-5e3,e}}),t.prototype.checkAndWaitForWholePanoLoad=function(e,t,i,n,r){if(!e)throw new p("Player.checkAndWaitForWholePanoLoad() -> Cannot load texture for null pano.");return r&&this.model.waitForLoad(e,function(){return e.isLoaded(i)}),!e.isLoaded(t)&&(e.loadCube(t).done(n),!0)},t.prototype.checkAndWaitForTiledPanoLoad=(X=new B.Vector3,function(e,t,i,n,r,o,a,s){if(!e)throw new p("Player.checkAndWaitForTiledPanoLoad() -> Cannot load texture for null pano.");return X.copy(T.FORWARD),this.getDirection(X),!e.isLoaded(t)&&(o&&this.model.waitForLoad(e,function(){return e.isLoaded(t)}),e.loadTiledPano(t,X,null,a,s).done(function(e,t){i&&i(e,t)}.bind(this)).fail(function(e){n&&n(e)}.bind(this)).progress(function(e,t,i){r&&r(e,t,i)}.bind(this)),!0)}),t.prototype.switchCameraMode=function(e,t){var i=this.cameraControls.controls[e],n=i.camera;switch(e){case V.PANORAMA:n.position.copy(this.currentPano.position);var r=t?T.FORWARD.clone().applyQuaternion(t):this.getDirection().setY(0).normalize();i.lookAt(r.add(n.position));break;case V.DOLLHOUSE:var o=this.position.clone();this.mode===V.PANORAMA?o.add(new B.Vector3(0,6,0)).add(this.getDirection().multiplyScalar(-10)):o.add(T.DOWN.clone().applyQuaternion(this.quaternion).multiplyScalar(6)).setY(6),n.position.copy(o),i.target.copy(this.target.clone().setY(this.model.center.y));break;case V.FLOORPLAN:n.position.copy(this.model.center).setY(k.floorplan.cameraHeight),i.target.copy(this.model.center).setY(0),i.zoomToContain(this.model.size),i.rotateToView(this.model.size,this.getDirection())}i.update(0)},t.prototype.update=(new B.Vector3,N={},F=[],function(e){this.updatePersistentZooming(e),this.updateFromControls(e),this.getCurrentNodePanos(F),this.hasChanged(N)&&(this.lastChangeTime=Date.now(),!this.mouseDown&&this.containsMouse&&this.updateIntersect(),this.emit(W.ViewChanged)),this.model.supportsTiles&&(this.updateTileDownloader(F),this.updatePanoRenderer(F)),this.updatePreRendering(F),this.reticule.update(),this.path.update(),this.spider.update(),this.cachedPanoCandidates&&k.navigation.panoScores&&this.model.panos.showPanoScores(this.cachedPanoCandidates),this.updateControlLocks(),this.model.supportsTiles&&this.updateZoomPano()}),t.prototype.updatePersistentZooming=function(e){1===this.zooming?this.zoomBy(1+this.zoomSpeed*e):-1===this.zooming&&this.zoomBy(1-this.zoomSpeed*e)},t.prototype.updateControlLocks=function(){this.currentPano&&this.model.supportsTiles&&(this.cameraControls.controls[V.PANORAMA].locked=!this.currentPano.highestFullTileRenderOpCompleted&&this.currentPano.lockUntilRenderingComplete)},t.prototype.updatePanoRenderer=(D=new B.Vector3,function(e){var t=this.nextPano||this.currentPano;this.panoRenderer.hasQueuedTiles()&&t&&(D.copy(T.FORWARD),this.getDirection(D),this.panoRenderer.updateDirection(D))}),t.prototype.cleanupInactivePanos=(O=[],L=[],function(){O.length=0,O.push(this.currentPano),this.nextPano&&O.push(this.nextPano);for(var e=L.length=0;e Cannot fly when warping"),t&&t(),!1;if(this.updateLastView(),this.mode!==V.PANORAMA)return r&&(i=(new B.Quaternion).setFromUnitVectors(T.FORWARD,r.sub(n.position).normalize())),void this.flyToNewMode({mode:V.PANORAMA,pano:n,duration:o,quaternion:i,callback:t});if(!n||(h=x.deepExtend(e),u=function(){j.delayOneFrame(function(){this.flyToPano(h,t)}.bind(this))}.bind(this),!this.checkAndWaitForPanoLoad(n,"high","low",this.basePanoSize,u))){var d=function(e){t&&t(e)}.bind(this);this.currentPano||(this.currentPano=n,this.path.placeCpm(),this.path.fadeOutCpm(k.path.fadeOutTime),this.spider.draw());var p=o;if("number"!=typeof o){var f=s||k.transition.flytimeMaxDistanceThreshold;p=Math.min(this.currentPano.position.distanceTo(n.position),f)*k.transition.flytimeDistanceMultiplier+k.transition.flyTime}if(.01Math.PI?b.y-=2*Math.PI:b.y<-Math.PI?b.y+=2*Math.PI:b.y,this.path.burnsDir=Math.sign(b.y);var w=new B.Euler(0,0,0,k.warp.eOrder),T=new B.Vector3;G.start(H.vector(this.cameraControls.controls[V.DOLLHOUSE].target,d),u,null,k.flydown.movementDelay,z[k.flydown.movementEasing],null,q.FlyToSameMode),G.start(function(e,t){w.x=E.x+e*b.x,w.y=E.y+e*b.y,w.z=E.z+e*b.z;var i=_+e*(C-_);T.set(0,0,i).applyEuler(w).add(this.cameraControls.controls[V.DOLLHOUSE].target),this.cameraControls.cameras[V.DOLLHOUSE].position.copy(T).add(this.model.position)}.bind(this),u,null,k.flydown.movementDelay,z[k.flydown.movementEasing],null,q.FlyToSameMode),G.start(function(e,t){this.cameraControls.controls[V.DOLLHOUSE].update(),this.quaternion.copy(this.cameraControls.cameras[V.DOLLHOUSE].quaternion),this.position.copy(this.cameraControls.cameras[V.DOLLHOUSE].position)}.bind(this),u,null,k.flydown.movementDelay,z[k.flydown.movementEasing],null,q.FlyToSameMode)}else Y.warn("invalid warp destination in flyToSameMode()? ignore it then");else if(this.path.placeCpm(),this.path.fadeInCpm(k.path.fadeInTime),i){this.model.warpDestFloors(i.floorVisibility);var x=this.cameraControls.cameras[V.FLOORPLAN],S=this.cameraControls.controls[V.FLOORPLAN],M=S.target.clone(),R=i.position.clone().sub(M),P=x.position.clone().sub(S.target).length(),O=new B.Vector3(-1,0,0).applyQuaternion(i.quaternion).normalize(),L=Math.atan2(S.offset.x,S.offset.z),D=Math.atan2(O.x,O.z),N=S.absoluteScale,F=U.convertWorkshopOrthoZoom(i.orthoZoom);G.start(function(e,t){S.target.copy(R).multiplyScalar(e).add(M);var i=L+(D-L)*e;S.offset.x=P*Math.sin(i),S.offset.z=P*Math.cos(i),x.position.copy(S.target).add(S.offset),S.absoluteScale=N+e*(F-N),S.update(),this.quaternion.copy(x.quaternion),this.position.copy(x.position),this.target.copy(S.target),this.camera.projectionMatrix.copy(x.projectionMatrix)}.bind(this),u,null,0,z[k.flydown.movementEasing],null,q.FlyToSameMode)}else Y.info("flyToSameMode() funny floorplan view? skipping");return G.setTimeout(function(e){this.mode=e,c(),r.resolve(!0)}.bind(this,this.mode),u,q.FlyToSameMode),this.mode=V.TRANSITIONING,r.promise()}},t.prototype.flyToNewMode=function(e,t){var i=(e=e||{}).mode,n=e.pano,r=e.duration,o=e.warpDest,a=e.callback,s=e.force,l=e.quaternion;if(t=t||$.Deferred(),this.isWarping())return Y.warn("Player.flyToNewMode() -> Cannot fly when warping"),a&&a(!1),t.reject("Cannot change mode during tour transition").promise();if(this.mode===V.TRANSITIONING)return a&&a(!1),t.reject("Cannot change mode during mode transition").promise();if(i===this.mode)return s?(this.flyToSameMode(n,r,o,a).done(t.resolve.bind(t)).fail(t.reject.bind(t)),t.promise()):(a&&a(!1),t.reject("Already in "+i+" mode").promise());var c=o||!1;Y.debug("Switching mode to "+i);var h=function(){j.delayOneFrame(function(){this.flyToNewMode(e,t)}.bind(this))}.bind(this);if(n&&this.checkAndWaitForPanoLoad(n,"low","low",this.basePanoSize,h))return t.promise();if(!this.model.meshTexturesLoaded&&this.isOutsideMode(i))return Y.info("Waiting for model textures to be loaded before going out to dollhouse"),this.model.waitForLoad(this.model,function(){return this.model.meshTexturesLoaded}.bind(this)),this.model.loadMeshTextures().done(h),t.promise();this.history.invalidate(),this.updateLastView();var u=this.mode,d=this.cameraControls.cameras[i];e=x.deepExtend({},k[i],k[u+"-"+i]);var p=void 0!==r?r:e.transitionTime;this.emit(W.ModeChanging,u,i,n),n&&(this.currentPano=n),this.switchCameraMode(i,l),G.cancelById(q.LookTransition);var f=(new B.Vector3).copy(this.position);if(i===V.PANORAMA)this.emit(W.PanoChosen,n,n),setTimeout(function(){n.floor.enter(i)}.bind(this),p/2),this.path.fadeOutCpm(k.path.fadeOutTime);else if(i===V.DOLLHOUSE){if(c&&(this.model.stayPut=!0),o?(this.cameraControls.controls[V.DOLLHOUSE].resetRanges(1,!0),this.model.warpDestFloors(o.floorVisibility)):this.model.toggleAllFloors(!0),this.path.placeCpm(),this.path.fadeInCpm(k.path.fadeInTime),c){var g=new B.Vector3(this.model.center.x,0,this.model.center.z);f.set(15,10,15);var m=new B.Vector3(0,0,-1).applyQuaternion(o.quaternion),v=new B.Raycaster(o.position.clone(),m.clone(),0,1/0).intersectObjects([this.sceneIntersectionPlane]);v.length?(g.copy(v[0].point),f.copy(o.position),this.cameraControls.controls[V.DOLLHOUSE].resetRanges(.75*f.distanceTo(g),!0)):(Y.warn("Tried to restore dollhouse mode that did not intersect...",o.position,o.quaternion),this.cameraControls.controls[V.DOLLHOUSE].resetRanges(3,!0)),this.cameraControls.controls[V.DOLLHOUSE].target.copy(g),f.add(this.model.position),d.position.copy(f),this.cameraControls.controls[V.DOLLHOUSE].update()}}else if(this.path.placeCpm(),this.path.fadeInCpm(k.path.fadeInTime),o){this.model.warpDestFloors(o.floorVisibility);var y=this.cameraControls.cameras[V.FLOORPLAN],A=this.cameraControls.controls[V.FLOORPLAN],C=y.position.clone().sub(A.target),I=new B.Vector3(-1,0,0).applyQuaternion(o.quaternion).normalize(),E=Math.atan2(I.x,I.z);A.target.copy(o.position);var _=C.length();A.offset.x=_*Math.sin(E),A.offset.y=0,A.offset.z=_*Math.cos(E),y.position.copy(A.target).add(A.offset),A.target.clone().sub(d.position),d.quaternion.copy(o.quaternion),A.currentScale=U.convertWorkshopOrthoZoom(o.orthoZoom),A.absoluteScale=A.currentScale,A.update()}else this.model.currentFloor.enter(i);var b=this.currentPano,w=this.position.clone();return this.emit(W.FlyingStarted,f,w,n,this.currentPano),this.flying=!0,this.isOutsideMode(i)&&this.is360View(u,b)?(c||i!==V.DOLLHOUSE||(d.position.set(15,10,15),d.controls.target.set(this.model.center.x,0,this.model.center.z),d.controls.update()),e.blackoutStyle=P.FADEIN,p=k.show360Views.transitionTime,this.fade360View(p,d,e)):this.isOutsideMode(u)&&this.is360View(i,n)?(c&&this.switchCameraMode(i,c.quaternion),this.mode=i,this.path&&this.path.popOutCpm(),e.blackoutStyle=P.END,p=k.show360Views.transitionTime,this.fade360View(p,d,e)):(G.start(H.property(this.model,"alpha",e.modelAlpha,null),p*e.modelAlphaLength,null,e.modelAlphaDelay,null,q.FlyToNewMode),G.start(H.vector(this.position,d.position),p,null,k.flydown.movementDelay,z[k.flydown.movementEasing],null,q.FlyToNewMode),G.start(H.quaternion(this.quaternion,d.quaternion),p*e.rotationDuration,null,e.rotationDelay,z[k.flydown.rotationEasing],null,q.FlyToNewMode),G.start(H.matrix4(this.camera.projectionMatrix,d.projectionMatrix),p*e.cameraMatrixDuration,null,e.cameraMatrixDelay,e.cameraMatrixEase,null,q.FlyToNewMode),G.start(H.uniform(this.model.skybox,"opacity",e.skyboxOpacity),p*e.skyboxOpacityLength,null,e.skyboxOpacityDelay,null,q.FlyToNewMode),G.start(H.property(this.reticule.material.uniforms.opacity,"value",0),p,null,q.FlyToNewMode)),G.setTimeout(function(){this.flying=!1,u===V.PANORAMA&&i!==V.PANORAMA?this.currentPano.exit():u!==V.PANORAMA&&i===V.PANORAMA&&(this.currentPano!==b&&b.exit(),this.currentPano.enter(),this.path.placeCpm(),this.path.fadeOutCpm(k.path.fadeOutTime),this.spider.draw()),u===V.DOLLHOUSE&&this.cameraControls.controls[V.DOLLHOUSE].resetRanges(),this.mode=i,this.emit(W.FlyingEnded,f,w,this.currentPano,b),c&&u!==V.PANORAMA&&i===V.PANORAMA?this.startWarp(M.Retain,S.Retain,R.BLACK,null,null,a):(a&&a(),t.resolve())}.bind(this),p,q.FlyToNewMode),this.mode=V.TRANSITIONING,t.promise()},t.prototype.fade360View=function(e,t,i){this.tagManager.hideShowTagsForBlackoutStyle(i.blackoutStyle,e),$(this.domElement).fadeOut(.5*e,function(){this.model.skybox.material.uniforms.opacity.value=i.skyboxOpacity,this.model.alpha=i.modelAlpha,this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.camera.projectionMatrix.copy(t.projectionMatrix),$(this.domElement).fadeIn(.5*e)}.bind(this))},t.prototype.findDefaultViews=function(){this.findDefaultView(this.lastInsideView,!0),this.findDefaultView(this.last360View,!1)},t.prototype.findDefaultView=function(e,i){var t,n=this.model.heroLocations,r=this.model.panos,o=n.findIndex(function(e){if(e.cameraMode!==V.PANORAMA)return!1;var t=r.get(e.panoId);return t&&t.isAligned()===i});0<=o?(t=r.get(n[o].panoId),e.update({cameraMode:V.PANORAMA,pano:t,position:n[o].position,quaternion:n[o].quaternion})):0<=(o=r.list.findIndex(function(e){return e.isAligned()===i}))?(t=r.list[o],e.update({cameraMode:V.PANORAMA,pano:t,position:t.position})):Y.warn("There are no",i?"inside":"360º","views in this model")},t.prototype.updateLastView=function(){this.mode===V.PANORAMA&&(this.currentPano.isAligned()?this.lastInsideView:this.last360View).update({pano:this.currentPano,position:this.position,quaternion:this.quaternion})},t.prototype.goToLastView=function(e,t){var i=$.Deferred(),n=i.resolve.bind(i),r=i.reject.bind(i),o=e?this.lastInsideView:this.last360View;return this.isInMode(V.PANORAMA)&&this.currentPano.isAligned()!==e&&this.updateLastView(),this.isInMode(V.PANORAMA)?(this.path&&this.path.popOutCpm(),this.fadeToView(e,o,k.show360Views.transitionTime,t).done(n).fail(r)):this.isOutsideMode()&&this.flyToNewMode({mode:o.cameraMode,pano:o.pano,quaternion:o.quaternion,callback:t}).done(n).fail(r),i.promise()},t.prototype.fadeToView=function(e,t,i,n){var r=$.Deferred(),o=r.resolve.bind(r),a=r.reject.bind(r);if(!t.isValid()||t.cameraMode===V.PANORAMA&&!t.pano)return Y.warn("Tried to fade to an illegal view",t.cameraMode),a("Cannot go to illegal view"),r.promise();var s=(k[t.cameraMode],function(){$(this.domElement).fadeIn(.5*i),n&&n(),o()}.bind(this)),l=e?P.FADEIN:P.END;return this.tagManager.hideShowTagsForBlackoutStyle(l,i),$(this.domElement).fadeOut(.5*i,function(){this.model.fadePanoMarkers(e?k.panorama.markerOpacity:0),t.cameraMode===V.PANORAMA?this.flyToPano({pano:t.pano,lookAtPoint:T.FORWARD.clone().applyQuaternion(t.quaternion).add(t.pano.position),duration:0},s):this.flyToNewMode({mode:t.cameraMode,quaternion:t.quaternion,duration:0,callback:s})}.bind(this)),r.promise()},t.prototype.startWarp=function(e,t,i,n,r,o){if(this.cameraControls.activeControl&&(this.cameraControls.activeControl.enabled=!1),this.flying)return Y.warn("Player.startWarp() -> Cannot warp when flying"),o&&o(),!1;null!=e||(e=M.Show),this.history.invalidate(),e!==M.Retain?this.path.brushToWarpPano(i,R.BLACK)||(i=R.BLACK):i=this.path.upcomingTransType;var a=this.path.warpDestPano&&!this.path.warpDestPano.isAligned();return this.emit(W.WarpStarted,a,i,n,r),n=n||P.MIDDLE,this.path.warpToPano(i,n,r,function(){t===S.Slow?this.path.discardSlow():t===S.Standard&&this.path.discardPathObject(),this.emit(W.WarpEnded,i),this.cameraControls.activeControl&&(this.cameraControls.activeControl.enabled=!0),o&&o()}.bind(this)),e===M.Hide&&this.path.discardPathObject(),!0},t.prototype.warpToPanoById=function(e,t,i,n,r,o,a,s){return this.path.setWarpDestinationByPanoId(e,t)?this.startWarp(i,n,r,o,a,s):(Y.warn("Player.warpToPanoById() -> Could not setWarpDestinationByPanoId()"),s&&s(),!1)},t.prototype.warpToPanoByHeroIndex=function(e,t,i,n,r,o,a){return this.path.setWarpDestinationByHeroIndex(e)?this.startWarp(t,i,n,r,o,a):(Y.warn("Player.warpToPanoByHeroIndex() -> Could not setWarpDestinationByHeroIndex()"),a&&a(),!1)},t.prototype.warpToPano=function(e,t,i,n,r,o,a,s){return this.warpToPanoById(e.id,t,i,n,r,o,a,s)},t.prototype.warpToNonPanoByHeroIndex=function(e,t){return this.path.setWarpDestinationByHeroIndex(e)?(this.path.warpToNonPano(t),!0):(Y.warn("Player.warpToNonPanoByHeroIndex() -> Could not setWarpDestinationByHeroIndex()"),t&&t(),!1)},t.prototype.aimTourCamera=function(e,t,i,n){return Y.debug("player.aimTourCamera("+e+") calling warpToPanoByHeroIndex("+e+")"),this.warpToPanoByHeroIndex(e,t,i,null,null,null,n)},t.prototype.showPathToHeroLocation=function(e){this.path.setWarpDestinationByHeroIndex(e)&&this.path.brushToWarpPano(R.STD,R.BLACK)},t.prototype.tourInterlude=function(e,t){this.history.invalidate(),this.path.discardSlow();var i=g_data2.tourAudio&&g_data2.tourAudio[this.model.heroLocations[this.director.currentItem].sid],n=g_tourAudio?1e3*g_tourAudio.currentTime:0,r=i&&i.music?i.time-n:2e3;this.path.waitNextStep(e,function(){t&&t()}.bind(this),r)},t.prototype.stopInterlude=function(){this.interruptAndFastForward(null,0)},t.prototype.interruptAndFastForward=function(e,t){this.isWarping()&&this.emit(W.WarpInterrupted,this.path.activeTransType,e,t),this.flying&&this.emit(W.FlyingInterrupted),this.path.interruptAndFastForward(e,t)},t.prototype.setSize=function(e,t){var i=e/t;this.baseFov=A.clampVFOV(k.insideFOV,k.insideFOVMax,e,t);var n=A.getHFOVFromVFOV(k.insideFOV,e,t);for(var r in n>k.insideFOVMax?this.baseFov=A.getVFOVFromHFOV(k.insideFOVMax,e,t):this.baseFov=k.insideFOV,this.cameraControls.cameras){var o=this.cameraControls.cameras[r];o.fov=this.baseFov*(1/this.zoomLevel),o.updateAspect(i)}},t.prototype.toJSON=function(){var e={};return this.cameraControls.activeControl&&((e=this.cameraControls.activeControl.toJSON()).camera_mode=V.toInt(this.mode),this.isOutsideMode()?this.model.allFloorsVisible?e.floor_visibility=[]:e.floor_visibility=this.model.floors.list.map(function(e){return e.hidden?0:1}):V.PANORAMA&&(e.scan_id=this.currentPano.id)),e},t.prototype.getCurrentNodePanos=function(e){if(this.model.panos.map,e.length=0,this.path.nodes)for(var t=0;tk.zoom.max&&(e=k.zoom.max),e>this.zoomLevel?(this.emit(m.ZoomIn),e===k.zoom.max&&this.emit(m.ZoomMax)):ek.zoom.activationThreshold,i=(this.flying&&this.nextPano&&this.nextPano!==this.currentPano||this.isWarping(),t);this.tileDownloader.tilePrioritizer.setZoomingActive(i),this.panoRenderer.setZoomingActive(i,e,!0);var n=function(e,t){this.panoRenderer.resetRenderStatus(e.id,!1,!0,this.qualityManager.getMaxNavPanoSize()),this.panoRenderer.clearAllQueuedUploadsForPano(e.id),this.panoRenderer.renderPanoTiles(e.id,null,!1,!1),e.setZoomed(t)}.bind(this);i&&!e.zoomed?(n(e,!0),this.panoRenderer.enableUltraHighQualityMode(function(){this.qualityManager.useUltraHighResolutionPanos&&!k.zoom.overridemax&&(k.zoom.max=y.ultraHighQualityMaxZoom),i&&n(e,!0)}.bind(this))):!t&&e.zoomed&&n(e,!1)}}},ee.exports=t}).call(this,"/js/player.js")},{"./constants":8,"./enum/AlignmentType":17,"./enum/BlackoutStyle":18,"./enum/ControlEvents":21,"./enum/Keys":30,"./enum/ModelManagerEvents":33,"./enum/PanoSizeClass":36,"./enum/PanoramaEvents":37,"./enum/PathDiscardMode":38,"./enum/PathDisplayMode":39,"./enum/PlayerEvents":40,"./enum/TagStates":44,"./enum/Vectors":50,"./enum/Viewmode":51,"./enum/WarpStyle":52,"./enum/ZoomEvents":53,"./exception/BasicException":55,"./model/ModelManager":140,"./objects/NSpider":147,"./objects/Panorama":148,"./objects/Reticule":149,"./objects/ShowPath":151,"./objects/Snapshot":153,"./objects/View":154,"./settings":166,"./shaders":167,"./tile/TileDownloader":171,"./tile/TilePrioritizer":172,"./util/ZoomStats":179,"./util/browser":182,"./util/camera":183,"./util/cameraLight":184,"./util/common":185,"./util/easing":186,"./util/history":187,"./util/lerp":188,"./util/logger":189,"./util/math":190,"./util/transitions":195,hot:"hot",scaleImg:"scaleImg",events:202,three:217}],scaleImg:[function(e,t){var i=t;(function(){function e(e,t,i,n){function r(){(U="object"==typeof i?i:t.src||n?s:document.createElement("canvas")).width=d,U.height=p,H=U.getContext("2d")}function o(e){if(e){var t,i=H.getImageData(0,0,d,p),n=i.data;for(t=0;tthis.retryMinimumTime},t.prototype.listImagePanos=function(){var i=[],n=this;return this.model.images.forEach(function(e){if(e.metadata&&e.metadata.scan_id){var t=n.model.panos.get(e.metadata.scan_id);t&&!t.isLoaded("high")&&i.push(t)}}),i},t.prototype.nextNotLoadedImage=function(){for(;0",r+="beta=("+s.beta+")
    ",r+="gamma="+s.gamma+"
    ",document.getElementById("info-device-orientation").innerHTML=r}}),this.setObjectQuaternion=function(e,t,i,n,r){s.euler.set(i,t,-n,"YXZ"),e.setFromEuler(s.euler),e.multiply(s.q1),e.multiply(s.q0.setFromAxisAngle(s.zee,-r)),o.updateMatrixWorld()},parent!==window&&window.addEventListener("message",function(e){var t,i,n,r,o=JSON.parse(e.data),a=-1!==window.navigator.userAgent.indexOf("KIW-TL00H");o&&o.alpha&&o.beta&&o.gamma&&(t=a,i=M.Math.degToRad(o.alpha),n=M.Math.degToRad(o.beta),r=M.Math.degToRad(o.gamma),t?(-1e3===s.alpha&&(s.alpha=i),-1e3===s.beta&&(s.beta=n),-1e3===s.gamma&&(s.gamma=r),.06 clickPanoObject: Unable to find pano."),t&&t({success:!1,error:"Unable to find pano."})}function a(e,t){t.copy(C.FORWARD),e.getDirection(t)}function c(i){return{panos:i.panos.list.map(function(e){var t=y.getCubemapUrls(i.urls,e.id,"high")[A.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z];return{uuid:e.id,aligned:e.alignmentType===g.ALIGNED,neighbourUUIDs:e.neighbourUUIDs.slice(),position:function(e){return e.alignmentType!==g.ALIGNED?null:{x:e.position.x,y:e.position.y,z:e.position.z}}(e),rotation:function(e){var t=(new h.Euler).setFromQuaternion(e.quaternion,"YXZ");return{x:h.Math.radToDeg(t._x),y:h.Math.radToDeg(t._y),z:h.Math.radToDeg(t._z)}}(e),thumbnail:t}})}}var t,l,i,h=q("three"),u=q("./ApiHost"),n=q("../util/logger"),d=q("../util/common"),s=q("../util/math"),p=q("../enum/ModelManagerEvents"),f=q("./PostMessageType"),g=q("../enum/AlignmentType"),m=q("../enum/Direction"),v=q("./TransitionStyles"),y=q("../util/panorama"),A=q("../enum/GLCubeFaces"),C=q("../enum/Vectors"),I=q("../enum/Viewmode"),E=q("../enum/WarpStyle"),_=(q("../enum/Keys"),q("../enum/PlayerEvents")),b=q("../sdk/SdkEvents"),w=(C=q("../enum/Vectors"),q("../enum/ControlEvents")),T=q("../enum/RenderLayers"),x=(q("../constants"),q("../settings")),S=q("../lib/jpeg_encoder"),M=new n(e),R=(N.active=!1,N.angle=0,N.angleTravelled=0,N.playerDirection=new h.Vector3,N.lastFacingDirection=new h.Vector3,N.onDone=null,N.player=null,N.start=function(e,t,i,n){N.active=!0,e&&t&&(t=0),N.angle=e||t,N.xAngle=e,N.yAngle=t,N.angleTravelled=0,N.playerDirection.copy(i.mode===I.FLOORPLAN?C.UP:C.FORWARD),i.getDirection(N.playerDirection),N.lastFacingDirection.copy(N.playerDirection),N.projectVectors(),N.onDone=n,N.player=i,N()},N.projectVectors=function(){N.xAngle&&(N.playerDirection.projectOnPlane(C.UP),N.lastFacingDirection.projectOnPlane(C.UP))},N),P=(i=new h.Vector3,function(e){e?(i.copy(e.position),i.add(e.discPosition),s.projectPositionToCanvas(i,this.player.camera,i),this.click(i.x,i.y)):M.warn("Showcase -> clicktagObject: Unable to find tag.")}),O=(l=new h.Vector3,function(e){var t=this.player.getDirection();l.copy(t);var i=l.y;l.y=0,l.normalize();var n=h.Math.radToDeg(l.angleTo(t))*(i<0?-1:1);if(this.player.mode!==I.DOLLHOUSE&&this.player.mode!==I.PANORAMA)return 0!==e&&M.warn("Cannot rotate in y direction when in "+this.player.mode+" mode"),0;this.player.mode===I.DOLLHOUSE&&(n=-n);var r=function(){return this.player.mode===I.PANORAMA?x.insideLookLimitUp:this.player.mode===I.DOLLHOUSE?90-h.Math.radToDeg(x.dollhouseDefault.minPolarAngle):null}.call(this)-.1,o=function(){return this.player.mode===I.PANORAMA?x.insideLookLimitDown:this.player.mode===I.DOLLHOUSE?90-h.Math.radToDeg(x.dollhouseDefault.maxPolarAngle):null}.call(this)+.1,a=n+e;r=Math.abs(N.angle)?(N.active=!1,N.onDone&&(0,N.onDone)()):(N.lastFacingDirection.copy(N.playerDirection),window.setTimeout(N,4))}X.exports={init:function(e,t,i,n,r){Y.init(e,t,i,r),D=new Promise(function(e,t){i.on(_.Ready,function(){e()})}.bind(this));var o=new u(window),a=o.waitForConnection();a.then(function(e){o.on(f.ACTION,Y.onMessageReceive.bind(Y))});var s,l=(s=Date.now(),function(){if(!(Date.now()-s<100)){var e=L(i);o.sendEvent(b.MOVE,{state:e}),s=Date.now()}});i.on(_.Move,l),i.on(_.ViewChanged,l),n.on(p.ActiveModelChanged,function(e){function t(e){var t,i=e.newPano.id;e.oldPano&&(t=e.oldPano.id),i!==t&&o.sendEvent(b.ENTER_PANO,{oldPano:t,newPano:i})}var i=e.model,n=e.oldModel;Y.model=i,a.then(function(){o.sendEvent(b.MODEL_LOADED,{metadata:c(i)})}),n&&n.panos.forEach(function(e){e.removeEventListener("enter",t)}),i.panos.forEach(function(e){e.on("enter",t)})})}};var F,B,V,k,U,H,z,G,W,j,Y={director:null,player:null,controls:null,sceneRenderer:null,model:null,init:function(e,t,i,n){this.director=e,this.player=i,this.controls=t,this.sceneRenderer=n},handleToObject:{},objectToHandle:{},handleCount:0,onMessageReceive:function(e){if(e){var t=e.targetFunction,i=e.params,n=e.onDone;t&&this[t]&&this[t](i,n)}},waitForInit:function(e,t){D.then(t.bind({success:!0,message:"Init complete."}))},moveToPano:(W=new h.Euler(0,0,0,"YXZ"),j=new h.Quaternion,function(e,t){var i=e.pano,n=e.rotation,r=e.transition;if(!this.model)return t({success:!1,error:"The model has not been loaded yet"});var o=this.model.panos.get(i);if(!o)return t({success:!1,error:i+" does not exist in this model"});if(!n)return t({sucess:!1,erorr:n+" is not a valid rotation"});W.set(h.Math.degToRad(n.x||0),h.Math.degToRad(n.y||0),h.Math.degToRad(n.z||0),"YXZ"),console.log(n.z);var a={success:!0,message:i};if(r===v.FADEOUT)j.setFromEuler(W),this.player.warpToPano(o,j,null,null,E.BLACK,null,null,t.bind(this,a));else{var s,l;r===v.INSTANT&&(l=s=0);var c=C.FORWARD.clone().applyEuler(W).add(o.position);this.player.flyToPano({pano:o,lookAtPoint:c,duration:s,aimDuration:l},t.bind(this,a))}}),moveInDirection:function(e,t){var i=e.direction;return void 0===m[i]?(M.warn("Showcase -> moveInDirection: Cannot move in invalid direction."),void(t&&t({success:!1,error:"Invalid direction."}))):void this.player.flyLocalDirection(C[i].clone()).then(function(e){t(e?{success:!0,message:"moved "+i}:{success:!1,error:"Cannot move in direction: "+i})})},getPose:function(e,t){return this.player.camera.position,(new h.Euler).setFromQuaternion(this.player.camera.quaternion,"YXZ"),t({success:!0,message:L(this.player)})},takeScreenShot:(z=new h.PerspectiveCamera,G=new h.WebGLRenderTarget,function(e,t){if(!e.resolution)return t({success:!1,error:"An invalid resolution was specified"});if(-1===e.resolution.width||-1===e.resolution.height){var i=this.sceneRenderer.renderer.getSize();e.resolution.width=i.width,e.resolution.height=i.height}z.layers.set(T.DEFAULT),e.visibleObjects&&(e.visibleObjects.showtags&&z.layers.enable(T.TAG),e.visibleObjects.showPucks&&z.layers.enable(T.PANOMARKERS),e.visibleObjects.showReticule&&z.layers.enable(T.RETICULE));var n=e.resolution.width,r=e.resolution.height,o=n/r;z.position.copy(this.sceneRenderer.camera.position),z.quaternion.copy(this.sceneRenderer.camera.quaternion),z.projectionMatrix.copy(this.player.camera.projectionMatrix),z.projectionMatrix.elements[0]=this.player.camera.projectionMatrix.elements[5]/o,G.setSize(n,r),this.sceneRenderer.renderer.render(this.sceneRenderer.scene,z,G);var a=new Uint8Array(n*r*4);this.sceneRenderer.renderer.readRenderTargetPixels(G,0,0,n,r,a);var s=S.encode({data:a,width:n,height:r,heading:180,pitch:0},{quality:75,flipY:!0});t({success:!0,message:"data:image/jpg;base64,"+d.uint8ToBase64(s.data)})}),findRankedPano:(U=new h.Vector3,H=new h.Vector3,function(e,t){a(this.player,H),r(t,H,U);var i=this.player.rankedPanoInDirection(e,U);if(i){var n=this.objectToHandle[i.id];return n||(this.objectToHandle[i.id]=n=this.handleCount++,this.handleToObject[n]=i),n}return M.warn("Showcase -> findRankedPano: Unable to find nearby pano."),-1}),findRankedtag:(V=new h.Vector3,k=new h.Vector3,function(e,t){a(this.player,k),r(t,k,V);var i=this.player.rankedtagInDirection(e,V);if(i){var n=this.objectToHandle[i.sid];return n||(this.objectToHandle[i.sid]=n=this.handleCount++,this.handleToObject[n]=i),n}return M.warn("Showcase -> findRankedtag: Unable to find nearby tag."),-1}),clickNearesttag:function(e){this.clickRankedtag(0,e)},clickRankedtag:function(e,t){var i=function(e,t){var i=this.findRankedtag(e,t);return 0<=i?this.handleToObject[i]:(M.warn("Showcase -> findRankedtagObject: Unable to find nearby tag."),null)}.call(this,e,t);i&&P.call(this,i)},clickNearestPano:function(e,t){this.clickRankedPano(0,e,t)},clickRankedPano:function(e,t,i){var n=function(e,t){var i=this.findRankedPano(e,t);return 0<=i?this.handleToObject[i]:(M.warn("Showcase -> findRankedPanoObject: Unable to find nearby pano."),null)}.call(this,e,t);n?o.call(this,n,i):i(null)},clickPano:function(e,t){var i=this.handleTable[e];i?o.call(this,i,t):t(null)},rotateDirection:function(e,t){var i=e.direction,n=e.angle;if(!R.active){var r=0,o=0,a=0,s=0;if(!n||isNaN(n))return M.warn("Showcase -> rotateDirection: Invalid rotation angle."),void(t&&t({success:!1,error:"Invalid rotation angle."}));if(this.player.mode===I.TRANSITIONING)return M.warn("Automation -> rotateDirection: Cannot rotate while transitioning"),void(t&&t({success:!1,error:"Cannot rotate while transitioning"}));if(i===m.RIGHT||i===m.LEFT)i===m.RIGHT&&(n=-n),r=0 rotateDirection: Invalid direction for rotation: "+i),void(t&&t({success:!1,error:"Invalid direction for rotation."}));if(this.player.mode===I.FLOORPLAN)return M.warn("Showcase -> rotateDirection: Cannot rotate "+i+" in floorplan mode"),void(t&&t({success:!1,error:"Cannot rotate "+i+" in floorplan mode"}));if(i===m.DOWN&&(n=-n),0===(n=O.call(this,n)))return M.warn("Showcase -> rotateDirection: Already at maximum rotation in direction: "+i),void(t&&t({success:!1,error:"Already at maximum rotation in direction: "+i}));o=0 rotate: Invalid rotation angle."),void(t&&t({success:!1,error:"Invalid rotation angle."}));if(this.player.mode===I.TRANSITIONING)return M.warn("Automation -> rotate: Cannot rotate while transitioning"),void(t&&t({success:!1,error:"Cannot rotate while transitioning"}));Math.abs(i)<.01&&(i=0),Math.abs(n)<.01&&(n=0);var r=n;n=O.call(this,n);var o=0 rotate: Already at maximum rotation in direction: "+o),void(t&&t({success:!1,error:"Already at maximum rotation in direction: "+o}));n rotate: Reached maximum rotation in direction: "+o);var a=n;n=h.Math.degToRad(n),i=h.Math.degToRad(i),F.copy(this.player.mode===I.FLOORPLAN?C.UP:C.FORWARD),this.player.getDirection(F),B.copy(F).applyAxisAngle(C.UP,i),B.applyAxisAngle(C.RIGHT,n);var s=(F.angleTo(B),0Math.abs(n)?l*=Math.abs(n/i):Math.abs(n)>Math.abs(i)&&(s*=Math.abs(i/n));var c=this.controls.activeControl;c.startRotating(s,l),R.start(i,n,this.player,function(){c.stopRotating(!0),t&&t({success:!0,message:"Rotated "+e.xAngle.toFixed(2)+"° horizontally, "+a.toFixed(2)+"° vertically"})})}}),panCamera:function(e,i){function t(e){switch(r.removeAllListeners(w.AutoPanComplete),r.removeAllListeners(w.AutoPanInterrupt),r.removeAllListeners(w.AutoPanClamped),e){case w.AutoPanInterrupt:i({success:!0,message:"Camera panning interrupted."});break;case w.AutoPanClamped:if(r.autoPanPosition.x!==n.x||r.autoPanPosition.z!==n.z){if(Math.abs(this.player.position.x-r.autoPanPosition.x)<.01&&Math.abs(this.player.position.z-r.autoPanPosition.z)<.01)return void i({success:!1,error:"Already at edge of current model bounds."});var t="The view point is outside the bounds for the current model. ";t+="The view point was clamped to "+o(r.target.x,r.target.z),console.warn(t)}case w.AutoPanComplete:i({success:!0,message:"Panned camera to position "+o(r.autoPanPosition.x,r.autoPanPosition.z)})}}if(this.player.mode!==I.DOLLHOUSE&&this.player.mode!==I.FLOORPLAN)return i({success:!1,error:"Camera panning is not available in the current mode: "+this.player.mode});var n=e.position,r=this.player.control;r.setAutoPanPosition(n.x,n.z),r.autoPan=!0;var o=function(e,t){return"("+e.toFixed(2)+", "+t.toFixed(2)+")"};r.on(w.AutoPanComplete,t.bind(this,w.AutoPanComplete)),r.on(w.AutoPanInterrupt,t.bind(this,w.AutoPanInterrupt)),r.on(w.AutoPanClamped,t.bind(this,w.AutoPanClamped))},click:function(e,t){var i=e.x,n=e.y;!0===e.percentage&&(i=i/100*$("#player").width(),n=n/100*$("#player").height()),this.player.handleInputStart(i,n),this.player.updateIntersect(),this.player.handleInputEnd(i,n)},mouseOver:function(e,t){var i=e.x,n=e.y;!0===e.percentage&&(i=i/100*$("#player").width(),n=n/100*$("#player").height()),this.player.handleInputMove(i,n),this.player.updateIntersect()},moveToMode:function(e,t){function i(e){t(e?{success:!1,error:"Failed to load new mode: "+e}:{success:!0,message:"Moved to new mode: "+n})}var n=e.mode;n===I.PANORAMA||n===I.DOLLHOUSE||n===I.FLOORPLAN?this.director.changeMode(n).then(function(){i()},function(e){i(e)}):t({success:!1,error:"Invalid mode selection"})}}}).call(this,"/js/sdk/automation.js")},{"../constants":8,"../enum/AlignmentType":17,"../enum/ControlEvents":21,"../enum/Direction":22,"../enum/GLCubeFaces":25,"../enum/Keys":30,"../enum/ModelManagerEvents":33,"../enum/PlayerEvents":40,"../enum/RenderLayers":41,"../enum/Vectors":50,"../enum/Viewmode":51,"../enum/WarpStyle":52,"../lib/jpeg_encoder":94,"../sdk/SdkEvents":161,"../settings":166,"../util/common":185,"../util/logger":189,"../util/math":190,"../util/panorama":191,"./ApiHost":159,"./PostMessageType":160,"./TransitionStyles":162,three:217}],165:[function(e,t,i){"use strict";function n(e){this.sourceWindow=e,this.targetWindow=null,this.targetOrigin=null,this.id=Math.floor(1e5*Math.random()),this.bindEvents()}var r=e("./PostMessageType"),o=e("events").EventEmitter;(n.prototype=Object.create(o.prototype)).bindEvents=function(){this.sourceWindow.addEventListener("message",this.onPostmessageReceived.bind(this))},n.prototype.setTarget=function(e,t){this.targetWindow=e,this.targetOrigin=t},n.prototype.onPostmessageReceived=function(e){var t=e.origin||e.originalEvent.origin,i=e.source;switch(e.data.type){case r.CONNECT:break;case r.RESPONSE:if(this.id!==e.data.toId)return;default:if(!this.validateMessageOrigin(t))return}var n=e.data;n.source=i,n.origin=t,n.timestamp=Date.now(),this.emit(e.data.type,n)},n.prototype.validateMessageOrigin=function(e){return"*"===this.targetOrigin||e===this.targetOrigin},n.prototype.send=function(e){this.targetWindow&&this.targetOrigin&&(e.fromId=this.id,this.targetWindow.postMessage(e,this.targetOrigin))},t.exports=n},{"./PostMessageType":160,events:202}],166:[function(e,t,i){"use strict";var n=e("three"),r=e("./util/browser"),o=e("./enum/Viewmode"),a=e("./enum/VROption"),s=e("./enum/Colors"),l=e("./enum/WarpStyle"),c=e("./util/easing"),h=e("./util/common"),u=e("./util/showcase"),d=e("./constants"),p={debug:!1,version:"2.25.6-0-gd87e5b1",languageTag:r.valueFromHash("lang",null),pageTitle:"四维虚拟漫游",authorizationHeader:u.getAuthorizationHeader(),autoplay:r.valueFromHash("play",!1)||!r.inIframe(),logLevel:r.valueFromHash("log",2),skyboxRadius:2500,modelBoundsPadding:5,showNeighbors:!1,brand:r.valueFromHash("brand",!0),showHighlights:r.valueFromHash("hhl",!0)&&r.valueFromHash("hr",1),startHighlights:r.valueFromHash("hl",-1),specialEdition:r.valueFromHash("bn",0),useWheel:r.valueFromHash("wh",!0),crossOrigin:"anonymous",fancierTransition:!1,wireframe:!1,skyboxWireframe:!1,modelAlpha:1,highlightPanoSelection:!1,showSweeps:!0,showSkyboxes:!1,showMesh:!0,showFloors:!1,showFloorDuration:300,showFloorDelay:300,hideFloorDuration:300,hideFloorDelay:0,reticuleOpacityTransitionTime:250,reticuleColor:window.MP_PREFETCHED_MODELDATA.mouseMarkerColor||s.newBlue,markerOpacityTransitionTime:500,guiAnimationSpeed:250,highlightAnimationDuration:500,modelComponentLoadSpinnerDelay:150,captureErrors:!1,maxMobileTextures:6,minimalMemoryMode:r.valueFromHash("m3",r.isMobile()),startupFlyinDelay:3e3,dollhouseDefault:{minDistance:15,maxDistance:50,minPolarAngle:n.Math.degToRad(10),maxPolarAngle:n.Math.degToRad(90)},hideReticuleTimeout:1e3,analytics:{inactivityThreshold:30,sessionTrackingRate:.15,maxTrackedErrors:20,sessionDurationPingFrequency:10,sessionDurationTimeout:15},flydown:{movementEasing:"easeInOutQuad",movementDelay:.001,rotationEasing:"easeInOutQuad",rotationDelay:.5,modelTextureDelay:.75,skyboxDelay:.75},transition:{flySpeed:.001,flyTime:750,flytimeMaxDistanceThreshold:5,flytimeDistanceMultiplier:150,aimTime:1500,aimSlowFactor:1.5,blur:.8,movementEasing:"easeInOutQuad",blendEasing:"easeInOutQuad",fastForwardFactor:3},show360Views:{enabled:!0,transitionTime:1e3},quickstart:{enabled:1===r.valueFromHash("qust",0)||1===r.valueFromHash("qs",0),animation:1400,showTextDelay:500,fadeOutDelay:3e3,fovChange:10},appConfig:{webvr_version:null,segment_key:null,embedly_key:null,branch_key:null,keen_write_key:null,keen_project_id:null},vr:{enabled:!0,allowWebVR:!1,option:r.valueFromHash("vr",a.CONTEXTUAL)},share:{enabled:!r.valueFromHash("mls",0)&&r.valueFromHash("brand",!0)},input:{longTapThreshold:200,moveToleranceNDC:.08,touchMoveThreshold:25},help:{modalStayDuration:600},immersive:{timeToShowAgain:1250,uiStayDuration:600},tourInteraction:{disabled:"0"===r.valueFromHash("tourcta",null),showPauseButton:1e3,showModal:1500,allowNextClick:200,largeModal:"1"===r.valueFromHash("tourcta",null),smallModal:"2"===r.valueFromHash("tourcta",null)},labels:{enabled:!1,hideUntilStart:!0,fadeInDuration:250,fadeInDelay:250,fadeOutDuration:250,fadeOutDelay:0,zoomHideThreshhold:{mobile:r.isSmallScreen()?.45:.6,desktop:2},zoomTruncateThreshhold:{mobile:r.isSmallScreen()?.35:.45,desktop:.85},minLengthForTruncate:16,truncateLength:12,truncateSuffix:"..."},tags:{enabled:r.valueFromHash("mt",1),startup:{hideUntilStart:!0,fadeInDuration:500,fadeInDelay:100},visibility:{anyDistance:!0,visibleDistance:8,cameraClearance:.1,alphaTestLevel:.05,hideViaFloor:!0,hideOffScreenDisc:!1,hideOffScreenObject:!1},disc:{opacity:1,disabledOpacity:.5,scale:{nearBound:1.5,farBound:4.8,linkFarBound:!1,linkPercent:40,maxSize:80,minSize:40,baseViewportSize:800,responsiveness:100}},pole:{enabled:!0,height:.5,width:2,opacity:.5,color:"white"},navigate:{nearestPano:!0,lineOfSight:!0,reactivate:!0,aimAt:"disc",tiltTolerance:25,rotateSpeedFactor:.6}},path:{color:window.MP_PREFETCHED_MODELDATA.floorMarkerColor||s.newBlue,colorUp:s._desat(s.newBlue,.5),colorDown:s._darken(s.newBlue,.35),opacity:.5,style:"ribbon",height:.025,ribbonWidth:.24,outsideHeight:.5,waypointRadius:.5,waypointIndoorRadius:.24,waypointPulse:1e3,typ:l.BLACK,meshFree:r.valueFromHash("mf",1),mapGuides:r.valueFromHash("guides",!0),fadeInTime:400,fadeOutTime:300},warp:{nearPanoDist:.1,matchCam:!1,blur:.33,fastTime:1500,teleportTime:1500,outsideTime:2e3,lookAheadMax:.3,lookAheadDist:2.5,softPushDist:.37,softPushEnd:.3,softBendAngle:8,softBendTilt:4,softBendEnd:.3,doBurns:!0,burnsAngle:8,minBurnsAngle:35,minDownAngle:-35,maxTurnPerSec:280,maxAimPerSec:35,minRotation:12,maxAimRotation:33.2,turnFriction:.2,flySpeed:.01,minWarpTime:1200,warpInterruptionRedirectTime:500,tourStepDelay:r.valueFromHash("st",0),walkDelay:0,walkMaxDist:50,walkMinDist:.8,walkSlideShowThreshhold:3e3,walkExtraPanosDistance:.4,timePerMeter:1200,motionLeadTime:5e3,movementEasing:"easeInOutQuad",blendEasing:"easeInOutQuad",showBunny:!1,loop:r.valueFromHash("lp",!1),auto:r.valueFromHash("ts",-1),eOrder:"YXZ",stepFactor:.25,brakeStrength:2,minBrakeAngle:.1,maxBrakeAngle:1.8,climbEffort:4},rotationFriction:.05,rotationAccelerationInside:4.5,rotationAccelerationOutside:.15,rotationAfterMoveMultiplier:40,rotationAfterMoveHistoryCount:5,panFriction:.09,panAccelerationOutside:60,onload:r.valueFromHash("onload",o.PANORAMA),zoomNearLimit:.1,zoomFarLimit:10,navigation:{panoScores:!1,mouseDirection:!0,filterStrictness:.75,angleFactor:-30,directionFactor:10,distanceFactor:-1,optionalityFactor:3},sdkInit:!1,secretPanelWord:[38,38,40,40,37,39,37,39,66,65],console:r.valueFromHash("console",!1),noMeshFloorPositionOffset:new n.Vector3(0,-1.2,0),panoramaNeighbourMaxDistance:5,panoFloorClickRadius:.35,showScreenshotLocations:!1,showAxis:!1,showNeighbourRaycasts:!1,colorMarkerOnLoad:!1,colorMarkerByFloor:!1,tiling:{panoPreRenderRepeatDelay:2500,panoPreRenderDelay:500,preRenderTourPanos:r.valueFromHash("tileprerender",0),tilingFlagNames:["usetiles","tiles"],maxNavPanoQuality:r.valueFromHash("maxtileq",null),maxZoomPanoQuality:r.valueFromHash("maxztileq",null),overlayStyle:r.valueFromHash("tileoverlay",0),uploadIntervalDelay:r.valueFromHash("tileupdelay",10),initialIntervalDelay:r.valueFromHash("itiledelay",0),maxNonBaseUploadsPerFrame:r.valueFromHash("maxnbtpf",2),maxBaseUploadsPerFrame:r.valueFromHash("maxbtpf",6),customCompression:r.valueFromHash("tilecustcomp",0),mobileHighQualityOverride:1,allowUltraHighResolution:!0},zoom:{enabled:!0,forceOff:r.valueFromHash("nozoom",0),overridemax:r.valueFromHash("maxzoom",null),overridemin:r.valueFromHash("minzoom",null),max:d.highQualityMaxZoom,min:1,transitionStyle:r.valueFromHash("zoomtrans",1),activationThreshold:1.1,restoreTime:500},profiling:{enabled:r.valueFromHash("mem",!1)}};(p=h.deepExtend(p,d,{insideFOV:r.valueFromHash("fov",d.insideFOV),insideFOVMax:r.valueFromHash("fovmax",d.insideFOVMax),panorama:{transitionTime:1e3,modelAlpha:0,modelAlphaDelay:p.flydown.modelTextureDelay,modelAlphaLength:1,skyboxOpacity:1,skyboxOpacityDelay:p.flydown.skyboxDelay,skyboxOpacityLength:.9,fovLength:1,fovDelay:0,cameraMatrixDuration:.8,cameraMatrixDelay:0,cameraMatrixEase:c.easeInCubic,reticuleOpacity:1,markerOpacity:.3,markerOpacityOnHover:1},dollhouse:{transitionTime:1e3,modelAlpha:1,modelAlphaDelay:0,modelAlphaLength:1-p.flydown.modelTextureDelay,skyboxOpacity:0,skyboxOpacityDelay:0,skyboxOpacityLength:1-p.flydown.skyboxDelay,fovLength:1,fovDelay:0,cameraMatrixDuration:.8,cameraMatrixDelay:.3,cameraMatrixEase:c.easeInCubic,reticuleOpacity:1,markerOpacity:0,markerOpacityOnHover:0},floorplan:{transitionTime:1e3,modelAlpha:1,modelAlphaDelay:0,modelAlphaLength:1-p.flydown.modelTextureDelay,skyboxOpacity:0,skyboxOpacityDelay:0,skyboxOpacityLength:1-p.flydown.skyboxDelay,fovLength:1,fovDelay:0,cameraMatrixDuration:.5,cameraMatrixDelay:0,cameraMatrixEase:c.easeOutCubic,reticuleOpacity:1,markerOpacity:0,markerOpacityOnHover:0,cameraHeight:50},transitioning:{reticuleOpacity:0,markerOpacity:.3,markerOpacityOnHover:1},"floorplan-dollhouse":{rotationDelay:0,rotationDuration:1},"floorplan-panorama":{rotationDelay:.5,rotationDuration:1},"dollhouse-panorama":{rotationDelay:.5,rotationDuration:1},"dollhouse-floorplan":{rotationDelay:0,rotationDuration:1,cameraMatrixDuration:1.05,cameraMatrixDelay:.5},"panorama-dollhouse":{rotationDelay:0,rotationDuration:.5},"panorama-floorplan":{transitionTime:1500,rotationDelay:0,rotationDuration:.5}})).path.meshFree&&(p.path.typ=l.WALK),p.zoom.max=p.zoom.overridemax||p.zoom.max,p.zoom.min=p.zoom.overridemin||p.zoom.min,t.exports=p},{"./constants":8,"./enum/Colors":19,"./enum/VROption":47,"./enum/Viewmode":51,"./enum/WarpStyle":52,"./util/browser":182,"./util/common":185,"./util/easing":186,"./util/showcase":193,three:217}],167:[function(e,t,i){"use strict";var n=e("three"),r=e("./settings"),o="precision highp float;\nprecision highp int;\n\nuniform mat4 modelMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n",a="precision highp float;\nprecision highp int;\n\nuniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n";t.exports={basicTextured:{uniforms:{tDiffuse:{type:"t",value:null},alpha:{type:"f",value:1}},vertexShader:"varying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}",fragmentShader:"varying vec2 vUv;\nuniform float alpha;\nuniform sampler2D tDiffuse;\nvoid main() {\n vec4 texColor = texture2D(tDiffuse, vUv);\n gl_FragColor = vec4(texColor.rgb, texColor.a * alpha);\n}"},copyCubeMap:{uniforms:{tDiffuse:{type:"t",value:null},alpha:{type:"f",value:1}},vertexShader:"varying vec3 vWorldPos;\nvoid main() {\n vWorldPos = vec3(-position.x, -position.y, position.z);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}",fragmentShader:"varying vec3 vWorldPos;\nuniform float alpha;\nuniform samplerCube tDiffuse;\nvoid main() {\n vec4 texColor = textureCube(tDiffuse, vWorldPos);\n gl_FragColor = vec4(texColor.rgb, texColor.a * alpha);\n}"},cube:{uniforms:{map:{type:"t",value:null},opacity:{type:"f",value:1}},vertexShader:o+"varying vec3 vWorldPosition;\n\nvoid main() {\n vWorldPosition = position;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n",fragmentShader:a+"uniform samplerCube map;\nuniform float opacity;\n\nvarying vec3 vWorldPosition;\n\nvoid main() {\n vec4 color = textureCube( map, vec3( -vWorldPosition.x, vWorldPosition.yz ) );\n gl_FragColor = vec4(color.rgb, opacity);\n}\n"},model:{uniforms:{map:{type:"t",value:null},modelAlpha:{type:"f",value:r.modelAlpha},opacity:{type:"f",value:1},progress:{type:"f",value:0},blackout:{type:"i",value:0},pano0Map:{type:"t",value:null},pano0Position:{type:"v3",value:new n.Vector3},pano0Matrix:{type:"m4",value:new n.Matrix4},pano1Map:{type:"t",value:null},pano1Position:{type:"v3",value:new n.Vector3},pano1Matrix:{type:"m4",value:new n.Matrix4}},vertexShader:o+"uniform vec3 pano0Position;\nuniform mat4 pano0Matrix;\n\nuniform vec3 pano1Position;\nuniform mat4 pano1Matrix;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition0;\nvarying vec3 vWorldPosition1;\n\nvoid main() {\n\n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n\n vec3 positionLocalToPanoCenter0 = worldPosition.xyz - pano0Position;\n vWorldPosition0 = (vec4(positionLocalToPanoCenter0, 1.0) * pano0Matrix).xyz;\n vWorldPosition0.x *= -1.0;\n\n vec3 positionLocalToPanoCenter1 = worldPosition.xyz - pano1Position;\n vWorldPosition1 = (vec4(positionLocalToPanoCenter1, 1.0) * pano1Matrix).xyz;\n vWorldPosition1.x *= -1.0;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:a+"uniform sampler2D map;\nuniform float modelAlpha;\nuniform float opacity;\nuniform float progress;\nuniform int blackout;\n\nuniform vec3 pano0Position;\nuniform samplerCube pano0Map;\n\nuniform vec3 pano1Position;\nuniform samplerCube pano1Map;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition0;\nvarying vec3 vWorldPosition1;\n\nvoid main() {\n\tconst vec4 BLACK = vec4(0.0, 0.0, 0.0, 1.0);\n\tconst vec4 GREY = vec4(0.5, 0.5, 0.5, 1.0);\n\n\tvec4 colorFromPanos;\n\tvec4 colorFromPano0 = textureCube( pano0Map, vWorldPosition0.xyz);\n\tvec4 colorFromPano1 = textureCube( pano1Map, vWorldPosition1.xyz);\n\n\tif (blackout == 0) {\n\t\tcolorFromPanos = mix(colorFromPano0, colorFromPano1, progress);\n\t} else if (blackout == 1) {\n\t\tcolorFromPanos = mix(colorFromPano0, BLACK, min(1.0, progress*2.0));\n\t\tcolorFromPanos = mix(colorFromPanos, colorFromPano1, max(0.0, progress * 2.0 - 1.0));\n\t} else if (blackout == 2) {\n\t\tcolorFromPanos = mix(colorFromPano0, BLACK, progress);\n\t} else if (blackout == 3) {\n\t\tcolorFromPanos = mix(BLACK, colorFromPano1, max(0.0, progress * 2.0 - 1.0));\n\t} \n\n\tvec4 colorFromTexture = texture2D( map, vUv );\n\tcolorFromPanos = mix(colorFromPanos, colorFromTexture, modelAlpha);\n\n\tfloat whiteness = 1.0 - smoothstep(0.1, 0.2, opacity);\n\tcolorFromPanos = mix(colorFromPanos, GREY, whiteness);\n\tgl_FragColor = vec4(colorFromPanos.rgb, opacity);\n}\n"},hot:{uniforms:{color:{type:"c",value:new n.Color(16720384)},opac:{type:"f",value:0},texture1:{type:"t",value:null},texture2:{type:"t",value:null}},vertexShader:"varying vec2 vUv;\n\nvoid main() {\n\n vUv = uv ;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:"varying vec3 vNormal;\n\nvarying vec2 vUv;\n\nuniform float opac;\n\nuniform vec3 color;\n\nuniform sampler2D texture1;\n\nuniform sampler2D texture2;\n\nvoid main() {\n\nvec4 tcolor1 = texture2D( texture1, vUv );\n\nvec4 tcolor2 = texture2D( texture2, vUv );\n\ngl_FragColor = mix(tcolor1,tcolor2 ,opac) + tcolor2*0.2; }\n"},modelOutside:{uniforms:{map:{type:"t",value:null},opacity:{type:"f",value:1}},vertexShader:o+"varying vec2 vUv;\n\nvoid main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:a+"uniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUv;\n\nvec4 white = vec4(0.5, 0.5, 0.5, 1.0);\n\nvoid main() {\n\n vec4 colorFromTexture = texture2D( map, vUv );\n float whiteness = 1.0 - smoothstep(0.1, 0.2, opacity);\n colorFromTexture = mix(colorFromTexture, white, whiteness);\n gl_FragColor = vec4(colorFromTexture.rgb, opacity);\n\n}\n"},ribbon:{uniforms:{map:{type:"t",value:null},opacity:{type:"f",value:1},color:{type:"c",value:new n.Color(r.path.color)}},vertexShader:o+"varying vec2 vUv;\nvarying vec3 vN;\nvarying vec4 vP;\n\nvoid main() {\n\n vUv = uv;\n vN= normalMatrix * normal;\n vP = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * vP;\n}\n",fragmentShader:a+"uniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUv;\nuniform vec3 color;\nvarying vec3 vN; // show-1182\nvarying vec4 vP; // show-1182\n\nvoid main() {\n\t// TODO add scroll-in and pulsing behaviors\n\tvec3 vNn = normalize(vN);\n\tvec3 vPn = normalize(vP.xyz);\n\tfloat f = pow(1.0-abs(dot(vNn,vPn)),0.2);\n vec4 colorFromTexture = texture2D( map, vUv );\n colorFromTexture.a *= f;\n gl_FragColor = vec4((color.rgb*colorFromTexture.rgb),\n \t\t\t\t\t\t(opacity*colorFromTexture.a));\n}\n"},waypoint:{uniforms:{map:{type:"t",value:null},opacity:{type:"f",value:1},pulse:{type:"f",value:1},nearFade:{type:"v2",value:new n.Vector2(2*r.insideNear,2*r.path.waypointIndoorRadius)},color:{type:"c",value:new n.Color(r.reticuleColor)}},vertexShader:o+"varying vec2 vUv;\nvarying vec4 vPointView;\n\nvoid main() {\n\n vUv = uv;\n vPointView = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * vPointView;\n\n}\n",fragmentShader:a+"uniform sampler2D map;\nuniform float opacity;\nuniform float pulse; // another opacity, with a different clock\nuniform vec2 nearFade;\nvarying vec2 vUv;\nvarying vec4 vPointView;\nuniform vec3 color;\n\nvoid main() {\n\t// TODO add scroll-in and pulsing behaviors\n\tfloat depthFade = min(1.0, (abs(vPointView.z)-nearFade.x)/(nearFade.y-nearFade.x));\n vec4 colorFromTexture = texture2D( map, vUv );\t\t// we only use the alpha!\n gl_FragColor = vec4(color.rgb,\n \t\t\t\t\t\t(pulse*opacity*colorFromTexture.a * depthFade));\n}\n"},modelDebug:{uniforms:{map:{type:"t",value:null},modelAlpha:{type:"f",value:r.modelAlpha},depthmapRatio:{type:"f",value:0},opacity:{type:"f",value:1},progress:{type:"f",value:0},considerOcclusion:{type:"i",value:r.fancierTransition},highlightPanoSelection:{type:"i",value:0},useThirdPano:{type:"i",value:r.useThirdPano},pano0Map:{type:"t",value:null},pano0Depth:{type:"t",value:null},pano0Position:{type:"v3",value:new n.Vector3},pano0Matrix:{type:"m4",value:new n.Matrix4},pano0Weight:{type:"f",value:r.transition.pano0Weight},pano1Map:{type:"t",value:null},pano1Depth:{type:"t",value:null},pano1Position:{type:"v3",value:new n.Vector3},pano1Matrix:{type:"m4",value:new n.Matrix4},pano1Weight:{type:"f",value:r.transition.pano1Weight},pano2Map:{type:"t",value:null},pano2Depth:{type:"t",value:null},pano2Position:{type:"v3",value:new n.Vector3},pano2Matrix:{type:"m4",value:new n.Matrix4},pano2Weight:{type:"f",value:r.transition.pano2Weight}},vertexShader:o+"uniform vec3 pano0Position;\nuniform mat4 pano0Matrix;\n\nuniform vec3 pano1Position;\nuniform mat4 pano1Matrix;\n\nuniform vec3 pano2Position;\nuniform mat4 pano2Matrix;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition0;\nvarying vec3 vWorldPosition1;\nvarying vec3 vWorldPosition2;\n\nvarying vec4 worldPosition;\n\nvoid main() {\n\n vUv = uv;\n worldPosition = modelMatrix * vec4(position, 1.0);\n\n vec3 positionLocalToPanoCenter0 = worldPosition.xyz - pano0Position;\n vWorldPosition0 = (vec4(positionLocalToPanoCenter0, 1.0) * pano0Matrix).xyz;\n vWorldPosition0.x *= -1.0;\n\n vec3 positionLocalToPanoCenter1 = worldPosition.xyz - pano1Position;\n vWorldPosition1 = (vec4(positionLocalToPanoCenter1, 1.0) * pano1Matrix).xyz;\n vWorldPosition1.x *= -1.0;\n\n vec3 positionLocalToPanoCenter2 = worldPosition.xyz - pano2Position;\n vWorldPosition2 = (vec4(positionLocalToPanoCenter2, 2.0) * pano2Matrix).xyz;\n vWorldPosition2.x *= -1.0;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:a+"uniform sampler2D map;\nuniform float depthmapRatio;\nuniform float modelAlpha;\nuniform float opacity;\nuniform float progress;\nuniform int considerOcclusion;\nuniform int highlightPanoSelection;\nuniform int useThirdPano;\n\nuniform vec3 pano0Position;\nuniform samplerCube pano0Map;\nuniform samplerCube pano0Depth;\nuniform float pano0Weight;\n\nuniform vec3 pano1Position;\nuniform samplerCube pano1Map;\nuniform samplerCube pano1Depth;\nuniform float pano1Weight;\n\nuniform vec3 pano2Position;\nuniform samplerCube pano2Map;\nuniform samplerCube pano2Depth;\nuniform float pano2Weight;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition0;\nvarying vec3 vWorldPosition1;\nvarying vec3 vWorldPosition2;\n\nvarying vec4 worldPosition;\n\nvoid main() {\n\n vec4 depthFromPano0 = textureCube( pano0Depth, vWorldPosition0.xyz );\n vec4 depthFromPano1 = textureCube( pano1Depth, vWorldPosition1.xyz );\n vec4 depthFromPano2 = textureCube( pano2Depth, vWorldPosition2.xyz );\n\n vec4 colorFromPano0 = textureCube( pano0Map, vWorldPosition0.xyz );\n vec4 colorFromPano1 = textureCube( pano1Map, vWorldPosition1.xyz );\n vec4 colorFromPano2 = textureCube( pano2Map, vWorldPosition2.xyz );\n\n float distanceToPano0 = distance(worldPosition.xyz, pano0Position);\n float distanceToPano1 = distance(worldPosition.xyz, pano1Position);\n float distanceToPano2 = distance(worldPosition.xyz, pano2Position);\n\n float cameraToPano0 = distance(cameraPosition.xyz, pano0Position);\n float cameraToPano1 = distance(cameraPosition.xyz, pano1Position);\n float cameraToPano2 = distance(cameraPosition.xyz, pano2Position);\n\n float contributionFromPano0 = cameraToPano0 == 0.0 ? 1000.0 : pano0Weight / cameraToPano0;\n float contributionFromPano1 = cameraToPano1 == 0.0 ? 1000.0 : pano1Weight / cameraToPano1;\n float contributionFromPano2 = cameraToPano2 == 0.0 ? 1000.0 : pano2Weight / cameraToPano2;\n\n contributionFromPano0 *= 1.0 / distanceToPano0;\n contributionFromPano1 *= 1.0 / distanceToPano1;\n contributionFromPano2 *= 1.0 / distanceToPano2;\n\n if(considerOcclusion == 1) {\n bool occludedFromPano0 = distanceToPano0 / 10.0 > 1.01 - depthFromPano0.x;\n bool occludedFromPano1 = distanceToPano1 / 10.0 > 1.01 - depthFromPano1.x;\n bool occludedFromPano2 = distanceToPano2 / 10.0 > 1.01 - depthFromPano2.x;\n\n if(occludedFromPano0){contributionFromPano0 *= 0.1;}\n if(occludedFromPano1){contributionFromPano1 *= 0.1;}\n if(occludedFromPano2){contributionFromPano2 *= 0.1;}\n //if(occludedFromPano0 && occludedFromPano1 && !occludedFromPano2) { contributionFromPano2 += 0.5; }\n }\n\n float contributionSum = contributionFromPano0 + contributionFromPano1 + contributionFromPano2;\n contributionFromPano0 /= contributionSum;\n contributionFromPano1 /= contributionSum;\n contributionFromPano2 /= contributionSum;\n\n vec4 colorFromPanos = colorFromPano0 * contributionFromPano0;\n colorFromPanos += colorFromPano1 * contributionFromPano1;\n colorFromPanos += colorFromPano2 * contributionFromPano2;\n\n vec4 depthFromPanos = depthFromPano0 * contributionFromPano0;\n depthFromPanos += depthFromPano1 * contributionFromPano1;\n depthFromPanos += depthFromPano2 * contributionFromPano2;\n\n vec4 colorFromTexture = texture2D( map, vUv );\n colorFromPanos = mix(colorFromPanos, colorFromTexture, modelAlpha);\n\n if(highlightPanoSelection == 1) {\n colorFromPanos.r = contributionFromPano0;\n colorFromPanos.g = contributionFromPano1;\n colorFromPanos.b = contributionFromPano2;\n }\n\n gl_FragColor = vec4(mix(colorFromPanos, depthFromPanos, depthmapRatio).rgb, opacity);\n\n}\n"},customDepth:{uniforms:{panoPosition:{type:"v3",value:new n.Vector3}},vertexShader:o+"varying vec4 worldPosition;\n\nvoid main() {\n\n worldPosition = modelMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:a+"uniform vec3 panoPosition;\nvarying vec4 worldPosition;\n\nvoid main() {\n\n float depth = distance(worldPosition.xyz, panoPosition);\n float color = 1.0 - depth / 10.0;\n gl_FragColor = vec4(color, color, color, 1.0);\n\n}\n"},skysphere:{uniforms:{radius:{type:"f",value:0}},vertexShader:o+"varying vec4 worldPosition;\n\nvoid main() {\n\n worldPosition = modelMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n}\n",fragmentShader:a+"varying vec4 worldPosition;\nuniform float radius;\n\nvoid main() {\n\n vec4 topColor = vec4(0.094, 0.102, 0.11, 1.0);\n vec4 bottomColor = vec4(0.2, 0.216, 0.235, 1.0);\n float normalizedHeight = (worldPosition.y + radius) / (radius * 2.0);\n float ratio = smoothstep(0.0, 0.5, normalizedHeight);\n gl_FragColor = mix(bottomColor, topColor, ratio);\n\n}\n"},tagDisc:{uniforms:{opacity:{type:"f",value:0},color:{type:"c",value:new n.Color},bg:{type:"t",value:null},mask:{type:"t",value:null}},vertexShader:o+"varying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}",fragmentShader:a+"uniform float opacity;\nuniform vec3 color;\nuniform sampler2D bg;\nuniform sampler2D mask;\n\nvarying vec2 vUv;\n\nvoid main() {\n vec4 maskColor = texture2D(mask, vUv);\n vec4 bgColor = texture2D(bg, vUv);\n vec3 mappedColor = mix(bgColor.rgb, color, maskColor.a);\n gl_FragColor = vec4(mappedColor, bgColor.a * opacity);\n}\n"}}},{"./settings":166,three:217}],168:[function(E,_,e){(function(e){"use strict";var t=E("three"),i=(E("url"),E("./util/ajax")),n=E("./settings"),r=E("./util/logger"),o=E("./util/math"),a=E("./util/showcase"),s=E("./objects/Panorama"),l=new r(e),c=E("./model/Model"),h=E("./shaders"),u=E("./util/transitions"),d=E("./objects/Chunk"),p=E("./objects/Reticule"),f=E("./objects/Skybox"),g=E("./objects/Floor"),m=E("./cameras/DollhouseCamera"),v=E("./cameras/FloorplanCamera"),y=E("./cameras/PanoramaCamera"),A=E("./controls/DollhouseControls"),C=E("./controls/FloorplanControls"),I=E("./controls/PanoramaControls");t.ImageUtils.crossOrigin=n.crossOrigin,_.exports={shaders:h,transitions:u,Model:c,Chunk:d,Floor:g,Skybox:f,Reticule:p,Panorama:s,DollhouseCamera:m,FloorplanCamera:v,PanoramaCamera:y,DollhouseControls:A,FloorplanControls:C,PanoramaControls:I,getModel:function(e){if(!e.url)throw'getModel(): missing parameter "url"';e.autoload=void 0===e.autoload||e.autoload;var t=a.parseSidUrl(e.url);e.urlBase=t.urlBase,e.urlModel=t.urlModel,e.urlFiles=t.urlFiles;var i=this._getPlatformError();return i?$.Deferred().reject(i).promise():(this.options=e,this._loadModel().then(this._buildModel.bind(this)))},_getPlatformError:function(){return"IE"===$.ua.browser.name&&parseInt($.ua.browser.major)<11?"webgl-unsupported":"iOS"===$.ua.os.name&&/^[0-7][$\.]/.test($.ua.os.version)?"webgl-ios":Modernizr.webgl?null:"webgl-unsupported"},_loadModel:function(){return i.get(this.options.urlModel,{responseType:"json",prefetchFrom:"model",auth:a.getAuthorizationHeader()}).then(null,function(){return l.warn("Model loading failed at initial metadata load"),"loading-failed"})},_buildModel:function(e){e=a.normalizeModeldata(e,o);var t=new c(this.options,e);return this.options.autoload?t.load(!0):$.when(t)}}}).call(this,"/js/showcase.js")},{"./cameras/DollhouseCamera":5,"./cameras/FloorplanCamera":6,"./cameras/PanoramaCamera":7,"./controls/DollhouseControls":10,"./controls/FloorplanControls":11,"./controls/PanoramaControls":13,"./model/Model":139,"./objects/Chunk":144,"./objects/Floor":146,"./objects/Panorama":148,"./objects/Reticule":149,"./objects/Skybox":152,"./settings":166,"./shaders":167,"./util/ajax":181,"./util/logger":189,"./util/math":190,"./util/showcase":193,"./util/transitions":195,three:217,url:208}],169:[function(e,t,i){"use strict";function l(e){var t={renderTarget:null,inUse:!1,size:-1,pano:null};return t.inUse=!0,t.size=e,function(e){O.push(e)}(t),t}function c(e){for(var t=0;t=this.qualityManager.getMaxNavPanoSize()){if(this.zoomRenderTarget&&this.zoomRenderTarget.width===this.qualityManager.getMaxZoomPanoSize())return;var e=this.zoomRenderTarget;if(this.zoomRenderTarget=this.initTiledPano(this.qualityManager.getMaxZoomPanoSize(),!1),e){var t=e.width,i=this.zoomRenderTarget.width;this.sceneRenderer.copyCubeMap(e.texture,this.zoomRenderTarget,t,t,i,i),e.texture.dispose(),e.texture.loaded=!1,e.texture.version=0,this.sceneRenderer.deallocateCubeTexture(e.texture),e.texture=null}this.zoomPanoRenderingDisabled=!1}else this.zoomPanoRenderingDisabled=!0},n.prototype.enableUltraHighQualityMode=function(t){if(!this.qualityManager.ultraHighQualityModeEnabled()){var e=this.qualityManager.getPanoSize(p.ULTRAHIGH);this.tileDownloader.testDownload(e,A.TILE_SIZE,function(e){e&&(this.qualityManager.enableUltraHighQualityMode(),this.setupZoomRenderTarget(),t())}.bind(this))}},n.prototype.activateTiledPano=function(e,t,i){i&&this.clearAllQueuedUploads();for(var n=0;nthis.qualityManager.getMaxNavPanoSize()&&(o=this.qualityManager.getMaxNavPanoSize()),!r||o!==r.size){if(r&&c(r.renderTarget),!(r=function(e){for(var t=0;t=s.length&&s.push(e),this.activePanos.length=0,this.activePanos.push.apply(this.activePanos,s)}),n.prototype.getActivePanoCount=function(){return this.activePanos.length},n.prototype.resetRenderStatus=function(e,r,o,t){var i=null;t&&(i=v.getLevelCountForSize(A.TILE_SIZE,t)+1);for(var n=function(e,t,i,n){o&&(t.tile.zoomUploaded=!1),r&&(t.tile.uploaded=!1)},a=0;a Cannot render to a pano that is not activated.");for(var o=0;o Tree array not yet initialized!");var n=i[t];if(!n)throw new u("PanoRenderer.getTileTree() -> Tree not yet initialized!");return n},n.prototype.initTiledPano=function(e,t){var i=this.sceneRenderer.renderer,n=(i.context,new _.WebGLRenderTargetCube(e,e,{stencilBuffer:!1})),r=new _.CubeTexture([]);(n.texture=r).image=[null,null,null,null,null,null],r.flipY=!0,t?(r.generateMipmaps=!0,r.magFilter=_.LinearFilter,r.minFilter=_.LinearMipMapLinearFilter):(r.generateMipmaps=!1,r.magFilter=_.LinearFilter,r.minFilter=_.LinearFilter),r.format=_.RGBAFormat,i.setRenderTarget(n),i.setRenderTarget(null);var o=i.properties.get(r);return o.__image__webglTextureCube=o.__webglTexture,n},n.prototype.getUploadQueueForPano=function(e){var t=this.uploadQueues[e];return t||(t=[],this.uploadQueues[e]=t),t},n.prototype.isTileUploaded=function(e){return this.isPanoZoomed(e.panoId)?e.zoomUploaded:e.uploaded},n.prototype.setUploaded=function(e,t){this.isPanoZoomed(e.panoId)?e.zoomUploaded=t:e.uploaded=t},n.prototype.queueTileUpload=function(e,t,i){var n=this.getActiveRenderTargetDescriptor(e.panoId);if(this.isRenderTargetDescriptorValid(n)&&e.downloaded&&!this.isTileUploaded(e)&&(!e.uploadQueued||i)&&(!(e.panoSize>this.qualityManager.getMaxNavPanoSize())||this.zoomingActive)){var r=this.getUploadQueueForPano(e.panoId);i?this.uploadTile(e,!1):(this.shoulPushToFrontOfQueue(e)?this.forceQueue.push(e):t&&this.direction?y.insertSortedPanoTile(r,e,n.pano,this.direction):r.push(e),e.uploadQueued=!0,this.uploadInterval||this.uploadIntervalCancelled||this.refreshUploadInterval(0))}},n.prototype.shoulPushToFrontOfQueue=function(e){return 0===v.getLevelCountForSize(A.TILE_SIZE,e.panoSize)},n.prototype.getTopUploadQueue=function(){for(var e=null,t=null,i=P.Base;i<=P.Remaining;i++)for(var n=0;n=t?(r.uploadQueued=!1,e.splice(n,1)):n++}},n.prototype.refreshUploadInterval=(a=null,function(e){this.uploadIntervalCancelled||(a=a||function(){this.uploadIntervalCancelled||(this.overlayTilesLoaded||!this.usingTileOverlay?(T=!0,this.updateUploadQueue(this.maxNonBaseUploadsPerFrame,this.maxBaseUploadsPerFrame),this.peekNextFromUploadQueue()?this.refreshUploadInterval(x):this.uploadInterval=null):this.refreshUploadInterval(this.uploadIntervalDelay))}.bind(this),null!=e||(e=x),T||(e=S),this.uploadInterval=window.setTimeout(a,e),this.uploadIntervalDelay=e)}),n.prototype.update=(r=performance.now(),o=0,function(){this.uploadIntervalCancelled=!0,window.clearTimeout(this.uploadInterval),this.uploadInterval=null;var e=performance.now()-r;!(xthis.qualityManager.getMaxNavPanoSize())||this.zoomingActive){var o=this.getActiveRenderTargetDescriptor(r.panoId);this.isRenderTargetDescriptorValid(o)&&this.uploadTile(r,r.forceUpload)}}},n.prototype.updateDirection=function(e){if(e=e||this.direction){this.direction=e;for(var t=0;t=m.TILE_SIZE?m.TILE_SIZE:i;e.face=m.getFaceForTile(i,n),e.cubeFace=a.mapFaceToCubemapFace(e.face),e.panoGroupId=this.panoGroupId,e.pano=t,e.panoSize=i,e.tileSize=r,e.tileIndex=n,e.totalTiles=m.getTileCountForSize(i),e.status=v.None,e.image=null,m.getTileLocation(e.panoSize,e.tileIndex,e),m.getTileVector(e.panoSize,e.tileSize,e.cubeFace,e.tileX,e.tileY,m.LocationOnTile.Center,0,e.direction)},i.prototype.getTileUrl=(c={256:"256",512:"512",1024:"1k",2048:"2k",4096:"4k"},h={face:-1,faceTileIndex:-1,tileX:-1,tileY:-1},function(e,t,i,n){m.getTileLocation(t,n,h);var r=Math.floor(t/i),o=r*r,a=Math.floor(n/o),s="";1===u.tiling.customCompression&&(s="_"+u.tiling["q"+c[t]]);var l=this.urls.get("tiles/"+e+"/"+c[t]+s+"_face"+a+"_"+h.tileX+"_"+h.tileY+".jpg");return d.changeIfTileGenerating(l)}),i.prototype.loadImage=function(e,t,i,n){s.getImage(e,t).then(function(e){i(e)}).fail(n)},C.exports=i}).call(this,"/js/tile/TileDownloader.js")},{"../ab":3,"../enum/DownloadStatus":24,"../enum/GLCubeFaces":25,"../enum/PanoSizeClass":36,"../enum/TileDownloaderEvents":45,"../enum/Vectors":50,"../enum/Viewmode":51,"../objects/Panorama":148,"../settings":166,"../util/ajax":181,"../util/logger":189,"../util/panorama":191,"./TilePrioritizer":172,"./TileUtils":174,events:202,three:217}],172:[function(n,C,e){(function(e){"use strict";function h(e,t,i,n,r){this.qualityManager=e,this.maxNavQuality=this.qualityManager.getMaxNavPanoSize(),this.maxZoomQuality=this.qualityManager.getMaxZoomPanoSize(),this.baseSize=t,this.standardSize=i,this.highSize=n,this.ultraHighSize=r,this.priorityCriteria=new h.PriorityCriteria(null,new o.Vector3(0,0,0),new o.Vector3(0,0,-1),new o.Vector3(0,0,-1))}var c,s,l,d,r,u,p,f,o=n("three"),g=(n("../enum/Viewmode"),n("../settings"),n("../settings"),n("../objects/Panorama")),t=n("../util/logger"),i=(n("../enum/Vectors"),n("../enum/PanoSizeClass"),n("../enum/ModelManagerEvents"),n("../enum/GLCubeFaces"),n("../enum/DownloadStatus")),m=(n("../util/browser"),n("./TileUtils")),v=n("../util/math"),a=(n("events").EventEmitter,new t(e),Object.freeze({None:0,DirectionalFOV:1}));h.PriorityCriteria=function(e,t,i,n,r){this.pano=e,this.cameraPosition=(new o.Vector3).copy(t),this.cameraDir=(new o.Vector3).copy(i),this.panoSpaceDir=(new o.Vector3).copy(n),this.upcomingPanos=r,this.copy=function(e){this.pano=e.pano,this.cameraPosition.copy(e.cameraPosition),this.cameraDir.copy(e.cameraDir),this.panoSpaceDir.copy(e.panoSpaceDir),this.upcomingPanos=r},this.zoomingActive=!1},h.DIRECTIONAL_FOV=180,h.DIRECTIONAL_FOV_NARROW=120,h.MAX_SCORED_PANOS_TOCONSIDER=6,h.MAX_SCORED_PANOS_TOADD=2,h.MAX_UPCOMING_PANOS_TOADD=3,h.DIRECTION_SCORE_STRICTNESS=.75,h.appendQueue=function(e,t){if(e&&t)for(var i=0;i=e||this.maxZoomQuality>=e&&this.zoomingActive},h.prototype.populateNeighborPanos=function(e,t,i){(i=i||[]).length=0;var n=t.getNeighbours(e);for(var r in n)if(n.hasOwnProperty(r)){var o=t.get(r);i.push(o)}return i},h.prototype.populateScoredPanos=function(e,t,i,n,r){(i=i||[]).length=0;var o=[g.filters.inPanoDirection(e.position,n,h.DIRECTION_SCORE_STRICTNESS),g.filters.not(e)],a=[g.scoreFunctions.distanceSquared(e),g.scoreFunctions.direction(e.position,n)],s=t.sortByScore(o,a);if(s)for(var l=0;lt.panoSize?1:t.panoSize>e.panoSize?-1:-(o-a)}h.sortPanoTiles=function(e,t,i){y._panoSpaceDir.copy(i),m.getRelativeDirection(t.quaternion,y._panoSpaceDir),y._fovThresholdNarrow=v.getFOVDotThreshold(h.DIRECTIONAL_FOV_NARROW),y._fovThreshold=v.getFOVDotThreshold(h.DIRECTIONAL_FOV),e.sort(y)},h.insertSortedPanoTile=function(e,t,i,n){y._panoSpaceDir.copy(n),m.getRelativeDirection(i.quaternion,y._panoSpaceDir),y._fovThresholdNarrow=v.getFOVDotThreshold(h.DIRECTIONAL_FOV_NARROW),y._fovThreshold=v.getFOVDotThreshold(h.DIRECTIONAL_FOV);for(var r=-1,o=0;ot.levels)return null;var r=new a(t,i);t.allNodes.push(r);for(var o=0;oMath.abs(e.z)?o.setVector(n,-e.y,e.x,0):o.setVector(n,0,-e.z,e.y)):o.cross(e,t,n),this._x=n.x,this._y=n.y,this._z=n.z,this._w=r,this.normalize()},multiply:function(e){return this.multiplyQuaternions(this,e)},premultiply:function(e){return this.multiplyQuaternions(e,this)},multiplyQuaternions:function(e,t){var i=e._x,n=e._y,r=e._z,o=e._w,a=t._x,s=t._y,l=t._z,c=t._w;return this._x=i*c+o*a+n*l-r*s,this._y=n*c+o*s+r*a-i*l,this._z=r*c+o*l+i*s-n*a,this._w=o*c-i*a-n*s-r*l,this}},o.convertWorkshopVector=function(e){return new o.Vector3(-e.x,e.y,e.z)},o.convertWorkshopQuaternion=function(e){return new o.Quaternion(-e.x,e.y,e.z,-e.w).multiply(new o.Quaternion(Math.sqrt(2)/2,Math.sqrt(2)/2,0,0))},o.convertWorkshopOrthoZoom=function(e){return-1===e?-1:e*($("#player").width()/$("#player").height())/g_snapShotWidth*g_snapShotHeight},o.convertWorkshopPanoramaQuaternion=function(e){return new o.Quaternion(e.x,-e.y,-e.z,e.w).normalize().multiply((new o.Quaternion).setFromAxisAngle(new o.Vector3(0,1,0),270*o.RADIANS_PER_DEGREE))},o.normalize=function(e){var t=e.x*e.x+e.y*e.y+e.z*e.z,i=Math.sqrt(t);e.x/=i,e.y/=i,e.z/=i},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.cross=function(e,t,i){var n=e.x,r=e.y,o=e.z;i.x=r*t.z-o*t.y,i.y=o*t.x-n*t.z,i.z=n*t.y-r*t.x},o.setVector=function(e,t,i,n){e.x=t,e.y=i,e.z=n},o.copyVector=function(e,t){t.x=e.x,t.y=e.y,t.z=e.z},o.addVector=function(e,t){e.x+=t.x,e.y+=t.y,e.z+=t.z},o.subVector=function(e,t){e.x-=t.x,e.y-=t.y,e.z-=t.z},o.applyQuaternionToVector=function(e,t){var i=t.x,n=t.y,r=t.z,o=e.x,a=e.y,s=e.z,l=e.w,c=l*i+a*r-s*n,h=l*n+s*i-o*r,u=l*r+o*n-a*i,d=-o*i-a*n-s*r;t.x=c*l+d*-o+h*-s-u*-a,t.y=h*l+d*-a+u*-o-c*-s,t.z=u*l+d*-s+c*-a-h*-o},o.angleBetweenVectors=function(e,t){return Math.acos(o.dot(e,t))},t.exports=o},{"../constants":8}],177:[function(c,h,e){(function(e){"use strict";function t(e){this.cache=null,this.expires=0}function i(){this.baseUrl=null,this.cache=null,this.expires=0}function n(){this.baseUrl=null,this.expires=0}function r(e){this.initialLoadingPromise=null,this.endpoint=e+"?type=3",this.urlContainer=null,this.authorizationHeader=s.getAuthorizationHeader(),this.containerClasses=[n,i,t]}c("./ajax");var o=c("./logger"),a=c("../constants"),s=c("./showcase"),l=(c("../ab"),new o(e));t.prototype={version:1,validate:function(e){return"catalog.json"in e&&0Date.now())},update:function(e){return this.baseUrl=e.templates[0],e.expires?this.expires=1e3*e.expires:this.expires=Date.now()+a.signedUrlDefaultExpireTime,$.when()},get:function(e){return this.baseUrl.replace("{{filename}}",e)}},r.prototype={init:function(){return this.initialLoadingPromise||(setInterval(function(){var e=this.urlContainer?this.urlContainer.expires:Date.now();Date.now()+a.signedUrlRefreshBuffer>e&&(l.debug("Refreshing urls..."),this.refresh().done(function(){l.debug("Refreshed")}).fail(function(){l.error("Failed url refresh, urls might go stale soon")}))}.bind(this),a.signedUrlCheckInterval),this.initialLoadingPromise=this.refresh()),this.initialLoadingPromise},refresh:function(e){return{},$.Deferred().resolve()},get:function(e){return window.MP_PREFETCHED_MODELDATA.files.templates[0].replace("{{filename}}",e)}},h.exports=r}).call(this,"/js/util/ModelUrls.js")},{"../ab":3,"../constants":8,"./ajax":181,"./logger":189,"./showcase":193}],178:[function(l,c,e){(function(e){"use strict";function t(){i.call(this),this.neighbourMap={},this.map=null}var f,g,m,v,y,A,C,I,E,_,b,w=l("three"),n=l("./common"),a=l("../settings"),r=l("../objects/Panorama"),o=(a=l("../settings"),l("./aStar")),T=new(l("./logger"))(e),i=l("./IndexedCollection"),s=l("./transitions");n.inherit(t,i),t.prototype.getIndex=function(e){return e.id},t.prototype.find=function(e,t){var i=n.filterAll(this.list,e);return 0===i.length?null:(t&&t.forEach(function(e){i=n.stableSort(i,e)}),i[0])},t.prototype.sortByScore=function(e,t){var i=n.filterAll(this.list,e);return 0===i.length?null:i=i.map(function(i){return{pano:i,score:t.reduce(function(e,t){return e+t(i)},0)}}).sort(function(e,t){return t.score-e.score})},t.prototype.lowestByScore=function(e,t,i){return this.findRankedByScore(0,e,t,i)},t.prototype.findRankedByScore=function(e,t,i,n){n&&(n.candidates=null,n.pano=null),e=e||0;var r=this.sortByScore(t,i);return!r||0===r.length||e>=r.length?null:(n&&(n.candidates=r,n.pano=r[e].pano),r[e].pano)},t.prototype.showPanoScores=function(e){this.list.forEach(function(e){e.removeTextSprite()});var t=6344768;e.forEach(function(e){e.pano.addTextSprite(e.score.toFixed(2),t),t=16428055})},t.prototype.isNeighbour=function(e,t){return this.neighbourMap[e.id][t.id]},t.prototype.getNeighbours=function(e){return this.neighbourMap[e.id]},t.prototype.setNeighbour=function(e,t,i){return this.neighbourMap[e.id]||(this.neighbourMap[e.id]={}),this.neighbourMap[t.id]||(this.neighbourMap[t.id]={}),this.neighbourMap[e.id][e.id]=!0,this.neighbourMap[t.id][t.id]=!0,this.neighbourMap[e.id][t.id]=i,this.neighbourMap[t.id][e.id]=i,this.neighbourMap[e.id]},t.prototype.findClosest=function(e,t){var i=[r.filters.isPanoAligned()];return t&&i.push(r.filters.inDirection(e,t,.75)),this.find(i,[r.sortFunctions.distanceToPoint(e)])},t.prototype.dualNeighbors=function(e,t){var i,n=[];for(i in this.neighbourMap[e.id])this.neighbourMap[t.id][i]&&n.push(i);return n},t.prototype.populate_path_graph=function(){var e,t,i,n,r,o,a,s,l=Date.now(),c={},h=0,u=new w.Vector3(0,0,0);for(e=0;e=r+E.length;d--)e[d]=e[d-E.length];for(var p=0;pe.timeout)return{status:"timeout",cost:n.g,path:g(n)};var l=o.pop();if(a.delete(t(l.data)),e.isEnd(l.data))return{status:"success",cost:l.g,path:g(l)};r.add(t(l.data));for(var c=e.neighbor(l.data),h=0;h>t/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e)},nth:function(e){return 1===(e%=10)?e+"st":2===e?e+"nd":3===e?e+"rd":e+"th"},extendObject:function(t,i){return Object.keys(i).forEach(function(e){t[e]=i[e]}),t},deepExtend:function e(t){t=t||{};for(var i=1;i"+e+"

    "),$("#debug-console")[0].scrollTop=$("#debug-console")[0].scrollHeight};e=function(e){l(Array.prototype.slice.call(arguments).join(" "))},t=function(e){l(Array.prototype.slice.call(arguments).join(" "))},i=function(e){l("WARN: "+Array.prototype.slice.call(arguments).join(" "))},r=function(e){l("ERROR: "+Array.prototype.slice.call(arguments).join(" "))}}else console.log?(e=console.log,t=console.info?console.info:console.log,i=console.warn?console.warn:console.log,r=console.error?console.error:console.log):e=t=i=r=function(){};function c(e){return[a,h.timestamp()].concat(Array.prototype.slice.call(e))}return{debug:function(){h.level>=h.levels.debug&&e.apply(console,c(arguments))},info:function(){h.level>=h.levels.info&&t.apply(console,c(arguments))},warn:function(){(function(e,t){if(u){var i=Array.prototype.slice.call(e).join(" ");u.captureMessage(i,{level:t,path:n,timestamp:h.timestamp()})}})(arguments,"warn"),h.level>=h.levels.warn&&i.apply(console,c(arguments))},error:function(){(function(e,t){if(u){var i=Array.prototype.slice.call(e).join(" ");u.captureException(new Error(i),{level:t,path:n,timestamp:h.timestamp()})}})(arguments,"error"),h.level>=h.levels.error&&r.apply(console,c(arguments))},v3str:function(e,t){var i=void 0===t?2:t;return"("+e.x.toPrecision(i)+", "+e.y.toPrecision(i)+", "+e.z.toPrecision(i)+")"},eulstr:function(e,t){var i=void 0===t?2:t;return"("+THREE.Math.radToDeg(e.x).toPrecision(i)+", "+THREE.Math.radToDeg(e.y).toPrecision(i)+", "+THREE.Math.radToDeg(e.z).toPrecision(i)+' "'+e.order+'")'},time:function(e){h.level>=h.levels.debug&&(s[e]=Date.now())},timeEnd:function(e){if(h.level>=h.levels.debug){var t=s[e];if(!t)return;var i=(Date.now()-t)/1e3;this.debug(e,i+"s")}}}}var u=window.Raven;h.timestamp=function(){return(Date.now()-window.navigationStart)/1e3+"s"},h.level=(h.levels={debug:3,info:2,warn:1,error:0}).info,t.exports=h},{}],190:[function(e,t,i){"use strict";var o=e("three"),r=e("../enum/GLCubeFaces");e("../constants");t.exports={convertVisionVector:function(e){return new o.Vector3(e.x,e.z,-e.y)},convertVisionQuaternion:function(e){return new o.Quaternion(e.x,e.z,-e.y,e.w).multiply((new o.Quaternion).setFromAxisAngle(new o.Vector3(0,1,0),o.Math.degToRad(90)))},convertWorkshopVector:function(e){return new o.Vector3(-e.x,e.y,e.z)},convertWorkshopQuaternion:function(e){return new o.Quaternion(-e.x,e.y,e.z,-e.w).multiply(new o.Quaternion(Math.sqrt(2)/2,Math.sqrt(2)/2,0,0))},convertWorkshopPanoramaQuaternion:function(e){return new o.Quaternion(e.x,-e.y,-e.z,e.w).normalize().multiply((new o.Quaternion).setFromAxisAngle(new o.Vector3(0,1,0),o.Math.degToRad(270)))},convertWorkshopOrthoZoom:function(e){return-1===e?-1:e*($("#player").width()/$("#player").height())/g_snapShotWidth*g_snapShotHeight},toPrecision:function(e,t){function i(e,t){var i=Math.pow(10,t);return Math.round(e*i)/i}if(e instanceof Array){for(var n=0;nMath.PI?t-=2*Math.PI:t<-Math.PI?t+=2*Math.PI:t},getFOVDotThreshold:function(e){return Math.cos(o.Math.degToRad(e/2))},transform2DForwardVectorByCubeFace:function(e,t,i,n){switch(e){case r.GL_TEXTURE_CUBE_MAP_POSITIVE_X:i.set(1,t.y,t.x);break;case r.GL_TEXTURE_CUBE_MAP_NEGATIVE_X:i.set(-1,t.y,-t.x);break;case r.GL_TEXTURE_CUBE_MAP_POSITIVE_Y:i.set(-t.x,1,-t.y);break;case r.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:i.set(-t.x,-1,t.y);break;case r.GL_TEXTURE_CUBE_MAP_POSITIVE_Z:i.set(-t.x,t.y,1);break;case r.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:i.set(t.x,t.y,-1)}n&&i.normalize()}}},{"../constants":8,"../enum/GLCubeFaces":25,three:217}],191:[function(e,t,i){"use strict";function o(e){return r[e]}var n=e("../enum/GLCubeFaces"),a=[0,1,2,3,4,5],r={0:n.GL_TEXTURE_CUBE_MAP_POSITIVE_Y,1:n.GL_TEXTURE_CUBE_MAP_POSITIVE_Z,2:n.GL_TEXTURE_CUBE_MAP_POSITIVE_X,3:n.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,4:n.GL_TEXTURE_CUBE_MAP_NEGATIVE_X,5:n.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y};t.exports={mapFaceToCubemapFace:o,getCubemapUrls:function(i,n,r){return a.map(function(e,t){return i.get("pan/"+r+"/"+n+"_skybox"+o(e)+".jpg")}.bind(this))}}},{"../enum/GLCubeFaces":25}],192:[function(e,t,i){"use strict";t.exports={captureErrors:function(e,t,i){if("Raven"in window){Raven.config(e,t).install(),i&&Raven.setTagsContext(i);var n=console.warn,r=console.error;console.warn=function(){var e=Array.prototype.slice.call(arguments);Raven.captureMessage(e.join(" "),{level:"warning"}),n.apply(console,e)},console.error=function(){var e=Array.prototype.slice.call(arguments);Raven.captureException(new Error(e.join(" ")),{level:"error"}),r.apply(console,e)}}else console.error("Raven not found, not capturing errors.")}}},{}],193:[function(c,h,e){(function(e){"use strict";var i,n=c("./browser"),r=c("../constants"),o=c("url"),t=c("./logger"),a=c("three"),s=new t(e),l={getAuthorizationHeader:function(){var e=n.valueFromHash("auth");if(e)return e.replace(","," ");var t=n.valueFromCookie("token");return t?"Token "+t:null},parseSidUrl:function(e){var t,i;if(t=g_Prefix,(e=e||"").match(/^https?/)){o.parse(e);t=g_Prefix,i=e}else i=(t=g_Prefix)+"data/"+e;return{urlBase:t,urlModel:i,urlFiles:i+(i.match(/\/$/)?"files":"/files"),urlThumb:i+(i.match(/\/$/)?"thumb":"/thumb")}},getModelIDFromQueryString:function(){return n.valueFromHash("model")||n.valueFromHash("m")},normalizeModeldata:function(e,i){e=JSON.parse(JSON.stringify(e));var n=null;if(e.images.forEach(function(t){if(t.metadata){if("string"==typeof t.metadata)try{t.metadata=JSON.parse(t.metadata)}catch(e){s.warn("Unable to parse image metadata"),t.metadata=null}else"object"==typeof t.metadata&&s.debug("image.metadata already a JSON object");t.metadata.camera_position instanceof Array?(t.metadata.camera_position=(new a.Vector3).fromArray(t.metadata.camera_position),t.metadata.camera_quaternion=(new a.Quaternion).fromArray(t.metadata.camera_quaternion)):(t.metadata.camera_quaternion&&(t.metadata.camera_quaternion=i.convertWorkshopQuaternion(t.metadata.camera_quaternion)),t.metadata.camera_position&&(t.metadata.camera_position=i.convertWorkshopVector(t.metadata.camera_position)),t.metadata.zoom=t.metadata.zoom||1),!n&&e.icon&&e.icon===t.sid&&(n=t.metadata)}}),n&&n.camera_quaternion&&n.camera_position&&n.scan_position&&n.scan_quaternion){var t={};t.pano={quaternion:i.convertWorkshopPanoramaQuaternion(n.scan_quaternion),position:i.convertWorkshopVector(n.scan_position),uuid:n.scan_id},t.camera={quaternion:n.camera_quaternion,position:n.camera_position},e.startPano=t}return e},visionVersionToInt:(i=new RegExp(["(?:[0-9.]+\\.){1,4}","([0-9]+)","[^\\.]*$"].join("")),function(e){if(!e)throw new Error("Vision version is required");var t=i.exec(e);if(null===t)throw new Error("String is not a vision version: "+e);return parseInt(t[1])}),modelDataPromisesTiles:function(e){var t=e.vision_version||window.MP_PREFETCHED_MODELDATA.vision_version;if(t)try{return l.visionVersionToInt(t)>=l.visionVersionToInt(r.visionTilingStartVersion)}catch(e){s.warn("Invalid vision version: "+t)}return!1}};h.exports=l}).call(this,"/js/util/showcase.js")},{"../constants":8,"./browser":182,"./logger":189,three:217,url:208}],194:[function(e,t,i){"use strict";var r=e("../util/ajax"),o=e("three"),a=e("../settings"),s={};t.exports={load:function(e,t,i){var n=s[e];return n?t&&setTimeout(function(){t(n)},1):(n=new o.Texture,a.minimalMemoryMode&&(n.minFilter=o.LinearFilter,n.magFilter=o.LinearFilter,n.generateMipmaps=!1),n.sourceFile=e,s[e]=n,r.getImage(e).then(function(e){n.image=e,n.needsUpdate=!0,t&&t(n)}).fail(i)),n},loadBase64:function(e,t){t=t||"png";var i=new o.Texture;return i.image=document.createElement("img"),i.image.setAttribute("src","data:image/"+t+";base64,"+e),a.minimalMemoryMode&&(i.minFilter=o.LinearFilter,i.magFilter=o.LinearFilter,i.generateMipmaps=!1),i.needsUpdate=!0,i},isLoaded:function(e){return!!s[e]}}},{"../settings":166,"../util/ajax":181,three:217}],195:[function(e,t,i){"use strict";var l=e("./easing");t.exports={globalDone:null,funcs:[],counter:0,uniqueID:0,start:function(e,t,i,n,r,o,a){return n=n||0,this.funcs.push({func:e,current:-n*Math.abs(t),duration:(1-Math.max(n,0))*Math.abs(t),done:i,easing:r||l.linearTween,cycling:t<0,running:!0,debug:n<0,name:o||"T"+this.counter,id:void 0===a?this.counter:a,paused:!1}),e(0,16),this.counter+=1,e},trigger:function(e){var t=void 0===e.delayRatio?0:e.delayRatio,i=e.func||function(){},n=void 0===e.duration?0:e.duration;void 0!==e.cycling&&e.cycling&&(n=-Math.abs(n));var r=e.done||null,o=e.easing||l.linearTween,a=e.name||"R"+this.counter,s=void 0===e.id?this.counter:e.id;return this.start(i,n,r,t,o,a,s)},setTimeout:function(e,t,i){var n=void 0===i?this.counter:i;return this.trigger({done:e,duration:void 0===t?0:t,name:"O"+this.counter,id:n})},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(n){this.funcs.forEach(function(e){if(!(e.paused||(e.current+=1e3*n,e.current<0)))if(e.current>=e.duration&&!e.cycling){var t=e.easing(1,0,1,1);e.func(t,1e3*n),e.done&&e.done(),e.running=!1}else{var i=e.easing(e.current%e.duration/e.duration,0,1,1);(e.func(i,1e3*n)||!1)&&(e.done&&e.done(),e.running=!1)}});var e=this.funcs.length;this.funcs=this.funcs.filter(function(e){return e.running});var t=this.funcs.length;if(0=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function c(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var i=e.length;if(0===i)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return S(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return M(e).length;default:if(n)return S(e).length;t=(""+t).toLowerCase(),n=!0}}function h(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function d(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):2147483647=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:p(e,t,i,n,r);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):p(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function p(e,t,i,n,r){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var a,s=1,l=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;l/=s=2,c/=2,i/=2}if(r){var h=-1;for(a=i;a>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);for(var i="",n=0;ne.length)throw new RangeError("Index out of range")}function _(e,t,i,n){t<0&&(t=65535+t+1);for(var r=0,o=Math.min(e.length-i,2);r>>8*(n?r:1-r)}function b(e,t,i,n){t<0&&(t=4294967295+t+1);for(var r=0,o=Math.min(e.length-i,4);r>>8*(n?r:3-r)&255}function w(e,t,i,n){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function T(e,t,i,n,r){return r||w(e,0,i,4),O.write(e,t,i,n,23,4),i+4}function x(e,t,i,n,r){return r||w(e,0,i,8),O.write(e,t,i,n,52,8),i+8}function S(e,t){t=t||1/0;for(var i,n=e.length,r=null,o=[],a=0;a>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function M(e){return P.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(t,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function R(e,t,i,n){for(var r=0;r=t.length||r>=e.length);++r)t[r+i]=e[r];return r}var P=N("base64-js"),O=N("ieee754"),L=N("isarray");F.Buffer=u,F.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},F.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),F.kMaxLength=i(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,i){return n(null,e,t,i)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,i){return function(e,t,i,n){return r(t),t<=0?o(e,t):void 0!==i?"string"==typeof n?o(e,t).fill(i,n):o(e,t).fill(i):o(e,t)}(null,e,t,i)},u.allocUnsafe=function(e){return a(null,e)},u.allocUnsafeSlow=function(e){return a(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var i=e.length,n=t.length,r=0,o=Math.min(i,n);rthis.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e=e||"utf8";;)switch(e){case"hex":return A(this,t,i);case"utf8":case"utf-8":return f(this,t,i);case"ascii":return v(this,t,i);case"latin1":case"binary":return y(this,t,i);case"base64":return n=this,o=i,0===(r=t)&&o===n.length?P.fromByteArray(n):P.fromByteArray(n.slice(r,o));case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,i);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",t=F.INSPECT_MAX_BYTES;return 0t&&(e+=" ... ")),""},u.prototype.compare=function(e,t,i,n,r){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||i>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(r<=n&&i<=t)return 0;if(r<=n)return-1;if(i<=t)return 1;if(this===e)return 0;for(var o=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(t>>>=0),s=Math.min(o,a),l=this.slice(n,r),c=e.slice(t,i),h=0;hthis.length)throw new RangeError("Attempt to write outside buffer bounds");n=n||"utf8";for(var f=!1;;)switch(n){case"hex":return g(this,e,t,i);case"utf8":case"utf-8":return u=t,d=i,R(S(e,(h=this).length-u),h,u,d);case"ascii":return m(this,e,t,i);case"latin1":case"binary":return m(this,e,t,i);case"base64":return s=this,l=t,c=i,R(M(e),s,l,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o=t,a=i,R(function(e,t){for(var i,n,r,o=[],a=0;a>8,r=i%256,o.push(r),o.push(n);return o}(e,(r=this).length-o),r,o,a);default:if(f)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;u.prototype.slice=function(e,t){var i,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):n>>8):_(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):_(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):b(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):b(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*i-1);E(this,e,t,i,r-1,-r)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+i},u.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*i-1);E(this,e,t,i,r-1,-r)}var o=i-1,a=1,s=0;for(this[t+o]=255&e;0<=--o&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+i},u.prototype.writeInt8=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):_(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):_(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):b(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,i){return e=+e,t|=0,i||E(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):b(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,i){return T(this,e,t,!0,i)},u.prototype.writeFloatBE=function(e,t,i){return T(this,e,t,!1,i)},u.prototype.writeDoubleLE=function(e,t,i){return x(this,e,t,!0,i)},u.prototype.writeDoubleBE=function(e,t,i){return x(this,e,t,!1,i)},u.prototype.copy=function(e,t,i,n){if(i=i||0,n||0===n||(n=this.length),t>=e.length&&(t=e.length),t=t||0,0=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,i=void 0===i?this.length:i>>>0,"number"==typeof(e=e||0))for(o=t;o>18&63]+h[a>>12&63]+h[a>>6&63]+h[63&a]);var a;return r.join("")}i.byteLength=function(e){return 3*e.length/4-l(e)},i.toByteArray=function(e){var t,i,n,r,o,a=e.length;r=l(e),o=new d(3*a/4-r),i=0>16&255,o[s++]=n>>8&255,o[s++]=255&n;return 2===r?(n=u[e.charCodeAt(t)]<<2|u[e.charCodeAt(t+1)]>>4,o[s++]=255&n):1===r&&(n=u[e.charCodeAt(t)]<<10|u[e.charCodeAt(t+1)]<<4|u[e.charCodeAt(t+2)]>>2,o[s++]=n>>8&255,o[s++]=255&n),o},i.fromByteArray=function(e){for(var t,i=e.length,n=i%3,r="",o=[],a=0,s=i-n;a>2],r+=h[t<<4&63],r+="=="):2==n&&(t=(e[i-2]<<8)+e[i-1],r+=h[t>>10],r+=h[t>>4&63],r+=h[t<<2&63],r+="="),o.push(r),o.join("")};for(var h=[],u=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,o=n.length;r>1,h=-7,u=i?r-1:0,d=i?-1:1,p=e[t+u];for(u+=d,o=p&(1<<-h)-1,p>>=-h,h+=s;0>=-h,h+=n;0>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,f=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=h):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),2<=(t+=1<=a+u?d/l:d*Math.pow(2,1-u))*l&&(a++,l/=2),h<=a+u?(s=0,a=h):1<=a+u?(s=(t*l-1)*Math.pow(2,r),a+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,r),a=0));8<=r;e[i+p]=255&s,p+=f,s/=256,r-=8);for(a=a<i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.once=function(e,t){function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}if(!l(t))throw TypeError("listener must be a function");var n=!1;return i.listener=t,this.on(e,i),this},n.prototype.removeListener=function(e,t){var i,n,r,o;if(!l(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=(i=this._events[e]).length,n=-1,i===t||l(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(c(i)){for(o=r;0>>10&1023|55296),e=56320|1023&e),t+R(e)}).join("")}function C(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function I(e,t,i){var n=0;for(e=i?M(e/u):e>>1,e+=M(e/t);m*w>>1M((E-f)/a))&&v("overflow"),f+=l*a,!(l<(c=s<=m?b:m+w<=s?w:s-m));s+=_)a>M(E/(h=_-c))&&v("overflow"),a*=h;m=I(f-o,t=d.length+1,0==o),M(f/t)>E-g&&v("overflow"),g+=M(f/t),f%=t,d.splice(f++,0,g)}return A(d)}function n(e){var t,i,n,r,o,a,s,l,c,h,u,d,p,f,g,m=[];for(d=(e=y(e)).length,t=x,o=T,a=i=0;aM((E-i)/(p=n+1))&&v("overflow"),i+=(s-t)*p,t=s,a=0;aE&&v("overflow"),u==t){for(l=i,c=_;!(l<(h=c<=o?b:o+w<=c?w:c-o));c+=_)g=l-h,f=_-h,m.push(R(C(h+g%f,0))),l=M(g/f);m.push(R(C(l,0))),o=I(i,p,n==r),i=0,++n}++i,++t}return m.join("")}var o="object"==typeof L&&L&&!L.nodeType&&L,a="object"==typeof O&&O&&!O.nodeType&&O,s="object"==typeof P&&P;s.global!==s&&s.window!==s&&s.self!==s||(e=s);var l,c,E=2147483647,_=36,b=1,w=26,h=38,u=700,T=72,x=128,S="-",d=/^xn--/,p=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,g={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=_-b,M=Math.floor,R=String.fromCharCode;if(l={version:"1.4.1",ucs2:{decode:y,encode:A},decode:i,encode:n,toASCII:function(e){return t(e,function(e){return p.test(e)?"xn--"+n(e):e})},toUnicode:function(e){return t(e,function(e){return d.test(e)?i(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return l});else if(o&&a)if(O.exports==o)a.exports=l;else for(c in l)l.hasOwnProperty(c)&&(o[c]=l[c]);else e.punycode=l}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],205:[function(e,t,i){"use strict";t.exports=function(e,t,i,n){t=t||"&",i=i||"=";var r={};if("string"!=typeof e||0===e.length)return r;var o=/\+/g;e=e.split(t);var a=1e3;n&&"number"==typeof n.maxKeys&&(a=n.maxKeys);var s,l,c=e.length;0",'"',"`"," ","\r","\n","\t"]),B=["'"].concat(o),V=["%","/","?",";","#"].concat(B),k=["/","?","#"],U=/^[+a-z0-9A-Z_-]{0,63}$/,H=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,z={javascript:!0,"javascript:":!0},G={javascript:!0,"javascript:":!0},W={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},j=e("querystring");x.prototype.parse=function(e,t,i){if(!D.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),r=-1!==n&&n>1])<0;)e[i]=o,i=a;return e[i]=r},u=function(e,t,i){var n,r,o,a,s;for(null==i&&(i=d),r=e.length,o=e[s=t],n=2*t+1;n]/g,RULE:/^(?:required|optional|repeated|map)$/,TYPE:/^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,NAME:/^[a-zA-Z_][a-zA-Z_0-9]*$/,TYPEDEF:/^[a-zA-Z][a-zA-Z_0-9]*$/,TYPEREF:/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/,FQTYPEREF:/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/,NUMBER:/^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,NUMBER_DEC:/^(?:[1-9][0-9]*|0)$/,NUMBER_HEX:/^0[xX][0-9a-fA-F]+$/,NUMBER_OCT:/^0[0-7]+$/,NUMBER_FLT:/^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,BOOL:/^(?:true|false)$/i,ID:/^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,NEGID:/^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,WHITESPACE:/\s/,STRING:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,STRING_DQ:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,STRING_SQ:/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g},o.DotProto=function(r,a){function s(e,t){var i=-1,n=1;if("-"==e.charAt(0)&&(n=-1,e=e.substring(1)),a.NUMBER_DEC.test(e))i=parseInt(e);else if(a.NUMBER_HEX.test(e))i=parseInt(e.substring(2),16);else{if(!a.NUMBER_OCT.test(e))throw Error("illegal id value: "+(n<0?"-":"")+e);i=parseInt(e.substring(1),8)}if(i=n*i|0,!t&&i<0)throw Error("illegal id value: "+(n<0?"-":"")+e);return i}function o(e){var t=1;if("-"==e.charAt(0)&&(t=-1,e=e.substring(1)),a.NUMBER_DEC.test(e))return t*parseInt(e,10);if(a.NUMBER_HEX.test(e))return t*parseInt(e.substring(2),16);if(a.NUMBER_OCT.test(e))return t*parseInt(e.substring(1),8);if("inf"===e)return t*(1/0);if("nan"===e)return NaN;if(a.NUMBER_FLT.test(e))return t*parseFloat(e);throw Error("illegal number value: "+(t<0?"-":"")+e)}function n(e,t,i){void 0===e[t]?e[t]=i:(Array.isArray(e[t])||(e[t]=[e[t]]),e[t].push(i))}function t(e){this.source=e+"",this.index=0,this.line=1,this.stack=[],this._stringOpen=null}var e={},i=t.prototype;i._readString=function(){var e='"'===this._stringOpen?a.STRING_DQ:a.STRING_SQ;e.lastIndex=this.index-1;var t=e.exec(this.source);if(!t)throw Error("unterminated string");return this.index=e.lastIndex,this.stack.push(this._stringOpen),this._stringOpen=null,t[1]},i.next=function(){if(0=this.source.length)return null;if(null!==this._stringOpen)return this._readString();var e,t,i;do{for(e=!1;a.WHITESPACE.test(i=this.source.charAt(this.index));)if("\n"===i&&++this.line,++this.index===this.source.length)return null;if("/"===this.source.charAt(this.index))if(++this.index,"/"===this.source.charAt(this.index)){for(;"\n"!==this.source.charAt(++this.index);)if(this.index==this.source.length)return null;++this.index,++this.line,e=!0}else{if("*"!==(i=this.source.charAt(this.index)))return"/";do{if("\n"===i&&++this.line,++this.index===this.source.length)return null;t=i,i=this.source.charAt(this.index)}while("*"!==t||"/"!==i);++this.index,e=!0}}while(e);if(this.index===this.source.length)return null;var n=this.index;if(a.DELIM.lastIndex=0,!a.DELIM.test(this.source.charAt(n++)))for(;n"),n=this.tn.next(),!a.NAME.test(n))throw Error("illegal message field name: "+n);r.name=n,this.tn.skip("="),r.id=s(this.tn.next()),"["===(n=this.tn.peek())&&this._parseFieldOptions(r),this.tn.skip(";")}else if("group"===(i=void 0!==i?i:this.tn.next())){var o=this._parseMessage(e,r);if(!/^[A-Z]/.test(o.name))throw Error("illegal group name: "+o.name);r.type=o.name,r.name=o.name.toLowerCase(),this.tn.omit(";")}else{if(!a.TYPE.test(i)&&!a.TYPEREF.test(i))throw Error("illegal message field type: "+i);if(r.type=i,n=this.tn.next(),!a.NAME.test(n))throw Error("illegal message field name: "+n);r.name=n,this.tn.skip("="),r.id=s(this.tn.next()),"["===(n=this.tn.peek())&&this._parseFieldOptions(r),this.tn.skip(";")}return e.fields.push(r),r},c._parseMessageOneOf=function(e){var t=this.tn.next();if(!a.NAME.test(t))throw Error("illegal oneof name: "+t);var i,n=t,r=[];for(this.tn.skip("{");"}"!==(t=this.tn.next());)(i=this._parseMessageField(e,"optional",t)).oneof=n,r.push(i.id);this.tn.omit(";"),e.oneofs[n]=r},c._parseFieldOptions=function(e){this.tn.skip("[");for(var t=!0;"]"!==this.tn.peek();)t||this.tn.skip(","),this._parseOption(e,!0),t=!1;this.tn.next()},c._parseEnum=function(e){var t={name:"",values:[],options:{}},i=this.tn.next();if(!a.NAME.test(i))throw Error("illegal name: "+i);for(t.name=i,this.tn.skip("{");"}"!==(i=this.tn.next());)if("option"===i)this._parseOption(t);else{if(!a.NAME.test(i))throw Error("illegal name: "+i);this.tn.skip("=");var n={name:i,id:s(this.tn.next(),!0)};"["===(i=this.tn.peek())&&this._parseFieldOptions({options:{}}),this.tn.skip(";"),t.values.push(n)}this.tn.omit(";"),e.enums.push(t)},c._parseExtensionRanges=function(){var e,t,i,n=[];do{for(t=[];;){switch(e=this.tn.next()){case"min":i=r.ID_MIN;break;case"max":i=r.ID_MAX;break;default:i=o(e)}if(t.push(i),2===t.length)break;if("to"!==this.tn.peek()){t.push(i);break}this.tn.next()}n.push(t)}while(this.tn.omit(","));return this.tn.skip(";"),n},c._parseExtend=function(e){var t=this.tn.next();if(!a.TYPEREF.test(t))throw Error("illegal extend reference: "+t);var i={ref:t,fields:[]};for(this.tn.skip("{");"}"!==(t=this.tn.next());)if(a.RULE.test(t))this._parseMessageField(i,t);else{if(!a.TYPEREF.test(t))throw Error("illegal extend token: "+t);if(!this.proto3)throw Error("illegal field rule: "+t);this._parseMessageField(i,"optional",t)}return this.tn.omit(";"),e.messages.push(i),i},c.toString=function(){return"Parser at line "+this.tn.line},e.Parser=l,e}(o,o.Lang),o.Reflect=function(g){function a(e,t){if(e&&"number"==typeof e.low&&"number"==typeof e.high&&"boolean"==typeof e.unsigned&&e.low==e.low&&e.high==e.high)return new g.Long(e.low,e.high,void 0===t?e.unsigned:t);if("string"==typeof e)return g.Long.fromString(e,t||!1,10);if("number"==typeof e)return g.Long.fromNumber(e,t||!1);throw Error("not convertible to Long")}function m(e,t){var i=t.readVarint32(),n=7&i,r=i>>>3;switch(n){case g.WIRE_TYPES.VARINT:for(;128==(128&(i=t.readUint8())););break;case g.WIRE_TYPES.BITS64:t.offset+=8;break;case g.WIRE_TYPES.LDELIM:i=t.readVarint32(),t.offset+=i;break;case g.WIRE_TYPES.STARTGROUP:m(r,t);break;case g.WIRE_TYPES.ENDGROUP:if(r===e)return!1;throw Error("Illegal GROUPEND after unknown group: "+r+" ("+e+" expected)");case g.WIRE_TYPES.BITS32:t.offset+=4;break;default:throw Error("Illegal wire type in unknown group "+e+": "+n)}return!0}function h(e,t,i){this.builder=e,this.parent=t,this.name=i,this.className}var s={},e=h.prototype;e.fqn=function(){for(var e=this.name,t=this;null!=(t=t.parent);)e=t.name+"."+e;return e},e.toString=function(e){return(e?this.className+" ":"")+this.fqn()},e.build=function(){throw Error(this.toString(!0)+" cannot be built directly")},s.T=h;function l(e,t,i,n,r){h.call(this,e,t,i),this.className="Namespace",this.children=[],this.options=n||{},this.syntax=r||"proto2"}var t=l.prototype=Object.create(h.prototype);t.getChildren=function(e){if(null==(e=e||null))return this.children.slice();for(var t=[],i=0,n=this.children.length;i>>0:t;case g.TYPES.int64:case g.TYPES.sint64:case g.TYPES.sfixed64:if(g.Long)try{return a(t,!1)}catch(e){i(typeof t,e.message)}else i(typeof t,"requires Long.js");case g.TYPES.uint64:case g.TYPES.fixed64:if(g.Long)try{return a(t,!0)}catch(e){i(typeof t,e.message)}else i(typeof t,"requires Long.js");case g.TYPES.bool:return"boolean"!=typeof t&&i(typeof t,"not a boolean"),t;case g.TYPES.float:case g.TYPES.double:return"number"!=typeof t&&i(typeof t,"not a number"),t;case g.TYPES.string:return"string"==typeof t||t&&t instanceof String||i(typeof t,"not a string"),""+t;case g.TYPES.bytes:return I.isByteBuffer(t)?t:I.wrap(t,"base64");case g.TYPES.enum:var e=this.resolvedType.getChildren(g.Reflect.Enum.Value);for(o=0;o>>0;case g.TYPES.sint32:return 0|e.readVarint32ZigZag();case g.TYPES.fixed32:return e.readUint32()>>>0;case g.TYPES.sfixed32:return 0|e.readInt32();case g.TYPES.int64:return e.readVarint64();case g.TYPES.uint64:return e.readVarint64().toUnsigned();case g.TYPES.sint64:return e.readVarint64ZigZag();case g.TYPES.fixed64:return e.readUint64();case g.TYPES.sfixed64:return e.readInt64();case g.TYPES.bool:return!!e.readVarint32();case g.TYPES.enum:return e.readVarint32();case g.TYPES.float:return e.readFloat();case g.TYPES.double:return e.readDouble();case g.TYPES.string:return e.readVString();case g.TYPES.bytes:if(r=e.readVarint32(),e.remaining()>>3,(r=7&n)===g.WIRE_TYPES.ENDGROUP){if(o!==i)throw Error("Illegal group end indicator for "+this.toString(!0)+": "+o+" ("+(i?i+" expected":"not a group")+")");break}if(a=this._fieldsById[o]){if(a.repeated&&!a.options.packed)l[a.name].push(a.decode(r,e));else if(a.map){var c=a.decode(r,e);l[a.name].set(c[0],c[1])}else if(l[a.name]=a.decode(r,e),a.oneof){var h=l[a.oneof.name];null!==h&&h!==a.name&&(l[h]=null),l[a.oneof.name]=a.name}}else switch(r){case g.WIRE_TYPES.VARINT:e.readVarint32();break;case g.WIRE_TYPES.BITS32:e.offset+=4;break;case g.WIRE_TYPES.BITS64:e.offset+=8;break;case g.WIRE_TYPES.LDELIM:var u=e.readVarint32();e.offset+=u;break;case g.WIRE_TYPES.STARTGROUP:for(;m(o,e););break;default:throw Error("Illegal wire type for unknown field "+o+" in "+this.toString(!0)+"#decode: "+r)}}for(var d=0,p=this._fields.length;d>>3;if(1==c)a=this.keyElement.decode(s,e,c);else{if(2!=c)throw Error("Unexpected tag in map field key/value submessage");n=this.element.decode(s,e,c)}}return[a,n]}return this.element.decode(t,e,this.id)},s.Message.Field=c;function o(e,t,i,n,r,o,a){c.call(this,e,t,i,null,n,r,o,a),this.extension}o.prototype=Object.create(c.prototype),s.Message.ExtensionField=o;s.Message.OneOf=function(e,t,i){h.call(this,e,t,i),this.fields=[]};var p=function(e,t,i,n,r){l.call(this,e,t,i,n,r),this.className="Enum",this.object=null};p.getName=function(e,t){for(var i,n=Object.keys(e),r=0;r=e[0]&&t.id<=e[1]&&(i=!0)}),!i)throw Error("illegal extended field id in "+o.name+": "+t.id+" (not within valid ranges)")}var e=t.name;this.options.convertFieldsToCamelCase&&(e=u.Util.toCamelCase(e));var n=new s.Message.ExtensionField(this,o,t.rule,t.type,this.ptr.fqn()+"."+e,t.id,t.options),r=new s.Extension(this,this.ptr,t.name,n);n.extension=r,this.ptr.addChild(r),o.addChild(n)},this);else if(!/\.?google\.protobuf\./.test(i.ref))throw Error("extended message "+i.ref+" is not defined")}o=i=null}e=null,this.ptr=this.ptr.parent}return this.resolved=!1,this.result=null,this},n.import=function(t,e){var i="/";if("string"==typeof e){if(u.Util.IS_NODE&&(e=p("path").resolve(e)),!0===this.files[e])return this.reset();this.files[e]=!0}else if("object"==typeof e){var n=e.root;u.Util.IS_NODE&&(n=p("path").resolve(n)),(0<=n.indexOf("\\")||0<=e.file.indexOf("\\"))&&(i="\\");var r=n+i+e.file;if(!0===this.files[r])return this.reset();this.files[r]=!0}if(t.imports&&0>1,h=-7,u=i?r-1:0,d=i?-1:1,p=e[t+u];for(u+=d,o=p&(1<<-h)-1,p>>=-h,h+=s;0>=-h,h+=n;0>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,f=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=h):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),2<=(t+=1<=a+u?d/l:d*Math.pow(2,1-u))*l&&(a++,l/=2),h<=a+u?(s=0,a=h):1<=a+u?(s=(t*l-1)*Math.pow(2,r),a+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,r),a=0));8<=r;e[i+p]=255&s,p+=f,s/=256,r-=8);for(a=a<>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var n,r=t,o=e.length,a=o>>3,s=0;for(t+=this.writeVarint32(o,t);a--;)n=1&!!e[s++]|(1&!!e[s++])<<1|(1&!!e[s++])<<2|(1&!!e[s++])<<3|(1&!!e[s++])<<4|(1&!!e[s++])<<5|(1&!!e[s++])<<6|(1&!!e[s++])<<7,this.writeByte(n,t++);if(s>3,a=0,s=[];for(e+=n.length;o--;)i=this.readByte(e++),s[a++]=!!(1&i),s[a++]=!!(2&i),s[a++]=!!(4&i),s[a++]=!!(8&i),s[a++]=!!(16&i),s[a++]=!!(32&i),s[a++]=!!(64&i),s[a++]=!!(128&i);if(a>l++&1)}return t&&(this.offset=e),s},a.readBytes=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+"+e+") <= "+this.buffer.byteLength)}var n=this.slice(t,t+e);return i&&(this.offset+=e),n},a.writeBytes=a.append,a.writeInt8=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var n=this.buffer.byteLength;return nt?n:t),t-=1,this.view[t]=e,i&&(this.offset+=1),this},a.writeByte=a.writeInt8,a.readInt8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i=this.view[e];return 128==(128&i)&&(i=-(255-i+1)),t&&(this.offset+=1),i},a.readByte=a.readInt8,a.writeUint8=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=1;var n=this.buffer.byteLength;return nt?n:t),t-=1,this.view[t]=e,i&&(this.offset+=1),this},a.writeUInt8=a.writeUint8,a.readUint8=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i=this.view[e];return t&&(this.offset+=1),i},a.readUInt8=a.readUint8,a.writeInt16=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var n=this.buffer.byteLength;return nt?n:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),i&&(this.offset+=2),this},a.writeShort=a.writeInt16,a.readInt16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var i=0;return this.littleEndian?(i=this.view[e],i|=this.view[e+1]<<8):(i=this.view[e]<<8,i|=this.view[e+1]),32768==(32768&i)&&(i=-(65535-i+1)),t&&(this.offset+=2),i},a.readShort=a.readInt16,a.writeUint16=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=2;var n=this.buffer.byteLength;return nt?n:t),t-=2,this.littleEndian?(this.view[t+1]=(65280&e)>>>8,this.view[t]=255&e):(this.view[t]=(65280&e)>>>8,this.view[t+1]=255&e),i&&(this.offset+=2),this},a.writeUInt16=a.writeUint16,a.readUint16=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+2) <= "+this.buffer.byteLength)}var i=0;return this.littleEndian?(i=this.view[e],i|=this.view[e+1]<<8):(i=this.view[e]<<8,i|=this.view[e+1]),t&&(this.offset+=2),i},a.readUInt16=a.readUint16,a.writeInt32=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var n=this.buffer.byteLength;return nt?n:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),i&&(this.offset+=4),this},a.writeInt=a.writeInt32,a.readInt32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var i=0;return this.littleEndian?(i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0):(i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0),i|=0,t&&(this.offset+=4),i},a.readInt=a.readInt32,a.writeUint32=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var n=this.buffer.byteLength;return nt?n:t),t-=4,this.littleEndian?(this.view[t+3]=e>>>24&255,this.view[t+2]=e>>>16&255,this.view[t+1]=e>>>8&255,this.view[t]=255&e):(this.view[t]=e>>>24&255,this.view[t+1]=e>>>16&255,this.view[t+2]=e>>>8&255,this.view[t+3]=255&e),i&&(this.offset+=4),this},a.writeUInt32=a.writeUint32,a.readUint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var i=0;return this.littleEndian?(i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0):(i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0),t&&(this.offset+=4),i},a.readUInt32=a.readUint32,l&&(a.writeInt64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"==typeof e)e=l.fromNumber(e);else if("string"==typeof e)e=l.fromString(e);else if(!(e&&e instanceof l))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=l.fromNumber(e):"string"==typeof e&&(e=l.fromString(e)),t+=8;var n=this.buffer.byteLength;nt?n:t),t-=8;var r=e.low,o=e.high;return this.littleEndian?(this.view[t+3]=r>>>24&255,this.view[t+2]=r>>>16&255,this.view[t+1]=r>>>8&255,this.view[t]=255&r,t+=4,this.view[t+3]=o>>>24&255,this.view[t+2]=o>>>16&255,this.view[t+1]=o>>>8&255,this.view[t]=255&o):(this.view[t]=o>>>24&255,this.view[t+1]=o>>>16&255,this.view[t+2]=o>>>8&255,this.view[t+3]=255&o,t+=4,this.view[t]=r>>>24&255,this.view[t+1]=r>>>16&255,this.view[t+2]=r>>>8&255,this.view[t+3]=255&r),i&&(this.offset+=8),this},a.writeLong=a.writeInt64,a.readInt64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var i=0,n=0;this.littleEndian?(i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0,e+=4,n=this.view[e+2]<<16,n|=this.view[e+1]<<8,n|=this.view[e],n+=this.view[e+3]<<24>>>0):(n=this.view[e+1]<<16,n|=this.view[e+2]<<8,n|=this.view[e+3],n+=this.view[e]<<24>>>0,e+=4,i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0);var r=new l(i,n,!1);return t&&(this.offset+=8),r},a.readLong=a.readInt64,a.writeUint64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"==typeof e)e=l.fromNumber(e);else if("string"==typeof e)e=l.fromString(e);else if(!(e&&e instanceof l))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=l.fromNumber(e):"string"==typeof e&&(e=l.fromString(e)),t+=8;var n=this.buffer.byteLength;nt?n:t),t-=8;var r=e.low,o=e.high;return this.littleEndian?(this.view[t+3]=r>>>24&255,this.view[t+2]=r>>>16&255,this.view[t+1]=r>>>8&255,this.view[t]=255&r,t+=4,this.view[t+3]=o>>>24&255,this.view[t+2]=o>>>16&255,this.view[t+1]=o>>>8&255,this.view[t]=255&o):(this.view[t]=o>>>24&255,this.view[t+1]=o>>>16&255,this.view[t+2]=o>>>8&255,this.view[t+3]=255&o,t+=4,this.view[t]=r>>>24&255,this.view[t+1]=r>>>16&255,this.view[t+2]=r>>>8&255,this.view[t+3]=255&r),i&&(this.offset+=8),this},a.writeUInt64=a.writeUint64,a.readUint64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var i=0,n=0;this.littleEndian?(i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0,e+=4,n=this.view[e+2]<<16,n|=this.view[e+1]<<8,n|=this.view[e],n+=this.view[e+3]<<24>>>0):(n=this.view[e+1]<<16,n|=this.view[e+2]<<8,n|=this.view[e+3],n+=this.view[e]<<24>>>0,e+=4,i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0);var r=new l(i,n,!0);return t&&(this.offset+=8),r},a.readUInt64=a.readUint64),a.writeFloat32=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=4;var n=this.buffer.byteLength;return nt?n:t),t-=4,r(this.view,e,t,this.littleEndian,23,4),i&&(this.offset+=4),this},a.writeFloat=a.writeFloat32,a.readFloat32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var i=n(this.view,e,this.littleEndian,23,4);return t&&(this.offset+=4),i},a.readFloat=a.readFloat32,a.writeFloat64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e)throw TypeError("Illegal value: "+e+" (not a number)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}t+=8;var n=this.buffer.byteLength;return nt?n:t),t-=8,r(this.view,e,t,this.littleEndian,52,8),i&&(this.offset+=8),this},a.writeDouble=a.writeFloat64,a.readFloat64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var i=n(this.view,e,this.littleEndian,52,8);return t&&(this.offset+=8),i},a.readDouble=a.readFloat64,f.MAX_VARINT32_BYTES=5,f.calculateVarint32=function(e){return(e>>>=0)<128?1:e<16384?2:e<1<<21?3:e<1<<28?4:5},f.zigZagEncode32=function(e){return((e|=0)<<1^e>>31)>>>0},f.zigZagDecode32=function(e){return e>>>1^-(1&e)|0},a.writeVarint32=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal value: "+e+" (not an integer)");if(e|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var n,r=f.calculateVarint32(e);t+=r;var o=this.buffer.byteLength;for(ot?o:t),t-=r,e>>>=0;128<=e;)n=127&e|128,this.view[t++]=n,e>>>=7;return this.view[t++]=e,i?(this.offset=t,this):r},a.writeVarint32ZigZag=function(e,t){return this.writeVarint32(f.zigZagEncode32(e),t)},a.readVarint32=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i,n=0,r=0;do{if(!this.noAssert&&e>this.limit){var o=Error("Truncated");throw o.truncated=!0,o}i=this.view[e++],n<5&&(r|=(127&i)<<7*n),++n}while(0!=(128&i));return r|=0,t?(this.offset=e,r):{value:r,length:n}},a.readVarint32ZigZag=function(e){var t=this.readVarint32(e);return"object"==typeof t?t.value=f.zigZagDecode32(t.value):t=f.zigZagDecode32(t),t},l&&(f.MAX_VARINT64_BYTES=10,f.calculateVarint64=function(e){"number"==typeof e?e=l.fromNumber(e):"string"==typeof e&&(e=l.fromString(e));var t=e.toInt()>>>0,i=e.shiftRightUnsigned(28).toInt()>>>0,n=e.shiftRightUnsigned(56).toInt()>>>0;return 0==n?0==i?t<16384?t<128?1:2:t<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:n<128?9:10},f.zigZagEncode64=function(e){return"number"==typeof e?e=l.fromNumber(e,!1):"string"==typeof e?e=l.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftLeft(1).xor(e.shiftRight(63)).toUnsigned()},f.zigZagDecode64=function(e){return"number"==typeof e?e=l.fromNumber(e,!1):"string"==typeof e?e=l.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftRightUnsigned(1).xor(e.and(l.ONE).toSigned().negate()).toSigned()},a.writeVarint64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"==typeof e)e=l.fromNumber(e);else if("string"==typeof e)e=l.fromString(e);else if(!(e&&e instanceof l))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=l.fromNumber(e,!1):"string"==typeof e?e=l.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned());var n=f.calculateVarint64(e),r=e.toInt()>>>0,o=e.shiftRightUnsigned(28).toInt()>>>0,a=e.shiftRightUnsigned(56).toInt()>>>0;t+=n;var s=this.buffer.byteLength;switch(st?s:t),t-=n,n){case 10:this.view[t+9]=a>>>7&1;case 9:this.view[t+8]=9!==n?128|a:127&a;case 8:this.view[t+7]=8!==n?o>>>21|128:o>>>21&127;case 7:this.view[t+6]=7!==n?o>>>14|128:o>>>14&127;case 6:this.view[t+5]=6!==n?o>>>7|128:o>>>7&127;case 5:this.view[t+4]=5!==n?128|o:127&o;case 4:this.view[t+3]=4!==n?r>>>21|128:r>>>21&127;case 3:this.view[t+2]=3!==n?r>>>14|128:r>>>14&127;case 2:this.view[t+1]=2!==n?r>>>7|128:r>>>7&127;case 1:this.view[t]=1!==n?128|r:127&r}return i?(this.offset+=n,this):n},a.writeVarint64ZigZag=function(e,t){return this.writeVarint64(f.zigZagEncode64(e),t)},a.readVarint64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i=e,n=0,r=0,o=0,a=0;if(n=127&(a=this.view[e++]),128&a&&(n|=(127&(a=this.view[e++]))<<7,(128&a||this.noAssert&&void 0===a)&&(n|=(127&(a=this.view[e++]))<<14,(128&a||this.noAssert&&void 0===a)&&(n|=(127&(a=this.view[e++]))<<21,(128&a||this.noAssert&&void 0===a)&&(r=127&(a=this.view[e++]),(128&a||this.noAssert&&void 0===a)&&(r|=(127&(a=this.view[e++]))<<7,(128&a||this.noAssert&&void 0===a)&&(r|=(127&(a=this.view[e++]))<<14,(128&a||this.noAssert&&void 0===a)&&(r|=(127&(a=this.view[e++]))<<21,(128&a||this.noAssert&&void 0===a)&&(o=127&(a=this.view[e++]),(128&a||this.noAssert&&void 0===a)&&(o|=(127&(a=this.view[e++]))<<7,128&a||this.noAssert&&void 0===a))))))))))throw Error("Buffer overrun");var s=l.fromBits(n|r<<28,r>>>4|o<<24,!1);return t?(this.offset=e,s):{value:s,length:e-i}},a.readVarint64ZigZag=function(e){var t=this.readVarint64(e);return t&&t.value instanceof l?t.value=f.zigZagDecode64(t.value):t=f.zigZagDecode64(t),t}),a.writeCString=function(e,t){var i=void 0===t;i&&(t=this.offset);var n,r=e.length;if(!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");for(n=0;n>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}r=d.calculateUTF16asUTF8(s(e))[1],t+=r+1;var o=this.buffer.byteLength;return ot?o:t),t-=r+1,d.encodeUTF16toUTF8(s(e),function(e){this.view[t++]=e}.bind(this)),this.view[t++]=0,i?(this.offset=t,this):r},a.readCString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i,n=e,r=-1;return d.decodeUTF8toUTF16(function(){if(0===r)return null;if(e>=this.limit)throw RangeError("Illegal range: Truncated data, "+e+" < "+this.limit);return 0===(r=this.view[e++])?null:r}.bind(this),i=c(),!0),t?(this.offset=e,i()):{string:i(),length:e-n}},a.writeIString=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("string"!=typeof e)throw TypeError("Illegal str: Not a string");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var n,r=t;n=d.calculateUTF16asUTF8(s(e),this.noAssert)[1],t+=4+n;var o=this.buffer.byteLength;if(ot?o:t),t-=4+n,this.littleEndian?(this.view[t+3]=n>>>24&255,this.view[t+2]=n>>>16&255,this.view[t+1]=n>>>8&255,this.view[t]=255&n):(this.view[t]=n>>>24&255,this.view[t+1]=n>>>16&255,this.view[t+2]=n>>>8&255,this.view[t+3]=255&n),t+=4,d.encodeUTF16toUTF8(s(e),function(e){this.view[t++]=e}.bind(this)),t!==r+4+n)throw RangeError("Illegal range: Truncated data, "+t+" == "+(t+4+n));return i?(this.offset=t,this):t-r},a.readIString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+4) <= "+this.buffer.byteLength)}var i=e,n=this.readUint32(e),r=this.readUTF8String(n,f.METRICS_BYTES,e+=4);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-i}},f.METRICS_CHARS="c",f.METRICS_BYTES="b",a.writeUTF8String=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var n,r=t;n=d.calculateUTF16asUTF8(s(e))[1],t+=n;var o=this.buffer.byteLength;return ot?o:t),t-=n,d.encodeUTF16toUTF8(s(e),function(e){this.view[t++]=e}.bind(this)),i?(this.offset=t,this):t-r},a.writeString=a.writeUTF8String,f.calculateUTF8Chars=function(e){return d.calculateUTF16asUTF8(s(e))[0]},f.calculateUTF8Bytes=function(e){return d.calculateUTF16asUTF8(s(e))[1]},f.calculateString=f.calculateUTF8Bytes,a.readUTF8String=function(e,t,i){"number"==typeof t&&(i=t,t=void 0);var n=void 0===i;if(n&&(i=this.offset),void 0===t&&(t=f.METRICS_CHARS),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");if(e|=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}var r,o=0,a=i;if(t===f.METRICS_CHARS){if(r=c(),d.decodeUTF8(function(){return o>>=0)<0||i+e>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+"+e+") <= "+this.buffer.byteLength)}var s=i+e;if(d.decodeUTF8toUTF16(function(){return i>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var n,r,o=t;n=d.calculateUTF16asUTF8(s(e),this.noAssert)[1],r=f.calculateVarint32(n),t+=r+n;var a=this.buffer.byteLength;if(at?a:t),t-=r+n,t+=this.writeVarint32(n,t),d.encodeUTF16toUTF8(s(e),function(e){this.view[t++]=e}.bind(this)),t!==o+n+r)throw RangeError("Illegal range: Truncated data, "+t+" == "+(t+n+r));return i?(this.offset=t,this):t-o},a.readVString=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i=e,n=this.readVarint32(e),r=this.readUTF8String(n.value,f.METRICS_BYTES,e+=n.length);return e+=r.length,t?(this.offset=e,r.string):{string:r.string,length:e-i}},a.append=function(e,t,i){"number"!=typeof t&&"string"==typeof t||(i=t,t=void 0);var n=void 0===i;if(n&&(i=this.offset),!this.noAssert){if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}e instanceof f||(e=f.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;i+=r;var o=this.buffer.byteLength;return oi?o:i),i-=r,this.view.set(e.view.subarray(e.offset,e.limit),i),e.offset+=r,n&&(this.offset+=r),this},a.appendTo=function(e,t){return e.append(this,t),this},a.assert=function(e){return this.noAssert=!e,this},a.capacity=function(){return this.buffer.byteLength},a.clear=function(){return this.offset=0,this.limit=this.buffer.byteLength,this.markedOffset=-1,this},a.clone=function(e){var t=new f(0,this.littleEndian,this.noAssert);return e?(t.buffer=new ArrayBuffer(this.buffer.byteLength),t.view=new Uint8Array(t.buffer)):(t.buffer=this.buffer,t.view=this.view),t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t},a.compact=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||tthis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(0===e&&t===this.buffer.byteLength)return this;var i=t-e;if(0==i)return this.buffer=o,this.view=null,0<=this.markedOffset&&(this.markedOffset-=e),this.offset=0,this.limit=0,this;var n=new ArrayBuffer(i),r=new Uint8Array(n);return r.set(this.view.subarray(e,t)),this.buffer=n,this.view=r,0<=this.markedOffset&&(this.markedOffset-=e),this.offset=0,this.limit=i,this},a.copy=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||tthis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(e===t)return new f(0,this.littleEndian,this.noAssert);var i=t-e,n=new f(i,this.littleEndian,this.noAssert);return n.offset=0,n.limit=i,0<=n.markedOffset&&(n.markedOffset-=e),this.copyTo(n,0,e,t),n},a.copyTo=function(e,t,i,n){var r,o;if(!this.noAssert&&!f.isByteBuffer(e))throw TypeError("Illegal target: Not a ByteBuffer");if(t=(o=void 0===t)?e.offset:0|t,i=(r=void 0===i)?this.offset:0|i,n=void 0===n?this.limit:0|n,t<0||t>e.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+t+" <= "+e.buffer.byteLength);if(i<0||n>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+i+" <= "+this.buffer.byteLength);var a=n-i;return 0==a?e:(e.ensureCapacity(t+a),e.view.set(this.view.subarray(i,n),t),r&&(this.offset+=a),o&&(e.offset+=a),this)},a.ensureCapacity=function(e){var t=this.buffer.byteLength;return te?t:e):this},a.fill=function(e,t,i){var n=void 0===t;if(n&&(t=this.offset),"string"==typeof e&&0>>=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal end: Not an integer");if(i>>>=0,t<0||ithis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+i+" <= "+this.buffer.byteLength)}if(i<=t)return this;for(;t>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}return this.markedOffset=e,this},a.order=function(e){if(!this.noAssert&&"boolean"!=typeof e)throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!e,this},a.LE=function(e){return this.littleEndian=void 0===e||!!e,this},a.BE=function(e){return this.littleEndian=void 0!==e&&!e,this},a.prepend=function(e,t,i){"number"!=typeof t&&"string"==typeof t||(i=t,t=void 0);var n=void 0===i;if(n&&(i=this.offset),!this.noAssert){if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}e instanceof f||(e=f.wrap(e,t));var r=e.limit-e.offset;if(r<=0)return this;var o=r-i;if(0>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||tthis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}return e===t||Array.prototype.reverse.call(this.view.subarray(e,t)),this},a.skip=function(e){if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal length: "+e+" (not an integer)");e|=0}var t=this.offset+e;if(!this.noAssert&&(t<0||t>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+e+" <= "+this.buffer.byteLength);return this.offset=t,this},a.slice=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||tthis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}var i=this.clone();return i.offset=e,i.limit=t,i},a.toBuffer=function(e){var t=this.offset,i=this.limit;if(!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: Not an integer");if(t>>>=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal limit: Not an integer");if(i>>>=0,t<0||ithis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+i+" <= "+this.buffer.byteLength)}if(!e&&0===t&&i===this.buffer.byteLength)return this.buffer;if(t===i)return o;var n=new ArrayBuffer(i-t);return new Uint8Array(n).set(new Uint8Array(this.buffer).subarray(t,i),0),n},a.toArrayBuffer=a.toBuffer,a.toString=function(e,t,i){if(void 0===e)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch("number"==typeof e&&(i=t=e="utf8"),e){case"utf8":return this.toUTF8(t,i);case"base64":return this.toBase64(t,i);case"hex":return this.toHex(t,i);case"binary":return this.toBinary(t,i);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+e)}};var h=function(){for(var e={},r=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],a=[],t=0,i=r.length;t>2&63]),n=(3&i)<<4,null!==(i=e())?(t(r[63&((n|=i>>4&15)|i>>4&15)]),n=(15&i)<<2,null!==(i=e())?(t(r[63&(n|i>>6&3)]),t(r[63&i])):(t(r[63&n]),t(61))):(t(r[63&n]),t(61),t(61))},e.decode=function(e,t){function i(e){throw Error("Illegal character code: "+e)}for(var n,r,o;null!==(n=e());)if(void 0===(r=a[n])&&i(n),null!==(n=e())&&(void 0===(o=a[n])&&i(n),t(r<<2>>>0|(48&o)>>4),null!==(n=e()))){if(void 0===(r=a[n])){if(61===n)break;i(n)}if(t((15&o)<<4>>>0|(60&r)>>2),null!==(n=e())){if(void 0===(o=a[n])){if(61===n)break;i(n)}t((3&r)<<6>>>0|o)}}},e.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)},e}();a.toBase64=function(e,t){if(void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),t|=0,(e|=0)<0||t>this.capacity||tthis.capacity()||t":i===this.markedOffset?"'":e||0!==i&&i!==n?" ":""}if(e&&" "!==r){for(;r.length<51;)r+=" ";a+=r+o+"\n"}return e?a:r},f.fromDebug=function(e,t,i){for(var n,r,o=e.length,a=new f((o+1)/3|0,t,i),s=0,l=0,c=!1,h=!1,u=!1,d=!1,p=!1;s":if(!i){if(d){p=!0;break}d=!0}a.limit=l,c=!1;break;case"'":if(!i){if(u){p=!0;break}u=!0}a.markedOffset=l,c=!1;break;case" ":c=!1;break;default:if(!i&&c){p=!0;break}if(r=parseInt(n+e.charAt(s++),16),!i&&(isNaN(r)||r<0||255>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||tthis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}for(var i,n=new Array(t-e);e>6&31|192):(i<65536?t(i>>12&15|224):(t(i>>18&7|240),t(i>>12&63|128)),t(i>>6&63|128)),t(63&i|128)),i=null},decodeUTF8:function(e,t){for(var i,n,r,o,a=function(e){e=e.slice(0,e.indexOf(null));var t=Error(e.toString());throw t.name="TruncatedError",t.bytes=e,t};null!==(i=e());)if(0==(128&i))t(i);else if(192==(224&i))null===(n=e())&&a([i,n]),t((31&i)<<6|63&n);else if(224==(240&i))null!==(n=e())&&null!==(r=e())||a([i,n,r]),t((15&i)<<12|(63&n)<<6|63&r);else{if(240!=(248&i))throw RangeError("Illegal starting byte: "+i);null!==(n=e())&&null!==(r=e())&&null!==(o=e())||a([i,n,r,o]),t((7&i)<<18|(63&n)<<12|(63&r)<<6|63&o)}},UTF16toUTF8:function(e,t){for(var i,n=null;null!==(i=null!==n?n:e());)55296<=i&&i<=57343&&null!==(n=e())&&56320<=n&&n<=57343?(t(1024*(i-55296)+n-56320+65536),n=null):t(i);null!==n&&t(n)},UTF8toUTF16:function(e,t){var i=null;for("number"==typeof e&&(i=e,e=function(){return null});null!==i||null!==(i=e());)i<=65535?t(i):(t(55296+((i-=65536)>>10)),t(i%1024+56320)),i=null},encodeUTF16toUTF8:function(e,t){u.UTF16toUTF8(e,function(e){u.encodeUTF8(e,t)})},decodeUTF8toUTF16:function(e,t){u.decodeUTF8(e,function(e){u.UTF8toUTF16(e,t)})},calculateCodePoint:function(e){return e<128?1:e<2048?2:e<65536?3:4},calculateUTF8:function(e){for(var t,i=0;null!==(t=e());)i+=t<128?1:t<2048?2:t<65536?3:4;return i},calculateUTF16asUTF8:function(e){var t=0,i=0;return u.UTF16toUTF8(e,function(e){++t,i+=e<128?1:e<2048?2:e<65536?3:4}),[t,i]}};return a.toUTF8=function(t,i){if(void 0===t&&(t=this.offset),void 0===i&&(i=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal end: Not an integer");if(i>>>=0,t<0||ithis.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+i+" <= "+this.buffer.byteLength)}var e;try{d.decodeUTF8toUTF16(function(){return t>>=0)&&e<256)&&(n=a[e])?n:(i=g(e,(0|e)<0?-1:0,!0),r&&(a[e]=i),i):(r=-128<=(e|=0)&&e<128)&&(n=o[e])?n:(i=g(e,e<0?-1:0,!1),r&&(o[e]=i),i)}function f(e,t){if(isNaN(e)||!isFinite(e))return t?l:y;if(t){if(e<0)return l;if(r<=e)return I}else{if(e<=-s)return E;if(s<=e+1)return C}return e<0?f(-e,t).neg():g(e%i|0,e/i|0,t)}function g(e,t,i){return new n(e,t,i)}function h(e,t,i){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return y;if(t="number"==typeof t?(i=t,!1):!!t,(i=i||10)<2||36>>0:this.low},t.toNumber=function(){return this.unsigned?(this.high>>>0)*i+(this.low>>>0):this.high*i+(this.low>>>0)},t.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((o=s).isZero())return l+a;for(;l.length<6;)l="0"+l;a=""+l+a}},t.getHighBits=function(){return this.high},t.getHighBitsUnsigned=function(){return this.high>>>0},t.getLowBits=function(){return this.low},t.getLowBitsUnsigned=function(){return this.low>>>0},t.getNumBitsAbs=function(){if(this.isNegative())return this.eq(E)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;0>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},t.eq=t.equals,t.notEquals=function(e){return!this.eq(e)},t.neq=t.notEquals,t.lessThan=function(e){return this.comp(e)<0},t.lt=t.lessThan,t.lessThanOrEqual=function(e){return this.comp(e)<=0},t.lte=t.lessThanOrEqual,t.greaterThan=function(e){return 0>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},t.comp=t.compare,t.negate=function(){return!this.unsigned&&this.eq(E)?E:this.not().add(c)},t.neg=t.negate,t.add=function(e){p(e)||(e=m(e));var t=this.high>>>16,i=65535&this.high,n=this.low>>>16,r=65535&this.low,o=e.high>>>16,a=65535&e.high,s=e.low>>>16,l=0,c=0,h=0,u=0;return h+=(u+=r+(65535&e.low))>>>16,c+=(h+=n+s)>>>16,l+=(c+=i+a)>>>16,l+=t+o,g((h&=65535)<<16|(u&=65535),(l&=65535)<<16|(c&=65535),this.unsigned)},t.subtract=function(e){return p(e)||(e=m(e)),this.add(e.neg())},t.sub=t.subtract,t.multiply=function(e){if(this.isZero())return y;if(p(e)||(e=m(e)),e.isZero())return y;if(this.eq(E))return e.isOdd()?E:y;if(e.eq(E))return this.isOdd()?E:y;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(v)&&e.lt(v))return f(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,i=65535&this.high,n=this.low>>>16,r=65535&this.low,o=e.high>>>16,a=65535&e.high,s=e.low>>>16,l=65535&e.low,c=0,h=0,u=0,d=0;return u+=(d+=r*l)>>>16,h+=(u+=n*l)>>>16,u&=65535,h+=(u+=r*s)>>>16,c+=(h+=i*l)>>>16,h&=65535,c+=(h+=n*s)>>>16,h&=65535,c+=(h+=r*a)>>>16,c+=t*l+i*s+n*a+r*o,g((u&=65535)<<16|(d&=65535),(c&=65535)<<16|(h&=65535),this.unsigned)},t.mul=t.multiply,t.divide=function(e){if(p(e)||(e=m(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?l:y;var t,i,n;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return l;if(e.gt(this.shru(1)))return d;n=l}else{if(this.eq(E))return e.eq(c)||e.eq(A)?E:e.eq(E)?c:(t=this.shr(1).div(e).shl(1)).eq(y)?e.isNegative()?c:A:(i=this.sub(e.mul(t)),n=t.add(i.div(e)));if(e.eq(E))return this.unsigned?l:y;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=y}for(i=this;i.gte(e);){t=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var r=Math.ceil(Math.log(t)/Math.LN2),o=r<=48?1:u(2,r-48),a=f(t),s=a.mul(e);s.isNegative()||s.gt(i);)s=(a=f(t-=o,this.unsigned)).mul(e);a.isZero()&&(a=c),n=n.add(a),i=i.sub(s)}return n},t.div=t.divide,t.modulo=function(e){return p(e)||(e=m(e)),this.sub(this.div(e).mul(e))},t.mod=t.modulo,t.not=function(){return g(~this.low,~this.high,this.unsigned)},t.and=function(e){return p(e)||(e=m(e)),g(this.low&e.low,this.high&e.high,this.unsigned)},t.or=function(e){return p(e)||(e=m(e)),g(this.low|e.low,this.high|e.high,this.unsigned)},t.xor=function(e){return p(e)||(e=m(e)),g(this.low^e.low,this.high^e.high,this.unsigned)},t.shiftLeft=function(e){return p(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?g(this.low<>>32-e,this.unsigned):g(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):g(this.high>>e-32,0<=this.high?0:-1,this.unsigned)},t.shr=t.shiftRight,t.shiftRightUnsigned=function(e){if(p(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?g(this.low>>>e|t<<32-e,t>>>e,this.unsigned):g(32===e?t:t>>>e-32,0,this.unsigned)},t.shru=t.shiftRightUnsigned,t.toSigned=function(){return this.unsigned?g(this.low,this.high,!1):this},t.toUnsigned=function(){return this.unsigned?this:g(this.low,this.high,!0)},t.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},t.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},t.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t]},n},"function"==typeof define&&define.amd?define([],r):"function"==typeof e&&"object"==typeof t&&t&&t.exports?t.exports=r():(n.dcodeIO=n.dcodeIO||{}).Long=r()},{}],217:[function(e,t,i){var n,r,o,a,s,l,c,h,u,d,p,f,g,m,v,y,A,C,I,E,_,b,w,T,x,S,M,R,P,O,L,D,N,F,B,V,k,U,H,z,G,W,j,Y,q,X,Z,K,Q,J,$,ee,te,ie,ne,re,oe,ae,se,le,ce,he,ue,de,pe,fe,ge,me,ve,ye,Ae,Ce,Ie,Ee,_e,be,we,Te,xe,Se,Me,Re,Pe,Oe,Le,De,Ne,Fe,Be,Ve,ke,Ue,He,ze,Ge,We,je,Ye,qe,Xe,Ze,Ke,Qe,Je,$e,et,tt,it,nt,rt,ot,at,st,lt,ct,ht,ut,dt,pt,ft,gt,mt,vt,yt,At,Ct,It,Et,_t,bt,wt,Tt,xt,St,Mt,Rt,Pt,Ot,Lt,Dt,Nt,Ft,Bt,Vt,kt,Ut,Ht,zt,Gt,Wt,jt,Yt,qt,Xt,Zt,Kt,Qt,Jt,$t,ei,ti,ii,ni,ri,oi,ai,si,li,ci,hi,ui,di,pi,fi,gi,mi,vi,yi,Ai,Ci={REVISION:"75"};function Ii(e,t){return e.distance-t.distance}function Ei(e,t,i,n){if(!1!==e.visible&&(e.raycast(t,i),!0===n))for(var r=e.children,o=0,a=r.length;ot.far?null:{distance:l,point:Ut.clone(),object:e}}function Ti(e,t,i,n,r,o,a,s){Mt.fromArray(n,3*o),Rt.fromArray(n,3*a),Pt.fromArray(n,3*s);var l=wi(e,t,i,Mt,Rt,Pt,kt);return l&&(r&&(Nt.fromArray(r,2*o),Ft.fromArray(r,2*a),Bt.fromArray(r,2*s),l.uv=bi(kt,Mt,Rt,Pt,Nt,Ft,Bt)),l.face=new Ci.Face3(o,a,s,Ci.Triangle.normal(Mt,Rt,Pt)),l.faceIndex=o),l}function xi(){}function Si(e,t,i,n,r,o){var a,s,l,c,h,u,d,p,f,g,m,v,y,A,C,I,E;if(s=e[o[t]].x,l=e[o[t]].y,c=e[o[i]].x,h=e[o[i]].y,u=e[o[n]].x,d=e[o[n]].y,Number.EPSILON>(c-s)*(d-l)-(h-l)*(u-s))return!1;for(g=u-c,m=d-h,v=s-u,y=l-d,A=c-s,C=h-l,a=0;a=-Number.EPSILON&&E>=-Number.EPSILON&&I>=-Number.EPSILON))return!1;return!0}function Mi(e){switch(e){case Ci.LinearEncoding:return["Linear","( value )"];case Ci.sRGBEncoding:return["sRGB","( value )"];case Ci.RGBEEncoding:return["RGBE","( value )"];case Ci.RGBM7Encoding:return["RGBM","( value, 7.0 )"];case Ci.RGBM16Encoding:return["RGBM","( value, 16.0 )"];case Ci.RGBDEncoding:return["RGBD","( value, 256.0 )"];case Ci.GammaEncoding:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw new Error("unsupported encoding: "+e)}}function Ri(e,t){var i=Mi(t);return"vec4 "+e+"( vec4 value ) { return "+i[0]+"ToLinear"+i[1]+"; }"}function Pi(e){return""!==e}function Oi(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights)}function Li(e){return e.replace(/#include +<([\w\d.]+)>/g,function(e,t){var i=Ci.ShaderChunk[t];if(void 0===i)throw new Error("Can not resolve #include <"+t+">");return Li(i)})}function Di(e){return e.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(e,t,i,n){for(var r="",o=parseInt(t);o>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this},setRGB:function(e,t,i){return this.r=e,this.g=t,this.b=i,this},setHSL:function(e,t,i){if(e=Ci.Math.euclideanModulo(e,1),t=Ci.Math.clamp(t,0,1),i=Ci.Math.clamp(i,0,1),0===t)this.r=this.g=this.b=i;else{var n=i<=.5?i*(1+t):i+t-i*t,r=2*i-n;this.r=_i(r,n,e+1/3),this.g=_i(r,n,e),this.b=_i(r,n,e-1/3)}return this},setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var i;if(i=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var n,r=i[1],o=i[2];switch(r){case"rgb":case"rgba":if(n=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case"hsl":case"hsla":if(n=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o)){var a=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,l=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(a,s,l)}}}else if(i=/^\#([A-Fa-f0-9]+)$/.exec(t)){var c,h=(c=i[1]).length;if(3===h)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===h)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}t&&0Math.abs(e.z)?Be.set(-e.y,e.x,0):Be.set(0,-e.z,e.y)):Be.crossVectors(e,t),this._x=Be.x,this._y=Be.y,this._z=Be.z,this._w=Ve,this.normalize(),this},inverse:function(){return this.conjugate().normalize(),this},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this.onChangeCallback(),this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var i=e._x,n=e._y,r=e._z,o=e._w,a=t._x,s=t._y,l=t._z,c=t._w;return this._x=i*c+o*a+n*l-r*s,this._y=n*c+o*s+r*a-i*l,this._z=r*c+o*l+i*s-n*a,this._w=o*c-i*a-n*s-r*l,this.onChangeCallback(),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var i=this._x,n=this._y,r=this._z,o=this._w,a=o*e._w+i*e._x+n*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),1<=a)return this._w=o,this._x=i,this._y=n,this._z=r,this;var s=Math.sqrt(1-a*a);if(Math.abs(s)<.001)return this._w=.5*(o+this._w),this._x=.5*(i+this._x),this._y=.5*(n+this._y),this._z=.5*(r+this._z),this;var l=Math.atan2(s,a),c=Math.sin((1-t)*l)/s,h=Math.sin(t*l)/s;return this._w=o*c+this._w*h,this._x=i*c+this._x*h,this._y=n*c+this._y*h,this._z=r*c+this._z*h,this.onChangeCallback(),this},equals:function(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w},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._w=e[t+3],this.onChangeCallback(),this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e},onChange:function(e){return this.onChangeCallback=e,this},onChangeCallback:function(){}},Object.assign(Ci.Quaternion,{slerp:function(e,t,i,n){return i.copy(e).slerp(t,n)},slerpFlat:function(e,t,i,n,r,o,a){var s=i[n+0],l=i[n+1],c=i[n+2],h=i[n+3],u=r[o+0],d=r[o+1],p=r[o+2],f=r[o+3];if(h!==f||s!==u||l!==d||c!==p){var g=1-a,m=s*u+l*d+c*p+h*f,v=0<=m?1:-1,y=1-m*m;if(y>Number.EPSILON){var A=Math.sqrt(y),C=Math.atan2(A,m*v);g=Math.sin(g*C)/A,a=Math.sin(a*C)/A}var I=a*v;if(s=s*g+u*I,l=l*g+d*I,c=c*g+p*I,h=h*g+f*I,g===1-a){var E=1/Math.sqrt(s*s+l*l+c*c+h*h);s*=E,l*=E,c*=E,h*=E}}e[t]=s,e[t+1]=l,e[t+2]=c,e[t+3]=h}}),Ci.Vector2=function(e,t){this.x=e||0,this.y=t||0},Ci.Vector2.prototype={constructor:Ci.Vector2,get width(){return this.x},set width(e){this.x=e},get height(){return this.y},set height(e){this.y=e},set:function(e,t){return this.x=e,this.y=t,this},setScalar:function(e){return this.x=e,this.y=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(e){return this.x=e.x,this.y=e.y,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)},addScalar:function(e){return this.x+=e,this.y+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)},subScalar:function(e){return this.x-=e,this.y-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this},multiply:function(e){return this.x*=e.x,this.y*=e.y,this},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e):(this.x=0,this.y=0),this},divide:function(e){return this.x/=e.x,this.y/=e.y,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this},clampScalar:function(e,t){return void 0===Ne&&(Ne=new Ci.Vector2,Fe=new Ci.Vector2),Ne.set(e,e),Fe.set(t,t),this.clamp(Ne,Fe)},clampLength:function(e,t){var i=this.length();return this.multiplyScalar(Math.max(e,Math.min(t,i))/i),this},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(e){return this.x*e.x+this.y*e.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length())},angle:function(){var e=Math.atan2(this.y,this.x);return e<0&&(e+=2*Math.PI),e},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,i=this.y-e.y;return t*t+i*i},setLength:function(e){return this.multiplyScalar(e/this.length())},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this},lerpVectors:function(e,t,i){return this.subVectors(t,e).multiplyScalar(i).add(e),this},equals:function(e){return e.x===this.x&&e.y===this.y},fromArray:function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e},fromAttribute:function(e,t,i){return void 0===i&&(i=0),t=t*e.itemSize+i,this.x=e.array[t],this.y=e.array[t+1],this},rotateAround:function(e,t){var i=Math.cos(t),n=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*i-o*n+e.x,this.y=r*n+o*i+e.y,this}},Ci.Vector3=function(e,t,i){this.x=e||0,this.y=t||0,this.z=i||0},Ci.Vector3.prototype={constructor:Ci.Vector3,set:function(e,t,i){return this.x=e,this.y=t,this.z=i,this},setScalar:function(e){return this.x=e,this.y=e,this.z=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},multiply:function(e,t){return void 0!==t?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e,this.z*=e):(this.x=0,this.y=0,this.z=0),this},multiplyVectors:function(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this},applyEuler:function(e){return e instanceof Ci.Euler==0&&console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),void 0===De&&(De=new Ci.Quaternion),this.applyQuaternion(De.setFromEuler(e)),this},applyAxisAngle:function(e,t){return void 0===Le&&(Le=new Ci.Quaternion),this.applyQuaternion(Le.setFromAxisAngle(e,t)),this},applyMatrix3:function(e){var t=this.x,i=this.y,n=this.z,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6]*n,this.y=r[1]*t+r[4]*i+r[7]*n,this.z=r[2]*t+r[5]*i+r[8]*n,this},applyMatrix4:function(e){var t=this.x,i=this.y,n=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*n+r[12],this.y=r[1]*t+r[5]*i+r[9]*n+r[13],this.z=r[2]*t+r[6]*i+r[10]*n+r[14],this},applyProjection:function(e){var t=this.x,i=this.y,n=this.z,r=e.elements,o=1/(r[3]*t+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*t+r[4]*i+r[8]*n+r[12])*o,this.y=(r[1]*t+r[5]*i+r[9]*n+r[13])*o,this.z=(r[2]*t+r[6]*i+r[10]*n+r[14])*o,this},applyQuaternion:function(e){var t=this.x,i=this.y,n=this.z,r=e.x,o=e.y,a=e.z,s=e.w,l=s*t+o*n-a*i,c=s*i+a*t-r*n,h=s*n+r*i-o*t,u=-r*t-o*i-a*n;return this.x=l*s+u*-r+c*-a-h*-o,this.y=c*s+u*-o+h*-r-l*-a,this.z=h*s+u*-a+l*-o-c*-r,this},project:function(e){return void 0===Oe&&(Oe=new Ci.Matrix4),Oe.multiplyMatrices(e.projectionMatrix,Oe.getInverse(e.matrixWorld)),this.applyProjection(Oe)},unproject:function(e){return void 0===Pe&&(Pe=new Ci.Matrix4),Pe.multiplyMatrices(e.matrixWorld,Pe.getInverse(e.projectionMatrix)),this.applyProjection(Pe)},transformDirection:function(e){var t=this.x,i=this.y,n=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*n,this.y=r[1]*t+r[5]*i+r[9]*n,this.z=r[2]*t+r[6]*i+r[10]*n,this.normalize(),this},divide:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},divideScalar:function(e){return this.multiplyScalar(1/e)},min:function(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this},max:function(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this},clamp:function(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this},clampScalar:function(e,t){return void 0===Me&&(Me=new Ci.Vector3,Re=new Ci.Vector3),Me.set(e,e,e),Re.set(t,t,t),this.clamp(Me,Re)},clampLength:function(e,t){var i=this.length();return this.multiplyScalar(Math.max(e,Math.min(t,i))/i),this},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(e){return this.multiplyScalar(e/this.length())},lerp:function(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this},lerpVectors:function(e,t,i){return this.subVectors(t,e).multiplyScalar(i).add(e),this},cross:function(e,t){if(void 0!==t)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t);var i=this.x,n=this.y,r=this.z;return this.x=n*e.z-r*e.y,this.y=r*e.x-i*e.z,this.z=i*e.y-n*e.x,this},crossVectors:function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,a=t.y,s=t.z;return this.x=n*s-r*a,this.y=r*o-i*s,this.z=i*a-n*o,this},projectOnVector:function(e){return void 0===xe&&(xe=new Ci.Vector3),xe.copy(e).normalize(),Se=this.dot(xe),this.copy(xe).multiplyScalar(Se)},projectOnPlane:function(e){return void 0===Te&&(Te=new Ci.Vector3),Te.copy(this).projectOnVector(e),this.sub(Te)},reflect:function(e){return void 0===we&&(we=new Ci.Vector3),this.sub(we.copy(e).multiplyScalar(2*this.dot(e)))},angleTo:function(e){var t=this.dot(e)/Math.sqrt(this.lengthSq()*e.lengthSq());return Math.acos(Ci.Math.clamp(t,-1,1))},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,i=this.y-e.y,n=this.z-e.z;return t*t+i*i+n*n},setFromSpherical:function(e){var t=Math.sin(e.phi)*e.radius;return this.x=t*Math.sin(e.theta),this.y=Math.cos(e.phi)*e.radius,this.z=t*Math.cos(e.theta),this},setFromMatrixPosition:function(e){return this.setFromMatrixColumn(e,3)},setFromMatrixScale:function(e){var t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),n=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=n,this},setFromMatrixColumn:function(e,t){return"number"==typeof e&&(console.warn("THREE.Vector3: setFromMatrixColumn now expects ( matrix, index )."),t=e=t),this.fromArray(e.elements,4*t)},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},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},toArray:function(e,t){return void 0===e&&(e=[]),void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e},fromAttribute:function(e,t,i){return void 0===i&&(i=0),t=t*e.itemSize+i,this.x=e.array[t],this.y=e.array[t+1],this.z=e.array[t+2],this}},Ci.Vector4=function(e,t,i,n){this.x=e||0,this.y=t||0,this.z=i||0,this.w=void 0!==n?n:1},Ci.Vector4.prototype={constructor:Ci.Vector4,set:function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},setScalar:function(e){return this.x=e,this.y=e,this.z=e,this.w=e,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setW:function(e){return this.w=e,this},setComponent:function(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this},add:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this},addVectors:function(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this},addScaledVector:function(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this},sub:function(e,t){return void 0!==t?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)},subScalar:function(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this},multiplyScalar:function(e){return isFinite(e)?(this.x*=e,this.y*=e,this.z*=e,this.w*=e):(this.x=0,this.y=0,this.z=0,this.w=0),this},applyMatrix4:function(e){var t=this.x,i=this.y,n=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*n+o[12]*r,this.y=o[1]*t+o[5]*i+o[9]*n+o[13]*r,this.z=o[2]*t+o[6]*i+o[10]*n+o[14]*r,this.w=o[3]*t+o[7]*i+o[11]*n+o[15]*r,this},divideScalar:function(e){return this.multiplyScalar(1/e)},setAxisAngleFromQuaternion:function(e){this.w=2*Math.acos(e.w);var t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this},setAxisAngleFromRotationMatrix:function(e){var t,i,n,r,o=e.elements,a=o[0],s=o[4],l=o[8],c=o[1],h=o[5],u=o[9],d=o[2],p=o[6],f=o[10];if(Math.abs(s-c)<.01&&Math.abs(l-d)<.01&&Math.abs(u-p)<.01){if(Math.abs(s+c)<.1&&Math.abs(l+d)<.1&&Math.abs(u+p)<.1&&Math.abs(a+h+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;var g=(a+1)/2,m=(h+1)/2,v=(f+1)/2,y=(s+c)/4,A=(l+d)/4,C=(u+p)/4;return mthis.max.x||e.ythis.max.y)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y},getParameter:function(e,t){return(t||new Ci.Vector2).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)},clampPoint:function(e,t){return(t||new Ci.Vector2).copy(e).clamp(this.min,this.max)},distanceToPoint:(ve=new Ci.Vector2,function(e){return ve.copy(e).clamp(this.min,this.max).sub(e).length()}),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Ci.Box3=function(e,t){this.min=void 0!==e?e:new Ci.Vector3(1/0,1/0,1/0),this.max=void 0!==t?t:new Ci.Vector3(-1/0,-1/0,-1/0)},Ci.Box3.prototype={constructor:Ci.Box3,set:function(e,t){return this.min.copy(e),this.max.copy(t),this},setFromArray:function(e){this.makeEmpty();for(var t=1/0,i=1/0,n=1/0,r=-1/0,o=-1/0,a=-1/0,s=0,l=e.length;sthis.max.x||e.ythis.max.y||e.zthis.max.z)},containsBox:function(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z},getParameter:function(e,t){return(t||new Ci.Vector3).set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)},intersectsSphere:function(e){return void 0===fe&&(fe=new Ci.Vector3),this.clampPoint(e.center,fe),fe.distanceToSquared(e.center)<=e.radius*e.radius},intersectsPlane:function(e){var t,i;return i=0=e.constant},clampPoint:function(e,t){return(t||new Ci.Vector3).copy(e).clamp(this.min,this.max)},distanceToPoint:(pe=new Ci.Vector3,function(e){return pe.copy(e).clamp(this.min,this.max).sub(e).length()}),getBoundingSphere:(de=new Ci.Vector3,function(e){var t=e||new Ci.Sphere;return t.center=this.center(),t.radius=.5*this.size(de).length(),t}),intersect:function(e){return this.min.max(e.min),this.max.min(e.max),this},union:function(e){return this.min.min(e.min),this.max.max(e.max),this},applyMatrix4:(ue=[new Ci.Vector3,new Ci.Vector3,new Ci.Vector3,new Ci.Vector3,new Ci.Vector3,new Ci.Vector3,new Ci.Vector3,new Ci.Vector3],function(e){return ue[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),ue[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),ue[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),ue[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),ue[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),ue[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),ue[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),ue[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.makeEmpty(),this.setFromPoints(ue),this}),translate:function(e){return this.min.add(e),this.max.add(e),this},equals:function(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Ci.Matrix3=function(){this.elements=new Float32Array([1,0,0,0,1,0,0,0,1]),0this.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},getBoundingBox:function(e){var t=e||new Ci.Box3;return t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this},translate:function(e){return this.center.add(e),this},equals:function(e){return e.center.equals(this.center)&&e.radius===this.radius}},Ci.Frustum=function(e,t,i,n,r,o){this.planes=[void 0!==e?e:new Ci.Plane,void 0!==t?t:new Ci.Plane,void 0!==i?i:new Ci.Plane,void 0!==n?n:new Ci.Plane,void 0!==r?r:new Ci.Plane,void 0!==o?o:new Ci.Plane]},Ci.Frustum.prototype={constructor:Ci.Frustum,set:function(e,t,i,n,r,o){var a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(n),a[4].copy(r),a[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(e){for(var t=this.planes,i=0;i<6;i++)t[i].copy(e.planes[i]);return this},setFromMatrix:function(e){var t=this.planes,i=e.elements,n=i[0],r=i[1],o=i[2],a=i[3],s=i[4],l=i[5],c=i[6],h=i[7],u=i[8],d=i[9],p=i[10],f=i[11],g=i[12],m=i[13],v=i[14],y=i[15];return t[0].setComponents(a-n,h-s,f-u,y-g).normalize(),t[1].setComponents(a+n,h+s,f+u,y+g).normalize(),t[2].setComponents(a+r,h+l,f+d,y+m).normalize(),t[3].setComponents(a-r,h-l,f-d,y-m).normalize(),t[4].setComponents(a-o,h-c,f-p,y-v).normalize(),t[5].setComponents(a+o,h+c,f+p,y+v).normalize(),this},intersectsObject:(H=new Ci.Sphere,function(e){var t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),H.copy(t.boundingSphere),H.applyMatrix4(e.matrixWorld),this.intersectsSphere(H)}),intersectsSphere:function(e){for(var t=this.planes,i=e.center,n=-e.radius,r=0;r<6;r++){if(t[r].distanceToPoint(i)>=4,P[e]=R[19===e?3&M|8:M]);return P.join("")}),clamp:function(e,t,i){return Math.max(t,Math.min(i,e))},euclideanModulo:function(e,t){return(e%t+t)%t},mapLinear:function(e,t,i,n,r){return n+(e-t)*(r-n)/(i-t)},smoothstep:function(e,t,i){return e<=t?0:i<=e?1:(e=(e-t)/(i-t))*e*(3-2*e)},smootherstep:function(e,t,i){return e<=t?0:i<=e?1:(e=(e-t)/(i-t))*e*e*(e*(6*e-15)+10)},random16:function(){return console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead."),Math.random()},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},degToRad:(S=Math.PI/180,function(e){return e*S}),radToDeg:(x=180/Math.PI,function(e){return e*x}),isPowerOfTwo:function(e){return 0==(e&e-1)&&0!==e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e}},Ci.Spline=function(e){function t(e,t,i,n,r,o,a){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*a+(-3*(t-i)-2*s-l)*o+s*r+t}this.points=e;var i,n,r,o,a,s,l,c,h,u=[],d={x:0,y:0,z:0};this.initFromArray=function(e){this.points=[];for(var t=0;tthis.points.length-2?this.points.length-1:n+1,u[3]=n>this.points.length-3?this.points.length-1:n+2,s=this.points[u[0]],l=this.points[u[1]],c=this.points[u[2]],h=this.points[u[3]],a=r*(o=r*r),d.x=t(s.x,l.x,c.x,h.x,r,o,a),d.y=t(s.y,l.y,c.y,h.y,r,o,a),d.z=t(s.z,l.z,c.z,h.z,r,o,a),d},this.getControlPointsArray=function(){var e,t,i=this.points.length,n=[];for(e=0;e>>1;ei.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t},_updateTimeScale:function(e){var t=0;if(!this.paused){t=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i)t*=i.evaluate(e)[0],e>i.parameterPositions[1]&&(this.stopWarping(),0===t?this.pause=!0:this.timeScale=t)}return this._effectiveTimeScale=t},_updateTime:function(e){var t=this.time+e;if(0===e)return t;var i=this._clip.duration,n=this.loop,r=this._loopCount,o=!1;switch(n){case Ci.LoopOnce:if(-1===r&&(this.loopCount=0,this._setEndings(!0,!0,!1)),i<=t)t=i;else{if(!(t<0))break;t=0}this.clampWhenFinished?this.pause=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1});break;case Ci.LoopPingPong:o=!0;case Ci.LoopRepeat:if(-1===r&&(0t;)--o;if(++o,0!==r||o!==n){o<=r&&(r=(o=Math.max(o,1))-1);var a=this.getValueSize();this.times=Ci.AnimationUtils.arraySlice(i,r,o),this.values=Ci.AnimationUtils.arraySlice(this.values,r*a,o*a)}return this},validate:function(){var e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("invalid value size in track",this),e=!1);var i=this.times,n=this.values,r=i.length;0===r&&(console.error("track is empty",this),e=!1);for(var o=null,a=0;a!==r;a++){var s=i[a];if("number"==typeof s&&isNaN(s)){console.error("time is not a valid number",this,a,s),e=!1;break}if(null!==o&&so.far)return;a.push({distance:r,distanceToRay:Math.sqrt(i),point:n.clone(),index:t,face:null,object:s})}}var s=this,t=this.geometry,l=this.matrixWorld,i=o.params.Points.threshold;if(null===t.boundingSphere&&t.computeBoundingSphere(),Yt.copy(t.boundingSphere),Yt.applyMatrix4(l),!1!==o.ray.intersectsSphere(Yt)){Wt.getInverse(l),jt.copy(o.ray).applyMatrix4(Wt);var n=i/((this.scale.x+this.scale.y+this.scale.z)/3),c=n*n,r=new Ci.Vector3;if(t instanceof Ci.BufferGeometry){var h=t.index,u=t.attributes.position.array;if(null!==h)for(var d=h.array,p=0,f=d.length;pe.far||t.push({distance:C,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}else for(f=0,g=d.length/3-1;fe.far||t.push({distance:C,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}else if(r instanceof Ci.Geometry){var y=r.vertices,A=y.length;for(f=0;fe.far||t.push({distance:C,point:l.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}}}}),Ci.Line.prototype.clone=function(){return new this.constructor(this.geometry,this.material).copy(this)},Ci.LineStrip=0,Ci.LinePieces=1,Ci.LineSegments=function(e,t){Ci.Line.call(this,e,t),this.type="LineSegments"},Ci.LineSegments.prototype=Object.create(Ci.Line.prototype),Ci.LineSegments.prototype.constructor=Ci.LineSegments,Ci.Mesh=function(e,t){Ci.Object3D.call(this),this.type="Mesh",this.geometry=void 0!==e?e:new Ci.Geometry,this.material=void 0!==t?t:new Ci.MeshBasicMaterial({color:16777215*Math.random()}),this.drawMode=Ci.TrianglesDrawMode,this.updateMorphTargets()},Ci.Mesh.prototype=Object.create(Ci.Object3D.prototype),Ci.Mesh.prototype.constructor=Ci.Mesh,Ci.Mesh.prototype.setDrawMode=function(e){this.drawMode=e},Ci.Mesh.prototype.updateMorphTargets=function(){if(void 0!==this.geometry.morphTargets&&0=t[n].distance;n++)t[n-1].object.visible=!1,t[n].object.visible=!0;for(;n=Ee.maxTextures&&console.warn("WebGLRenderer: trying to use "+e+" texture units while this GPU supports only "+Ee.maxTextures),oe+=1,e}function C(e,t,i,n){var r,o;if("1i"===t)X.uniform1i(i,n);else if("1f"===t)X.uniform1f(i,n);else if("2f"===t)X.uniform2f(i,n[0],n[1]);else if("3f"===t)X.uniform3f(i,n[0],n[1],n[2]);else if("4f"===t)X.uniform4f(i,n[0],n[1],n[2],n[3]);else if("1iv"===t)X.uniform1iv(i,n);else if("3iv"===t)X.uniform3iv(i,n);else if("1fv"===t)X.uniform1fv(i,n);else if("2fv"===t)X.uniform2fv(i,n);else if("3fv"===t)X.uniform3fv(i,n);else if("4fv"===t)X.uniform4fv(i,n);else if("Matrix2fv"===t)X.uniformMatrix2fv(i,!1,n);else if("Matrix3fv"===t)X.uniformMatrix3fv(i,!1,n);else if("Matrix4fv"===t)X.uniformMatrix4fv(i,!1,n);else if("i"===t)X.uniform1i(i,n);else if("f"===t)X.uniform1f(i,n);else if("v2"===t)X.uniform2f(i,n.x,n.y);else if("v3"===t)X.uniform3f(i,n.x,n.y,n.z);else if("v4"===t)X.uniform4f(i,n.x,n.y,n.z,n.w);else if("c"===t)X.uniform3f(i,n.r,n.g,n.b);else if("s"===t){var a=e.properties;for(var s in a){var l=a[s],c=i[s],h=n[s];C(l,l.type,c,h)}}else if("sa"===t){a=e.properties;for(var u=0,d=n.length;ut||e.height>t){var i=t/Math.max(e.width,e.height),n=document.createElement("canvas");return n.width=Math.floor(e.width*i),n.height=Math.floor(e.height*i),n.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,n.width,n.height),console.warn("THREE.WebGLRenderer: image is too big ("+e.width+"x"+e.height+"). Resized to "+n.width+"x"+n.height,e),n}return e}function E(e){return Ci.Math.isPowerOfTwo(e.width)&&Ci.Math.isPowerOfTwo(e.height)}function _(e,t){var i=be.get(e);if(6===e.image.length)if(0 0 ) {","float depth = gl_FragCoord.z / gl_FragCoord.w;","float fogFactor = 0.0;","if ( fogType == 1 ) {","fogFactor = smoothstep( fogNear, fogFar, depth );","} else {","const float LOG2 = 1.442695;","fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );","fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );","}","gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );","}","}"].join("\n")),I.compileShader(t),I.compileShader(i),I.attachShader(e,t),I.attachShader(e,i),I.linkProgram(e),e}(),y={position:I.getAttribLocation(v,"position"),uv:I.getAttribLocation(v,"uv")},A={uvOffset:I.getUniformLocation(v,"uvOffset"),uvScale:I.getUniformLocation(v,"uvScale"),rotation:I.getUniformLocation(v,"rotation"),scale:I.getUniformLocation(v,"scale"),color:I.getUniformLocation(v,"color"),map:I.getUniformLocation(v,"map"),opacity:I.getUniformLocation(v,"opacity"),modelViewMatrix:I.getUniformLocation(v,"modelViewMatrix"),projectionMatrix:I.getUniformLocation(v,"projectionMatrix"),fogType:I.getUniformLocation(v,"fogType"),fogDensity:I.getUniformLocation(v,"fogDensity"),fogNear:I.getUniformLocation(v,"fogNear"),fogFar:I.getUniformLocation(v,"fogFar"),fogColor:I.getUniformLocation(v,"fogColor"),alphaTest:I.getUniformLocation(v,"alphaTest")};var i=document.createElement("canvas");i.width=8,i.height=8;var n=i.getContext("2d");n.fillStyle="white",n.fillRect(0,0,8,8),(C=new Ci.Texture(i)).needsUpdate=!0}function f(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:t.id-e.id}var g,m,v,y,A,C,I=u.context,E=u.state,_=new Ci.Vector3,b=new Ci.Quaternion,w=new Ci.Vector3;this.render=function(e,t){if(0!==d.length){void 0===v&&p(),I.useProgram(v),E.initAttributes(),E.enableAttribute(y.position),E.enableAttribute(y.uv),E.disableUnusedAttributes(),E.disable(I.CULL_FACE),E.enable(I.BLEND),I.bindBuffer(I.ARRAY_BUFFER,g),I.vertexAttribPointer(y.position,2,I.FLOAT,!1,16,0),I.vertexAttribPointer(y.uv,2,I.FLOAT,!1,16,8),I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,m),I.uniformMatrix4fv(A.projectionMatrix,!1,t.projectionMatrix.elements),E.activeTexture(I.TEXTURE0),I.uniform1i(A.map,0);var i=0,n=0,r=e.fog;r?(I.uniform3f(A.fogColor,r.color.r,r.color.g,r.color.b),r instanceof Ci.Fog?(I.uniform1f(A.fogNear,r.near),I.uniform1f(A.fogFar,r.far),I.uniform1i(A.fogType,1),n=i=1):r instanceof Ci.FogExp2&&(I.uniform1f(A.fogDensity,r.density),I.uniform1i(A.fogType,2),n=i=2)):(I.uniform1i(A.fogType,0),n=i=0);for(var o=0,a=d.length;oNumber.EPSILON){var p;if(0Number.EPSILON){var d=l*s-c*a;return 0=t){var r=i[n]-t,o=this.curves[n],a=1-r/o.getLength();return o.getPointAt(a)}n++}return null},Ci.CurvePath.prototype.getLength=function(){var e=this.getCurveLengths();return e[e.length-1]},Ci.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var e=[],t=0,i=0,n=this.curves.length;iNumber.EPSILON){if(c<0&&(a=t[o],l=-l,s=t[r],c=-c),e.ys.y)continue;if(e.y===a.y){if(e.x===a.x)return!0}else{var h=c*(e.x-a.x)-l*(e.y-a.y);if(0==h)return!0;if(h<0)continue;n=!n}}else{if(e.y!==a.y)continue;if(s.x<=e.x&&e.x<=a.x||a.x<=e.x&&e.x<=s.x)return!0}}return n}var r=Ci.ShapeUtils.isClockWise,o=function(e){for(var t=[],i=new Ci.Path,n=0,r=e.length;nt.length-2?t.length-1:n+1],l=t[n>t.length-3?t.length-1:n+2],c=Ci.CurveUtils.interpolate;return new Ci.Vector2(c(o.x,a.x,s.x,l.x,r),c(o.y,a.y,s.y,l.y,r))},Ci.EllipseCurve=function(e,t,i,n,r,o,a,s){this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=n,this.aStartAngle=r,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s||0},Ci.EllipseCurve.prototype=Object.create(Ci.Curve.prototype),Ci.EllipseCurve.prototype.constructor=Ci.EllipseCurve,Ci.EllipseCurve.prototype.getPoint=function(e){var t,i=this.aEndAngle-this.aStartAngle;i<0&&(i+=2*Math.PI),i>2*Math.PI&&(i-=2*Math.PI),t=!0===this.aClockwise?this.aEndAngle+(1-e)*(2*Math.PI-i):this.aStartAngle+e*i;var n=this.aX+this.xRadius*Math.cos(t),r=this.aY+this.yRadius*Math.sin(t);if(0!==this.aRotation){var o=Math.cos(this.aRotation),a=Math.sin(this.aRotation),s=n,l=r;n=(s-this.aX)*o-(l-this.aY)*a+this.aX,r=(s-this.aX)*a+(l-this.aY)*o+this.aY}return new Ci.Vector2(n,r)},Ci.ArcCurve=function(e,t,i,n,r,o){Ci.EllipseCurve.call(this,e,t,i,i,n,r,o)},Ci.ArcCurve.prototype=Object.create(Ci.EllipseCurve.prototype),Ci.ArcCurve.prototype.constructor=Ci.ArcCurve,Ci.LineCurve3=Ci.Curve.create(function(e,t){this.v1=e,this.v2=t},function(e){var t=new Ci.Vector3;return t.subVectors(this.v2,this.v1),t.multiplyScalar(e),t.add(this.v1),t}),Ci.QuadraticBezierCurve3=Ci.Curve.create(function(e,t,i){this.v0=e,this.v1=t,this.v2=i},function(e){var t=Ci.ShapeUtils.b2;return new Ci.Vector3(t(e,this.v0.x,this.v1.x,this.v2.x),t(e,this.v0.y,this.v1.y,this.v2.y),t(e,this.v0.z,this.v1.z,this.v2.z))}),Ci.CubicBezierCurve3=Ci.Curve.create(function(e,t,i,n){this.v0=e,this.v1=t,this.v2=i,this.v3=n},function(e){var t=Ci.ShapeUtils.b3;return new Ci.Vector3(t(e,this.v0.x,this.v1.x,this.v2.x,this.v3.x),t(e,this.v0.y,this.v1.y,this.v2.y,this.v3.y),t(e,this.v0.z,this.v1.z,this.v2.z,this.v3.z))}),Ci.SplineCurve3=Ci.Curve.create(function(e){console.warn("THREE.SplineCurve3 will be deprecated. Please use THREE.CatmullRomCurve3"),this.points=null==e?[]:e},function(e){var t=this.points,i=(t.length-1)*e,n=Math.floor(i),r=i-n,o=t[0==n?n:n-1],a=t[n],s=t[n>t.length-2?t.length-1:n+1],l=t[n>t.length-3?t.length-1:n+2],c=Ci.CurveUtils.interpolate;return new Ci.Vector3(c(o.x,a.x,s.x,l.x,r),c(o.y,a.y,s.y,l.y,r),c(o.z,a.z,s.z,l.z,r))}),Ci.CatmullRomCurve3=(qt=new Ci.Vector3,Xt=new xi,Zt=new xi,Kt=new xi,xi.prototype.init=function(e,t,i,n){this.c0=e,this.c1=i,this.c2=-3*e+3*t-2*i-n,this.c3=2*e-2*t+i+n},xi.prototype.initNonuniformCatmullRom=function(e,t,i,n,r,o,a){var s=(t-e)/r-(i-e)/(r+o)+(i-t)/o,l=(i-t)/o-(n-t)/(o+a)+(n-i)/a;s*=o,l*=o,this.init(t,i,s,l)},xi.prototype.initCatmullRom=function(e,t,i,n,r){this.init(t,i,r*(i-e),r*(n-t))},xi.prototype.calc=function(e){var t=e*e,i=t*e;return this.c0+this.c1*e+this.c2*t+this.c3*i},Ci.Curve.create(function(e){this.points=e||[],this.closed=!1},function(e){var t,i,n,r,o,a,s,l,c=this.points;if((r=c.length)<2&&console.log("duh, you need at least 2 points"),n=(t=(r-(this.closed?0:1))*e)-(i=Math.floor(t)),this.closed?i+=0Number.EPSILON){var d=Math.sqrt(h),p=Math.sqrt(l*l+c*c),f=t.x-s/d,g=t.y+a/d,m=((i.x-c/p-f)*c-(i.y+l/p-g)*l)/(a*c-s*l),v=(n=f+a*m-e.x)*n+(r=g+s*m-e.y)*r;if(v<=2)return new Ci.Vector2(n,r);o=Math.sqrt(v/2)}else{var y=!1;a>Number.EPSILON?l>Number.EPSILON&&(y=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(y=!0):Math.sign(s)===Math.sign(c)&&(y=!0),o=y?(n=-s,r=a,Math.sqrt(h)):(n=a,r=s,Math.sqrt(h/2))}return new Ci.Vector2(n/o,r/o)}function r(e,t){var i,n;for(G=e.length;0<=--G;){(n=(i=G)-1)<0&&(n=e.length-1);var r=0,o=A+2*m;for(r=0;rNumber.EPSILON&&(f.normalize(),n=Math.acos(Ci.Math.clamp(u[l-1].dot(u[l]),-1,1)),d[l].applyMatrix4(g.makeRotationAxis(f,n))),p[l].crossVectors(u[l],d[l]);if(i)for(n=Math.acos(Ci.Math.clamp(d[0].dot(d[m-1]),-1,1)),n/=m-1,0c.end&&(c.end=o),t=t||l}for(var l in n){var c=n[l];this.createAnimation(l,c.start,c.end,e)}this.firstAnimation=t},Ci.MorphBlendMesh.prototype.setAnimationDirectionForward=function(e){var t=this.animationsMap[e];t&&(t.direction=1,t.directionBackwards=!1)},Ci.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(e){var t=this.animationsMap[e];t&&(t.direction=-1,t.directionBackwards=!0)},Ci.MorphBlendMesh.prototype.setAnimationFPS=function(e,t){var i=this.animationsMap[e];i&&(i.fps=t,i.duration=(i.end-i.start)/i.fps)},Ci.MorphBlendMesh.prototype.setAnimationDuration=function(e,t){var i=this.animationsMap[e];i&&(i.duration=t,i.fps=(i.end-i.start)/i.duration)},Ci.MorphBlendMesh.prototype.setAnimationWeight=function(e,t){var i=this.animationsMap[e];i&&(i.weight=t)},Ci.MorphBlendMesh.prototype.setAnimationTime=function(e,t){var i=this.animationsMap[e];i&&(i.time=t)},Ci.MorphBlendMesh.prototype.getAnimationTime=function(e){var t=0,i=this.animationsMap[e];return i&&(t=i.time),t},Ci.MorphBlendMesh.prototype.getAnimationDuration=function(e){var t=-1,i=this.animationsMap[e];return i&&(t=i.duration),t},Ci.MorphBlendMesh.prototype.playAnimation=function(e){var t=this.animationsMap[e];t?(t.time=0,t.active=!0):console.warn("THREE.MorphBlendMesh: animation["+e+"] undefined in .playAnimation()")},Ci.MorphBlendMesh.prototype.stopAnimation=function(e){var t=this.animationsMap[e];t&&(t.active=!1)},Ci.MorphBlendMesh.prototype.update=function(e){for(var t=0,i=this.animationsList.length;tn.duration||n.time<0)&&(n.direction*=-1,n.time>n.duration&&(n.time=n.duration,n.directionBackwards=!0),n.time<0&&(n.time=0,n.directionBackwards=!1)):(n.time=n.time%n.duration,n.time<0&&(n.time+=n.duration));var o=n.start+Ci.Math.clamp(Math.floor(n.time/r),0,n.length-1),a=n.weight;o!==n.currentFrame&&(this.morphTargetInfluences[n.lastFrame]=0,this.morphTargetInfluences[n.currentFrame]=1*a,this.morphTargetInfluences[o]=0,n.lastFrame=n.currentFrame,n.currentFrame=o);var s=n.time%r/r;n.directionBackwards&&(s=1-s),n.currentFrame!==n.lastFrame?(this.morphTargetInfluences[n.currentFrame]=s*a,this.morphTargetInfluences[n.lastFrame]=(1-s)*a):this.morphTargetInfluences[n.currentFrame]=a}}},void 0!==i?(void 0!==t&&t.exports&&(i=t.exports=Ci),i.THREE=Ci):this.THREE=Ci},{}]},{},[116]);